File tree Expand file tree Collapse file tree 3 files changed +41
-10
lines changed
Expand file tree Collapse file tree 3 files changed +41
-10
lines changed Original file line number Diff line number Diff line change @@ -488,11 +488,16 @@ config ESP32_BT_LE_CRYPTO_STACK_MBEDTLS
488488 bool "mbedTLS crypto stack"
489489 depends on ESP32_BT_LE_SECURITY_ENABLE
490490 default y
491- select MBEDTLS
492- select MBEDTLS_ECP_C
493- select MBEDTLS_ECP_DP_SECP256R1_ENABLED
494- select MBEDTLS_ECDH_C
495- select MBEDTLS_ENTROPY_C
491+ select PSA_CRYPTO
492+ select MBEDTLS_CTR_DRBG_C
493+ select PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
494+ select PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT
495+ select PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE
496+ select PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
497+ select PSA_WANT_ECC_SECP_R1_256
498+ select PSA_WANT_ALG_ECDH
499+ # Keep access to legacy crypto headers
500+ select MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
496501 help
497502 Use mbedTLS library for BLE cryptographic operations.
498503
Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ menuconfig WIFI_ESP32
1212 select NET_L2_ETHERNET_MGMT
1313 select WIFI_USE_NATIVE_NETWORKING
1414 select MBEDTLS
15+ # This is needed because some guards in TLS now require PSA crypto stuff
16+ # to be enabled
17+ select PSA_CRYPTO
1518 select THREAD_STACK_INFO
1619 select DYNAMIC_THREAD
1720 select DYNAMIC_THREAD_ALLOC
@@ -367,15 +370,19 @@ config ESP32_WIFI_SOFTAP_SUPPORT
367370
368371config ESP32_WIFI_MBEDTLS_CRYPTO
369372 bool "Use MbedTLS crypto APIs"
370- select MBEDTLS_ECP_C
371- select MBEDTLS_ECDH_C
372- select MBEDTLS_ECDSA_C
373+ select PSA_CRYPTO
374+ select PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
375+ select PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT
376+ select PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE
377+ select PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
378+ select PSA_WANT_ECC_SECP_R1_256
379+ select PSA_WANT_ALG_ECDH
380+ select PSA_WANT_ALG_ECDSA
381+ select PSA_WANT_ALG_CMAC
373382 select MBEDTLS_PKCS5_C
374383 select MBEDTLS_MD_C
375384 select MBEDTLS_PK_WRITE_C
376385 select MBEDTLS_CIPHER_MODE_CTR_ENABLED
377- select MBEDTLS_CMAC
378- select MBEDTLS_ENTROPY_C
379386 help
380387 Select this option to use MbedTLS crypto APIs which utilize hardware acceleration.
381388
Original file line number Diff line number Diff line change @@ -67,6 +67,25 @@ if(CONFIG_MBEDTLS)
6767 set (MBEDTLS_EXPORT_REMOVED_HEADERS ON )
6868 endif ()
6969
70+ # == DIRTY FIX ==
71+ # This is required because ESP32 drivers for BT and WiFi still rely on legacy
72+ # crypto.
73+ if (CONFIG_ESP32_BT_LE_CRYPTO_STACK_MBEDTLS OR CONFIG_ESP32_WIFI_MBEDTLS_CRYPTO)
74+ target_sources (builtin PRIVATE ${ZEPHYR_MBEDTLS_MODULE_DIR} /tf-psa-crypto/removed/ecdh.c)
75+ target_include_directories (builtin PRIVATE ${ZEPHYR_MBEDTLS_MODULE_DIR} /tf-psa-crypto/removed)
76+ target_compile_definitions (builtin PRIVATE
77+ # Setting legacy build symbols is not allowed so we need to set this
78+ # to bypass the check.
79+ -DTF_PSA_CRYPTO_CONFIG_CHECK_BYPASS
80+ -DMBEDTLS_ENTROPY_C
81+ -DMBEDTLS_BIGNUM_C
82+ -DMBEDTLS_ECP_C
83+ -DMBEDTLS_ECDH_C
84+ -DMBEDTLS_ECP_DP_SECP256R1_ENABLED
85+ )
86+ set (MBEDTLS_EXPORT_REMOVED_HEADERS ON )
87+ endif ()
88+
7089 # Linking to "zephyr_interface" doesn't work in these case because these
7190 # are object libraries so properties are NOT propagated. We need to
7291 # explicitly do this.
You can’t perform that action at this time.
0 commit comments