-func l(blk *[BlockSize]byte, rounds int) {
- var t byte
- var i int
- for ; rounds > 0; rounds-- {
- t = blk[15]
- for i = 14; i >= 0; i-- {
- blk[i+1] = blk[i]
- t ^= gf(blk[i], lc[i])
- }
- blk[0] = t
+func l(blk *[BlockSize]byte) {
+ for n := 0; n < BlockSize; n++ {
+ blk[0],
+ blk[1],
+ blk[2],
+ blk[3],
+ blk[4],
+ blk[5],
+ blk[6],
+ blk[7],
+ blk[8],
+ blk[9],
+ blk[10],
+ blk[11],
+ blk[12],
+ blk[13],
+ blk[14],
+ blk[15] = (blk[15] ^
+ gfCache[blk[0]][lc[0]] ^
+ gfCache[blk[1]][lc[1]] ^
+ gfCache[blk[2]][lc[2]] ^
+ gfCache[blk[3]][lc[3]] ^
+ gfCache[blk[4]][lc[4]] ^
+ gfCache[blk[5]][lc[5]] ^
+ gfCache[blk[6]][lc[6]] ^
+ gfCache[blk[7]][lc[7]] ^
+ gfCache[blk[8]][lc[8]] ^
+ gfCache[blk[9]][lc[9]] ^
+ gfCache[blk[10]][lc[10]] ^
+ gfCache[blk[11]][lc[11]] ^
+ gfCache[blk[12]][lc[12]] ^
+ gfCache[blk[13]][lc[13]] ^
+ gfCache[blk[14]][lc[14]]),
+ blk[0],
+ blk[1],
+ blk[2],
+ blk[3],
+ blk[4],
+ blk[5],
+ blk[6],
+ blk[7],
+ blk[8],
+ blk[9],
+ blk[10],
+ blk[11],
+ blk[12],
+ blk[13],
+ blk[14]