diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index d530574..9381794 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -33,10 +33,8 @@
     unsigned char *data = NULL;
     size_t data_size;
 
-    data_size = strlen( hex ) / 2;
-    data = mbedtls_calloc( 1, data_size );
+    data = unhexify_alloc( hex, &data_size );
     TEST_ASSERT( data != NULL );
-    data_size = unhexify( data, hex );
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
 
     status = psa_import_key( slot, type, data, data_size );
@@ -71,10 +69,8 @@
     psa_key_type_t got_type;
     size_t got_bits;
 
-    data_size = strlen( hex ) / 2;
-    data = mbedtls_calloc( 1, data_size );
+    data = unhexify_alloc( hex, &data_size );
     TEST_ASSERT( data != NULL );
-    data_size = unhexify( data, hex );
     export_size = (ssize_t) data_size + export_size_delta;
     exported = mbedtls_calloc( 1, export_size );
     TEST_ASSERT( exported != NULL );
@@ -147,10 +143,8 @@
     size_t actual_hash_length;
     psa_hash_operation_t operation;
 
-    input_size = strlen( input_hex ) / 2;
-    input = mbedtls_calloc( 1, input_size );
+    input = unhexify_alloc( input_hex, &input_size );
     TEST_ASSERT( input != NULL );
-    input_size = unhexify( input, input_hex );
     expected_hash_length = unhexify( expected_hash, hash_hex );
 
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
@@ -181,10 +175,8 @@
     size_t expected_hash_length;
     psa_hash_operation_t operation;
 
-    input_size = strlen( input_hex ) / 2;
-    input = mbedtls_calloc( 1, input_size );
+    input = unhexify_alloc( input_hex, &input_size );
     TEST_ASSERT( input != NULL );
-    input_size = unhexify( input, input_hex );
     expected_hash_length = unhexify( expected_hash, hash_hex );
 
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
@@ -220,25 +212,17 @@
     size_t expected_mac_size;
     psa_mac_operation_t operation;
 
-    key_size = strlen( key_hex ) / 2;
-    key = mbedtls_calloc( 1, key_size );
+    key = unhexify_alloc( key_hex, &key_size );
     TEST_ASSERT( key != NULL );
-    key_size = unhexify( key, key_hex );
-    iv_size = strlen( iv_hex ) / 2;
-    if( iv_size != 0 )
+    if( iv_hex[0] != 0 )
     {
-        iv = mbedtls_calloc( 1, iv_size );
+        iv = unhexify_alloc( iv_hex, &iv_size );
         TEST_ASSERT( iv != NULL );
-        iv_size = unhexify( iv, iv_hex );
     }
-    input_size = strlen( input_hex ) / 2;
-    input = mbedtls_calloc( 1, input_size );
+    input = unhexify_alloc( input_hex, &input_size );
     TEST_ASSERT( input != NULL );
-    input_size = unhexify( input, input_hex );
-    expected_mac_size = strlen( mac_hex ) / 2;
-    expected_mac = mbedtls_calloc( 1, expected_mac_size );
+    expected_mac = unhexify_alloc( mac_hex, &expected_mac_size );
     TEST_ASSERT( expected_mac != NULL );
-    expected_mac_size = unhexify( expected_mac, mac_hex );
 
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
 
@@ -293,15 +277,12 @@
     size_t signature_size;
     size_t signature_length = 0xdeadbeef;
 
-    key_data = mbedtls_calloc( 1, strlen( key_hex ) / 2 );
+    key_data = unhexify_alloc( key_hex, &key_size );
     TEST_ASSERT( key_data != NULL );
-    key_size = unhexify( key_data, key_hex );
-    input_data = mbedtls_calloc( 1, strlen( input_hex ) / 2 );
+    input_data = unhexify_alloc( input_hex, &input_size );
     TEST_ASSERT( input_data != NULL );
-    input_size = unhexify( input_data, input_hex );
-    output_data = mbedtls_calloc( 1, strlen( output_hex ) / 2 );
+    output_data = unhexify_alloc( output_hex, &output_size );
     TEST_ASSERT( output_data != NULL );
-    output_size = unhexify( output_data, output_hex );
 
     TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
 
@@ -348,15 +329,13 @@
     size_t input_size;
     psa_status_t actual_status;
     psa_status_t expected_status = expected_status_arg;
-    unsigned char *signature;
+    unsigned char *signature = NULL;
     size_t signature_length = 0xdeadbeef;
 
-    key_data = mbedtls_calloc( 1, strlen( key_hex ) / 2 );
+    key_data = unhexify_alloc( key_hex, &key_size );
     TEST_ASSERT( key_data != NULL );
-    key_size = unhexify( key_data, key_hex );
-    input_data = mbedtls_calloc( 1, strlen( input_hex ) / 2 );
+    input_data = unhexify_alloc( input_hex, &input_size );
     TEST_ASSERT( input_data != NULL );
-    input_size = unhexify( input_data, input_hex );
     signature = mbedtls_calloc( 1, signature_size );
     TEST_ASSERT( signature != NULL );
 
