Update LMS and LMOTS dependency macros
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h
index 570d9db..4b27831 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 1ba4f3a..40ab783 100644
--- a/include/mbedtls/lms.h
+++ b/include/mbedtls/lms.h
@@ -139,7 +139,7 @@
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 @@
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 @@
} 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 @@
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 @@
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 (*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 c0caf75..4188afe 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 e196635..9a6c6be 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 <string.h>
@@ -568,7 +568,7 @@
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 @@
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 214321a..37466b7 100644
--- a/library/lmots.h
+++ b/library/lmots.h
@@ -189,7 +189,7 @@
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 @@
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 1c66946..6882a48 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 <string.h>
@@ -402,7 +402,7 @@
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 @@
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 dd8a665..85e1da7 100644
--- a/tests/suites/test_suite_lmots.function
+++ b/tests/suites/test_suite_lmots.function
@@ -24,11 +24,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 lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id,
data_t *seed )
{
@@ -52,7 +52,7 @@
}
/* 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 @@
}
/* 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 @@
}
/* 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 9003923..3c23b3b 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 @@
}
/* 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 @@
}
/* 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;