1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-08-01 10:06:53 +03:00

Simplify implementation of MD<->PSA translation

Also, add tests and comments due from previous commits.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
Manuel Pégourié-Gonnard
2023-06-06 12:34:45 +02:00
parent 47bb380f6d
commit 1f6d2e352d
4 changed files with 39 additions and 36 deletions

View File

@ -773,46 +773,15 @@ mbedtls_md_type_t mbedtls_md_get_type(const mbedtls_md_info_t *md_info)
#if defined(MBEDTLS_PSA_CRYPTO_C)
psa_algorithm_t mbedtls_md_psa_alg_from_type(mbedtls_md_type_t md_type)
{
switch (md_type) {
case MBEDTLS_MD_MD5:
return PSA_ALG_MD5;
case MBEDTLS_MD_RIPEMD160:
return PSA_ALG_RIPEMD160;
case MBEDTLS_MD_SHA1:
return PSA_ALG_SHA_1;
case MBEDTLS_MD_SHA224:
return PSA_ALG_SHA_224;
case MBEDTLS_MD_SHA256:
return PSA_ALG_SHA_256;
case MBEDTLS_MD_SHA384:
return PSA_ALG_SHA_384;
case MBEDTLS_MD_SHA512:
return PSA_ALG_SHA_512;
default:
return PSA_ALG_NONE;
if (md_type == MBEDTLS_MD_NONE) {
return PSA_ALG_NONE;
}
return PSA_ALG_CATEGORY_HASH | (psa_algorithm_t) md_type;
}
mbedtls_md_type_t mbedtls_md_type_from_psa_alg(psa_algorithm_t psa_alg)
{
switch (psa_alg) {
case PSA_ALG_MD5:
return MBEDTLS_MD_MD5;
case PSA_ALG_RIPEMD160:
return MBEDTLS_MD_RIPEMD160;
case PSA_ALG_SHA_1:
return MBEDTLS_MD_SHA1;
case PSA_ALG_SHA_224:
return MBEDTLS_MD_SHA224;
case PSA_ALG_SHA_256:
return MBEDTLS_MD_SHA256;
case PSA_ALG_SHA_384:
return MBEDTLS_MD_SHA384;
case PSA_ALG_SHA_512:
return MBEDTLS_MD_SHA512;
default:
return MBEDTLS_MD_NONE;
}
return (mbedtls_md_type_t) (psa_alg & PSA_ALG_HASH_MASK);
}
int mbedtls_md_error_from_psa(psa_status_t status)

View File

@ -33,6 +33,9 @@
*
* \param md_type The type of digest to search for.
*
* \warning This function does not check if the algorithm is
* supported, it always returns the corresponding identifier.
*
* \return The PSA algorithm identifier associated with \p md_type,
* regardless of whether it is supported or not.
*/
@ -44,6 +47,9 @@ psa_algorithm_t mbedtls_md_psa_alg_from_type(mbedtls_md_type_t md_type);
*
* \param psa_alg The PSA algorithm identifier to search for.
*
* \warning This function does not check if the algorithm is
* supported, it always returns the corresponding identifier.
*
* \return The MD type associated with \p psa_alg,
* regardless of whether it is supported or not.
*/