Changed memsetting mp_ints to boolean flag.

This commit is contained in:
Martin Kinčl
2019-05-23 13:22:09 +02:00
parent be65e31cdc
commit ad8f9c6134
2 changed files with 22 additions and 12 deletions

View File

@ -2099,7 +2099,8 @@ int wc_DhGenerateParams(WC_RNG *rng, int modSz, DhKey *dh)
int groupSz = 0, bufSz = 0,
primeCheckCount = 0,
primeCheck = MP_NO,
ret = 0;
ret = 0,
tmp_valid = 0;
unsigned char *buf = NULL;
if (rng == NULL || dh == NULL)
@ -2149,10 +2150,11 @@ int wc_DhGenerateParams(WC_RNG *rng, int modSz, DhKey *dh)
!= MP_OKAY) {
ret = MP_INIT_E;
}
}
else {
(void)XMEMSET(&tmp, 0, sizeof(mp_int));
(void)XMEMSET(&tmp2, 0, sizeof(mp_int));
else
{
/* tmp and tmp2 are initialized */
tmp_valid = 1;
}
}
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);
}
}
mp_clear(&tmp);
mp_clear(&tmp2);
if (tmp_valid) {
mp_clear(&tmp);
mp_clear(&tmp2);
}
return ret;
}

View File

@ -7020,6 +7020,7 @@ int wc_ecc_sig_to_rs(const byte* sig, word32 sigLen, byte* r, word32* rLen,
byte* s, word32* sLen)
{
int err;
int tmp_valid = 0;
word32 x = 0;
#ifdef WOLFSSL_SMALL_STACK
mp_int* rtmp = NULL;
@ -7043,11 +7044,13 @@ int wc_ecc_sig_to_rs(const byte* sig, word32 sigLen, byte* r, word32* rLen,
}
#endif
(void)XMEMSET(&rtmp, 0, sizeof(mp_int));
(void)XMEMSET(&stmp, 0, sizeof(mp_int));
err = DecodeECC_DSA_Sig(sig, sigLen, rtmp, stmp);
/* rtmp and stmp are initialized */
if (err == MP_OKAY) {
tmp_valid = 1;
}
/* extract r */
if (err == MP_OKAY) {
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);
mp_clear(stmp);
if (tmp_valid) {
mp_clear(rtmp);
mp_clear(stmp);
}
#ifdef WOLFSSL_SMALL_STACK
XFREE(stmp, NULL, DYNAMIC_TYPE_ECC);
XFREE(rtmp, NULL, DYNAMIC_TYPE_ECC);