mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-12 14:45:29 +00:00
Remove support for non-byte-aligned RSA keys
Remove the need for an extra function mbedtls_rsa_get_bitlen. Use mbedtls_rsa_get_len, which is only correct for keys whose size is a multiple of 8. Key sizes that aren't a multiple of 8 are extremely rarely used, so in practice this is not a problematic limitation.
This commit is contained in:
parent
9eaab02607
commit
aac64a2839
|
@ -579,7 +579,11 @@ static psa_status_t psa_import_rsa_key( mbedtls_pk_context *pk,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mbedtls_rsa_context *rsa = mbedtls_pk_rsa( *pk );
|
mbedtls_rsa_context *rsa = mbedtls_pk_rsa( *pk );
|
||||||
size_t bits = mbedtls_rsa_get_bitlen( rsa );
|
/* The size of an RSA key doesn't have to be a multiple of 8.
|
||||||
|
* Mbed TLS supports non-byte-aligned key sizes, but not well.
|
||||||
|
* For example, mbedtls_rsa_get_len() returns the key size in
|
||||||
|
* bytes, not in bits. */
|
||||||
|
size_t bits = PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( rsa ) );
|
||||||
if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS )
|
if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS )
|
||||||
return( PSA_ERROR_NOT_SUPPORTED );
|
return( PSA_ERROR_NOT_SUPPORTED );
|
||||||
*p_rsa = rsa;
|
*p_rsa = rsa;
|
||||||
|
@ -799,7 +803,7 @@ static size_t psa_get_key_bits( const key_slot_t *slot )
|
||||||
return( slot->data.raw.bytes * 8 );
|
return( slot->data.raw.bytes * 8 );
|
||||||
#if defined(MBEDTLS_RSA_C)
|
#if defined(MBEDTLS_RSA_C)
|
||||||
if( PSA_KEY_TYPE_IS_RSA( slot->type ) )
|
if( PSA_KEY_TYPE_IS_RSA( slot->type ) )
|
||||||
return( mbedtls_rsa_get_bitlen( slot->data.rsa ) );
|
return( PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( slot->data.rsa ) ) );
|
||||||
#endif /* defined(MBEDTLS_RSA_C) */
|
#endif /* defined(MBEDTLS_RSA_C) */
|
||||||
#if defined(MBEDTLS_ECP_C)
|
#if defined(MBEDTLS_ECP_C)
|
||||||
if( PSA_KEY_TYPE_IS_ECC( slot->type ) )
|
if( PSA_KEY_TYPE_IS_ECC( slot->type ) )
|
||||||
|
|
Loading…
Reference in a new issue