forked from wolfSSL/wolfssl
Changed memsetting mp_ints to boolean flag.
This commit is contained in:
@ -2099,7 +2099,8 @@ int wc_DhGenerateParams(WC_RNG *rng, int modSz, DhKey *dh)
|
|||||||
int groupSz = 0, bufSz = 0,
|
int groupSz = 0, bufSz = 0,
|
||||||
primeCheckCount = 0,
|
primeCheckCount = 0,
|
||||||
primeCheck = MP_NO,
|
primeCheck = MP_NO,
|
||||||
ret = 0;
|
ret = 0,
|
||||||
|
tmp_valid = 0;
|
||||||
unsigned char *buf = NULL;
|
unsigned char *buf = NULL;
|
||||||
|
|
||||||
if (rng == NULL || dh == NULL)
|
if (rng == NULL || dh == NULL)
|
||||||
@ -2149,10 +2150,11 @@ int wc_DhGenerateParams(WC_RNG *rng, int modSz, DhKey *dh)
|
|||||||
!= MP_OKAY) {
|
!= MP_OKAY) {
|
||||||
ret = MP_INIT_E;
|
ret = MP_INIT_E;
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else {
|
{
|
||||||
(void)XMEMSET(&tmp, 0, sizeof(mp_int));
|
/* tmp and tmp2 are initialized */
|
||||||
(void)XMEMSET(&tmp2, 0, sizeof(mp_int));
|
tmp_valid = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
@ -2239,8 +2241,11 @@ int wc_DhGenerateParams(WC_RNG *rng, int modSz, DhKey *dh)
|
|||||||
XFREE(buf, dh->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(buf, dh->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mp_clear(&tmp);
|
|
||||||
mp_clear(&tmp2);
|
if (tmp_valid) {
|
||||||
|
mp_clear(&tmp);
|
||||||
|
mp_clear(&tmp2);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -7020,6 +7020,7 @@ int wc_ecc_sig_to_rs(const byte* sig, word32 sigLen, byte* r, word32* rLen,
|
|||||||
byte* s, word32* sLen)
|
byte* s, word32* sLen)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
int tmp_valid = 0;
|
||||||
word32 x = 0;
|
word32 x = 0;
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
mp_int* rtmp = NULL;
|
mp_int* rtmp = NULL;
|
||||||
@ -7043,11 +7044,13 @@ int wc_ecc_sig_to_rs(const byte* sig, word32 sigLen, byte* r, word32* rLen,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
(void)XMEMSET(&rtmp, 0, sizeof(mp_int));
|
|
||||||
(void)XMEMSET(&stmp, 0, sizeof(mp_int));
|
|
||||||
|
|
||||||
err = DecodeECC_DSA_Sig(sig, sigLen, rtmp, stmp);
|
err = DecodeECC_DSA_Sig(sig, sigLen, rtmp, stmp);
|
||||||
|
|
||||||
|
/* rtmp and stmp are initialized */
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
tmp_valid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* extract r */
|
/* extract r */
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
x = mp_unsigned_bin_size(rtmp);
|
x = mp_unsigned_bin_size(rtmp);
|
||||||
@ -7072,8 +7075,10 @@ int wc_ecc_sig_to_rs(const byte* sig, word32 sigLen, byte* r, word32* rLen,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_clear(rtmp);
|
if (tmp_valid) {
|
||||||
mp_clear(stmp);
|
mp_clear(rtmp);
|
||||||
|
mp_clear(stmp);
|
||||||
|
}
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(stmp, NULL, DYNAMIC_TYPE_ECC);
|
XFREE(stmp, NULL, DYNAMIC_TYPE_ECC);
|
||||||
XFREE(rtmp, NULL, DYNAMIC_TYPE_ECC);
|
XFREE(rtmp, NULL, DYNAMIC_TYPE_ECC);
|
||||||
|
Reference in New Issue
Block a user