diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 7cf4153b11..feb2054902 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -3201,6 +3201,9 @@ * \deprecated This feature is deprecated. Please switch to the PSA driver * interface. * + * \warning This feature is not thread-safe, and should not be used in a + * multi-threaded environment. + * * Module: library/psa_crypto_se.c * * Requires: MBEDTLS_PSA_CRYPTO_C, MBEDTLS_PSA_CRYPTO_STORAGE_C diff --git a/library/psa_crypto_storage.h b/library/psa_crypto_storage.h index f1ea265b42..d7f5b18953 100644 --- a/library/psa_crypto_storage.h +++ b/library/psa_crypto_storage.h @@ -231,8 +231,9 @@ typedef uint16_t psa_crypto_transaction_type_t; * This type is designed to be serialized by writing the memory representation * and reading it back on the same device. * - * \note The transaction mechanism is designed for a single active transaction - * at a time. The transaction object is #psa_crypto_transaction. + * \note The transaction mechanism is not thread-safe. There can only be one + * single active transaction at a time. + * The transaction object is #psa_crypto_transaction. * * \note If an API call starts a transaction, it must complete this transaction * before returning to the application. diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 467ff8e7cf..2f18858d1b 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2220,6 +2220,9 @@ component_test_tsan () { # Self-tests do not currently use multiple threads. scripts/config.py unset MBEDTLS_SELF_TEST + # The deprecated MBEDTLS_PSA_CRYPTO_SE_C interface is not thread safe. + scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C + CC=clang cmake -D CMAKE_BUILD_TYPE:String=TSan . make