Skip to content

Commit 27f1f3d

Browse files
committed
Address remaining PR review comments
- tests/api.c:1562: drop the duplicated HAVE_DILITHIUM term in the test_dual_alg_ecdsa_mldsa #if condition. - src/ssl.c: shift the WOLFSSL_PQC_HYBRIDS / WOLFSSL_EXTRA_PQC_HYBRIDS sub-blocks in isValidCurveGroup out one indentation level so they align with the surrounding ML-KEM standalone block now that the outer WOLFSSL_HAVE_MLKEM guard is gone. - wolfcrypt/src/wc_pkcs11.c: drop the HAVE_PKCS11_MLKEM shim. With the WOLFSSL_WC_MLKEM gate retired, the intermediate macro was always equivalent to WOLFSSL_HAVE_MLKEM, so switch every HAVE_PKCS11_MLKEM reference to WOLFSSL_HAVE_MLKEM and handle NO_PKCS11_MLKEM by #undef'ing WOLFSSL_HAVE_MLKEM in-file, matching the existing NO_PKCS11_MLDSA pattern. - wolfssl/wolfcrypt/dilithium.h:71: remove stale 4-space indentation left over from the HAVE_DILITHIUM nesting that was dropped. - wolfssl/wolfcrypt/wc_mlkem.h: move the extern "C" wrapper up so it encloses the ML-KEM enum and MlKemKey typedef in addition to the function declarations, matching the dilithium.h layout.
1 parent e21c9c8 commit 27f1f3d

5 files changed

Lines changed: 27 additions & 31 deletions

File tree

src/ssl.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3231,18 +3231,18 @@ static int isValidCurveGroup(word16 name)
32313231
case WOLFSSL_ML_KEM_768:
32323232
case WOLFSSL_ML_KEM_1024:
32333233
#endif /* !WOLFSSL_TLS_NO_MLKEM_STANDALONE */
3234-
#ifdef WOLFSSL_PQC_HYBRIDS
3234+
#ifdef WOLFSSL_PQC_HYBRIDS
32353235
case WOLFSSL_SECP384R1MLKEM1024:
32363236
case WOLFSSL_X25519MLKEM768:
32373237
case WOLFSSL_SECP256R1MLKEM768:
3238-
#endif /* WOLFSSL_PQC_HYBRIDS */
3239-
#ifdef WOLFSSL_EXTRA_PQC_HYBRIDS
3238+
#endif /* WOLFSSL_PQC_HYBRIDS */
3239+
#ifdef WOLFSSL_EXTRA_PQC_HYBRIDS
32403240
case WOLFSSL_SECP256R1MLKEM512:
32413241
case WOLFSSL_SECP384R1MLKEM768:
32423242
case WOLFSSL_SECP521R1MLKEM1024:
32433243
case WOLFSSL_X25519MLKEM512:
32443244
case WOLFSSL_X448MLKEM768:
3245-
#endif /* WOLFSSL_EXTRA_PQC_HYBRIDS */
3245+
#endif /* WOLFSSL_EXTRA_PQC_HYBRIDS */
32463246
#endif /* !WOLFSSL_NO_ML_KEM */
32473247
#ifdef WOLFSSL_MLKEM_KYBER
32483248
case WOLFSSL_KYBER_LEVEL1:

tests/api.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1559,7 +1559,6 @@ static int test_dual_alg_ecdsa_mldsa(void)
15591559
EXPECT_DECLS;
15601560
#if defined(WOLFSSL_DUAL_ALG_CERTS) && defined(HAVE_DILITHIUM) && \
15611561
defined(HAVE_ECC) && !defined(WC_NO_RNG) && \
1562-
defined(HAVE_DILITHIUM) && \
15631562
!defined(WOLFSSL_DILITHIUM_NO_MAKE_KEY) && \
15641563
!defined(WOLFSSL_DILITHIUM_NO_SIGN) && \
15651564
!defined(WOLFSSL_DILITHIUM_NO_VERIFY) && !defined(WOLFSSL_SMALL_STACK)

wolfcrypt/src/wc_pkcs11.c

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,20 @@
6969
#if defined(NO_PKCS11_MLDSA) && defined(HAVE_DILITHIUM)
7070
#undef HAVE_DILITHIUM
7171
#endif
72-
#if defined(WOLFSSL_HAVE_MLKEM)
73-
#define HAVE_PKCS11_MLKEM
74-
#endif
75-
#if defined(NO_PKCS11_MLKEM) && defined(HAVE_PKCS11_MLKEM)
76-
#undef HAVE_PKCS11_MLKEM
72+
#if defined(NO_PKCS11_MLKEM) && defined(WOLFSSL_HAVE_MLKEM)
73+
#undef WOLFSSL_HAVE_MLKEM
7774
#endif
7875

7976

8077
#if (defined(HAVE_ECC) && !defined(NO_PKCS11_ECDH)) || \
81-
defined(HAVE_PKCS11_MLKEM)
78+
defined(WOLFSSL_HAVE_MLKEM)
8279
/* Pointer to false required for templates. */
8380
static CK_BBOOL ckFalse = CK_FALSE;
8481
#endif
8582
#if !defined(NO_RSA) || defined(HAVE_ECC) || (!defined(NO_AES) && \
8683
(defined(HAVE_AESGCM) || defined(HAVE_AES_CBC))) || \
8784
!defined(NO_HMAC) || defined(HAVE_DILITHIUM) || \
88-
defined(HAVE_PKCS11_MLKEM)
85+
defined(WOLFSSL_HAVE_MLKEM)
8986
/* Pointer to true required for templates. */
9087
static CK_BBOOL ckTrue = CK_TRUE;
9188
#endif
@@ -98,7 +95,7 @@ static CK_KEY_TYPE rsaKeyType = CKK_RSA;
9895
/* Pointer to EC key type required for templates. */
9996
static CK_KEY_TYPE ecKeyType = CKK_EC;
10097
#endif
101-
#if defined(HAVE_PKCS11_MLKEM)
98+
#if defined(WOLFSSL_HAVE_MLKEM)
10299
/* Pointer to ML-KEM key type required for templates. */
103100
static CK_KEY_TYPE mlkemKeyType = CKK_ML_KEM;
104101
#endif
@@ -107,15 +104,15 @@ static CK_KEY_TYPE mlkemKeyType = CKK_ML_KEM;
107104
static CK_KEY_TYPE mldsaKeyType = CKK_ML_DSA;
108105
#endif
109106
#if !defined(NO_RSA) || defined(HAVE_ECC) || defined(HAVE_DILITHIUM) || \
110-
defined(HAVE_PKCS11_MLKEM)
107+
defined(WOLFSSL_HAVE_MLKEM)
111108
/* Pointer to public key class required for templates. */
112109
static CK_OBJECT_CLASS pubKeyClass = CKO_PUBLIC_KEY;
113110
/* Pointer to private key class required for templates. */
114111
static CK_OBJECT_CLASS privKeyClass = CKO_PRIVATE_KEY;
115112
#endif
116113
#if (!defined(NO_AES) && (defined(HAVE_AESGCM) || defined(HAVE_AES_CBC))) || \
117114
!defined(NO_HMAC) || (defined(HAVE_ECC) && !defined(NO_PKCS11_ECDH)) || \
118-
defined(HAVE_PKCS11_MLKEM)
115+
defined(WOLFSSL_HAVE_MLKEM)
119116
/* Pointer to secret key class required for templates. */
120117
static CK_OBJECT_CLASS secretKeyClass = CKO_SECRET_KEY;
121118
#endif
@@ -1572,7 +1569,7 @@ static int Pkcs11CreateEccPrivateKey(CK_OBJECT_HANDLE* privateKey,
15721569
}
15731570
#endif
15741571

1575-
#ifdef HAVE_PKCS11_MLKEM
1572+
#ifdef WOLFSSL_HAVE_MLKEM
15761573
/**
15771574
* Create a PKCS#11 object containing the ML-KEM public key data.
15781575
*/
@@ -1772,7 +1769,7 @@ static int Pkcs11CreateMlKemPrivateKey(CK_OBJECT_HANDLE* privateKey,
17721769

17731770
return ret;
17741771
}
1775-
#endif /* HAVE_PKCS11_MLKEM */
1772+
#endif /* WOLFSSL_HAVE_MLKEM */
17761773

17771774
#ifdef HAVE_DILITHIUM
17781775
/**
@@ -1949,7 +1946,7 @@ static int Pkcs11CreateMldsaPrivateKey(CK_OBJECT_HANDLE* privateKey,
19491946
#if !defined(NO_RSA) || defined(HAVE_ECC) || (!defined(NO_AES) && \
19501947
(defined(HAVE_AESGCM) || defined(HAVE_AES_CBC))) || \
19511948
!defined(NO_HMAC) || defined(HAVE_DILITHIUM) || \
1952-
defined(HAVE_PKCS11_MLKEM)
1949+
defined(WOLFSSL_HAVE_MLKEM)
19531950
/**
19541951
* Check if mechanism is available in session on token.
19551952
*
@@ -2191,7 +2188,7 @@ int wc_Pkcs11StoreKey(Pkcs11Token* token, int type, int clear, void* key)
21912188
break;
21922189
}
21932190
#endif
2194-
#ifdef HAVE_PKCS11_MLKEM
2191+
#ifdef WOLFSSL_HAVE_MLKEM
21952192
case PKCS11_KEY_TYPE_MLKEM: {
21962193
MlKemKey* mlkemKey = (MlKemKey*)key;
21972194
CK_MECHANISM_INFO mechInfo;
@@ -2220,7 +2217,7 @@ int wc_Pkcs11StoreKey(Pkcs11Token* token, int type, int clear, void* key)
22202217
}
22212218
break;
22222219
}
2223-
#endif /* HAVE_PKCS11_MLKEM */
2220+
#endif /* WOLFSSL_HAVE_MLKEM */
22242221
#if defined(HAVE_DILITHIUM)
22252222
case PKCS11_KEY_TYPE_MLDSA: {
22262223
MlDsaKey* mldsaKey = (MlDsaKey*) key;
@@ -4243,7 +4240,7 @@ static int Pkcs11EccDeletePrivKey(Pkcs11Session* session, ecc_key* key)
42434240
}
42444241
#endif
42454242

4246-
#ifdef HAVE_PKCS11_MLKEM
4243+
#ifdef WOLFSSL_HAVE_MLKEM
42474244
/* Finds the first ML-KEM key matching the key type. */
42484245
static int Pkcs11FindMlKemKey(CK_OBJECT_HANDLE* handle,
42494246
CK_OBJECT_CLASS keyClass,
@@ -4747,7 +4744,7 @@ static int Pkcs11PqcKemDecapsulate(Pkcs11Session* session, wc_CryptoInfo* info)
47474744

47484745
return ret;
47494746
}
4750-
#endif /* HAVE_PKCS11_MLKEM */
4747+
#endif /* WOLFSSL_HAVE_MLKEM */
47514748

47524749
#if defined(HAVE_DILITHIUM)
47534750
/**
@@ -6330,7 +6327,7 @@ int wc_Pkcs11_CryptoDevCb(int devId, wc_CryptoInfo* info, void* ctx)
63306327
if (ret == 0) {
63316328
if (info->algo_type == WC_ALGO_TYPE_PK) {
63326329
#if !defined(NO_RSA) || defined(HAVE_ECC) || defined(HAVE_DILITHIUM) || \
6333-
defined(HAVE_PKCS11_MLKEM)
6330+
defined(WOLFSSL_HAVE_MLKEM)
63346331
switch (info->pk.type) {
63356332
#ifndef NO_RSA
63366333
case WC_PK_TYPE_RSA:
@@ -6410,7 +6407,7 @@ int wc_Pkcs11_CryptoDevCb(int devId, wc_CryptoInfo* info, void* ctx)
64106407
}
64116408
break;
64126409
#endif
6413-
#ifdef HAVE_PKCS11_MLKEM
6410+
#ifdef WOLFSSL_HAVE_MLKEM
64146411
case WC_PK_TYPE_PQC_KEM_KEYGEN:
64156412
ret = Pkcs11OpenSession(token, &session, readWrite);
64166413
if (ret == 0) {
@@ -6469,7 +6466,7 @@ int wc_Pkcs11_CryptoDevCb(int devId, wc_CryptoInfo* info, void* ctx)
64696466
}
64706467
#else
64716468
ret = NOT_COMPILED_IN;
6472-
#endif /* !NO_RSA || HAVE_ECC || HAVE_DILITHIUM || HAVE_PKCS11_MLKEM */
6469+
#endif /* !NO_RSA || HAVE_ECC || HAVE_DILITHIUM || WOLFSSL_HAVE_MLKEM */
64736470
}
64746471
else if (info->algo_type == WC_ALGO_TYPE_CIPHER) {
64756472
#ifndef NO_AES
@@ -6603,7 +6600,7 @@ int wc_Pkcs11_CryptoDevCb(int devId, wc_CryptoInfo* info, void* ctx)
66036600
}
66046601
else
66056602
#endif
6606-
#ifdef HAVE_PKCS11_MLKEM
6603+
#ifdef WOLFSSL_HAVE_MLKEM
66076604
if (info->free.algo == WC_ALGO_TYPE_PK &&
66086605
info->free.type == WC_PK_TYPE_PQC_KEM_KEYGEN &&
66096606
info->free.subType == WC_PQC_KEM_TYPE_KYBER) {

wolfssl/wolfcrypt/dilithium.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
#define WOLFSSL_DILITHIUM_CHECK_KEY
6969
#endif
7070

71-
#include <wolfssl/wolfcrypt/sha3.h>
71+
#include <wolfssl/wolfcrypt/sha3.h>
7272
#ifndef WOLFSSL_DILITHIUM_VERIFY_ONLY
7373
#include <wolfssl/wolfcrypt/random.h>
7474
#endif

wolfssl/wolfcrypt/wc_mlkem.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232

3333
#ifdef WOLFSSL_HAVE_MLKEM
3434

35+
#ifdef __cplusplus
36+
extern "C" {
37+
#endif
38+
3539
#ifdef WOLFSSL_KYBER_NO_MAKE_KEY
3640
#define WOLFSSL_MLKEM_NO_MAKE_KEY
3741
#endif
@@ -417,10 +421,6 @@ typedef struct MlKemKey {
417421
} MlKemKey;
418422

419423

420-
#ifdef __cplusplus
421-
extern "C" {
422-
#endif
423-
424424
WOLFSSL_API MlKemKey* wc_MlKemKey_New(int type, void* heap, int devId);
425425
WOLFSSL_API int wc_MlKemKey_Delete(MlKemKey* key, MlKemKey** key_p);
426426

0 commit comments

Comments
 (0)