Skip to content

Commit a5ae5f1

Browse files
committed
zero RSA key buffers before free
1 parent 7aeffa2 commit a5ae5f1

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

wolfcrypt/src/port/devcrypto/devcrypto_rsa.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,12 @@ static int _PrivateOperation(const byte* in, word32 inlen, byte* out,
237237
}
238238
}
239239

240-
XFREE(d, NULL, DYNAMIC_TYPE_TMP_BUFFER);
241-
XFREE(p, NULL, DYNAMIC_TYPE_TMP_BUFFER);
242-
XFREE(q, NULL, DYNAMIC_TYPE_TMP_BUFFER);
243-
XFREE(dp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
244-
XFREE(dq, NULL, DYNAMIC_TYPE_TMP_BUFFER);
245-
XFREE(u, NULL, DYNAMIC_TYPE_TMP_BUFFER);
240+
if (d) { ForceZero(d, dSz); XFREE(d, NULL, DYNAMIC_TYPE_TMP_BUFFER); }
241+
if (p) { ForceZero(p, pSz); XFREE(p, NULL, DYNAMIC_TYPE_TMP_BUFFER); }
242+
if (q) { ForceZero(q, qSz); XFREE(q, NULL, DYNAMIC_TYPE_TMP_BUFFER); }
243+
if (dp) { ForceZero(dp, dpSz); XFREE(dp, NULL, DYNAMIC_TYPE_TMP_BUFFER); }
244+
if (dq) { ForceZero(dq, dqSz); XFREE(dq, NULL, DYNAMIC_TYPE_TMP_BUFFER); }
245+
if (u) { ForceZero(u, uSz); XFREE(u, NULL, DYNAMIC_TYPE_TMP_BUFFER); }
246246
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
247247

248248
wc_DevCryptoFree(dev);
@@ -540,13 +540,13 @@ int wc_DevCrypto_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
540540
#endif
541541
}
542542

543-
XFREE(p, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
544-
XFREE(q, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
545-
XFREE(dp, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
546-
XFREE(dq, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
547-
XFREE(c, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
543+
if (p) { ForceZero(p, pSz); XFREE(p, key->heap, DYNAMIC_TYPE_TMP_BUFFER); }
544+
if (q) { ForceZero(q, qSz); XFREE(q, key->heap, DYNAMIC_TYPE_TMP_BUFFER); }
545+
if (dp) { ForceZero(dp, dpSz); XFREE(dp, key->heap, DYNAMIC_TYPE_TMP_BUFFER); }
546+
if (dq) { ForceZero(dq, dqSz); XFREE(dq, key->heap, DYNAMIC_TYPE_TMP_BUFFER); }
547+
if (c) { ForceZero(c, cSz); XFREE(c, key->heap, DYNAMIC_TYPE_TMP_BUFFER); }
548548
XFREE(n, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
549-
XFREE(d, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
549+
if (d) { ForceZero(d, dSz); XFREE(d, key->heap, DYNAMIC_TYPE_TMP_BUFFER); }
550550

551551
(void)rng;
552552
return ret;

0 commit comments

Comments
 (0)