[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