Commit Graph
104 Commits
Author SHA1 Message Date
Ashish Sharma 6a693e6fbb fix(esp-tls): correct return codes and harden TLS 1.3 ticket handling 2026-08-19 11:45:28 +08:00
Aditya Patwardhan 9dc17f98b0 Merge branch 'backport/44987_v6.1' into 'release/v6.1'
feat(esp-tls): Added a PSA driver for Secure Element (backport v6.1)

See merge request espressif/esp-idf!50334
2026-07-16 15:37:49 +05:30
Aditya Patwardhan 3e6429e881 fix(esp-tls): Keep deprecated use_secure_element field for compatibility
Restore the use_secure_element field in esp_tls_cfg_t, esp_tls_cfg_server_t
and httpd_ssl_config_t, and esp_transport_ssl_use_secure_element(), as
deprecated no-ops so that existing code keeps compiling. Setting them now
fails at runtime with ESP_ERR_NOT_SUPPORTED, as the feature is accessed
via the esp_key_config_t interface. To be removed in the next major release.

No compile-time deprecation attribute on this release branch; the field and
function stay warning-free here and carry only documentation notes.
2026-07-15 15:34:17 +05:30
Ashish Sharma 5d299793cf fix(esp-tls): guard against NULL PSK hint to prevent crash 2026-07-03 11:36:11 +08:00
Aditya Patwardhan 49d1a84c0b docs(esp-tls): clarify caller owns the PSA key in esp_key_config_t
(cherry picked from commit ed6f697ea8)
2026-07-02 11:41:49 +05:30
Aditya Patwardhan 626725749a fix(esp-tls): track opaque PSA key ownership and cover the secure-element path
Replace the key-lifetime check with explicit ownership tracking so a
caller-supplied volatile PSA key is also preserved on cleanup, and drop the
DS/HARDWARE_ECDSA compile guard so the ESP_KEY_SOURCE_PSA path is released on
pure secure-element builds.

(cherry picked from commit 7cdd0b5960)
2026-07-02 11:41:49 +05:30
Mike Szczys 1a68c431a0 fix(esp-tls): only destroy volatile keys in DS/ECDSA cleanup
The DS/ECDSA cleanup added in 8cb64703 is intended for volatile PSA keys
created internally by the DS and ECDSA peripheral paths. Ensure that
during the cleanup, PSA_KEY_LIFETIME_IS_VOLATILE() is checked to avoid
destroying keys the user has added persistently to PSA.

This resolves an issue in the next commit (adding support for
clientkey_psa_id) where a user passes a PSA key id that is then silently
destroyed if CONFIG_ESP_TLS_USE_DS_PERIPHERAL or
CONFIG_MBEDTLS_HARDWARE_ECDSA_SIGN happen to be defined.

Signed-off-by: Mike Szczys <michael.szczys@canonical.com>
(cherry picked from commit da51d69013)
(cherry picked from commit f68cfbf8d4)
2026-07-02 11:41:49 +05:30
Aditya Patwardhan 89af3ad342 fix(esp-tls): call mbedtls_pk_init before mbedtls_pk_wrap_psa in PSA key paths
Per mbedTLS API contract, mbedtls_pk_context must be explicitly initialized
with mbedtls_pk_init() before calling mbedtls_pk_wrap_psa(). Add the missing
init calls for both the server_key and client_key PSA-backed key code paths.

(cherry picked from commit 005072c87e)
2026-07-02 11:41:49 +05:30
Aditya Patwardhan 72b2e4f4fd fix(esp-tls): address MR review comments for SE PSA driver
- esp_tls_mbedtls: require cert when PSA-backed server/client key is set
- esp_tls_mbedtls: drop redundant pk_init/x509_crt_init (calloc handles it)
- psa SE driver: copy callbacks/opaque_key by value (no lifetime coupling)
- psa SE driver: replace atomic CAS with simple null check on register
- psa SE driver: use sig_len from sign callback with bounds validation
- psa SE driver: validate pubkey_len returned by export_pubkey callback
- psa SE driver: check hash sub-alg in RSA PKCS1V15 branch of validate_request
- psa SE driver: align secure_element_register_callbacks doc with value-copy impl
- esp_https_server: initialize server_key in HTTPD_SSL_CONFIG_DEFAULT
- mbedtls: move SECURE_ELEMENT_DRIVER_ENABLED to esp_config.h for parity
  with ESP_ECDSA_DRIVER_ENABLED; drop target_compile_definitions
- docs: fix esp_tls_cfg_t -> esp_http_client_config_t cross-reference
- docs: check psa_import_key() status in ESP-TLS PSA example
- hints/error_output: point at CONFIG_MBEDTLS_SECURE_ELEMENT_DRIVER_ENABLED

(cherry picked from commit 08b567ef3b)
2026-07-02 11:41:49 +05:30
Aditya Patwardhan 2325a727d8 feat(esp-tls): Add unified private key interface via esp_key_config_t
Add ESP_KEY_SOURCE_BUFFER and ESP_KEY_SOURCE_PSA key sources so all
hardware backends (DS, ECDSA, secure element) are accessed via PSA
key IDs through a single esp_tls_cfg_t.client_key field.

(cherry picked from commit 36090b7161)
2026-07-02 11:41:48 +05:30
Ashish Sharma 1eabc57dc3 fix(esp-tls): fixes DS peripheral use case with tf-psa-crypto 1.1 2026-06-05 17:32:09 +08:00
Aditya Patwardhan 2ce0474246 fix(esp-tls): clarify skip_common_name and warn when SNI is disabled
The skip_common_name flag was named for the legacy CN field but actually
suppresses the entire mbedtls_ssl_set_hostname() call -- disabling
hostname matching against CN/SAN AND Server Name Indication. Update the
doxygen to describe the real effect, and emit a per-call WARN inside the
SNI-disable branch so debug-only use does not slip into production
unnoticed.
2026-05-26 19:12:09 +05:30
Aditya Patwardhan 378dcb5640 fix(esp-tls): close CA-verification bypass during session resumption
The session-resumption else-if in set_client_config() short-circuited
the CA verification chain when only client_session was supplied. Remove
the branch so session-only configs fall through to the normal error /
skip-verify path; resumption no longer silently disables CA validation.
2026-05-26 19:12:09 +05:30
Ashish Sharma 306639c690 fix(esp-tls): replace deprecated pk_ctx with PSA equivalent 2026-04-30 18:02:06 +08:00
Ashish Sharma 25c0c9da24 fix(esp_tls): check tls connection finished before read/write operation 2026-04-09 14:09:31 +08:00
harshal.patil 48e7d44ce1 fix(esp-tls): Remove the legacy use_km_key option 2026-03-20 11:15:23 +05:30
harshal.patil b5550281b9 change(mbedtls): Change the ESP-DS-RSA key lifetime name to include the VOLATILE keyword 2026-03-06 15:00:38 +05:30
harshal.patil aa63487d9f feat(mbedtls/esp_rsa_ds): Introduce ESP-RSA DS opaque key context 2026-03-03 18:36:18 +05:30
Ashish Sharma b3e1c03d97 fix(mbedtls): revert struct member name change esp_rsa_ds_data to esp_ds_data 2026-02-06 17:33:17 +08:00
Ashish Sharma 6f5b078ed6 feat: adds DS Sign capabilities for ESP32S2 2026-02-05 10:12:25 +08:00
Ashish Sharma e06a7dd791 feat: adds new Kconfig variable for DS peripheral 2026-02-05 10:12:25 +08:00
Ashish Sharma 1d185a6548 feat: adds PSA DS driver support 2026-02-05 10:12:25 +08:00
harshal.patil e9ea55bea2 feat(mbedtls/ecdsa): Introduce PSA ECDSA driver 2026-01-19 09:14:37 +05:30
Ashish Sharma cca2a54624 feat: migrates esp-tls to PSA APIs 2025-12-30 09:31:49 +05:30
0xFEEDC0DE64 5b56b00ac8 feat(esp_http_server): Allow the https server to request client certs optionally
Closes https://github.com/espressif/esp-idf/pull/17641
2025-10-27 14:19:17 +08:00
Ashish Sharma 62f852a93b feat(esp_tls): supports setting tls version and ciphersuite in server config
Closes https://github.com/espressif/esp-idf/issues/17660
2025-10-03 15:19:41 +08:00
Ashish Sharma 9cb348789c fix(esp_tls): limit ret code from esp_mbedtls_handshake 2025-09-24 09:36:38 +08:00
nilesh.kale 54d97fdac1 fix(esp-tls): removed unncessary log for certificate verification
This commit removed unnecessary and confusing log for
certificate verify if there is another issue during tls connection.
2025-09-17 13:04:16 +08:00
nilesh.kale 421b9abd0d fix(esp-tls): added missing event tracker capture during mbedtls read operation
This commit fixed missing event tracker capture and
added new error code ESP_ERR_MBEDTLS_SSL_READ_FAILED.

Closes https://github.com/espressif/esp-idf/issues/16239
2025-09-17 13:04:16 +08:00
hrushikesh.bhosale bf7dc18bd6 fix(esp_tls): Fixed build failure for sbv2 ecdsa
Made ESP_TLS_ECDSA_CURVE_SECP384R1 under SOC CAP.
2025-09-09 16:01:04 +05:30
Alexey Lapshin 28ced4efad fix(config): actualize newlib Kconfig options 2025-08-28 12:25:09 +08:00
nilesh.kale dedc9889de feat: added config member to store block number for hign part of ecdsa key 2025-08-11 16:01:10 +05:30
nilesh.kale 08e781c876 feat: added new config member to provide ecdsa curve type 2025-08-11 16:01:09 +05:30
nilesh.kale 68f06a94bd feat: add ecdsa-p384 testcases and relative support for ESP32C5 ECO2
This commit adds testcases in crypto/hal and mbedtls testapps.
2025-08-11 16:01:01 +05:30
Ashish Sharma 466a365a02 feat(mbedtls): adds support for RSA decryption with DS peripheral 2025-07-07 13:32:06 +08:00
Mahavir Jain a8bf745f23 Merge branch 'feat/adding_different_strategy_to_perform_tls_using_dynamic_feature' into 'master'
Add configuration to control dynamic buffer strategy in mbedtls

Closes IDF-12591

See merge request espressif/esp-idf!39469
2025-06-12 09:52:35 +05:30
hrushikesh.bhosale 5928a87aa7 feat(mbedtls): Add configuration to control dynamic buffer strategy in mbedtls
Problem:
1. In low-memory scenarios, the dynamic buffer feature can fail due to memory fragmentation.
2. It requires a contiguous 16KB heap chunk, but continuous allocation and deallocation of
the RX buffer can lead to fragmentation.
3. If another component allocates memory between these operations, it can break up the
available 16KB block, causing allocation failure.

Solution:
1. Introduce configurable strategy for using dynamic buffers in TLS connections.
2. For example, convert RX buffers to static after the TLS handshake.
3. Allow users to select the strategy via a new field in the esp_http_client_cfg_t structure.
4. The strategy can be controlled independently for each TLS session.
2025-06-05 12:43:47 +05:30
Ashish Sharma 2ef09a7952 fix(esp_tls): fix failing build with TLS1.3 only and dynamic buffer 2025-06-02 09:14:03 +08:00
Ashish Sharma 415e0f3c86 feat(mbedtls): add support for dynamic buffer for TLS1.3
Closes https://github.com/espressif/esp-idf/issues/15448
2025-04-24 12:05:36 +08:00
Ashish Sharma 0291bee0ff feat(mbedtls): update to version 3.6.3 2025-03-28 13:03:12 +08:00
Aditya Patwardhan d31654da96 fix(esp-tls): Fixed the server session create API
Added the option to define tls_handshake_timeout value
    for the esp_tls_server_session_create API.
    At the moment, the API gets stuck infinitely if
    the handshake is blocked on recieving more data
    and the peer connection has closed due to some issue.

    Closes https://github.com/espressif/esp-idf/issues/14999
2025-02-18 14:46:33 +05:30
Aditya Patwardhan f9d64d4db8 feat(esp-tls): Update support for asynchronous server session create
Closes https://github.com/espressif/esp-idf/pull/14493
2024-11-29 17:04:31 +05:30
thetek42 d97e435af9 fix: make esp_tls_server_session_create async compatible 2024-11-29 17:04:31 +05:30
David Cermak 7801d118d4 fix(esp_tls): PSK available in headers only if enabled in Kconfig 2024-11-21 11:36:16 +01:00
David Cermak 7ef2379549 feat(esp_tls): Add support for PSK authentication on server side 2024-11-18 13:47:29 +01:00
Harshit Malpani aece182482 fix: Fix error logging formatting bug for nano formatting
Closes https://github.com/espressif/esp-idf/issues/13604
2024-04-23 00:02:46 +05:30
Harshit Malpani 9274e3e620 fix(esp-tls): capture errors in error handle 2024-02-14 14:36:14 +05:30
Aditya Patwardhan e2d5b323ca fix(esp_tls): Fixed client key parsing for ECC key
Client key parsing for ECC keys was failing as the
    RNG supplied to the key parsing API was uninitialized.
    This commit fixes that behaviour
2024-01-23 13:40:57 +08:00
Aditya Patwardhan 5ce93aa257 fix(esp_tls): Refactor esp-tls to remove ESP_TLS_SERVER config option 2023-10-26 09:30:13 +00:00
Harshit Malpani 27681a5073 fix(esp-tls): Use TLS 1.2 and TLS 1.3 simultaneously
This commit fixes the issue with TLS 1.2 connection when TLS 1.3 is
enabled in config.
2023-10-23 16:23:10 +05:30