Skip to content

Commit 84bc8a4

Browse files
ejohnstownpadelsbach
authored andcommitted
internal.h: gate hybrid KEXes on ML-KEM sets
wolfSSL can build ML-KEM without one of its parameter sets, or without FIPS 203 ML-KEM at all. The hybrid KEX gates now follow the set each one needs, so a missing set is neither advertised nor negotiated. - add WOLFSSH_NO_MLKEM768 and WOLFSSH_NO_MLKEM1024 from WOLFSSL_NO_ML_KEM, WOLFSSL_NO_ML_KEM_768 and WOLFSSL_NO_ML_KEM_1024 - derive the three hybrid KEX gates from them
1 parent e0e8e45 commit 84bc8a4

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

‎wolfssh/internal.h‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,17 +247,28 @@ extern "C" {
247247
#undef WOLFSSH_NO_ECDH_SHA2_NISTP521
248248
#define WOLFSSH_NO_ECDH_SHA2_NISTP521
249249
#endif
250-
#if !defined(WOLFSSL_HAVE_MLKEM) || defined(NO_SHA256) \
250+
/* wolfSSL can leave out FIPS 203 ML-KEM or any one parameter set. */
251+
#if !defined(WOLFSSL_HAVE_MLKEM) || defined(WOLFSSL_NO_ML_KEM) \
252+
|| defined(WOLFSSL_NO_ML_KEM_768)
253+
#undef WOLFSSH_NO_MLKEM768
254+
#define WOLFSSH_NO_MLKEM768
255+
#endif
256+
#if !defined(WOLFSSL_HAVE_MLKEM) || defined(WOLFSSL_NO_ML_KEM) \
257+
|| defined(WOLFSSL_NO_ML_KEM_1024)
258+
#undef WOLFSSH_NO_MLKEM1024
259+
#define WOLFSSH_NO_MLKEM1024
260+
#endif
261+
#if defined(WOLFSSH_NO_MLKEM768) || defined(NO_SHA256) \
251262
|| defined(WOLFSSH_NO_ECDH_SHA2_NISTP256)
252263
#undef WOLFSSH_NO_NISTP256_MLKEM768_SHA256
253264
#define WOLFSSH_NO_NISTP256_MLKEM768_SHA256
254265
#endif
255-
#if !defined(WOLFSSL_HAVE_MLKEM) || !defined(WOLFSSL_SHA384) \
266+
#if defined(WOLFSSH_NO_MLKEM1024) || !defined(WOLFSSL_SHA384) \
256267
|| defined(WOLFSSH_NO_ECDH_SHA2_NISTP384)
257268
#undef WOLFSSH_NO_NISTP384_MLKEM1024_SHA384
258269
#define WOLFSSH_NO_NISTP384_MLKEM1024_SHA384
259270
#endif
260-
#if !defined(WOLFSSL_HAVE_MLKEM) || defined(NO_SHA256) \
271+
#if defined(WOLFSSH_NO_MLKEM768) || defined(NO_SHA256) \
261272
|| !defined(HAVE_CURVE25519)
262273
#undef WOLFSSH_NO_CURVE25519_MLKEM768_SHA256
263274
#define WOLFSSH_NO_CURVE25519_MLKEM768_SHA256

0 commit comments

Comments
 (0)