Commit Graph
93 Commits
Author SHA1 Message Date
Harshal Patil e6b038e7dc test(esp_tee): size the oversized-AEAD test buffer to the length it claims
The TEE checks REE buffer bounds before input length, so claiming 4097
bytes of a 31-byte buffer returned INVALID_ARG or INVALID_SIZE by layout.
2026-09-23 10:03:18 +05:30
Laukik Hase c7f74fd751 change(esp_tee): Limit the TEE secure storage AEAD operation input buffer length 2026-09-04 10:23:25 +05:30
Laukik Hase a4d6b802a7 feat(esp_tee): Disable the MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS option for TEE build 2026-09-04 10:23:25 +05:30
Laukik Hase e5c3063dee fix(esp_tee): Snapshot input arguments in TEE memory before secure service execution
- Also fix the `tee_cli_app` build failure due to TEE heap size overflow
2026-09-04 10:23:25 +05:30
Laukik Hase e9cd262217 change(esp_tee): Force non-deterministic ECDSA signing for TEE secure storage keys 2026-09-04 10:23:24 +05:30
Laukik Hase e01f93eec4 fix(esp_tee): Reject re-entrant secure service calls from the REE 2026-09-04 10:23:23 +05:30
Laukik Hase b85a7b0e14 fix(esp_tee): Validate the stack pointer at the privilege switch boundary 2026-08-04 12:11:42 +05:30
Laukik Hase 4c8ee351b7 ci(esp_tee): Fix tee_cli_app build failure due to heap size overflow 2026-07-28 14:53:35 +08:00
Laukik Hase 3fd876dffa feat(esp_tee): Restrict REE access to TEE-owned secure storage keys 2026-07-17 18:15:37 +05:30
Laukik Hase bef71a9724 ci(esp_tee): Fix tee_cli_app build failure due to heap size overflow
- Also fix the `unused variable` warning while builing the PSA
  AES tests with `tee_test_fw` app
2026-07-10 10:57:24 +05:30
Mahavir Jain ce7b803aac Merge branch 'fix/esp_tee_heap_poison_v6.0' into 'release/v6.0'
fix(esp_tee): Prevent TEE from dispatching the REE heap poisoning callback (v6.0)

See merge request espressif/esp-idf!49911
2026-06-29 11:21:31 +05:30
Mahavir Jain 732111f75a Merge branch 'feat/esp_tee_backports_v6.0' into 'release/v6.0'
feat(esp_tee): Feature/fixes backports to `release/v6.0`

See merge request espressif/esp-idf!48486
2026-06-29 11:21:13 +05:30
Laukik Hase 9ce63d8dfa fix(esp_tee): Add additional input validation checks for TEE service calls 2026-06-26 17:59:26 +05:30
harshal.patil 5ed711bc06 fix(esp_common/esp_fault): make ESP_FAULT_ASSERT survive optimization
ESP_FAULT_ASSERT(C) was silently deleted by the optimizer when C is a cached
flag/status already proven by a preceding `if (!C) return/goto`: the compiler
folds C to a constant and drops all three checks, removing the fault-injection
protection with no warning.
2026-06-18 19:41:56 +05:30
Laukik Hase 61b88163be ci(esp_tee): Add test-case for verifying the TEE Secure Storage encryption 2026-06-12 10:04:07 +05:30
Laukik Hase 93466c1fd3 feat(esp_tee): Add some required fields in the attestation token
- Chip ID from the ROM
- Device MAC address from eFuse BLK1
- Device Optional Unique ID from eFuse BLK2
2026-06-12 10:04:06 +05:30
Laukik Hase 6bd173b806 ci(esp_tee): Fix TEE test-suite failures with Secure Boot enabled 2026-06-12 10:04:04 +05:30
Laukik Hase 140e1ae1f3 ci(esp_tee): Removed common_components dependency from ESP-TEE test-apps 2026-06-12 10:03:02 +05:30
Aditya Patwardhan 94be07050f change(secure_boot): mark ECDSA based Secure Boot V2 as insecure on affected SoCs
ECDSA based Secure Boot V2 is not functional for certain input vectors on
ESP32-C5/C61/H2/P4 and on the preview targets ESP32-H4/H21. RSA based Secure
Boot V2 is the recommended scheme where the SoC supports it. This issue will be
fixed in a future hardware ECO revision; more details will be shared through the
hardware errata document.

A new hidden Kconfig option SECURE_BOOT_V2_ECDSA_INSECURE marks the affected
mass-production SoCs (ESP32-C5/C61/H2/P4). On these SoCs, when hardware Secure
Boot V2 is enabled, the ECDSA (V2) signing scheme is no longer offered by
default; it must be turned on explicitly via SECURE_BOOT_V2_FORCE_ENABLE_ECDSA
under "Allow potentially insecure options" (CONFIG_SECURE_BOOT_INSECURE). App
signing without hardware Secure Boot is not affected. Note that ESP32-C61 has no
RSA based Secure Boot V2, so it has no Secure Boot scheme enabled by default.

The preview targets ESP32-H4 and ESP32-H21 mark ECDSA Secure Boot V2 as not
supported in their SoC capabilities instead of using the option above. As
ESP32-H4 has no other Secure Boot V2 scheme, Secure Boot is disabled entirely on
it; ESP32-H21 retains RSA based Secure Boot V2.

The security documentation keeps the ECDSA Secure Boot V2 content visible and
adds a warning describing the limitation (including that ECDSA Secure Boot V2 on
ESP32-C61 is not recommended for production). CI apps that exercise ECDSA Secure
Boot V2 on the affected SoCs set CONFIG_SECURE_BOOT_V2_FORCE_ENABLE_ECDSA
accordingly.
2026-06-10 18:06:48 +05:30
harshal.patil 513efdf89a refactor(mbedtls/test): Move the mbedtls test app to support multiple test apps 2026-05-15 09:28:42 +05:30
Laukik Hase 440a5d1906 change(esp_tee): Move the internal memory secure service call table to IRAM
- Using PMA, the TEE IRAM is marked as R/X while TEE DRAM is marked as R/W.
  Moving the internal memory secure service call table from DRAM to IRAM
  makes it immutable.
2026-04-17 17:33:11 +05:30
Laukik Hase 7867f4a575 fix(esp_tee): Add missing input validation checks for TEE service calls
- MULTI_HEAP_ASSERT for TEE now aborts on failure, instead of ignoring the condition
- Prevent potential TEE OTA write bounds overflow
2026-04-08 14:05:28 +05:30
Laukik Hase 83e2777a3b feat(esp_tee): Miscellaneous fixes and improvements
- Fix intermittent TEE stack underflow test failures
- Fix out-of-bounds access Coverity report from the attestation
  component
- Add appropriate checks and asserts for TEE flash memory regions'
  sizes
2026-03-20 10:54:14 +05:30
Fu Hanxi 84d80dd37d tests: change wifi tests expect timeout to 60
- wifi_router
- wifi_ap
- wifi_high_traffic
2026-03-12 15:59:26 +08:00
Mahavir Jain ad25b61af6 Merge branch 'fix/externsive_mbedtls_aes_sha_tests_v6.0' into 'release/v6.0'
Re-introduce the extensive mbedtls AES and SHA tests (v6.0)

See merge request espressif/esp-idf!45591
2026-02-12 09:49:09 +05:30
Laukik Hase 68d31180f0 fix(esp_tee): Prevent IV reuse in the TEE secure storage AES-GCM service 2026-02-11 12:29:52 +05:30
harshal.patil 91c3738e81 test(mbedtls): Re-introduce the extensive AES, AES-GCM and the SHA tests
- Also extend the PSRAM encryption test to ESP32-S3
2026-02-03 13:04:32 +05:30
harshal.patil a9598b3304 feat(esp_tee): Support deterministic ECDSA signatures for ESP-TEE based keys 2026-01-31 10:59:16 +05:30
harshal.patil 5c55790f54 feat(mbedtls/ecdsa): Introduce PSA ECDSA driver 2026-01-31 10:59:11 +05:30
Laukik Hase a6d39908f7 fix(esp_tee): Fix TEE attestation stack protection fault with secure boot enabled
- Increased the TEE stack when secure boot is enabled
- Also, generate a build error when the generated TEE binary image size is
  greater than the TEE partition size
2026-01-29 11:49:17 +05:30
Laukik Hase f18697b544 refactor(esp_tee): Remove support for ECDSA secp192r1 keys in TEE secure storage 2026-01-29 11:49:16 +05:30
Laukik Hase b470f08c94 refactor(esp_tee): Update TEE attestation tests and examples to use the PSA interface 2026-01-29 11:49:16 +05:30
Laukik Hase d826448fd0 ci(esp_tee): Optimize the TEE pytest script 2026-01-29 11:49:15 +05:30
Laukik Hase 304adb120b refactor(esp_tee): Adopt Picolibc as the default LibC for ESP-TEE build
- Also fixed an issue where NewLib ROM APIs, when called from TEE, were
  using the syscall table located in the REE SRAM. This could be abused
  as an attack vector to invoke illegal functions from the TEE.
  To prevent this, the syscall table is now switched to the TEE-specific
  copy during every M-U mode transition.
2026-01-29 11:49:15 +05:30
Laukik Hase 421246323a feat(esp_tee): Add support for the RISC-V H/W stack guard mechanism 2026-01-29 11:49:14 +05:30
Laukik Hase 39f392f943 feat(esp_tee): Support ECDSA secp384r1 keys in TEE secure storage 2026-01-29 11:49:13 +05:30
Ashish Sharma 5d5ba9d008 fix: migrate PSA SHA driver to be similar to parallel engine port 2025-12-19 11:06:41 +08:00
Ashish Sharma 76287081ea feat: code cleanup 2025-12-19 07:29:43 +08:00
Ashish Sharma aa88c81dfb fix(wpa_supplicant): revert changes to dpp_crypto 2025-12-19 07:29:08 +08:00
Ashish Sharma f306dbea84 feat(mbedtls): migrates ESP-TEE with PSA APIs 2025-12-19 07:28:33 +08:00
Jiang Jiang Jian ee4be1af57 Merge branch 'feat/flash_enc_using_key_manager_v6.0' into 'release/v6.0'
Support Flash Encryption using Key Manager (v6.0)

See merge request espressif/esp-idf!43459
2025-11-24 10:35:48 +08:00
harshal.patil 792c93c597 change(mbedtls): Generalize key source union for the hardware ECDSA context 2025-11-20 11:37:07 +05:30
Laukik Hase 01f5050f6f ci(esp_tee): Enable the TEE examples for ESP32-C61 2025-11-20 11:01:29 +05:30
Laukik Hase 46de215007 ci(esp_tee): Enable the TEE test-apps for ESP32-C61 2025-11-19 10:57:43 +05:30
Laukik Hase 2394e9451d feat(esp_tee): Support for ESP32-C61 - the esp_tee component 2025-11-19 10:57:42 +05:30
Laukik Hase f20351eb3b fix(esp_tee): Use HAL APIs instead of ROM APIs for SPI flash service calls
Currently, REE SPI flash HAL operations are routed as service calls to TEE,
but the TEE implementation incorrectly uses ROM APIs instead of HAL APIs.
This leads to issues and is not the recommended approach.
2025-11-13 15:38:12 +05:30
Laukik Hase 73b6e718f2 ci(esp_tee): Remove incorrect error checks for TEE flash protection tests
- Also fixed coverity issue from TEE secure storage
2025-11-06 17:19:56 +05:30
Laukik Hase 9de1d631b4 feat(esp_tee): Reclaim unused TEE IRAM memory as heap
- Changed the default TEE code placement to use the flash
  text section instead of IRAM text, making it consistent
  with the default data placement.
2025-10-15 18:22:44 +05:30
Laukik Hase 20344640e3 fix(esp_tee): Split TEE SRAM as I/DRAM for ESP32-C5 with PMA 2025-10-15 18:22:43 +05:30
Laukik Hase 6e51fac96e Merge branch 'fix/esp_tee_flash_op_bound_checks' into 'master'
fix(esp_tee): Correct flash operation bound checks to handle all overlap cases

Closes IDF-14129

See merge request espressif/esp-idf!41946
2025-10-13 13:31:03 +05:30