diff --git a/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function b/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function
index ba51428..9d73d8f 100644
--- a/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function
+++ b/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function
@@ -3,6 +3,7 @@
 #include "psa/crypto_se_driver.h"
 
 #include "psa_crypto_se.h"
+#include "psa_crypto_storage.h"
 
 static struct
 {
@@ -71,6 +72,23 @@
     psa_status_t return_value;
 } mock_destroy_data;
 
+#define MAX_KEY_ID_FOR_TEST 10
+static void psa_purge_storage( void )
+{
+    psa_key_id_t id;
+    psa_key_lifetime_t lifetime;
+    /* The tests may have potentially created key ids from 1 to
+     * MAX_KEY_ID_FOR_TEST. In addition, run the destroy function on key id
+     * 0, which file-based storage uses as a temporary file. */
+    for( id = 0; id <= MAX_KEY_ID_FOR_TEST; id++ )
+        psa_destroy_persistent_key( id );
+    /* Purge the transaction file. */
+    psa_crypto_stop_transaction( );
+    /* Purge driver persistent data. */
+    for( lifetime = 0; lifetime < PSA_MAX_SE_LIFETIME; lifetime++ )
+        psa_destroy_se_persistent_data( lifetime );
+}
+
 static void mock_teardown( void )
 {
     memset( &mock_import_data, 0, sizeof( mock_import_data ) );
@@ -81,6 +99,7 @@
     memset( &mock_allocate_data, 0, sizeof( mock_allocate_data ) );
     memset( &mock_destroy_data, 0, sizeof( mock_destroy_data ) );
     memset( &mock_generate_data, 0, sizeof( mock_generate_data ) );
+    psa_purge_storage( );
 }
 
 static psa_status_t mock_generate( psa_drv_se_context_t *drv_context,
