diff --git a/library/md.c b/library/md.c index 14a88ba1b..14b400bdc 100644 --- a/library/md.c +++ b/library/md.c @@ -55,6 +55,7 @@ #if defined(MBEDTLS_PSA_CRYPTO_C) #include #include "md_psa.h" +#include "mbedtls/psa_util.h" #endif #if defined(MBEDTLS_MD_SOME_PSA) @@ -217,16 +218,8 @@ static int md_can_use_psa(const mbedtls_md_info_t *info) static int mbedtls_md_error_from_psa(psa_status_t status) { - switch (status) { - case PSA_SUCCESS: - return 0; - case PSA_ERROR_NOT_SUPPORTED: - return MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE; - case PSA_ERROR_INSUFFICIENT_MEMORY: - return MBEDTLS_ERR_MD_ALLOC_FAILED; - default: - return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; - } + return PSA_TO_MBEDTLS_ERR_LIST(status, psa_to_md_errors, + psa_generic_status_to_mbedtls); } #endif /* MBEDTLS_MD_SOME_PSA */