Make psa_get_mac_output_length testable and test it

Signed-off-by: Steven Cooreman <steven.cooreman@silabs.com>
This commit is contained in:
Steven Cooreman 2021-03-02 21:31:17 +01:00
parent 7d4b0d778f
commit 58c94d39ae
3 changed files with 18 additions and 3 deletions

View file

@ -564,7 +564,8 @@ static inline size_t psa_get_key_slot_bits( const psa_key_slot_t *slot )
* \p algorithm tries to truncate the MAC to a size which would be
* larger than the underlying algorithm's maximum output length.
*/
static psa_status_t psa_get_mac_output_length( psa_algorithm_t algorithm,
MBEDTLS_STATIC_TESTABLE psa_status_t psa_get_mac_output_length(
psa_algorithm_t algorithm,
psa_key_type_t key_type,
size_t *length )
{

View file

@ -35,6 +35,7 @@
#endif
#include "psa/crypto.h"
#include "common.h"
#include "mbedtls/entropy.h"
@ -76,4 +77,10 @@ psa_status_t mbedtls_psa_crypto_configure_entropy_sources(
void (* entropy_free )( mbedtls_entropy_context *ctx ) );
#endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */
#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C)
psa_status_t psa_get_mac_output_length( psa_algorithm_t algorithm,
psa_key_type_t key_type,
size_t *length );
#endif /* MBEDTLS_TEST_HOOKS && MBEDTLS_PSA_CRYPTO_C */
#endif /* PSA_CRYPTO_INVASIVE_H */

View file

@ -9,6 +9,7 @@
#endif
#include "psa/crypto.h"
#include "psa_crypto_invasive.h"
/* Flags for algorithm classification macros. There is a flag for every
* algorithm classification macro PSA_ALG_IS_xxx except for the
@ -158,6 +159,12 @@ void mac_algorithm_core( psa_algorithm_t alg, int classification_flags,
/* Length */
TEST_EQUAL( length, PSA_MAC_LENGTH( key_type, key_bits, alg ) );
#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C)
size_t output_length = 0;
PSA_ASSERT( psa_get_mac_output_length( alg, key_type, &output_length ) );
TEST_EQUAL( length, output_length );
#endif
exit: ;
}