From 801abb69a531307c1ae2613c5320af803a8c3a9a Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 4 May 2022 17:38:10 +0200 Subject: [PATCH] Provide a PSA definition of mbedtls_ssl_ciphersuite_get_cipher_key_bitlen() when MBEDTLS_USE_PSA_CRYPTO is defined Signed-off-by: Neil Armstrong --- library/ssl_ciphersuites.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/library/ssl_ciphersuites.c b/library/ssl_ciphersuites.c index ee8a60eb12..402463f9d7 100644 --- a/library/ssl_ciphersuites.c +++ b/library/ssl_ciphersuites.c @@ -1876,7 +1876,21 @@ int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name ) size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( const mbedtls_ssl_ciphersuite_t *info ) { -#if defined(MBEDTLS_CIPHER_C) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_type_t key_type; + psa_algorithm_t alg; + size_t key_bits; + + status = mbedtls_ssl_cipher_to_psa( info->cipher, + info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16, + &alg, &key_type, &key_bits ); + + if( status != PSA_SUCCESS ) + return 0; + + return key_bits; +#elif defined(MBEDTLS_CIPHER_C) const mbedtls_cipher_info_t * const cipher_info = mbedtls_cipher_info_from_type( info->cipher );