diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c3dc3aa7a..5773c793c 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -341,7 +341,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, mbedtls_lms_algorithm_type_t type, mbedtls_lmots_algorithm_type_t otstype, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, + void* p_rng, const unsigned char *seed, size_t seed_size ); /** @@ -363,7 +363,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - mbedtls_lms_private_t *priv_ctx ); + const mbedtls_lms_private_t *priv_ctx ); /** * \brief This function exports an LMS public key from a @@ -388,8 +388,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, - size_t key_size, size_t *key_len ); +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); /** * \brief This function creates a LMS signature, using a @@ -429,8 +430,9 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key */ 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 ); + void* p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len ); #endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus diff --git a/library/lmots.c b/library/lmots.c index 9a6c6be66..055db8fb3 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -521,9 +521,9 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return( 0 ); } -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 ) +int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ) { unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -684,7 +684,7 @@ exit: } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx ) + const mbedtls_lmots_private_t *priv_ctx ) { unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -720,7 +720,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } -int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { diff --git a/library/lmots.h b/library/lmots.h index 37466b76e..2f42a592c 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -185,7 +185,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * \return \c 0 on successful verification. * \return A non-zero error code on failure. */ -int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, +int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); @@ -208,7 +209,7 @@ void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); /** - * \brief This function generates an LMOTS private key, and + * \brief This function calculates an LMOTS private key, and * stores in into an LMOTS context. * * \warning This function is **not intended for use in @@ -252,7 +253,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx ); + const mbedtls_lmots_private_t *priv_ctx ); /** @@ -274,7 +275,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ); /** diff --git a/library/lms.c b/library/lms.c index 6882a483e..50e6434b7 100644 --- a/library/lms.c +++ b/library/lms.c @@ -418,7 +418,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * because the merkle tree root is 1-indexed, the 0 * index tree node is never used. */ -static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, +static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, unsigned char *tree ) { unsigned int priv_key_idx; @@ -533,7 +533,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, mbedtls_lms_algorithm_type_t type, mbedtls_lmots_algorithm_type_t otstype, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, + void* p_rng, const unsigned char *seed, size_t seed_size ) { unsigned int idx = 0; @@ -621,7 +621,7 @@ exit: } int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - mbedtls_lms_private_t *priv_ctx ) + const mbedtls_lms_private_t *priv_ctx ) { unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -662,7 +662,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { @@ -700,8 +700,9 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, 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 ) + void* p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len ) { uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;