Fix f284 harden wc_FreeRsaKey

This commit is contained in:
Eric Blankenhorn
2026-03-05 15:25:29 -06:00
parent 178f96c483
commit 9062b98319
+9 -19
View File
@@ -564,27 +564,17 @@ int wc_FreeRsaKey(RsaKey* key)
#endif
#ifndef WOLFSSL_RSA_PUBLIC_ONLY
if (key->type == RSA_PRIVATE) {
/* Always forcezero private key fields, since they may contain residual
* sensitive data even when key->type is not RSA_PRIVATE (e.g., after a
* partial key decode failure). */
#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || !defined(RSA_LOW_MEM)
mp_forcezero(&key->u);
mp_forcezero(&key->dQ);
mp_forcezero(&key->dP);
mp_forcezero(&key->u);
mp_forcezero(&key->dQ);
mp_forcezero(&key->dP);
#endif
mp_forcezero(&key->q);
mp_forcezero(&key->p);
mp_forcezero(&key->d);
}
else {
/* private part */
#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || !defined(RSA_LOW_MEM)
mp_clear(&key->u);
mp_clear(&key->dQ);
mp_clear(&key->dP);
#endif
mp_clear(&key->q);
mp_clear(&key->p);
mp_clear(&key->d);
}
mp_forcezero(&key->q);
mp_forcezero(&key->p);
mp_forcezero(&key->d);
#endif /* WOLFSSL_RSA_PUBLIC_ONLY */
/* public part */