diff --git a/wolfcrypt/src/chacha20_poly1305.c b/wolfcrypt/src/chacha20_poly1305.c index 8911b4d53d..a7acd6acfa 100644 --- a/wolfcrypt/src/chacha20_poly1305.c +++ b/wolfcrypt/src/chacha20_poly1305.c @@ -119,6 +119,10 @@ int wc_ChaCha20Poly1305_Decrypt( if (ret == 0) ret = wc_ChaCha20Poly1305_CheckTag(inAuthTag, calculatedAuthTag); + if (ret != 0) { + /* zero plaintext on error */ + ForceZero(outPlaintext, inCiphertextLen); + } WC_FREE_VAR_EX(aead, NULL, DYNAMIC_TYPE_TMP_BUFFER); return ret;