crypto.sha3: be big-endian friendly (#24045)

This commit is contained in:
Mike 2025-03-25 23:33:59 +02:00 committed by GitHub
parent f2b90bfa01
commit f7f89b3c3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -36,11 +36,7 @@ fn (s State) to_bytes() []u8 {
for y in 0 .. 5 { for y in 0 .. 5 {
for x in 0 .. 5 { for x in 0 .. 5 {
unsafe { unsafe {
$if little_endian {
binary.little_endian_put_u64_at(mut byte_array, s.a[x][y], index) binary.little_endian_put_u64_at(mut byte_array, s.a[x][y], index)
} $else {
binary.big_endian_put_u64_at(mut byte_array, s.a[x][y], index)
}
} }
index += 8 index += 8
} }
@ -61,11 +57,7 @@ fn (mut s State) from_bytes(byte_array []u8) {
for y in 0 .. 5 { for y in 0 .. 5 {
for x in 0 .. 5 { for x in 0 .. 5 {
$if little_endian {
s.a[x][y] = binary.little_endian_u64_at(byte_array, index) s.a[x][y] = binary.little_endian_u64_at(byte_array, index)
} $else {
s.a[x][y] = binary.big_endian_u64_at(byte_array, index)
}
index += 8 index += 8
} }
} }
@ -87,11 +79,7 @@ fn (mut s State) xor_bytes(byte_array []u8, rate int) {
for y in 0 .. 5 { for y in 0 .. 5 {
for x in 0 .. 5 { for x in 0 .. 5 {
$if little_endian {
s.a[x][y] ^= binary.little_endian_u64_at(byte_array, index) s.a[x][y] ^= binary.little_endian_u64_at(byte_array, index)
} $else {
s.a[x][y] ^= binary.big_endian_u64_at(byte_array, index)
}
index += 8 index += 8
if index >= rate { if index >= rate {