File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -564,27 +564,17 @@ int wc_FreeRsaKey(RsaKey* key)
564564#endif
565565
566566#ifndef WOLFSSL_RSA_PUBLIC_ONLY
567- if (key -> type == RSA_PRIVATE ) {
567+ /* Always forcezero private key fields, since they may contain residual
568+ * sensitive data even when key->type is not RSA_PRIVATE (e.g., after a
569+ * partial key decode failure). */
568570#if defined(WOLFSSL_KEY_GEN ) || defined(OPENSSL_EXTRA ) || !defined(RSA_LOW_MEM )
569- mp_forcezero (& key -> u );
570- mp_forcezero (& key -> dQ );
571- mp_forcezero (& key -> dP );
571+ mp_forcezero (& key -> u );
572+ mp_forcezero (& key -> dQ );
573+ mp_forcezero (& key -> dP );
572574#endif
573- mp_forcezero (& key -> q );
574- mp_forcezero (& key -> p );
575- mp_forcezero (& key -> d );
576- }
577- else {
578- /* private part */
579- #if defined(WOLFSSL_KEY_GEN ) || defined(OPENSSL_EXTRA ) || !defined(RSA_LOW_MEM )
580- mp_clear (& key -> u );
581- mp_clear (& key -> dQ );
582- mp_clear (& key -> dP );
583- #endif
584- mp_clear (& key -> q );
585- mp_clear (& key -> p );
586- mp_clear (& key -> d );
587- }
575+ mp_forcezero (& key -> q );
576+ mp_forcezero (& key -> p );
577+ mp_forcezero (& key -> d );
588578#endif /* WOLFSSL_RSA_PUBLIC_ONLY */
589579
590580 /* public part */
You can’t perform that action at this time.
0 commit comments