diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index 2d279fc..c67725d 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -8,6 +8,9 @@
 #define PSA_CRYPTO_TEST_SIZE_T_RANGE( x ) 1
 #endif
 
+/** An invalid export length that will never be set by psa_export_key(). */
+static const size_t INVALID_EXPORT_LENGTH = ~0U;
+
 /** Test if a buffer is not all-bits zero.
  *
  * \param buffer    Pointer to the beginning of the buffer.
@@ -320,7 +323,7 @@
     unsigned char *exported = NULL;
     unsigned char *reexported = NULL;
     size_t export_size;
-    size_t exported_length;
+    size_t exported_length = INVALID_EXPORT_LENGTH;
     size_t reexported_length;
     psa_key_type_t got_type;
     size_t got_bits;
@@ -358,6 +361,13 @@
                              exported, export_size,
                              &exported_length );
     TEST_ASSERT( status == expected_export_status );
+
+    /* The exported length must be set by psa_export_key() to a value between 0
+     * and export_size. On errors, the exported length must be 0. */
+    TEST_ASSERT( exported_length != INVALID_EXPORT_LENGTH );
+    TEST_ASSERT( status == PSA_SUCCESS || exported_length == 0 );
+    TEST_ASSERT( exported_length <= export_size );
+
     TEST_ASSERT( mem_is_zero( exported + exported_length,
                               export_size - exported_length ) );
     if( status != PSA_SUCCESS )
@@ -536,13 +546,14 @@
 
     if( usage & PSA_KEY_USAGE_SIGN )
     {
+        size_t data_length;
         TEST_ASSERT( keypair != NULL );
         TEST_ASSERT( PSA_CRYPTO_TEST_SIZE_T_RANGE( keypair->len ) );
         TEST_ASSERT( psa_import_key( key_slot,
                                      PSA_KEY_TYPE_RSA_KEYPAIR,
                                      keypair->x,
                                      keypair->len ) == PSA_SUCCESS );
-        actual_status = psa_export_key( key_slot, NULL, 0, NULL );
+        actual_status = psa_export_key( key_slot, NULL, 0, &data_length );
     }
 
     TEST_ASSERT( actual_status == expected_status );
