From 2b3cc12c01621e006ce2e5e491733fcda32c8295 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 14 Jan 2026 12:53:25 +0100 Subject: [PATCH] tests: pk_helpers: let all helper function return an error code Signed-off-by: Valerio Setti --- tests/include/test/pk_helpers.h | 4 ++-- tests/src/pk_helpers.c | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/tests/include/test/pk_helpers.h b/tests/include/test/pk_helpers.h index 063945c3b..97d8c36f6 100644 --- a/tests/include/test/pk_helpers.h +++ b/tests/include/test/pk_helpers.h @@ -34,7 +34,7 @@ typedef enum { * been requested by "key_type" and "key_bits". * \param output_len Length of the key material being pointed to from "output". */ -void mbedtls_pk_helpers_get_predefined_key_data(psa_key_type_t key_type, psa_key_bits_t key_bits, +int mbedtls_pk_helpers_get_predefined_key_data(psa_key_type_t key_type, psa_key_bits_t key_bits, const uint8_t **output, size_t *output_len); /** @@ -66,7 +66,7 @@ mbedtls_svc_key_id_t mbedtls_pk_helpers_make_psa_key_from_predefined(psa_key_typ * \param method The desired method for populating the PK context. See * "pk_context_populate_method_t" for available options. */ -void mbedtls_pk_helpers_populate_context(mbedtls_pk_context *pk, mbedtls_svc_key_id_t key_id, +int mbedtls_pk_helpers_populate_context(mbedtls_pk_context *pk, mbedtls_svc_key_id_t key_id, pk_context_populate_method_t method); #endif /* MBEDTLS_PK_C */ diff --git a/tests/src/pk_helpers.c b/tests/src/pk_helpers.c index 7fa1f5136..d6bc8a38d 100644 --- a/tests/src/pk_helpers.c +++ b/tests/src/pk_helpers.c @@ -63,7 +63,7 @@ static mbedtls_pk_helpers_predefined_key_t predefined_keys_psa[] = { RSA_KEY(4096, test_rsa_4096), }; -void mbedtls_pk_helpers_get_predefined_key_data(psa_key_type_t key_type, psa_key_bits_t key_bits, +int mbedtls_pk_helpers_get_predefined_key_data(psa_key_type_t key_type, psa_key_bits_t key_bits, const uint8_t **output, size_t *output_len) { for (size_t i = 0; i < ARRAY_LENGTH(predefined_keys_psa); i++) { @@ -71,13 +71,16 @@ void mbedtls_pk_helpers_get_predefined_key_data(psa_key_type_t key_type, psa_key (key_bits == predefined_keys_psa[i].key_bits)) { *output = predefined_keys_psa[i].key; *output_len = predefined_keys_psa[i].key_len; - return; + return 0; } } + *output = NULL; + *output_len = 0; TEST_FAIL("Predefined key not available"); -exit:; +exit: + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; } mbedtls_svc_key_id_t mbedtls_pk_helpers_make_psa_key_from_predefined(psa_key_type_t key_type, @@ -103,24 +106,29 @@ exit: return key_id; } -void mbedtls_pk_helpers_populate_context(mbedtls_pk_context *pk, mbedtls_svc_key_id_t key_id, +int mbedtls_pk_helpers_populate_context(mbedtls_pk_context *pk, mbedtls_svc_key_id_t key_id, pk_context_populate_method_t method) { + int ret; + switch (method) { case TEST_PK_WRAP_PSA: - TEST_EQUAL(mbedtls_pk_wrap_psa(pk, key_id), 0); + ret = mbedtls_pk_wrap_psa(pk, key_id); break; case TEST_PK_COPY_FROM_PSA: - TEST_EQUAL(mbedtls_pk_copy_from_psa(key_id, pk), 0); + ret = mbedtls_pk_copy_from_psa(key_id, pk); break; case TEST_PK_COPY_PUBLIC_FROM_PSA: - TEST_EQUAL(mbedtls_pk_copy_public_from_psa(key_id, pk), 0); + ret = mbedtls_pk_copy_public_from_psa(key_id, pk); break; default: - TEST_FAIL("Unknown method"); + ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA; } -exit:; /* Needed to make compiler happy */ + TEST_EQUAL(ret, 0); + +exit: + return ret; } #endif /* MBEDTLS_PK_C */