From d184b79217761d01d0ec6ba14889359ae2d0e74b Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Tue, 12 May 2026 14:17:43 -0600 Subject: [PATCH] fix Octeon AES-GCM J0 derivation when ivSz is a non-12-byte non-zero multiple of WC_AES_BLOCK_SIZE --- wolfcrypt/src/port/cavium/cavium_octeon_sync.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wolfcrypt/src/port/cavium/cavium_octeon_sync.c b/wolfcrypt/src/port/cavium/cavium_octeon_sync.c index f9c2ffcf56..974e9f7c08 100644 --- a/wolfcrypt/src/port/cavium/cavium_octeon_sync.c +++ b/wolfcrypt/src/port/cavium/cavium_octeon_sync.c @@ -514,10 +514,12 @@ static NOOPT int Octeon_AesGcm_SetIV(Aes* aes, byte* iv, word32 ivSz) for (i = 0; i < blocks; i++, iv += WC_AES_BLOCK_SIZE) Octeon_GHASH_Update(iv); - XMEMSET(aesBlock, 0, sizeof(aesBlock)); - for (i = 0; i < remainder; i++) - aesBlock[i] = iv[i]; - Octeon_GHASH_Update(aesBlock); + if (remainder > 0) { + XMEMSET(aesBlock, 0, sizeof(aesBlock)); + for (i = 0; i < remainder; i++) + aesBlock[i] = iv[i]; + Octeon_GHASH_Update(aesBlock); + } Octeon_GHASH_Final((byte*)aes->reg, 0, ivSz); }