diff --git a/wolfcrypt/src/sha.c b/wolfcrypt/src/sha.c index 1f4439f0f..69990791f 100644 --- a/wolfcrypt/src/sha.c +++ b/wolfcrypt/src/sha.c @@ -841,7 +841,10 @@ int wc_ShaFinal(wc_Sha* sha, byte* hash) /* pad with zeros */ if (sha->buffLen > WC_SHA_PAD_SIZE) { - XMEMSET(&local[sha->buffLen], 0, WC_SHA_BLOCK_SIZE - sha->buffLen); + if (sha->buffLen < WC_SHA_BLOCK_SIZE) { + XMEMSET(&local[sha->buffLen], 0, WC_SHA_BLOCK_SIZE - sha->buffLen); + } + sha->buffLen += WC_SHA_BLOCK_SIZE - sha->buffLen; #if defined(WOLFSSL_USE_ESP32_CRYPT_HASH_HW)