diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index f09cc94..2e374fe 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -48,30 +48,28 @@
 
     status = psa_export_key(key_id, key_buf, sizeof(key_buf), &key_len);
     if (status != PSA_SUCCESS) {
-        psa_destroy_key(key_id);
-        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+        ret = MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+        goto exit;
     }
 
     ret = mbedtls_mpi_read_binary(d, key_buf, key_len);
     if (ret != 0) {
-        return ret;
+        goto exit;
     }
 
     status = psa_export_public_key(key_id, key_buf, sizeof(key_buf),
                                    &key_len);
     if (status != PSA_SUCCESS) {
-        psa_destroy_key(key_id);
-        return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+        ret = MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
+        goto exit;
     }
 
     ret = mbedtls_ecp_point_read_binary(grp, Q, key_buf, key_len);
-    if (ret != 0) {
-        return ret;
-    }
 
+exit:
     psa_destroy_key(key_id);
 
-    return 0;
+    return ret;
 }
 
 /** Generate a key of the desired type.
