diff --git a/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c index 2cfc4a9e8..f3a438996 100644 --- a/library/psa_crypto_slot_management.c +++ b/library/psa_crypto_slot_management.c @@ -120,37 +120,31 @@ psa_status_t psa_internal_allocate_key_slot( psa_key_handle_t *handle, } #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) -static psa_status_t psa_load_persistent_key_into_slot( psa_key_slot_t *p_slot ) +static psa_status_t psa_load_persistent_key_into_slot( psa_key_slot_t *slot ) { psa_status_t status = PSA_SUCCESS; uint8_t *key_data = NULL; size_t key_data_length = 0; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_id( &attributes, p_slot->attr.id ); - status = psa_load_persistent_key( &attributes.core, + status = psa_load_persistent_key( &slot->attr, &key_data, &key_data_length ); if( status != PSA_SUCCESS ) goto exit; - p_slot->attr.lifetime = psa_get_key_lifetime( &attributes ); - p_slot->attr.type = psa_get_key_type( &attributes ); - p_slot->attr.policy = attributes.core.policy; #if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( psa_key_lifetime_is_external( p_slot->attr.lifetime ) ) + if( psa_key_lifetime_is_external( slot->attr.lifetime ) ) { - if( key_data_length != sizeof( p_slot->data.se ) ) + if( key_data_length != sizeof( slot->data.se ) ) { status = PSA_ERROR_STORAGE_FAILURE; goto exit; } - memcpy( &p_slot->data.se, key_data, sizeof( p_slot->data.se ) ); + memcpy( &slot->data.se, key_data, sizeof( slot->data.se ) ); } else #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ { - status = psa_import_key_into_slot( p_slot, - key_data, key_data_length ); + status = psa_import_key_into_slot( slot, key_data, key_data_length ); } exit: