diff --git a/include/mbedtls/pk.h b/include/mbedtls/pk.h
index 6447a15..20be7e6 100644
--- a/include/mbedtls/pk.h
+++ b/include/mbedtls/pk.h
@@ -390,7 +390,7 @@
                             const mbedtls_svc_key_id_t key);
 #endif /* MBEDTLS_USE_PSA_CRYPTO */
 
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+#if defined(MBEDTLS_PSA_CRYPTO_C)
 /**
  * \brief           Create a PK context starting from a key stored in PSA.
  *                  This key:
@@ -429,7 +429,7 @@
  *                  parameters are not correct.
  */
 int mbedtls_pk_copy_from_psa(mbedtls_svc_key_id_t key_id, mbedtls_pk_context *pk);
-#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
+#endif /* MBEDTLS_PSA_CRYPTO_C */
 
 #if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
 /**
diff --git a/library/pk.c b/library/pk.c
index ffe350e..2c0ef68 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -27,7 +27,7 @@
 #include "mbedtls/ecdsa.h"
 #endif
 
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+#if defined(MBEDTLS_PSA_CRYPTO_C)
 #include "psa_util_internal.h"
 #include "mbedtls/psa_util.h"
 #endif
@@ -1378,7 +1378,7 @@
     return ctx->pk_info->type;
 }
 
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+#if defined(MBEDTLS_PSA_CRYPTO_C)
 int mbedtls_pk_copy_from_psa(mbedtls_svc_key_id_t key_id, mbedtls_pk_context *pk)
 {
     psa_status_t status;
@@ -1502,6 +1502,6 @@
 
     return ret;
 }
-#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
+#endif /* MBEDTLS_PSA_CRYPTO_C */
 
 #endif /* MBEDTLS_PK_C */
diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index 3710e3d..1521008 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -426,7 +426,7 @@
 }
 #endif
 
-#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+#if defined(MBEDTLS_PSA_CRYPTO_C)
 mbedtls_svc_key_id_t pk_psa_pub_key_from_priv(mbedtls_svc_key_id_t priv_id,
                                               psa_key_type_t type, psa_key_usage_t usage,
                                               psa_algorithm_t alg, size_t bits)
@@ -515,7 +515,7 @@
 
     return key;
 }
-#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
+#endif /* MBEDTLS_PSA_CRYPTO_C */
 /* END_HEADER */
 
 /* BEGIN_DEPENDENCIES
@@ -2245,7 +2245,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_CLIENT*/
+/* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C*/
 void pk_copy_from_psa_fail(void)
 {
     mbedtls_pk_context pk_ctx;
@@ -2323,7 +2323,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_CLIENT*/
+/* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C*/
 void pk_copy_from_psa_success(data_t *priv_key_data, int key_type_arg,
                               int key_bits_arg, int key_usage_arg,
                               int key_alg_arg)
