mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-03 20:54:41 +02:00
src/tls.c: in TLSX_KeyShare_GenPqcKeyClient(), add smallstack coverage to !WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ code paths.
This commit is contained in:
26
src/tls.c
26
src/tls.c
@@ -8537,7 +8537,11 @@ static int TLSX_KeyShare_GenPqcKeyClient(WOLFSSL *ssl, KeyShareEntry* kse)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
int type = 0;
|
int type = 0;
|
||||||
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
|
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
|
||||||
KyberKey kem[1];
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
KyberKey *kem = NULL;
|
||||||
|
#else
|
||||||
|
KyberKey kem[1];
|
||||||
|
#endif
|
||||||
byte* privKey = NULL;
|
byte* privKey = NULL;
|
||||||
word32 privSz = 0;
|
word32 privSz = 0;
|
||||||
#else
|
#else
|
||||||
@@ -8559,6 +8563,18 @@ static int TLSX_KeyShare_GenPqcKeyClient(WOLFSSL *ssl, KeyShareEntry* kse)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
|
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
if (ret == 0) {
|
||||||
|
kem = (KyberKey *)XMALLOC(sizeof(*kem), ssl->heap,
|
||||||
|
DYNAMIC_TYPE_PRIVATE_KEY);
|
||||||
|
if (kem == NULL) {
|
||||||
|
WOLFSSL_MSG("KEM memory allocation failure");
|
||||||
|
ret = MEMORY_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* WOLFSSL_SMALL_STACK */
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
ret = wc_KyberKey_Init(type, kem, ssl->heap, ssl->devId);
|
ret = wc_KyberKey_Init(type, kem, ssl->heap, ssl->devId);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
@@ -8638,6 +8654,9 @@ static int TLSX_KeyShare_GenPqcKeyClient(WOLFSSL *ssl, KeyShareEntry* kse)
|
|||||||
XFREE(kse->pubKey, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
XFREE(kse->pubKey, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
||||||
kse->pubKey = NULL;
|
kse->pubKey = NULL;
|
||||||
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
|
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
|
||||||
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
XFREE(kem, ssl->heap, DYNAMIC_TYPE_PRIVATE_KEY);
|
||||||
|
#endif
|
||||||
if (privKey) {
|
if (privKey) {
|
||||||
ForceZero(privKey, privSz);
|
ForceZero(privKey, privSz);
|
||||||
XFREE(privKey, ssl->heap, DYNAMIC_TYPE_PRIVATE_KEY);
|
XFREE(privKey, ssl->heap, DYNAMIC_TYPE_PRIVATE_KEY);
|
||||||
@@ -8658,6 +8677,11 @@ static int TLSX_KeyShare_GenPqcKeyClient(WOLFSSL *ssl, KeyShareEntry* kse)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ) && \
|
||||||
|
defined(WOLFSSL_SMALL_STACK)
|
||||||
|
XFREE(kem, ssl->heap, DYNAMIC_TYPE_PRIVATE_KEY);
|
||||||
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user