Skip to content

Commit a856415

Browse files
authored
Merge pull request wolfSSL#8493 from Laboratory-for-Safe-and-Secure-Systems/pqc_clang_tidy
PQC Clang-tidy fixes
2 parents 146d17d + fd8f6e1 commit a856415

File tree

1 file changed

+43
-32
lines changed

1 file changed

+43
-32
lines changed

src/tls.c

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8396,17 +8396,24 @@ static int TLSX_KeyShare_GenPqcHybridKeyClient(WOLFSSL *ssl, KeyShareEntry* kse)
83968396
if (ret == 0) {
83978397
ecc_kse = (KeyShareEntry*)XMALLOC(sizeof(*ecc_kse), ssl->heap,
83988398
DYNAMIC_TYPE_TLSX);
8399-
pqc_kse = (KeyShareEntry*)XMALLOC(sizeof(*pqc_kse), ssl->heap,
8400-
DYNAMIC_TYPE_TLSX);
8401-
if (ecc_kse == NULL || pqc_kse == NULL) {
8399+
if (ecc_kse == NULL) {
84028400
WOLFSSL_MSG("kse memory allocation failure");
84038401
ret = MEMORY_ERROR;
84048402
}
8403+
else {
8404+
XMEMSET(ecc_kse, 0, sizeof(*ecc_kse));
8405+
}
84058406
}
8406-
84078407
if (ret == 0) {
8408-
XMEMSET(ecc_kse, 0, sizeof(*ecc_kse));
8409-
XMEMSET(pqc_kse, 0, sizeof(*pqc_kse));
8408+
pqc_kse = (KeyShareEntry*)XMALLOC(sizeof(*pqc_kse), ssl->heap,
8409+
DYNAMIC_TYPE_TLSX);
8410+
if (pqc_kse == NULL) {
8411+
WOLFSSL_MSG("kse memory allocation failure");
8412+
ret = MEMORY_ERROR;
8413+
}
8414+
else {
8415+
XMEMSET(pqc_kse, 0, sizeof(*pqc_kse));
8416+
}
84108417
}
84118418

84128419
/* Generate ECC key share part */
@@ -8555,9 +8562,8 @@ static void TLSX_KeyShare_FreeAll(KeyShareEntry* list, void* heap)
85558562
}
85568563
#ifdef WOLFSSL_HAVE_KYBER
85578564
else if (WOLFSSL_NAMED_GROUP_IS_PQC(current->group)) {
8558-
#ifdef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
85598565
wc_KyberKey_Free((KyberKey*)current->key);
8560-
#else
8566+
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
85618567
if (current->privKey != NULL) {
85628568
ForceZero(current->privKey, current->privKeyLen);
85638569
}
@@ -9355,12 +9361,24 @@ static int TLSX_KeyShare_ProcessPqcHybridClient(WOLFSSL* ssl,
93559361
if (ret == 0) {
93569362
ecc_kse = (KeyShareEntry*)XMALLOC(sizeof(*ecc_kse), ssl->heap,
93579363
DYNAMIC_TYPE_TLSX);
9364+
if (ecc_kse == NULL) {
9365+
WOLFSSL_MSG("kse memory allocation failure");
9366+
ret = MEMORY_ERROR;
9367+
}
9368+
else {
9369+
XMEMSET(ecc_kse, 0, sizeof(*ecc_kse));
9370+
}
9371+
}
9372+
if (ret == 0) {
93589373
pqc_kse = (KeyShareEntry*)XMALLOC(sizeof(*pqc_kse), ssl->heap,
93599374
DYNAMIC_TYPE_TLSX);
9360-
if (ecc_kse == NULL || pqc_kse == NULL) {
9375+
if (pqc_kse == NULL) {
93619376
WOLFSSL_MSG("kse memory allocation failure");
93629377
ret = MEMORY_ERROR;
93639378
}
9379+
else {
9380+
XMEMSET(pqc_kse, 0, sizeof(*pqc_kse));
9381+
}
93649382
}
93659383

93669384
/* The ciphertext and shared secret sizes of a KEM are fixed. Hence, we
@@ -9369,42 +9387,36 @@ static int TLSX_KeyShare_ProcessPqcHybridClient(WOLFSSL* ssl,
93699387
if (ret == 0) {
93709388
#ifndef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
93719389
int type;
9372-
KyberKey* kem;
9373-
#endif
93749390

9375-
XMEMSET(pqc_kse, 0, sizeof(*pqc_kse));
9376-
pqc_kse->group = pqc_group;
9377-
pqc_kse->privKeyLen = keyShareEntry->privKeyLen;
9378-
#ifdef WOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ
9379-
pqc_kse->key = keyShareEntry->privKey;
9380-
#else
93819391
pqc_kse->privKey = keyShareEntry->privKey;
93829392

9383-
/* Allocate a Kyber key to hold private key. */
9384-
kem = (KyberKey*) XMALLOC(sizeof(KyberKey), ssl->heap,
9385-
DYNAMIC_TYPE_PRIVATE_KEY);
9386-
if (kem == NULL) {
9387-
WOLFSSL_MSG("GenPqcKey memory error");
9388-
ret = MEMORY_E;
9389-
}
9390-
if (ret == 0) {
9391-
ret = kyber_id2type(pqc_group, &type);
9392-
}
9393+
ret = kyber_id2type(pqc_group, &type);
93939394
if (ret != 0) {
93949395
WOLFSSL_MSG("Invalid Kyber algorithm specified.");
93959396
ret = BAD_FUNC_ARG;
93969397
}
93979398
if (ret == 0) {
9398-
ret = wc_KyberKey_Init(type, kem, ssl->heap, ssl->devId);
9399-
if (ret != 0) {
9400-
WOLFSSL_MSG("Error creating Kyber KEM");
9399+
pqc_kse->key = XMALLOC(sizeof(KyberKey), ssl->heap,
9400+
DYNAMIC_TYPE_PRIVATE_KEY);
9401+
if (pqc_kse->key == NULL) {
9402+
WOLFSSL_MSG("GenPqcKey memory error");
9403+
ret = MEMORY_E;
94019404
}
94029405
}
94039406
if (ret == 0) {
9404-
pqc_kse->key = kem;
9407+
ret = wc_KyberKey_Init(type, (KyberKey*)pqc_kse->key,
9408+
ssl->heap, ssl->devId);
9409+
if (ret != 0) {
9410+
WOLFSSL_MSG("Error creating Kyber KEM");
9411+
}
94059412
}
9413+
#else
9414+
pqc_kse->key = keyShareEntry->privKey;
94069415
#endif
94079416

9417+
pqc_kse->group = pqc_group;
9418+
pqc_kse->privKeyLen = keyShareEntry->privKeyLen;
9419+
94089420
if (ret == 0) {
94099421
ret = wc_KyberKey_SharedSecretSize((KyberKey*)pqc_kse->key,
94109422
&ssSzPqc);
@@ -9439,7 +9451,6 @@ static int TLSX_KeyShare_ProcessPqcHybridClient(WOLFSSL* ssl,
94399451
}
94409452

94419453
if (ret == 0) {
9442-
XMEMSET(ecc_kse, 0, sizeof(*ecc_kse));
94439454
ecc_kse->group = ecc_group;
94449455
ecc_kse->keLen = keyShareEntry->keLen - ctSz;
94459456
ecc_kse->key = keyShareEntry->key;

0 commit comments

Comments
 (0)