diff options
author | Mattias Andrée <maandree@kth.se> | 2024-09-15 11:57:21 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2024-09-15 11:57:21 +0200 |
commit | 7897170e09aa19122053ff24797b4d7c23f47cbc (patch) | |
tree | 7d13e4ed39c46ffe803076603b742bb47479122d /extra | |
parent | m (diff) | |
download | libkeccak-7897170e09aa19122053ff24797b4d7c23f47cbc.tar.gz libkeccak-7897170e09aa19122053ff24797b4d7c23f47cbc.tar.bz2 libkeccak-7897170e09aa19122053ff24797b4d7c23f47cbc.tar.xz |
Optimisation for w=8,16,32
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
-rw-r--r-- | extra/libkeccak_state_marshal.c | 4 | ||||
-rw-r--r-- | extra/libkeccak_state_unmarshal.c | 4 | ||||
-rw-r--r-- | extra/libkeccak_state_wipe_sponge.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/extra/libkeccak_state_marshal.c b/extra/libkeccak_state_marshal.c index 7541164..f4fd4b5 100644 --- a/extra/libkeccak_state_marshal.c +++ b/extra/libkeccak_state_marshal.c @@ -28,7 +28,7 @@ libkeccak_state_marshal(const struct libkeccak_state *restrict state, void *rest if (!data) { return 7 * sizeof(long int) + - 1 * sizeof(int64_t) + + 1 * sizeof(uint64_t) + sizeof(state->S) + 2 * sizeof(size_t) + state->mptr; @@ -42,7 +42,7 @@ libkeccak_state_marshal(const struct libkeccak_state *restrict state, void *rest set(wmod); set(l); set(nr); - __builtin_memcpy(data, state->S, sizeof(state->S)); + __builtin_memcpy(data, &state->S, sizeof(state->S)); data += sizeof(state->S); set(mptr); set(mlen); diff --git a/extra/libkeccak_state_unmarshal.c b/extra/libkeccak_state_unmarshal.c index 4714566..0938ba1 100644 --- a/extra/libkeccak_state_unmarshal.c +++ b/extra/libkeccak_state_unmarshal.c @@ -30,7 +30,7 @@ libkeccak_state_unmarshal(struct libkeccak_state *restrict state, const void *re if (!state) { data += 7U * sizeof(long int); - data += 1U * sizeof(int64_t); + data += 1U * sizeof(uint64_t); data += sizeof(state->S); mptr = *(const size_t *)data; data += 2U * sizeof(size_t); @@ -46,7 +46,7 @@ libkeccak_state_unmarshal(struct libkeccak_state *restrict state, const void *re get(wmod); get(l); get(nr); - memcpy(state->S, data, sizeof(state->S)); + memcpy(&state->S, data, sizeof(state->S)); data += sizeof(state->S); get(mptr); get(mlen); diff --git a/extra/libkeccak_state_wipe_sponge.c b/extra/libkeccak_state_wipe_sponge.c index 91e845a..69aa46a 100644 --- a/extra/libkeccak_state_wipe_sponge.c +++ b/extra/libkeccak_state_wipe_sponge.c @@ -10,7 +10,7 @@ void libkeccak_state_wipe_sponge(volatile struct libkeccak_state *state) { - volatile int64_t *restrict S = state->S; + volatile uint64_t *restrict S = state->S.w64; size_t i; for (i = 0; i < 25; i++) |