free memory in test case

This commit is contained in:
Jacob Barthelmeh
2021-03-25 22:23:40 +07:00
parent 97b83a2550
commit 75abeebaf7

View File

@ -28771,82 +28771,99 @@ static int sakke_op_test(SakkeKey* priv, SakkeKey* pub, WC_RNG* rng,
int sakke_test(void)
{
int ret;
int ret = 0;
WC_RNG rng;
SakkeKey* priv;
SakkeKey* pub;
SakkeKey* key;
SakkeKey* priv = NULL;
SakkeKey* pub = NULL;
SakkeKey* key = NULL;
ecc_point* rsk = NULL;
priv = (SakkeKey*)XMALLOC(sizeof(SakkeKey), HEAP_HINT,
DYNAMIC_TYPE_TMP_BUFFER);
if (priv == NULL) {
return -10404;
ret = -10404;
}
if (ret == 0) {
pub = (SakkeKey*)XMALLOC(sizeof(SakkeKey), HEAP_HINT,
DYNAMIC_TYPE_TMP_BUFFER);
if (pub == NULL) {
XFREE(priv, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
return -10405;
ret = -10405;
}
}
if (ret == 0) {
key = (SakkeKey*)XMALLOC(sizeof(SakkeKey), HEAP_HINT,
DYNAMIC_TYPE_TMP_BUFFER);
if (key == NULL) {
XFREE(pub, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
XFREE(priv, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
return -10406;
ret = -10406;
}
}
#ifndef HAVE_FIPS
if (ret == 0) {
#ifndef HAVE_FIPS
ret = wc_InitRng_ex(&rng, HEAP_HINT, devId);
#else
#else
ret = wc_InitRng(&rng);
#endif
#endif
if (ret != 0)
return -10400;
ret = -10400;
}
if (ret == 0) {
rsk = wc_ecc_new_point();
if (rsk == NULL)
return -10401;
ret = -10401;
}
if (ret == 0) {
ret = wc_InitSakkeKey(pub, HEAP_HINT, INVALID_DEVID);
if (ret != 0)
return -10402;
ret = -10402;
}
if (ret == 0) {
ret = wc_InitSakkeKey(priv, HEAP_HINT, INVALID_DEVID);
if (ret != 0)
return -10403;
ret = -10403;
}
if (ret == 0) {
ret = sakke_api_test(&rng, key, rsk);
if (ret != 0)
return ret;
}
if (ret == 0) {
ret = sakke_kat_derive_test(pub, rsk);
if (ret != 0)
return ret;
}
if (ret == 0) {
ret = sakke_kat_encapsulate_test(pub);
if (ret != 0)
return ret;
}
if (ret == 0) {
ret = sakke_make_key_test(priv, pub, key, &rng, rsk);
if (ret != 0)
return ret;
}
if (ret == 0) {
ret = sakke_op_test(priv, pub, &rng, rsk);
if (ret != 0)
return ret;
}
wc_FreeSakkeKey(priv);
wc_FreeSakkeKey(pub);
wc_ecc_forcezero_point(rsk);
wc_ecc_del_point(rsk);
if (ret != -10400)
wc_FreeRng(&rng);
if (key != NULL)
XFREE(key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
if (pub != NULL)
XFREE(pub, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
if (priv != NULL)
XFREE(priv, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
return 0;
return ret;
}
#endif /* WOLFCRYPT_HAVE_SAKKE */