Bug fix: don't start a transaction for non-SE keys
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 4bd2d13..50be997 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -1478,14 +1478,14 @@
&slot->data.se.slot_number );
if( status != PSA_SUCCESS )
return( status );
+ psa_crypto_prepare_transaction( PSA_CRYPTO_TRANSACTION_CREATE_KEY );
+ psa_crypto_transaction.key.lifetime = slot->lifetime;
+ psa_crypto_transaction.key.slot = slot->data.se.slot_number;
+ psa_crypto_transaction.key.id = slot->persistent_storage_id;
+ status = psa_crypto_save_transaction( );
+ if( status != PSA_SUCCESS )
+ return( status );
}
- psa_crypto_prepare_transaction( PSA_CRYPTO_TRANSACTION_CREATE_KEY );
- psa_crypto_transaction.key.lifetime = slot->lifetime;
- psa_crypto_transaction.key.slot = slot->data.se.slot_number;
- psa_crypto_transaction.key.id = slot->persistent_storage_id;
- status = psa_crypto_save_transaction( );
- if( status != PSA_SUCCESS )
- return( status );
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
return( status );