Don't exercise if the algorithm is not supported

Parsing a key and importing it into PSA may result in a policy that
specifies an algorithm that is not included in the build. This happens if
the key type is supported, but not the algorithm, e.g. in a build with
MBEDTLS_ECP_C but not MBEDTLS_ECDSA_C.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2024-02-12 14:19:24 +01:00
parent 1d33876d37
commit 34955677e5
3 changed files with 67 additions and 2 deletions

View file

@ -48,10 +48,14 @@ static int test_psa_bridge(const mbedtls_pk_context *ctx,
TEST_EQUAL(mbedtls_pk_get_psa_attributes(ctx, usage_flag, &attributes), 0);
TEST_EQUAL(mbedtls_pk_import_into_psa(ctx, &attributes, &psa_key), 0);
psa_algorithm_t exercise_usage = psa_get_key_usage_flags(&attributes);
psa_algorithm_t exercise_alg = psa_get_key_algorithm(&attributes);
TEST_ASSERT(mbedtls_test_psa_exercise_key(psa_key,
exercise_usage, exercise_alg));
if (mbedtls_test_can_exercise_psa_algorithm(exercise_alg)) {
TEST_ASSERT(mbedtls_test_psa_exercise_key(psa_key,
exercise_usage,
exercise_alg));
}
mbedtls_test_set_step((unsigned long) -1);
ok = 1;