don't build ML-KEM/ML-DSA code with <C99 compilers

This commit is contained in:
Damien Miller
2026-06-14 20:32:12 +10:00
parent 1c46384db9
commit b35a6a153f
8 changed files with 27 additions and 1 deletions

View File

@@ -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

View File

@@ -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) */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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

View File

@@ -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 */

View File

@@ -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,