diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h
index 3f2937a..37af264 100644
--- a/include/mbedtls/mbedtls_config.h
+++ b/include/mbedtls/mbedtls_config.h
@@ -1469,20 +1469,24 @@
 //#define MBEDTLS_PSA_INJECT_ENTROPY
 
 /**
- * \def MBEDTLS_PSA_COPY_CALLER_BUFFERS
+ * \def MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
  *
- * Make local copies of buffers supplied by the callers of PSA functions.
+ * Assume all buffers passed to PSA functions are owned exclusively by the
+ * PSA function and are not stored in shared memory.
  *
- * This should be enabled whenever caller-supplied buffers are owned by
- * an untrusted party, for example where arguments to PSA calls are passed
+ * This option may be enabled if all buffers passed to any PSA function reside
+ * in memory that is accessible only to the PSA function during its execution.
+ *
+ * This option MUST be disabled whenever buffer arguments are in memory shared
+ * with an untrusted party, for example where arguments to PSA calls are passed
  * across a trust boundary.
  *
- * \note Enabling this option increases memory usage and code size.
+ * \note Enabling this option reduces memory usage and code size.
  *
- * \note Disabling this option causes overlap of input and output buffers
+ * \note Enabling this option causes overlap of input and output buffers
  *       not to be supported by PSA functions.
  */
-#define MBEDTLS_PSA_COPY_CALLER_BUFFERS
+//#define MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
 
 /**
  * \def MBEDTLS_RSA_NO_CRT
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 5ba94c4..e187560 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -105,7 +105,7 @@
     if (global_data.initialized == 0)  \
     return PSA_ERROR_BAD_STATE;
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 
 /* Declare a local copy of an input buffer and a variable that will be used
  * to store a pointer to the start of the buffer.
@@ -201,7 +201,7 @@
             status = local_output_status; \
         } \
     } while (0)
-#else /* MBEDTLS_PSA_COPY_CALLER_BUFFERS */
+#else /* !MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS */
 #define LOCAL_INPUT_DECLARE(input, input_copy_name) \
     const uint8_t *input_copy_name = NULL;
 #define LOCAL_INPUT_ALLOC(input, length, input_copy) \
@@ -214,7 +214,7 @@
     output_copy = output;
 #define LOCAL_OUTPUT_FREE(output, output_copy) \
     output_copy = NULL;
-#endif /* MBEDTLS_PSA_COPY_CALLER_BUFFERS */
+#endif /* !MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS */
 
 
 int psa_can_do_hash(psa_algorithm_t hash_alg)
@@ -1447,7 +1447,7 @@
                                            slot->key.data, slot->key.bytes,
                                            data, data_size, data_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     unlock_status = psa_unregister_read_under_mutex(slot);
@@ -2315,7 +2315,7 @@
     LOCAL_OUTPUT_ALLOC(hash_external, hash_size, hash);
     status = psa_hash_finish_internal(operation, hash, hash_size, hash_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_OUTPUT_FREE(hash_external, hash);
@@ -2378,7 +2378,7 @@
     status = psa_driver_wrapper_hash_compute(alg, input, input_length,
                                              hash, hash_size, hash_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(input_external, input);
@@ -2615,7 +2615,7 @@
         psa_mac_abort(operation);
     }
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(input_external, input);
@@ -2794,7 +2794,7 @@
                                       input, input_length,
                                       mac, mac_size, mac_length, 1);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(input_external, input);
@@ -3033,7 +3033,7 @@
     status = psa_sign_internal(key, 1, alg, input, input_length, signature,
                                signature_size, signature_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(input_external, input);
@@ -3091,7 +3091,7 @@
     status = psa_verify_internal(key, 1, alg, input, input_length, signature,
                                  signature_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(input_external, input);
@@ -3165,7 +3165,7 @@
     status = psa_sign_internal(key, 0, alg, hash, hash_length, signature,
                                signature_size, signature_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(hash_external, hash);
@@ -3237,7 +3237,7 @@
     status = psa_verify_internal(key, 0, alg, hash, hash_length, signature,
                                  signature_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(hash_external, hash);
@@ -3618,7 +3618,7 @@
                                                   slot->key.bytes,
                                                   alg, hash, hash_length,
                                                   signature, signature_length);
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
 
@@ -5036,7 +5036,7 @@
     status = psa_aead_set_nonce_internal(operation, nonce, nonce_length);
 
 /* Exit label is only needed for buffer copying, prevent unused warnings. */
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
 
@@ -7337,7 +7337,7 @@
     status = psa_key_derivation_input_internal(operation, step,
                                                PSA_KEY_TYPE_NONE,
                                                data, data_length);
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_INPUT_FREE(data_external, data);
@@ -7527,7 +7527,7 @@
                                         slot,
                                         peer_key, peer_key_length);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     if (status != PSA_SUCCESS) {
@@ -7699,7 +7699,7 @@
 
     status = psa_generate_random_internal(output, output_size);
 
-#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
+#if !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS)
 exit:
 #endif
     LOCAL_OUTPUT_FREE(output_external, output);
diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh
index 66bba9c..667f850 100755
--- a/tests/scripts/all.sh
+++ b/tests/scripts/all.sh
@@ -1260,14 +1260,14 @@
     make test
 }
 
-component_test_no_psa_copy_caller_buffers () {
-    msg "build: full config - MBEDTLS_PSA_COPY_CALLER_BUFFERS, cmake, gcc, ASan"
+component_test_psa_assume_exclusive_buffers () {
+    msg "build: full config + MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS, cmake, gcc, ASan"
     scripts/config.py full
-    scripts/config.py unset MBEDTLS_PSA_COPY_CALLER_BUFFERS
+    scripts/config.py set MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
     CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
     make
 
-    msg "test: full config - MBEDTLS_PSA_COPY_CALLER_BUFFERS, cmake, gcc, ASan"
+    msg "test: full config + MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS, cmake, gcc, ASan"
     make test
 }
 
diff --git a/tests/src/helpers.c b/tests/src/helpers.c
index be9155c..065d17d 100644
--- a/tests/src/helpers.c
+++ b/tests/src/helpers.c
@@ -318,7 +318,7 @@
     int ret = 0;
 
 #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C) \
-    && defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) \
+    && !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS) \
     && defined(MBEDTLS_TEST_MEMORY_CAN_POISON)
     mbedtls_poison_test_hooks_setup();
 #endif
@@ -348,7 +348,7 @@
 void mbedtls_test_platform_teardown(void)
 {
 #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C) \
-    && defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) \
+    && !defined(MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS) \
     &&  defined(MBEDTLS_TEST_MEMORY_CAN_POISON)
     mbedtls_poison_test_hooks_teardown();
 #endif
