diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data
index d2fa842..501cbb7 100644
--- a/tests/suites/test_suite_psa_crypto.data
+++ b/tests/suites/test_suite_psa_crypto.data
@@ -7409,55 +7409,56 @@
 
 ECP group ID <-> PSA family - SECP192R1
 depends_on:PSA_WANT_ECC_SECP_R1_192
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP192R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP192R1:PSA_ECC_FAMILY_SECP_R1:192
 
 ECP group ID <-> PSA family - SECP224R1
 depends_on:PSA_WANT_ECC_SECP_R1_224
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP224R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP224R1:PSA_ECC_FAMILY_SECP_R1:224
 
 ECP group ID <-> PSA family - SECP256R1
 depends_on:PSA_WANT_ECC_SECP_R1_256
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP256R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP256R1:PSA_ECC_FAMILY_SECP_R1:256
 
 ECP group ID <-> PSA family - SECP384R1
 depends_on:PSA_WANT_ECC_SECP_R1_384
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP384R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP384R1:PSA_ECC_FAMILY_SECP_R1:384
 
 ECP group ID <-> PSA family - SECP521R1
 depends_on:PSA_WANT_ECC_SECP_R1_521
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP521R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP521R1:PSA_ECC_FAMILY_SECP_R1:521
 
 ECP group ID <-> PSA family - BP256R1
 depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256
-ecc_conversion_functions:MBEDTLS_ECP_DP_BP256R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_BP256R1:PSA_ECC_FAMILY_BRAINPOOL_P_R1:256
 
 ECP group ID <-> PSA family - BP384R1
 depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384
-ecc_conversion_functions:MBEDTLS_ECP_DP_BP384R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_BP384R1:PSA_ECC_FAMILY_BRAINPOOL_P_R1:384
 
 ECP group ID <-> PSA family - BP512R1
 depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512
-ecc_conversion_functions:MBEDTLS_ECP_DP_BP512R1
+ecc_conversion_functions:MBEDTLS_ECP_DP_BP512R1:PSA_ECC_FAMILY_BRAINPOOL_P_R1:512
 
 ECP group ID <-> PSA family - CURVE25519
 depends_on:PSA_WANT_ECC_MONTGOMERY_255
-ecc_conversion_functions:MBEDTLS_ECP_DP_CURVE25519
+ecc_conversion_functions:MBEDTLS_ECP_DP_CURVE25519:PSA_ECC_FAMILY_MONTGOMERY:255
 
 ECP group ID <-> PSA family - SECP192K1
 depends_on:PSA_WANT_ECC_SECP_K1_192
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP192K1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP192K1:PSA_ECC_FAMILY_SECP_K1:192
 
 ECP group ID <-> PSA family - SECP224K1
 depends_on:PSA_WANT_ECC_SECP_K1_224
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP224K1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP224K1:PSA_ECC_FAMILY_SECP_K1:224
 
 ECP group ID <-> PSA family - SECP256K1
 depends_on:PSA_WANT_ECC_SECP_K1_256
-ecc_conversion_functions:MBEDTLS_ECP_DP_SECP256K1
+ecc_conversion_functions:MBEDTLS_ECP_DP_SECP256K1:PSA_ECC_FAMILY_SECP_K1:256
 
 ECP group ID <-> PSA family - CURVE448
 depends_on:PSA_WANT_ECC_MONTGOMERY_448
-ecc_conversion_functions:MBEDTLS_ECP_DP_CURVE448
+ecc_conversion_functions:MBEDTLS_ECP_DP_CURVE448:PSA_ECC_FAMILY_MONTGOMERY:448
 
-ECP group ID <-> PSA family - fail
-ecc_conversion_functions_fail:
\ No newline at end of file
+ECP group ID <-> PSA family - Wrong values
+ecc_conversion_functions:MBEDTLS_ECP_DP_MAX:0:0
+
diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index a2d156d..ec8afe7 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -9481,30 +9481,22 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
-void ecc_conversion_functions(int grp_id_arg)
+/* BEGIN_CASE depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
+void ecc_conversion_functions(int grp_id_arg, int psa_family_arg, int bits_arg)
 {
     mbedtls_ecp_group_id grp_id = grp_id_arg;
-    psa_ecc_family_t ecc_family;
-    size_t bits;
+    psa_ecc_family_t ecc_family = psa_family_arg;
+    size_t bits = bits_arg;
+    size_t bits_tmp;
 
-    ecc_family = mbedtls_ecc_group_to_psa(grp_id, &bits);
-    TEST_ASSERT(ecc_family != 0);
-    TEST_EQUAL(grp_id, mbedtls_ecc_group_from_psa(ecc_family, bits));
-}
-/* END_CASE */
+    TEST_EQUAL(ecc_family, mbedtls_ecc_group_to_psa(grp_id, &bits_tmp));
+    TEST_EQUAL(bits, bits_tmp);
 
-/* BEGIN_CASE */
-void ecc_conversion_functions_fail(void)
-{
-    psa_ecc_family_t ecc_family;
-    size_t bits;
-
-    // Pick an invalid group ID (MBEDTLS_ECP_DP_CURVE448 is the last enum)
-    ecc_family = mbedtls_ecc_group_to_psa(MBEDTLS_ECP_DP_CURVE448 + 1, &bits);
-    TEST_EQUAL(ecc_family, 0);
-
-    TEST_EQUAL(MBEDTLS_ECP_DP_NONE, mbedtls_ecc_group_from_psa(PSA_ECC_FAMILY_SECP_R1, 0));
+    if (grp_id != MBEDTLS_ECP_DP_MAX) {
+        TEST_EQUAL(grp_id, mbedtls_ecc_group_from_psa(ecc_family, bits));
+    } else {
+        TEST_EQUAL(MBEDTLS_ECP_DP_NONE, mbedtls_ecc_group_from_psa(ecc_family, bits));
+    }
 }
 /* END_CASE */
 
