[openssh-commits] [openssh] branch master updated: don't build ML-KEM/ML-DSA code with <C99 compilers

git+noreply at mindrot.org git+noreply at mindrot.org
Sun Jun 14 20:32:56 AEST 2026


This is an automated email from the git hooks/post-receive script.

djm pushed a commit to branch master
in repository openssh.

The following commit(s) were added to refs/heads/master by this push:
     new b35a6a153 don't build ML-KEM/ML-DSA code with <C99 compilers
b35a6a153 is described below

commit b35a6a153f4164a56174e4795d4384867349e9aa
Author: Damien Miller <djm at mindrot.org>
AuthorDate: Sun Jun 14 20:32:12 2026 +1000

    don't build ML-KEM/ML-DSA code with <C99 compilers
---
 defines.h                                   | 3 ++-
 libcrux-mlkem-mldsa.c                       | 3 +++
 regress/unittests/crypto/test_mldsa.c       | 3 +++
 regress/unittests/crypto/test_mldsa_eddsa.c | 3 +++
 regress/unittests/crypto/test_mlkem.c       | 3 +++
 regress/unittests/crypto/tests.c            | 6 ++++++
 ssh-mldsa-eddsa.c                           | 3 +++
 sshkey.c                                    | 4 ++++
 8 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/defines.h b/defines.h
index 0057aa168..634db453e 100644
--- a/defines.h
+++ b/defines.h
@@ -996,8 +996,9 @@ struct winsize {
  */
 #if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE)
 # define USE_SNTRUP761X25519	1
-/* The ML-KEM768 implementation also uses C89 features */
+/* The ML-KEM768 and ML-DSA implementations also uses C89 features */
 # define USE_MLKEM768X25519	1
+# define USE_MLDSA		1
 #endif
 
 #if defined(HAVE_DECL_INFINITY) && HAVE_DECL_INFINITY == 0
diff --git a/libcrux-mlkem-mldsa.c b/libcrux-mlkem-mldsa.c
index 6aa94dadb..1ce21b9c7 100644
--- a/libcrux-mlkem-mldsa.c
+++ b/libcrux-mlkem-mldsa.c
@@ -17,6 +17,8 @@
 
 #include "includes.h"
 
+#if defined(USE_MLDSA) || defined(USE_MLKEM768X25519)
+
 #include <sys/types.h>
 #include <stdint.h>
 #include <stdlib.h>
@@ -425,3 +427,4 @@ sha3_512(uint8_t digest[64], const uint8_t *data, size_t len)
 	Eurydice_mut_borrow_slice_u8 output = { digest, 64 };
 	libcrux_sha3_portable_sha512(output, input);
 }
+#endif /* defined(USE_MLDSA) || defined(USE_MLKEM768X25519) */
diff --git a/regress/unittests/crypto/test_mldsa.c b/regress/unittests/crypto/test_mldsa.c
index c21179130..d845c49d4 100644
--- a/regress/unittests/crypto/test_mldsa.c
+++ b/regress/unittests/crypto/test_mldsa.c
@@ -7,6 +7,8 @@
 
 #include "includes.h"
 
+#ifdef USE_MLDSA
+
 #include <sys/types.h>
 #include <stdio.h>
 #include <stdint.h>
@@ -143,3 +145,4 @@ mldsa_tests(void)
 	free_kats(kats, nkats);
 	TEST_DONE();
 }
+#endif /* USE_MLDSA */
diff --git a/regress/unittests/crypto/test_mldsa_eddsa.c b/regress/unittests/crypto/test_mldsa_eddsa.c
index 655e421b8..0a8a38089 100644
--- a/regress/unittests/crypto/test_mldsa_eddsa.c
+++ b/regress/unittests/crypto/test_mldsa_eddsa.c
@@ -7,6 +7,8 @@
 
 #include "includes.h"
 
+#ifdef USE_MLDSA
+
 #include <sys/types.h>
 #include <stdio.h>
 #include <stdint.h>
@@ -192,3 +194,4 @@ mldsa_eddsa_tests(void)
 	sshbuf_free(b_s);
 	sshbuf_free(b_sWithContext);
 }
+#endif /* USE_MLDSA */
diff --git a/regress/unittests/crypto/test_mlkem.c b/regress/unittests/crypto/test_mlkem.c
index 148469892..5d1b421f7 100644
--- a/regress/unittests/crypto/test_mlkem.c
+++ b/regress/unittests/crypto/test_mlkem.c
@@ -7,6 +7,8 @@
 
 #include "includes.h"
 
+#ifdef USE_MLKEM768X25519
+
 #include <sys/types.h>
 #include <stdio.h>
 #include <stdint.h>
@@ -167,3 +169,4 @@ mlkem_tests(void)
 	}
 	TEST_DONE();
 }
+#endif /* USE_MLKEM768X25519 */
diff --git a/regress/unittests/crypto/tests.c b/regress/unittests/crypto/tests.c
index 9061e332e..9caff06c1 100644
--- a/regress/unittests/crypto/tests.c
+++ b/regress/unittests/crypto/tests.c
@@ -103,10 +103,16 @@ get_json_string(struct sshbuf *content, const char *key, int consume)
 void
 tests(void)
 {
+#ifdef USE_MLDSA
 	mldsa_tests();
+#endif
+#ifdef USE_MLKEM768X25519
 	mlkem_tests();
+#endif
 	ed25519_tests();
+#ifdef USE_MLDSA
 	mldsa_eddsa_tests();
+#endif
 }
 
 void
diff --git a/ssh-mldsa-eddsa.c b/ssh-mldsa-eddsa.c
index 17588a23e..89c35c7d1 100644
--- a/ssh-mldsa-eddsa.c
+++ b/ssh-mldsa-eddsa.c
@@ -19,6 +19,8 @@
 
 #include "includes.h"
 
+#ifdef USE_MLDSA
+
 #include <sys/types.h>
 #include <stdint.h>
 #include <string.h>
@@ -501,3 +503,4 @@ const struct sshkey_impl sshkey_mldsa44_ed25519_cert_impl = {
 	/* .keybits = */	256,
 	/* .funcs = */		&sshkey_mldsa44_ed25519_funcs,
 };
+#endif /* USE_MLDSA */
diff --git a/sshkey.c b/sshkey.c
index b91bb43bb..00572792f 100644
--- a/sshkey.c
+++ b/sshkey.c
@@ -90,8 +90,10 @@ extern const struct sshkey_impl sshkey_ed25519_impl;
 extern const struct sshkey_impl sshkey_ed25519_cert_impl;
 extern const struct sshkey_impl sshkey_ed25519_sk_impl;
 extern const struct sshkey_impl sshkey_ed25519_sk_cert_impl;
+#ifdef USE_MLDSA
 extern const struct sshkey_impl sshkey_mldsa44_ed25519_impl;
 extern const struct sshkey_impl sshkey_mldsa44_ed25519_cert_impl;
+#endif /* USE_MLDSA */
 #ifdef WITH_OPENSSL
 # ifdef OPENSSL_HAS_ECC
 #  ifdef ENABLE_SK
@@ -124,8 +126,10 @@ const struct sshkey_impl * const keyimpls[] = {
 	&sshkey_ed25519_sk_impl,
 	&sshkey_ed25519_sk_cert_impl,
 #endif
+#ifdef USE_MLDSA
 	&sshkey_mldsa44_ed25519_impl,
 	&sshkey_mldsa44_ed25519_cert_impl,
+#endif /* USE_MLDSA */
 #ifdef WITH_OPENSSL
 # ifdef OPENSSL_HAS_ECC
 	&sshkey_ecdsa_nistp256_impl,

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list