pk: improve mbedtls_pk_copy_from_psa()
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
diff --git a/library/pk.c b/library/pk.c
index b25dd28..4345ea2 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -1402,7 +1402,7 @@
status = psa_export_key(key_id, exp_key, sizeof(exp_key), &exp_key_len);
if (status != PSA_SUCCESS) {
- ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA;
+ ret = PSA_PK_TO_MBEDTLS_ERR(status);
goto exit;
}
@@ -1429,8 +1429,7 @@
}
mbedtls_md_type_t md_type = MBEDTLS_MD_NONE;
- if ((PSA_ALG_GET_HASH(alg_type) != PSA_ALG_NONE) &&
- (PSA_ALG_GET_HASH(alg_type) != PSA_ALG_ANY_HASH)) {
+ if (PSA_ALG_GET_HASH(alg_type) != PSA_ALG_ANY_HASH) {
md_type = mbedtls_md_type_from_psa_alg(alg_type);
}
diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index d9ea0be..ccdab09 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -2340,7 +2340,7 @@
/* Generate an EC key which cannot be exported. */
PSA_ASSERT(pk_psa_genkey_generic(PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1), 256,
0, PSA_ALG_NONE, &key_id));
- TEST_EQUAL(mbedtls_pk_copy_from_psa(key_id, &pk_ctx), MBEDTLS_ERR_PK_BAD_INPUT_DATA);
+ TEST_EQUAL(mbedtls_pk_copy_from_psa(key_id, &pk_ctx), MBEDTLS_ERR_PK_TYPE_MISMATCH);
psa_destroy_key(key_id);
#endif /* MBEDTLS_PK_HAVE_ECC_KEYS && PSA_WANT_ECC_SECP_R1_256 &&
PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE */