SE keys: support destroy
When destroying a key in a secure element, call the driver's destroy
method and update the driver's persistent data in storage.
diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c
index fb57fc9..7287ac0 100644
--- a/library/psa_crypto_se.c
+++ b/library/psa_crypto_se.c
@@ -159,6 +159,22 @@
return( status );
}
+psa_status_t psa_destroy_se_key( psa_se_drv_table_entry_t *driver,
+ psa_key_slot_number_t slot_number )
+{
+ psa_status_t status;
+ psa_status_t storage_status;
+ if( driver->methods->key_management == NULL ||
+ driver->methods->key_management->p_destroy == NULL )
+ return( PSA_ERROR_NOT_PERMITTED );
+ status = driver->methods->key_management->p_destroy(
+ &driver->context,
+ driver->internal.persistent_data,
+ slot_number );
+ storage_status = psa_save_se_persistent_data( driver );
+ return( status == PSA_SUCCESS ? storage_status : status );
+}
+
/****************************************************************/