From 43b0d0d8ab8f22f871d059e67fdeac65256a2612 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Mon, 11 May 2026 17:00:00 -0600 Subject: [PATCH] fix for handling of error case with AES devcrypto --- wolfcrypt/src/port/devcrypto/devcrypto_aes.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c index 95dac047cc..cccc6a7c24 100644 --- a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c +++ b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c @@ -253,13 +253,17 @@ int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz) /* create key stream for later if needed */ if (sz > 0) { Aes tmpAes; - if ((ret = wc_AesSetKey(&tmpAes, (byte*)aes->devKey, aes->keylen, - (byte*)aes->reg, AES_ENCRYPTION)) != 0) - return ret; - if ((ret = wc_AesEncryptDirect(&tmpAes, (byte*)aes->tmp, - (const byte*)aes->reg)) != 0) - return ret; + ret = wc_AesSetKey(&tmpAes, (byte*)aes->devKey, aes->keylen, + (byte*)aes->reg, AES_ENCRYPTION); + if (ret == 0) { + ret = wc_AesEncryptDirect(&tmpAes, (byte*)aes->tmp, + (const byte*)aes->reg); + } wc_AesFree(&tmpAes); + ForceZero(&tmpAes, sizeof(tmpAes)); + if (ret != 0) + return ret; + IncrementAesCounter((byte*)aes->reg); aes->left = WC_AES_BLOCK_SIZE - (sz % WC_AES_BLOCK_SIZE);