Test that psa_close_key(0) and psa_destroy_key(0) succeed
diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data
index 6efdc01..d5b14fe 100644
--- a/tests/suites/test_suite_psa_crypto.data
+++ b/tests/suites/test_suite_psa_crypto.data
@@ -22,6 +22,24 @@
PSA key attributes: slot number
slot_number_attribute:
+psa_destroy_key(0)
+destroy_invalid:0:PSA_SUCCESS
+
+psa_destroy_key(invalid)
+destroy_invalid:1:PSA_ERROR_INVALID_HANDLE
+
+psa_destroy_key(huge)
+destroy_invalid:-1:PSA_ERROR_INVALID_HANDLE
+
+psa_close_key(0)
+close_invalid:0:PSA_SUCCESS
+
+psa_close_key(invalid)
+close_invalid:1:PSA_ERROR_INVALID_HANDLE
+
+psa_close_key(huge)
+close_invalid:-1:PSA_ERROR_INVALID_HANDLE
+
PSA import/export raw: 1 bytes
import_export:"2a":PSA_KEY_TYPE_RAW_DATA:PSA_KEY_USAGE_EXPORT:0:8:0:PSA_SUCCESS:1
@@ -43,15 +61,6 @@
depends_on:MBEDTLS_AES_C
import_export:"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef":PSA_KEY_TYPE_AES:PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:256:0:PSA_SUCCESS:1
-PSA invalid handle (0)
-invalid_handle:0
-
-PSA invalid handle (smallest plausible handle)
-invalid_handle:1
-
-PSA invalid handle (largest plausible handle)
-invalid_handle:-1
-
PSA import: bad usage flag
import_with_policy:PSA_KEY_TYPE_RAW_DATA:0x40000000:0:PSA_ERROR_INVALID_ARGUMENT
diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index 87529ac..9eb2803 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -1103,9 +1103,6 @@
buffer, sizeof( buffer ), &length ),
PSA_ERROR_INVALID_HANDLE );
- TEST_EQUAL( psa_close_key( handle ), PSA_ERROR_INVALID_HANDLE );
- TEST_EQUAL( psa_destroy_key( handle ), PSA_ERROR_INVALID_HANDLE );
-
ok = 1;
exit:
@@ -1272,6 +1269,34 @@
/* END_CASE */
/* BEGIN_CASE */
+void destroy_invalid( int handle_arg, int expected_status_arg )
+{
+ psa_key_handle_t handle = handle_arg;
+ psa_status_t expected_status = expected_status_arg;
+
+ PSA_ASSERT( psa_crypto_init( ) );
+ TEST_EQUAL( psa_destroy_key( handle ), expected_status );
+
+exit:
+ PSA_DONE( );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
+void close_invalid( int handle_arg, int expected_status_arg )
+{
+ psa_key_handle_t handle = handle_arg;
+ psa_status_t expected_status = expected_status_arg;
+
+ PSA_ASSERT( psa_crypto_init( ) );
+ TEST_EQUAL( psa_close_key( handle ), expected_status );
+
+exit:
+ PSA_DONE( );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
void import_with_policy( int type_arg,
int usage_arg, int alg_arg,
int expected_status_arg )
@@ -1536,17 +1561,6 @@
/* END_CASE */
/* BEGIN_CASE */
-void invalid_handle( int handle )
-{
- PSA_ASSERT( psa_crypto_init( ) );
- test_operations_on_invalid_handle( handle );
-
-exit:
- PSA_DONE( );
-}
-/* END_CASE */
-
-/* BEGIN_CASE */
void import_export_public_key( data_t *data,
int type_arg,
int alg_arg,