mirror of https://github.com/wolfSSL/wolfssl.git
Merge pull request #7992 from ejohnstown/ecc-pct-ss
Small Stack ECC Pairwise Consistency Testpull/8000/head
commit
bddb83b62a
|
@ -10228,23 +10228,31 @@ static int _ecc_pairwise_consistency_test(ecc_key* key, WC_RNG* rng)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!err && (flags & WC_ECC_FLAG_DEC_SIGN)) {
|
if (!err && (flags & WC_ECC_FLAG_DEC_SIGN)) {
|
||||||
|
#ifndef WOLFSSL_SMALL_STACK
|
||||||
|
byte sig[MAX_ECC_BYTES + WC_SHA256_DIGEST_SIZE];
|
||||||
|
#else
|
||||||
byte* sig;
|
byte* sig;
|
||||||
|
#endif
|
||||||
byte* digest;
|
byte* digest;
|
||||||
word32 sigLen, digestLen;
|
word32 sigLen, digestLen;
|
||||||
int dynRng = 0, res = 0;
|
int dynRng = 0, res = 0;
|
||||||
|
|
||||||
sigLen = (word32)wc_ecc_sig_size(key);
|
sigLen = (word32)wc_ecc_sig_size(key);
|
||||||
digestLen = WC_SHA256_DIGEST_SIZE;
|
digestLen = WC_SHA256_DIGEST_SIZE;
|
||||||
sig = (byte*)XMALLOC(sigLen + digestLen, NULL, DYNAMIC_TYPE_ECC);
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
sig = (byte*)XMALLOC(sigLen + digestLen, key->heap, DYNAMIC_TYPE_ECC);
|
||||||
if (sig == NULL)
|
if (sig == NULL)
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
|
#endif
|
||||||
digest = sig + sigLen;
|
digest = sig + sigLen;
|
||||||
|
|
||||||
if (rng == NULL) {
|
if (rng == NULL) {
|
||||||
dynRng = 1;
|
dynRng = 1;
|
||||||
rng = wc_rng_new(NULL, 0, NULL);
|
rng = wc_rng_new(NULL, 0, key->heap);
|
||||||
if (rng == NULL) {
|
if (rng == NULL) {
|
||||||
XFREE(sig, NULL, DYNAMIC_TYPE_ECC);
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
XFREE(sig, key->heap, DYNAMIC_TYPE_ECC);
|
||||||
|
#endif
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10265,7 +10273,9 @@ static int _ecc_pairwise_consistency_test(ecc_key* key, WC_RNG* rng)
|
||||||
wc_rng_free(rng);
|
wc_rng_free(rng);
|
||||||
}
|
}
|
||||||
ForceZero(sig, sigLen + digestLen);
|
ForceZero(sig, sigLen + digestLen);
|
||||||
XFREE(sig, NULL, DYNAMIC_TYPE_ECC);
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
XFREE(sig, key->heap, DYNAMIC_TYPE_ECC);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
(void)rng;
|
(void)rng;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue