From af0fd013a16e3d858642a420104e0618c90e7fae Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 20 Jan 2026 08:14:02 -0500 Subject: [PATCH] HMAC-BLAKE2b: avoid coverity complaints about accessing x_key out of range --- wolfcrypt/src/blake2b.c | 8 ++++++-- wolfcrypt/src/blake2s.c | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/wolfcrypt/src/blake2b.c b/wolfcrypt/src/blake2b.c index 7aab2e40f..37acb9744 100644 --- a/wolfcrypt/src/blake2b.c +++ b/wolfcrypt/src/blake2b.c @@ -534,7 +534,9 @@ int wc_Blake2bHmacInit(Blake2b* b2b, const byte* key, size_t key_len) ret = wc_Blake2bFinal(b2b, x_key, 0); } else { XMEMCPY(x_key, key, key_len); - XMEMSET(x_key + key_len, 0, BLAKE2B_BLOCKBYTES - key_len); + if (key_len < BLAKE2B_BLOCKBYTES) { + XMEMSET(x_key + key_len, 0, BLAKE2B_BLOCKBYTES - key_len); + } } if (ret == 0) { @@ -581,7 +583,9 @@ int wc_Blake2bHmacFinal(Blake2b* b2b, const byte* key, size_t key_len, ret = wc_Blake2bFinal(b2b, x_key, 0); } else { XMEMCPY(x_key, key, key_len); - XMEMSET(x_key + key_len, 0, BLAKE2B_BLOCKBYTES - key_len); + if (key_len < BLAKE2B_BLOCKBYTES) { + XMEMSET(x_key + key_len, 0, BLAKE2B_BLOCKBYTES - key_len); + } } if (ret == 0) { diff --git a/wolfcrypt/src/blake2s.c b/wolfcrypt/src/blake2s.c index 6f5d1d2e9..b38d12a93 100644 --- a/wolfcrypt/src/blake2s.c +++ b/wolfcrypt/src/blake2s.c @@ -528,7 +528,9 @@ int wc_Blake2sHmacInit(Blake2s* b2s, const byte* key, size_t key_len) ret = wc_Blake2sFinal(b2s, x_key, 0); } else { XMEMCPY(x_key, key, key_len); - XMEMSET(x_key + key_len, 0, BLAKE2S_BLOCKBYTES - key_len); + if (key_len < BLAKE2S_BLOCKBYTES) { + XMEMSET(x_key + key_len, 0, BLAKE2S_BLOCKBYTES - key_len); + } } if (ret == 0) { @@ -575,7 +577,9 @@ int wc_Blake2sHmacFinal(Blake2s* b2s, const byte* key, size_t key_len, ret = wc_Blake2sFinal(b2s, x_key, 0); } else { XMEMCPY(x_key, key, key_len); - XMEMSET(x_key + key_len, 0, BLAKE2S_BLOCKBYTES - key_len); + if (key_len < BLAKE2S_BLOCKBYTES) { + XMEMSET(x_key + key_len, 0, BLAKE2S_BLOCKBYTES - key_len); + } } if (ret == 0) {