package blake2b
import (
)
var precomputed = [12][16]byte{
{0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15},
{14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3},
{11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4},
{7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8},
{9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13},
{2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9},
{12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11},
{13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10},
{6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5},
{10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0},
{0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15},
{14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3},
}
func ( *[8]uint64, *[2]uint64, uint64, []byte) {
var [16]uint64
, := [0], [1]
for := 0; < len(); {
+= BlockSize
if < BlockSize {
++
}
, , , , , , , := [0], [1], [2], [3], [4], [5], [6], [7]
, , , , , , , := iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7]
^=
^=
^=
for := range {
[] = binary.LittleEndian.Uint64([:])
+= 8
}
for := range precomputed {
:= &(precomputed[])
+= [[0]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[1]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[2]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[3]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[4]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[5]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[6]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[7]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[8]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[9]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[10]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[11]]
+=
^=
= bits.RotateLeft64(, -32)
+=
^=
= bits.RotateLeft64(, -24)
+= [[12]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[13]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[14]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
+= [[15]]
+=
^=
= bits.RotateLeft64(, -16)
+=
^=
= bits.RotateLeft64(, -63)
}
[0] ^= ^
[1] ^= ^
[2] ^= ^
[3] ^= ^
[4] ^= ^
[5] ^= ^
[6] ^= ^
[7] ^= ^
}
[0], [1] = ,
}