Merge pull request #6000 from SparkiDev/dsa_force_zero

DSA: Don't force zero MPs on memory allocation failure
This commit is contained in:
David Garske
2023-01-25 11:59:13 -08:00
committed by GitHub

View File

@@ -927,33 +927,33 @@ int wc_DsaSign(const byte* digest, byte* out, DsaKey* key, WC_RNG* rng)
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
if (k) { if (k) {
if (ret != MP_INIT_E) if ((ret != MP_INIT_E) && (ret != MEMORY_E))
mp_forcezero(k); mp_forcezero(k);
XFREE(k, key->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(k, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
} }
if (kInv) { if (kInv) {
if (ret != MP_INIT_E) if ((ret != MP_INIT_E) && (ret != MEMORY_E))
mp_forcezero(kInv); mp_forcezero(kInv);
XFREE(kInv, key->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(kInv, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
} }
if (r) { if (r) {
if (ret != MP_INIT_E) if ((ret != MP_INIT_E) && (ret != MEMORY_E))
mp_clear(r); mp_clear(r);
XFREE(r, key->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(r, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
} }
if (s) { if (s) {
if (ret != MP_INIT_E) if ((ret != MP_INIT_E) && (ret != MEMORY_E))
mp_clear(s); mp_clear(s);
XFREE(s, key->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(s, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
} }
if (H) { if (H) {
if (ret != MP_INIT_E) if ((ret != MP_INIT_E) && (ret != MEMORY_E))
mp_clear(H); mp_clear(H);
XFREE(H, key->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(H, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
} }
#ifndef WOLFSSL_MP_INVMOD_CONSTANT_TIME #ifndef WOLFSSL_MP_INVMOD_CONSTANT_TIME
if (b) { if (b) {
if (ret != MP_INIT_E) if ((ret != MP_INIT_E) && (ret != MEMORY_E))
mp_forcezero(b); mp_forcezero(b);
XFREE(b, key->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(b, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
} }