aboutsummaryrefslogtreecommitdiffstats
path: root/libkeccak_hmac_unmarshal.c
diff options
context:
space:
mode:
Diffstat (limited to 'libkeccak_hmac_unmarshal.c')
-rw-r--r--libkeccak_hmac_unmarshal.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libkeccak_hmac_unmarshal.c b/libkeccak_hmac_unmarshal.c
index d4fb647..070c7b5 100644
--- a/libkeccak_hmac_unmarshal.c
+++ b/libkeccak_hmac_unmarshal.c
@@ -28,7 +28,7 @@ libkeccak_hmac_unmarshal(struct libkeccak_hmac_state *restrict state, const void
return 0;
data += parsed;
- size = *(const size_t *)data;
+ __builtin_memcpy(&size, data, sizeof(size));
data += sizeof(size_t);
if (state)
size = state->key_length;
@@ -44,7 +44,7 @@ libkeccak_hmac_unmarshal(struct libkeccak_hmac_state *restrict state, const void
data += size;
if (data[0]) {
- state->key_ipad = state->key_opad + size;
+ state->key_ipad = &state->key_opad[size];
memcpy(state->key_ipad, state->key_opad, size);
for (i = 0; i < size; i++)
state->key_ipad[i] ^= (char)(HMAC_OUTER_PAD ^ HMAC_INNER_PAD);