diff --git a/ChangeLog b/ChangeLog index d2c8e6d1dec10db15b0c4f97f739ac8c76f46732..ca63f91b134f4b8245b37b691bcca8c9f31bfdec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2012-11-15 Niels Möller <nisse@lysator.liu.se> + * sha3.c (sha3_absorb): Fixed big-endian code. Need macros.h. + * macros.h (LE_READ_UINT64): New macro. 2012-11-13 Niels Möller <nisse@lysator.liu.se> diff --git a/sha3.c b/sha3.c index a878e3bc67f21351863b73f52df3a62932df5f08..d7aec46eced5a91a51ed7dad513fe2e3c1d8ff89 100644 --- a/sha3.c +++ b/sha3.c @@ -32,6 +32,7 @@ #include "sha3.h" +#include "macros.h" #include "memxor.h" static void @@ -41,7 +42,7 @@ sha3_absorb (struct sha3_state *state, unsigned length, const uint8_t *data) #if WORDS_BIGENDIAN { uint64_t *p; - for (p = &state->a[0][0]; length > 0; p++, length -= 8, data += 8) + for (p = state->a; length > 0; p++, length -= 8, data += 8) *p ^= LE_READ_UINT64 (data); } #else /* !WORDS_BIGENDIAN */