Commit Graph

83 Commits

Author SHA1 Message Date
Rahul Tank
7f9f4003c2 fix(wifi_prov): Add support for ESP IP controller chips in bluedroid 2024-08-29 15:06:39 +05:30
Rahul Tank
79012cb3e2 fix(wifi_prov): Added API to set random address 2024-07-24 20:58:04 +05:30
Roshan Bangar
39c27275c8 feat(nimble): Nimble Host only mode over uart 2024-03-01 12:54:53 +05:30
Vikram Dattu
6b8ba332b8
feat(provisioning): Generate Salt and verifier pair for given username and password
This commit adds a new feature to generate a salt and verifier pair for a given username and
password during the provisioning process. This is useful in scenarios where the pairing pin is
randomly generated and shown via some interface such as a display or console.

- Uses the provided username and password to generate a salt and verifier pair
- Adds support for dev mode where the pin/password can still be read from flash
2023-11-23 12:01:10 +05:30
Vikram Dattu
8857082585
refactor(esp_srp): Expose esp_srp.h and add API docs
- Also added missing `protocomm_security2` reference in `protocomm.rst`
2023-11-23 12:01:10 +05:30
darshan
b9528ba4c9 fix(protocomm): added Protocomm BLE Event Structure and Event Handling 2023-11-03 11:42:40 +05:30
WanqQixiang
7bfd475528 fix(protocomm): Remove the configuration check of wifi_provisioning for protocomm component 2023-10-08 16:23:03 +08:00
Laukik Hase
fcb98e5851
wifi_prov: Exposed events for secure session establishment 2023-08-22 15:21:48 +05:30
isha.pardikar@espressif.com
f6e0867eb8 wifi_prov_mgr: Fixed memory leak after bluetooth stack was stopping. 2023-04-25 15:48:09 +05:30
isha.pardikar@espressif.com
e72d223737 wifi_prov_mgr : Fixed return value of characteristic read operation 2023-03-06 15:23:26 +05:30
Alexey Lapshin
a7e51b2509 protocomm: fix gcc-12 compile errors 2023-02-22 05:33:03 +00:00
Rahul Tank
826495a145 Nimble: Added return value (success / failure ) to nimble_port_init 2023-01-31 12:01:02 +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
Mahavir Jain
3a56807568
protocomm: remove "Wno-format" cflag and fix formatting errors 2022-12-21 14:13:55 +05:30
Mahavir Jain
a2616c0ab5
protocomm: fix multiple coverity warnings
- comparing array with NULL
- dereferencing null pointer
- resource leak
2022-11-08 15:50:42 +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
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
Aditya Patwardhan
acc3dc8bd2 protocomm/esp_srp: Allocate memory for username only when the
verification is successful
2022-10-07 18:27:07 +05:30
Aditya Patwardhan
68947b5944 protocommm/esp_srp: Fix small issues reported by coverity. 2022-10-07 18:27:07 +05:30
Laukik Hase
b7ae23856a
protocomm: MBEDTLS_PRIVATE & MBEDTLS_ALLOW_PRIVATE_ACCESS-related cleanup 2022-09-29 10:13:13 +05:30
Isha Pardikar
2cfcae8d41 Merge branch 'feature/rainmaker_BT_configurable' into 'master'
Doc: Made bluetooth configurable after wifi provisioning is completed

See merge request espressif/esp-idf!18014
2022-07-26 15:21:27 +05:30
Jiang Jiang Jian
92b4e134bb Merge branch 'bugfix/remove_inappropriate_bluetooth_init_api' into 'master'
Remove unused bluetooth init api

See merge request espressif/esp-idf!18923
2022-07-21 14:53:44 +08:00
GengYuchao
fd055d3ba6 Fix example after removing API esp_nimble_hci_and_controller_init 2022-07-20 11:44:00 +08:00
Mahavir Jain
a94c74c26b
mbedtls: remove dependency on driver component
- keep `esp_pm` dependency conditional in mbedtls
- refactor `bt` cmakelist to keep dependencies as private

Related: IDF-1265
2022-07-18 21:10:51 +05:30
Rahul Tank
0dc0f8ad51 WifiProv: Extended support for configuring if link encryption is needed
when attempting to read / write characteristic to bluedroid stack
2022-06-22 10:17:28 +05:30
Aditya Patwardhan
eb7ff34c89 protocomm: Added SRP6a implementation as the security version 2.
1) Rename srp component to esp_srp
2) Remove dependency on hkdf sha
3) Restructure protocomm component APIs to make them more flexible for allowing multiple security versions
4) esp_srp: convert API return type from int to esp_err_t
5) esp_srp: Formatting changes
6) Added mbedtls_gcm instead of aes_ctr

Co-authored-by: Laukik hase <laukik.hase@espressif.com>
2022-06-17 13:16:20 +00:00
Harshit Malpani
2c56c6cad8 Updated coding style and added error logs 2022-05-11 08:58:01 +00:00
Nathan Phillips
e8e63a06e8 Don't ignore return value of httpd_stop 2022-05-11 08:58:01 +00:00
lorenzo.consolaro
87cc13f369 Fix iOS advertisement response and simplify 2022-05-05 14:57:25 +05:30
Isha Pardikar
e751cbe6c0 Merge branch 'bugfix/wifi_prov_mgr_conn_issue' into 'master'
NimBLE: Fixed device disconnection issue of wifi prov mgr

Closes IDF-4655

See merge request espressif/esp-idf!17236
2022-03-24 15:35:49 +05:30
Mahavir Jain
3b0cb10b9d protocomm: fix copyright header 2022-03-11 09:17:20 +05:30
lorenzo.consolaro
c000673540 protocomm: Fix debug print on encrypting failure
Closes https://github.com/espressif/esp-idf/pull/8526
2022-03-11 09:15:53 +05:30
Sudeep Mohanty
a9fda54d39 esp_hw_support/esp_system: Re-evaluate header inclusions and include directories
This commit updates the visibility of various header files and cleans up
some unnecessary inclusions. Also, this commit removes certain header
include paths which were maintained for backward compatibility.
2022-03-07 11:18:08 +05:30
Laukik Hase
0868513ddd ci: Fix unit test failures
- protocomm: Fix leakage due to ECDH context not being
             initialised and freed properly
- mbedtls (RSA): Added mandatory RNG parameter wherever required
                 Disabled `test performance RSA key operations` UT
- mbedtls (AES_GCM): Added mbedtls_gcm_update_ad() wherever required
                     for updating associated data
- unit_test_app: Fix build issue when heap tracing is enabled
2022-03-03 01:37:10 +05:30
Aditya Patwardhan
8111286668 Add entropy_poll.h in port directory 2022-03-03 01:37:10 +05:30
Aditya Patwardhan
66a9243d3b mbedtls 3.X update:
*MBEDTLS_ECDH_LEGACY_CONTEXT is now disabled by default.
*Fixed MBEDTLS_ECDH_LEGACY_CONTEXT issue for protocomm component.
*Removed all code under MBEDTLS_DEPRECATED_REMOVED
2022-03-03 01:37:10 +05:30
Aditya Patwardhan
60b167f2d6 mbedtls-3.1 update: Removed the MBEDTLS_PRIVATE from multiple files
after they have been again made public in mbedtls-3.1

*Added `MBEDTLS_ALLOW_PRIVATE_ACCESS` in some files.
2022-03-03 01:37:10 +05:30
Aditya Patwardhan
3b71bd7326 mbedtls-3.0: Fixed ESP32 build issues
- Added MBEDLTS_PRIVATE(...) wherever necessary
- For functions like mbedtls_pk_parse_key(...), it is necessary to pass the RNG function
  pointers as parameter. Solved for dependent components: wpa_supplicant & openSSL
- For libcoap, the SSLv2 ClientHello handshake method has been deprecated, need to handle this.
  Currently, corresponding snippet has been commented.
- Examples tested: hello-world | https_request | wifi_prov_mgr

mbedtls-3.0: Fixed ESP32-C3 & ESP32-S3 build issues
- Removed MBEDTLS_DEPRECATED_REMOVED macro from sha1 port
- DS peripheral: esp_ds_rsa_sign -> removed unsused 'mode' argument
- Added MBEDTLS_PRIVATE(...) wherever required

mbedtls-3.0: Fixed ESP32-S2 build issues
- Fixed outdated function prototypes and usage in mbedlts/port/aes/esp_aes_gcm.c due to changes in GCM module

mbedtls-3.0: Fixed ESP32-H2 build issues

ci: Fixing build stage
- Added MBEDTLS_PRIVATE(...) wherever required
- Added RNG function parameter
- Updated GCM Module changes
- Updated Copyright notices

- Tests:
- build_esp_idf_tests_cmake_esp32
- build_esp_idf_tests_cmake_esp32s2
- build_esp_idf_tests_cmake_esp32c3
- build_esp_idf_tests_cmake_esp32s3

ci: Fixing build stage (mbedtls-related changes)
- Added MBEDTLS_PRIVATE(...) wherever required
- Updated SHAXXX functions
- Updated esp_config according to mbedtls changes

- Tests:
- build_examples_cmake_esp32
- build_examples_cmake_esp32s2
- build_examples_cmake_esp32c3
- build_examples_cmake_esp32s3

ci: Fixing build stage (example-related changes)
- Added MBEDTLS_PRIVATE(...) wherever required
- Updated SHAXXX functions
- Updated esp_config according to mbedtls changes

- Tests:
- build_examples_cmake_esp32
- build_examples_cmake_esp32s2
- build_examples_cmake_esp32c3
- build_examples_cmake_esp32s3

ci: Fixing target_test stage
- Updated test SSL version to TLS_v1_2

- Tests:
- example_test_protocols 1/2

ci: Fixing build stage
- Added checks for MBEDTLS_DHM_C (disabled by default)
- Updated esp_cryptoauthlib submodule
- Updated factory partition size for legacy BLE provisioning example

- Tests:
- build_examples_cmake_esp32
- build_examples_cmake_esp32s2
- build_examples_cmake_esp32c3
- build_examples_cmake_esp32s3

Co-authored-by: Laukik Hase <laukik.hase@espressif.com>
2022-03-03 01:37:10 +05:30
Aditya Patwardhan
0483bfbbfe Initial Changes for updating mbedtls to v3.0 2022-03-03 01:37:09 +05:30
Darian Leung
57fd78f5ba freertos: Remove legacy data types
This commit removes the usage of all legacy FreeRTOS data types that
are exposed via configENABLE_BACKWARD_COMPATIBILITY. Legacy types can
still be used by enabling CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY.
2022-02-09 23:05:45 +08:00
Laukik Hase
09de379731 protocomm: Updated function for constant time buffer comparison
- mbedtls_ssl_safer_memcmp() -> mbedtls_ct_memcmp()
2022-01-25 10:51:27 +05:30
Mahavir Jain
203f82cc49 Fix various warnings generated from Coverity scan
esp_timer:
Control flow issues  (DEADCODE)
    Execution cannot reach this statement: "break;".

protocomm_httpd:
(UNUSED_VALUE)
    Assigning value from "cookie_session_id" to "cur_cookie_session_id" here, but that stored value is overwritten before it can be used.

esp_flash_api:
Null pointer dereferences  (REVERSE_INULL)
    Null-checking "chip" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
2021-12-09 09:38:53 +05:30
isha pardikar
7377f8a5a6 Merge branch 'bugfix/protocomm_nimble_allocation' into 'master'
NimBLE: Fixed potential allocation bug in protocomm_nimble.c

Closes https://github.com/espressif/esp-idf/issues/7689

See merge request espressif/esp-idf!15669
2021-11-18 14:15:08 +05:30
isha pardikar
09800028e1 Wifi_prov_mgr:Fix for ios device needs to do forget device 2021-10-06 17:46:22 +08:00
Switi Mhaiske
99cce49299 ESP32C3: Fix for provisioning failure with ble transport mode and bluedriod stack 2021-07-22 15:37:46 +08:00
Prasad Alatkar
c8f4153d4f Provisioning BLE: Add API to set manufacturer data in scan response
- Add `wifi_prov_scheme_ble_set_mfg_data` API to set custom manufacturer data
  in BLE advertisements.
- Run format.sh script on modified files.
- Fix few typos in `protocomm_nimble.c`.

- Incorporate suggestion to remove extra check on protocomm_ble_mfg_data_len

- Remove few unnecessary comments.
2021-07-14 11:56:04 +05:30
Siarhei Volkau
ba15970abb esp_http_server, protocomm: Consider a connection as closed if recv() returns 0
This check prevents infinite loop on closed sockets

Closes https://github.com/espressif/esp-idf/pull/6541

Signed-off-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
2021-06-08 05:48:30 +00:00
kewal shah
b8dfb27141 protocomm_console.c: Fix out of bound read in protocomm_console_task and define line_buf size 2021-05-11 04:00:47 +00:00
Rahul Tank
105497f861 Add secure connection for just works in provisioning app for bluedroid
This MR adds support of secure connection, encryption flags to characteristics and bonding with Just Work as association model

[BLE Provisioning] Added secure connection pairing support to unified provisioning framework.
2021-04-01 09:29:03 +00:00
Prasad Alatkar
fbd906e05f BLE provisioning: Add secure connection pairing with just works for NimBLE 2021-04-01 17:26:30 +08:00