Commit Graph
100 Commits
Author SHA1 Message Date
Laukik Hase b216535f73 fix(esp_system): Correct address used to fetch application image header 2025-02-14 16:38:56 +05:30
Laukik Hase 17ffe58051 fix(esp_hw_support): Fix the flash I/DROM region PMP protection 2024-04-03 15:48:46 +05:30
Laukik Hase 8582b27f1d refactor(protocomm): Make the protocomm proto-c headers public 2024-03-01 10:26:23 +05:30
Laukik Hase 4a7cda8cb0 feat(tools/test_apps): Add violation tests for the flash I/DROM region
- For SoCs supporting PMP
2024-03-01 10:25:08 +05:30
Laukik Hase 68442ecaa0 refactor(esp_hw_support): Remove redundant PMP entry for ROM region
- The ROM text and data sections share the address range
    (see SOC_I/DROM_MASK_LOW - SOC_I/DROM_MASK_HIGH).
  - Initially, we had two PMP entries for this address range - one marking the
    region as RX and the other as R.
  - However, the latter entry is redundant as the former locks the PMP settings.
  - We can divide the ROM region into text and data sections later when we
    define boundaries marking these regions from the ROM.
2024-03-01 10:25:07 +05:30
Laukik Hase a56fc41215 fix(esp_hw_support): Fix the I/DCACHE region PMP protection 2024-03-01 10:25:07 +05:30
Laukik Hase 6a216ca839 fix(nvs_flash): Remove the forceful selection of NVS_ENCRYPTION with flash encryption
- This change will introduce a breaking change for SoCs with the HMAC
  peripheral. Turning on flash encryption will no longer enable NVS
  encryption automatically.

Closes https://github.com/espressif/esp-idf/issues/12549
2023-12-21 19:22:56 +05:30
Laukik Hase 340fda1cd6 Merge branch 'fix/nvs_encr_docs' into 'master'
fix(docs): Hide the NVS encryption HMAC scheme section for unsupported SoCs

See merge request espressif/esp-idf!26568
2023-10-25 16:24:57 +08:00
Laukik Hase 81665b27c3 fix(docs): Disable the NVS encryption HMAC scheme section for unsupported SoCs 2023-10-25 13:07:14 +08:00
Laukik Hase 239bc3b96f Merge branch 'fix/nvs_part_gen_docs' into 'master'
fix(docs/nvs_part_gen): Show the NVS HMAC encryption scheme-specific commands only for supported SOCs

See merge request espressif/esp-idf!26332
2023-10-11 20:56:54 +08:00
Laukik Hase 6c9a343e1b fix(docs/nvs_part_gen): Show the HMAC scheme-specific commands only for supported SOCs 2023-10-06 11:33:12 +05:30
Laukik Hase f281c08ce7 fix(hal): Fix the external memory vaddr region validity check
- For c6, h2 and p4, the vaddr end calculated was off by 1
  byte.
2023-08-02 10:53:26 +05:30
Laukik Hase 521dd35f2f fix(mbedtls): Updated redundant assert for H/W MPI operations 2023-07-27 11:40:23 +05:30
Laukik Hase b61e3777b8 fix(esp_hw_support): Fix different signed comparison in esp_ptr_in_drom
- Closes https://github.com/espressif/esp-idf/issues/11653
- Closes https://github.com/espressif/esp-idf/issues/11865
2023-07-13 18:35:42 +05:30
Laukik Hase 20a3fcae48 fix(mbedtls): Fix incorrect assert for H/W MPI operations
- Closes https://github.com/espressif/esp-idf/issues/11850
2023-07-13 14:52:00 +05:30
Laukik Hase bfaeb075a6 fix(nvs_sec_provider): Fix memory leakage reported by coverity 2023-07-03 14:26:49 +05:30
Laukik Hase 3565a9ba89 fix(esp-tls): Add explicit inclusion of header mbedtls/x509_crt.h
- Closes https://github.com/espressif/esp-idf/issues/11761
2023-07-03 14:24:38 +05:30
Laukik Hase d0a30c1e7b fix (wifi_prov): Retry provisioning on WIFI_AUTH_EXPIRE event
- Closes https://github.com/espressif/esp-idf/issues/11749
2023-07-03 11:28:04 +05:30
Laukik Hase c105091413 docs: Fix the instructions for setting up HMAC-based NVS encryption 2023-05-27 01:38:09 +05:30
Laukik Hase 3aa6f97c72 security: Added example for HMAC-based NVS encr-keys protection scheme 2023-05-23 13:56:00 +05:30
Laukik Hase 72f703ccd4 nvs_flash: Extended test-app and host tests for the HMAC-based NVS encr-keys protection scheme 2023-05-23 13:55:59 +05:30
Laukik Hase a06118012e docs: Update nvs_flash docs for the HMAC-based NVS encr-keys protection scheme
- Also updated the `nvs_partition_generator` and `mass_mfg` tools
  documentation
2023-05-23 13:55:57 +05:30
Laukik Hase 9ac87fcc8b nvs_partition_gen/mass_mfg: Support for HMAC-based scheme for generating NVS encr-keys 2023-05-23 13:55:55 +05:30
Laukik Hase 8efe2f86e9 nvs_flash: Added helper component nvs_sec_provider
- For processing NVS encryption-related security configuration
2023-05-23 13:55:53 +05:30
Laukik Hase c1bed366ba nvs_flash: Add support for HMAC-based NVS encryption keys protection scheme
- This features allows the NVS encryption keys to be derived and protected using
  the HMAC peripheral. Since the encryption keys are derived at runtime, they
  are not stored anywhere in the flash and hence this feature does not require
  a separate `nvs_keys` partition.
2023-05-23 13:55:52 +05:30
Laukik Hase 596b83fe15 wifi_prov: Fix build issue when building only for sec1 or sec2 2023-05-23 12:00:45 +05:30
Laukik Hase f695c1a788 wifi_prov: Exposed events for secure session establishment 2023-05-23 12:00:40 +05:30
Laukik Hase 56123c52aa Merge branch 'ci/migrate_nvs_flash_to_component_test_apps' into 'master'
nvs_flash: Migrate UTs to component test-apps

Closes IDF-5596

See merge request espressif/esp-idf!23411
2023-04-26 20:23:25 +08:00
Laukik Hase 4ac95a33fd nvs_flash: Migrate UTs to component test-apps 2023-04-26 10:21:03 +05:30
Laukik Hase 11d5550da3 soc/esp32s3: Fix the SOC_MEM_INTERNAL_HIGH value
- As per the memory block diagram for ESP32-S3, the
  internal memory address ranges as follows:
  DRAM: 0x3FC88000 (== SOC_MEM_INTERNAL_LOW) <-> 0x3FCF0000
  IRAM: 0x40378000 <-> 0x403E0000 (== SOC_MEM_INTERNAL_HIGH)
2023-04-17 10:49:06 +05:30
Laukik HaseandMahavir Jain f6aadd1e39 esp_hw_support: Update memory ptr location/property checks
- to acknowledge the unused DCACHE added to DRAM for ESP32-S3

- For ESP32-S3, when the DCACHE size is set to 16 kB, the unused 48 kB is added to
  the heap in 2 blocks of 32 kB (from 0x3FCF0000) and 16 kB (from 0x3C000000).
- But, if we try allocating memory from the 16 kB block and run an `esp_ptr_internal`
  check on that memory pointer, it fails as the address block from 0x3C000000
  corresponds to the external memory symbols SOC_DROM_LOW and SOC_EXTRAM_DATA_LOW.
  (E.g. freertos - If the IDLE task stack buffer gets allocated from this region,
  the firmware will abort due to this failure).
- Thus, the checks `esp_ptr_internal`, `esp_ptr_in_drom` and `esp_ptr_byte_accessible`
  have been updated to acknowledge this memory as a part of the DRAM.

Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2023-04-17 10:42:04 +05:30
Laukik Hase 1c30854d48 Merge branch 'contrib/github_pr_11079' into 'master'
Fix preprocessor condition in esp_tls_mbedtls (GitHub PR)

Closes IDFGH-9746

See merge request espressif/esp-idf!23017
2023-03-31 14:48:51 +08:00
Laukik Hase 47c153ad9e mbedtls/test_apps: Fix performance logs
- For esp32-c2, the `CONFIG_NEWLIB_NANO_FORMAT` is enabled by
  default which does not allow printing `int64_t` values
- Copied these values to a `uint32_t` variable for printing
  them properly
2023-02-24 12:26:21 +05:30
Laukik Hase 9f0435faa4 mbedtls: Add test config with CONFIG_COMPILER_OPTIMIZATION_PERF 2023-02-21 18:45:25 +05:30
Laukik Hase 45df5b56d5 esp32/mpi: Added alternate workaround for MPI data corruption issue
- Use DPORT_WRITE_REG (volatile writes) wrappers to write to the
  MPI peripheral
- Updated the previous workaround added for the same issue as it
  was failing in some long runs and with `COMPILER_OPTIMIZATION_PERF`
  enabled.
- The test performance numbers had to be updated due to the
  performance penalty introduced by this fix.

Closes https://github.com/espressif/esp-idf/issues/10403
2023-02-21 18:43:54 +05:30
Laukik Hase f0132be83e Merge branch 'feature/memprot_test_app' into 'master'
esp_system: Add test_app for `memprot` peripheral

Closes IDF-6819

See merge request espressif/esp-idf!21829
2023-02-17 13:59:44 +08:00
Laukik Hase 6e0e7e34ea test_app: Extend panic app to include memprot-related tests
- Add support for esp32s2, esp32c3 and esp32c2 for the `memprot`-related tests
- Preliminary support for esp32s3 has also been added,
  the test app will be enabled for esp32s3 later when
  the memprot-related issues are fixed.
- Override panic handler to dump the violation intr status
  - Dump the `memprot` violation registers before calling the
    real panic handler
  - Handle `Illegal Instruction` exception in case of memprot permission violation
    * In esp32c3 with `memprot` enabled, if we try to execute arbitrary code
      from RTC_FAST_MEM we get an `Illegal Instruction` exception from the panic
      handler rather than a `Memory Protection Fault`.
    * This is because the Illegal Instruction interrupt occurs earlier than the
      memory protection interrupt due to a higher interrupt latency.
2023-02-16 17:13:56 +05:30
Laukik HaseandMahavir Jain 4cf889b692 memprot: Fix incorrect faulting address reported for esp32c3 & esp32s3
Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2023-02-16 15:27:11 +05:30
Laukik Hase fa27795048 test_app: Split panic test app into separate source files
- Added minor improvements to  `panic` test app
  * Replaced existing API to disable flash cache which did not disabled cache always
    (`esp_flash_default_chip->os_func->start(esp_flash_default_chip->os_func_data)`)
    with `spi_flash_enable_interrupts_caches_and_other_cpu`
  * Included some required headers explicitly (`esp_memory_utils.h` and `esp_heap_caps.h`)
2023-02-16 15:26:47 +05:30
Laukik Hase d2c37009b0 Merge branch 'test_app/mbedtls_remove_wno_format_compile_option' into 'master'
mbedtls: Remove `-Wno-format` compile option for test app

Closes IDF-6806

See merge request espressif/esp-idf!22243
2023-02-09 12:40:42 +08:00
Laukik Hase d4abf3ff45 mbedtls: Remove -Wno-format compile option for test app 2023-02-08 12:31:09 +05:30
Laukik Hase 167618d6a4 examples/protocols: Added URI encoding/decoding feature
- http_server/simple: Decoding received query
  - esp_http_client: Sending encoded query
2023-01-25 17:47:14 +05:30
Laukik Hase 7759079362 protocomm: Fix Kconfig dependency on wifi_provisioning component config
- `protocomm` depends on a config option `CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION`
  from `wifi_provisioning`; however, a lower layer component (`protocomm`) should
  not have any `#ifdef` guard dependent on an upper layer component (`wifi_provisioning`).
- Added a new `ble_link_encryption` flag in `protocomm_ble_config_t` to manage the same

Closes https://github.com/espressif/esp-idf/issues/9443
2023-01-20 11:01:01 +05:30
Laukik Hase 45c6631a00 ci: Enable build stage for mqtt/ssl_ds example for esp32c6 2023-01-19 10:00:00 +05:30
Laukik Hase 4f67662cab Merge branch 'feature/mbedtls-3.3.0' into 'master'
mbedtls: Update to v3.3.0

Closes IDF-6536

See merge request espressif/esp-idf!21897
2023-01-12 19:38:51 +08:00
Laukik Hase e7efda4709 esp_local_ctrl: Fix header inclusion
- Included `sdkconfig.h` and HTTP/S server based headers
  explicitly
2023-01-12 16:16:45 +05:30
Laukik Hase 4e492495e3 docs: Mark protocols and provisioning related chapters as updated for C6 2023-01-12 11:20:04 +05:30
Laukik Hase 68d90dd392 protocomm: Fix test-app build for esp32c2 & esp32c6
- AES context has a breaking change, rather than storing
  round keys directly, it stores the offset at which the keys
  are present in the context buffer
2023-01-09 15:41:36 +05:30
Laukik Hase 1e4493e592 mbedtls: Fix build with dynamic buffers feature 2023-01-09 15:41:36 +05:30
Laukik Hase c2ab1af47f wpa_supplicant: Update deprecated API (mbedtls_pkcs5_pbkdf2_hmac)
- The newer alternative does not require HMAC context for its
  operation
2023-01-09 15:41:36 +05:30
Laukik Hase 59de3948dc mbedtls: Update config options as per v3.3.0 release 2023-01-09 15:41:36 +05:30
Laukik Hase d2dddf13ae mbedtls: Update to v3.3.0 2023-01-09 15:41:35 +05:30
Laukik Hase 58530ae070 Merge branch 'esp_local_ctrl/fix_https_server_dep' into 'master'
esp_local_ctrl: Add support for insecure HTTP server transport

See merge request espressif/esp-idf!21661
2022-12-27 13:02:03 +08:00
Laukik Hase b3fa7fcf73 esp_local_ctrl: Add support for insecure HTTP server transport 2022-12-23 12:14:25 +05:30
Laukik Hase 346597a1c6 Merge branch 'fix/https_server_kconfig_dep' into 'master'
esp_https_server: Add dependency on `MBEDTLS_TLS_SERVER` config

See merge request espressif/esp-idf!21633
2022-12-19 12:32:48 +08:00
Laukik Hase c86e13c3d4 esp_https_server: Add dependency on MBEDTLS_TLS_SERVER config 2022-12-16 10:30:41 +05:30
Laukik Hase 665ad3dbdb esp_tls: Fix issue when timeout is not explicitly given in esp_tls_cfg_t
- If internet connectivity weakened or disappeared suddenly while we were
  in the TLS handshake stage, the app got stuck at that point indefinitely.
- This was because when timeout was not explicitly specified in esp_tls_cfg_t,
  the default timeout was set at the wrong place. This causes the sockets to be
  setup with zero timeout, hence the indefinite wait.
2022-12-16 10:20:21 +05:30
Laukik Hase 184c09ea81 protocols/security: Remove -Wno-format compile option for examples 2022-12-07 13:02:00 +05:30
Laukik Hase e6171b7338 wifi_prov: Exposed event for transport pairing
Closes https://github.com/espressif/esp-idf/issues/10007
2022-11-01 10:06:30 +05:30
Laukik Hase d0b1b5a8aa heap: Added note to increase INT_WDT timeout for integrity-check APIs
- When PSRAM is enabled, the heap integrity check APIs
  (`heap_caps_check_integrity` and `heap_caps_check_integrity_all`)
  take more time to execute and keep the interrupts disabled for a
  longer time.
2022-10-30 10:36:01 +05:30
Laukik Hase c7142f274b protocomm: Increase Bluedroid-BLE maximum buffer size
- For the security2 scheme, the payload size is quite larger
  than that for security1.
2022-10-26 13:34:39 +05:30
Laukik Hase aff551c4ee esp_prov: Update deprecated APIs
- Updated deprecated APIs for bleak module
- Updated README and troubleshooting reference for
  BLE transport
2022-10-14 16:53:40 +05:30
Laukik Hase 80204ecab2 ci: Fix esp32s2.psram.test_mbedtls_psram UT
- When PSRAM is enabled, the interrupt watchdog timeout value
  needs to be increased to 800 ms from the default 500 ms.
2022-10-13 10:27:05 +05:30
Laukik Hase 3e2c7d7549 ci: Update wpa_supplicant codeowners 2022-10-12 10:05:34 +05:30
Laukik Hase 82c5bdcb76 wpa_supplicant: MBEDTLS_PRIVATE & MBEDTLS_ALLOW_PRIVATE_ACCESS-related cleanup 2022-10-10 11:48:16 +05:30
Laukik Hase 8476ba1b7a Merge branch 'bugfix/https_server_dyn_buf' into 'master'
https_server: Fix example when `MBEDTLS_DYNAMIC_BUFFER` is enabled

Closes IDFCI-1479

See merge request espressif/esp-idf!20452
2022-10-01 15:52:08 +08:00
Laukik Hase aeb42ce3a7 https_server: Fix example when MBEDTLS_DYNAMIC_BUFFER is enabled
- While checking if ciphersuite uses RSA key exchange methods,
  the APIs `mbedtls_ssl_get_ciphersuite_id_from_ssl` and
  `mbedtls_ssl_ciphersuite_from_id` were used to get the ciphersuite
  info.
- However, this is incorrect as we need the ciphersuite info from the
  handshake instance and not the ssl_session instance.
2022-09-30 23:25:27 +05:30
Laukik Hase 1fc3db23c1 Merge branch 'feature/wifi_prov_mgr_reprovision' into 'master'
wifi_prov_mgr: Added support for re-provisioning

Closes IDFGH-4111 and IDF-5714

See merge request espressif/esp-idf!20027
2022-09-30 14:08:18 +08:00
Laukik Hase d7eb2c7b4e mbedtls: MBEDTLS_PRIVATE & MBEDTLS_ALLOW_PRIVATE_ACCESS-related cleanup 2022-09-29 10:13:14 +05:30
Laukik Hase b7ae23856a protocomm: MBEDTLS_PRIVATE & MBEDTLS_ALLOW_PRIVATE_ACCESS-related cleanup 2022-09-29 10:13:13 +05:30
Laukik Hase 9bc1cc706e wifi_prov_mgr: Add support for re-provisioning
Closes https://github.com/espressif/esp-idf/issues/5978
2022-09-29 10:12:47 +05:30
Laukik Hase 463b02eeec http_server: Increment active socket count for SSL session
- The callback `open_fn` is used for creating a new SSL session
  with httpd_sess_new.
- If the call fails, the active socket count (httpd_data->hd_sd_active_count)
  is not incremented. But, httpd_sess_delete is called, which decrements the
  count, resulting in a negative value for several failed session creations
  in a row.

Closes https://github.com/espressif/esp-idf/issues/9683
2022-09-07 10:27:22 +05:30
Laukik Hase 9b290e3668 mbedtls/port: Fix dynamic buffers feature for v3.2.1
Co-authored-by: Li Jingyi <lijingyi@espressif.com>
2022-08-24 11:59:34 +05:30
Laukik Hase 6319970ab7 esp_tls/wpa_supplicant: Updated deprecated mbedtls APIs 2022-08-24 11:59:34 +05:30
Laukik Hase 157fc22ef4 mbedtls: Update to v3.2.1
- Changelog: https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.2.1
- Closes https://github.com/espressif/esp-idf/issues/8787
2022-08-24 11:59:34 +05:30
Laukik Hase 85d00a4dac ci: Fix host-test failures 2022-08-17 10:59:32 +05:30
Laukik Hase ae932c8c4e docs: Added migration guide for app_update
- Deprecated functions and alternatives
2022-08-17 10:59:31 +05:30
Laukik Hase fb93901d5b esp_app_format: Added test-app 2022-08-17 10:59:31 +05:30
Laukik Hase 0071ea498f esp_app_format: Fixed build errors and resolved dependencies 2022-08-17 10:59:31 +05:30
Laukik Hase 0519f604db app_update: Moved app metadata to new component esp_app_format 2022-08-17 10:59:25 +05:30
Laukik Hase f887922cf4 protocols/provisioning: Added hints for breaking changes
- For migrating from ESP-IDF v4.4.x to v5.0
2022-08-10 10:39:54 +05:30
Laukik Hase aa30b2ddbe esp_local_ctrl/scripts: Removed python2 compatibility 2022-07-13 17:58:40 +05:30
Laukik Hase 796723a6df esp_prov/wifi_prov_mgr: Updated README
- Added notes for interactive provisioning
2022-06-23 10:54:20 +05:30
Laukik Hase 9aefcb12f5 esp_prov: Compatibility changes and refactoring
- Removed python 2 compatibility
- Removed dependencies on redundant external modules
- Interactive provisioning input for security scheme 2
- Style changes:
  Updated print statements to format strings
  Colored verbose logging
  Raised exceptions on errors instead of clean exits
2022-06-23 10:52:54 +05:30
Laukik Hase fbeac8d43c ci: Enable custom certificate bundle test for ESP32-S3
- Increase leakage limit for `test performance RSA key operations`
  UT by 64 bytes
2022-06-21 14:18:23 +05:30
Laukik Hase ff44ff8050 mbedtls: Acquire lock before enabling MPI (RSA) hardware
- For ESP32-S3
2022-06-21 10:48:17 +05:30
Laukik Hase 740b9a9afe wifi_prov: Added support for WPA3_PSK and WPA2_WPA3_PSK APs 2022-06-21 04:24:19 +00:00
Laukik Hase 7fa47173b2 wifi_prov_mgr: Added documentation related to SRP6a 2022-06-17 13:16:20 +00:00
Laukik Hase 3235206624 esp_prov: Added provision for SRP6a-based security scheme 2022-06-17 13:16:20 +00:00
Laukik Hase 5169e22277 protocomm: Generated proto-c and python files for SRP6a scheme
- Added protobuf auto-generated files to pre-commit check
  ignore lists
2022-06-17 13:16:20 +00:00
Laukik Hase 2dea0e833a ci: Fix mqtt_qos1 example test failure
- Updated log levels of some tags in mqtt/tcp example
  - Updated mqtt/tcp example test to work with WiFi
2022-06-15 14:16:44 +05:30
Laukik HaseandMahavir Jain 914b0de764 freertos: Indicate completed initialization for APP CPU with idle task hook
Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2022-06-13 17:17:42 +05:30
Laukik Hase 872f8513fb ci: Re-enable protocomm UTs for ESP32-C2 2022-06-09 09:55:09 +05:30
Laukik Hase 12fb7a61a4 docs: Added migration guide for HTTP Client and TCP Transport
- Added breaking changes notes
- Style fixes
2022-05-31 15:04:21 +05:30
Laukik HaseandShubham Kulkarni 7115881a97 esp_http_client/esp_https_ota: Removed errno checks
- Returned -ESP_ERR_HTTP_EAGAIN for timeout errors from
  esp_http_client whenever tcp transport layer returns
  connection timeout
- Removed redundant conditional statements as required

Co-authored-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
2022-05-31 15:04:21 +05:30
Laukik HaseandShubham Kulkarni cc7c67ad4e tcp_transport: Fix error propogation
- Made tcp_transport_errors codes public to indicate
  TCP connection issues not covered in socket's errno
- Added API to translate tcp_transport_error codes
  to esp_err_t codes for TCP Transport

Co-authored-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
2022-05-31 15:04:21 +05:30
Laukik Hase b7fcbb3e7d wifi_provisioning: Regenerated proto-c and python with protobuf compiler v3.21.0 2022-05-30 09:54:32 +05:30
Laukik Hase a3f5087336 protocomm: Regenerated proto-c and python with protobuf compiler v3.21.0 2022-05-30 09:54:32 +05:30
Laukik Hase 1ee3ee6854 protobuf: Fix v4.21.0 (python) compatibility issue
- Added auto-generated protobuf files (proto-c and python to
  pre-commit hook ignore lists
2022-05-30 09:54:31 +05:30
Laukik Hase b09b716f1d protobuf-c: Update submodule to v1.4.0 2022-05-30 09:54:31 +05:30