From 8e80504b46764c2a590a6290cccc5716ff51ea79 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 16 Mar 2022 15:30:31 +0100 Subject: [PATCH] Simplify padding check and get rid of psa_sig_md in rsa_decrypt_wrap() Signed-off-by: Neil Armstrong --- library/pk_wrap.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/library/pk_wrap.c b/library/pk_wrap.c index d5d57aa3b..c4d715ccf 100644 --- a/library/pk_wrap.c +++ b/library/pk_wrap.c @@ -227,24 +227,14 @@ static int rsa_decrypt_wrap( void *ctx, int key_len; unsigned char buf[MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES]; mbedtls_pk_info_t pk_info = mbedtls_rsa_info; - psa_algorithm_t psa_sig_md; ((void) f_rng); ((void) p_rng); #if !defined(MBEDTLS_RSA_ALT) - switch( rsa->padding ) - { - case MBEDTLS_RSA_PKCS_V15: - psa_sig_md = PSA_ALG_RSA_PKCS1V15_CRYPT; - break; - - default: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); - } -#else - psa_sig_md = PSA_ALG_RSA_PKCS1V15_CRYPT; -#endif + if( rsa->padding != MBEDTLS_RSA_PKCS_V15 ) + return( MBEDTLS_ERR_RSA_INVALID_PADDING ); +#endif /* !MBEDTLS_RSA_ALT */ if( ilen != mbedtls_rsa_get_len( rsa ) ) return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); @@ -259,7 +249,7 @@ static int rsa_decrypt_wrap( void *ctx, psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_KEY_PAIR ); psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, psa_sig_md ); + psa_set_key_algorithm( &attributes, PSA_ALG_RSA_PKCS1V15_CRYPT ); status = psa_import_key( &attributes, buf + sizeof( buf ) - key_len, key_len, @@ -270,8 +260,10 @@ static int rsa_decrypt_wrap( void *ctx, goto cleanup; } - status = psa_asymmetric_decrypt( key_id, psa_sig_md, input, ilen, - NULL, 0, output, osize, olen ); + status = psa_asymmetric_decrypt( key_id, PSA_ALG_RSA_PKCS1V15_CRYPT, + input, ilen, + NULL, 0, + output, osize, olen ); if( status != PSA_SUCCESS ) { ret = mbedtls_pk_error_from_psa_rsa( status );