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