diff --git a/keccak.go b/keccak.go index ccdef4f..a6b75eb 100644 --- a/keccak.go +++ b/keccak.go @@ -26,11 +26,9 @@ func roundGeneric(a *[25]uint64) { // Chi for y := 0; y < 5; y++ { - a[y*5+0] = b[y][0] ^ ^b[y][1]&b[y][2] - a[y*5+1] = b[y][1] ^ ^b[y][2]&b[y][3] - a[y*5+2] = b[y][2] ^ ^b[y][3]&b[y][4] - a[y*5+3] = b[y][3] ^ ^b[y][4]&b[y][0] - a[y*5+4] = b[y][4] ^ ^b[y][0]&b[y][1] + for x := 0; x < 5; x++ { + a[y*5+x] = b[y][x] ^ (^b[y][(x+1)%5] & b[y][(x+2)%5]) + } } }