From 5127e859d77eb802f8a4631f9ae6be7dbda260ad Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 10:35:56 +0100 Subject: [PATCH] Update LMS and LMOTS dependency macros Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 ++-- include/mbedtls/lms.h | 12 ++++++------ include/mbedtls/mbedtls_config.h | 2 +- library/lmots.c | 8 ++++---- library/lmots.h | 4 ++-- library/lms.c | 8 ++++---- tests/suites/test_suite_lmots.function | 10 +++++----- tests/suites/test_suite_lms.function | 8 ++++---- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 570d9dba27..4b2783174f 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_PSA_CRYPTO_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" + ( !defined(MBEDTLS_PSA_CRYPTO_C) && !defined(PSA_WANT_ALG_SHA256) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" #endif #if defined(MBEDTLS_LMS_PRIVATE) && \ diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 1ba4f3abc0..40ab783151 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -139,7 +139,7 @@ typedef struct { Boolean values only. */ } mbedtls_lmots_public_t; -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** LMOTS private context structure. * * A LMOTS private key is one hash output for each of digit of the digest + @@ -163,7 +163,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ /** LMS parameters structure. @@ -209,7 +209,7 @@ typedef struct { } mbedtls_lms_public_t; -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** LMS private context structure. * * A LMS private key is a set of LMOTS private keys, an index to the next usable @@ -237,7 +237,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ /** * \brief This function initializes an LMS public context @@ -301,7 +301,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** * \brief This function initializes an LMS private context * @@ -434,7 +434,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, unsigned char *sig, size_t sig_size, size_t *sig_len ); -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus } diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index c0caf75623..4188afec98 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2485,7 +2485,7 @@ * * Uncomment to enable the LMS signature algorithm and private key operations. */ -// #define MBEDTLS_LMS_PRIVATE +//#define MBEDTLS_LMS_PRIVATE /** * \def MBEDTLS_NIST_KW_C diff --git a/library/lmots.c b/library/lmots.c index e196635c36..9a6c6be665 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -32,7 +32,7 @@ #include "common.h" -#ifdef MBEDTLS_LMS_C +#if defined(MBEDTLS_LMS_C) #include @@ -568,7 +568,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( 0 ); } -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) { @@ -851,5 +851,5 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( 0 ); } -#endif /* MBEDTLS_LMS_PRIVATE */ -#endif /* MBEDTLS_LMS_C */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ +#endif /* defined(MBEDTLS_LMS_C) */ diff --git a/library/lmots.h b/library/lmots.h index 214321a5fd..37466b76e8 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -189,7 +189,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** * \brief This function initializes a private LMOTS context @@ -310,7 +310,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ); -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 1c66946d75..6882a483e8 100644 --- a/library/lms.c +++ b/library/lms.c @@ -32,7 +32,7 @@ #include "common.h" -#ifdef MBEDTLS_LMS_C +#if defined(MBEDTLS_LMS_C) #include @@ -402,7 +402,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( 0 ); } -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /* Calculate a full merkle tree based on a private key. This function * implements RFC8554 section 5.3, and is used to generate a public key (as the @@ -773,5 +773,5 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( 0 ); } -#endif /* MBEDTLS_LMS_PRIVATE */ -#endif /* MBEDTLS_LMS_C */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ +#endif /* defined(MBEDTLS_LMS_C) */ diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index dd8a665d58..85e1da71ed 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -24,11 +24,11 @@ int check_lmots_private_key_for_leak(unsigned char * sig) /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { @@ -52,7 +52,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_public_t pub_ctx; @@ -92,7 +92,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; @@ -113,7 +113,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_private_t ctx; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 900392334d..3c23b3b4e0 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,11 +4,11 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_sign_verify_test ( data_t *msg, data_t *seed ) { mbedtls_lms_public_t pub_ctx; @@ -44,7 +44,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_sign_verify_null_msg_test( data_t *seed ) { mbedtls_lms_public_t pub_ctx; @@ -97,7 +97,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx;