diff --git a/tests/suites/test_suite_pkcs12.function b/tests/suites/test_suite_pkcs12.function
index f2818fc..6d62ce8 100644
--- a/tests/suites/test_suite_pkcs12.function
+++ b/tests/suites/test_suite_pkcs12.function
@@ -15,7 +15,7 @@
  * END_DEPENDENCIES
  */
 
-/* BEGIN_CASE MBEDTLS_ASN1_PARSE_C*/
+/* BEGIN_CASE */
 void pkcs12_derive_key(int md_type, int key_size_arg,
                        data_t *password_arg, int password_usage,
                        data_t *salt_arg, int salt_usage,
@@ -45,7 +45,7 @@
 
     salt_len = salt_arg->len;
 
-    ASSERT_ALLOC(output_data, key_size);
+    TEST_CALLOC(output_data, key_size);
 
     int ret = mbedtls_pkcs12_derivation(output_data,
                                         key_size,
@@ -70,7 +70,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */
+/* BEGIN_CASE */
 void pkcs12_pbe_encrypt(int cipher, int md, data_t *params_hex, data_t *pw,
                         data_t *data, int ref_ret, data_t *ref_out)
 {
@@ -84,7 +84,7 @@
     MD_PSA_INIT();
 
     block_size = mbedtls_cipher_info_get_block_size(mbedtls_cipher_info_from_type(cipher_alg));
-    ASSERT_ALLOC(my_out, ((data->len/block_size) + 1) * block_size);
+    TEST_CALLOC(my_out, ((data->len/block_size) + 1) * block_size);
 
     pbe_params.tag = params_hex->x[0];
     pbe_params.len = params_hex->x[1];
@@ -104,7 +104,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */
+/* BEGIN_CASE */
 void pkcs12_pbe_decrypt(int cipher, int md, data_t *params_hex, data_t *pw,
                         data_t *data, int ref_ret, data_t *ref_out)
 {
@@ -116,7 +116,7 @@
 
     MD_PSA_INIT();
 
-    ASSERT_ALLOC(my_out, data->len);
+    TEST_CALLOC(my_out, data->len);
 
     pbe_params.tag = params_hex->x[0];
     pbe_params.len = params_hex->x[1];
