Add handling for zero-length buffers in tests

The buffer can be NULL if the length is zero, so we only check it's not NULL if the length is nonzero
diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index 2e0804b..65a0365 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -532,11 +532,11 @@
     TEST_ASSERT( PSA_CRYPTO_TEST_SIZE_T_RANGE( data->len ) );
     export_size = (ptrdiff_t) data->len + export_size_delta;
     exported = mbedtls_calloc( 1, export_size );
-    TEST_ASSERT( exported != NULL );
+    TEST_ASSERT( export_size == 0 || exported != NULL );
     if( ! canonical_input )
     {
         reexported = mbedtls_calloc( 1, export_size );
-        TEST_ASSERT( reexported != NULL );
+        TEST_ASSERT( export_size == 0 || reexported != NULL );
     }
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
 
@@ -2343,7 +2343,7 @@
                                           &key_bits ) == PSA_SUCCESS );
     output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE( key_type, key_bits, alg );
     output = mbedtls_calloc( 1, output_size );
-    TEST_ASSERT( output != NULL );
+    TEST_ASSERT( output_size == 0 || output != NULL );
 
     /* Encrypt the input */
     actual_status = psa_asymmetric_encrypt( slot, alg,
@@ -2946,7 +2946,7 @@
     unsigned run;
 
     TEST_ASSERT( output != NULL );
-    TEST_ASSERT( changed != NULL );
+    TEST_ASSERT( bytes == 0 || changed != NULL );
     memcpy( output + bytes, trail, sizeof( trail ) );
 
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );