psa: cipher: Fix symmetric key management

Symmetric key management is not intended to be
delegated to drivers. Thus, key management code
for a given symmetric key type should be included
in the library whether or not the support for
cryptographic operations based on that type of
symmetric key may be delegated to drivers.

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
Ronald Cron 2021-03-12 09:59:30 +01:00
parent 067de3b5ea
commit 1f0db80c78

View File

@ -524,31 +524,31 @@ static psa_status_t validate_unstructured_key_bit_size( psa_key_type_t type,
case PSA_KEY_TYPE_HMAC: case PSA_KEY_TYPE_HMAC:
case PSA_KEY_TYPE_DERIVE: case PSA_KEY_TYPE_DERIVE:
break; break;
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES) #if defined(PSA_WANT_KEY_TYPE_AES)
case PSA_KEY_TYPE_AES: case PSA_KEY_TYPE_AES:
if( bits != 128 && bits != 192 && bits != 256 ) if( bits != 128 && bits != 192 && bits != 256 )
return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_INVALID_ARGUMENT );
break; break;
#endif #endif
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA) #if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
case PSA_KEY_TYPE_CAMELLIA: case PSA_KEY_TYPE_CAMELLIA:
if( bits != 128 && bits != 192 && bits != 256 ) if( bits != 128 && bits != 192 && bits != 256 )
return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_INVALID_ARGUMENT );
break; break;
#endif #endif
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) #if defined(PSA_WANT_KEY_TYPE_DES)
case PSA_KEY_TYPE_DES: case PSA_KEY_TYPE_DES:
if( bits != 64 && bits != 128 && bits != 192 ) if( bits != 64 && bits != 128 && bits != 192 )
return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_INVALID_ARGUMENT );
break; break;
#endif #endif
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4) #if defined(PSA_WANT_KEY_TYPE_ARC4)
case PSA_KEY_TYPE_ARC4: case PSA_KEY_TYPE_ARC4:
if( bits < 8 || bits > 2048 ) if( bits < 8 || bits > 2048 )
return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_INVALID_ARGUMENT );
break; break;
#endif #endif
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20) #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
case PSA_KEY_TYPE_CHACHA20: case PSA_KEY_TYPE_CHACHA20:
if( bits != 256 ) if( bits != 256 )
return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_INVALID_ARGUMENT );