aboutsummaryrefslogtreecommitdiffstats
path: root/libblake_internal_blake2xb_init0.c
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-05-17 19:52:13 +0200
committerMattias Andrée <m@maandree.se>2026-05-17 19:52:13 +0200
commit4ad308fca3010379cb4a47023635fb2fcabb63a3 (patch)
tree37318829e4ee505509116eae697cfda22345accb /libblake_internal_blake2xb_init0.c
parentFix alignment issues found by gcc santizer, and aliasing issue (diff)
downloadlibblake-4ad308fca3010379cb4a47023635fb2fcabb63a3.tar.gz
libblake-4ad308fca3010379cb4a47023635fb2fcabb63a3.tar.bz2
libblake-4ad308fca3010379cb4a47023635fb2fcabb63a3.tar.xz
Fix undefined behaviour3.0.2
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
-rw-r--r--libblake_internal_blake2xb_init0.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libblake_internal_blake2xb_init0.c b/libblake_internal_blake2xb_init0.c
index de1980f..66b80dc 100644
--- a/libblake_internal_blake2xb_init0.c
+++ b/libblake_internal_blake2xb_init0.c
@@ -59,6 +59,7 @@ libblake_internal_blake2xb_init0(struct libblake_blake2xb_state *state, const st
state->b2b.h[1] ^= le64(ALIGNED_U64(params, 1));
state->b2b.h[2] ^= le64(((uint_least64_t)params->node_depth << 0) |
((uint_least64_t)params->inner_len << 8));
+ /* unlike BLAKE2b, BLAKE2Xb does not align .salt and .pepper to 64-bits, but 32-bits */
state->b2b.h[4] ^= le64(UNALIGNED_U64(params->salt, 0));
state->b2b.h[5] ^= le64(UNALIGNED_U64(params->salt, 1));
state->b2b.h[6] ^= le64(UNALIGNED_U64(params->pepper, 0));