Commit Graph

101 Commits

Author SHA1 Message Date
Mahavir Jain
00e8d1a832 fix(esp_local_ctrl): update for changes in protocomm security2 scheme 2025-03-07 13:49:12 +05:30
Mahavir Jain
3bd5a22f5a fix(provisioning): fix incorrect AES-GCM IV usage in security2 scheme
Using same IV in AES-GCM across multiple invocation of
encryption/decryption operations can pose a security risk. It can help
to reveal co-relation between different plaintexts.

This commit introduces a change to use part of IV as a monotonic
counter, which must be incremented after every AES-GCM invocation
on both the client and the device side.

Concept of patch version for a security scheme has been introduced here
which can help to differentiate a protocol behavior for the provisioning
entity. The security patch version will be available in the JSON
response for `proto-ver` endpoint request with the field
`sec_patch_ver`.

Please refer to documentation for more details on the changes required
on the provisioning entity side (e.g., PhoneApps).
2025-03-07 13:49:10 +05:30
Rahul Tank
ebf591a9eb fix(nimble): Address few coverity reported issues
1. Structurally dead code: Removed dead code
2. Resource leak: Added a free for allocated memory, in case of failure
3. too_few_printf_args: Corrected print statement to pass arguments
4. Fixed nesting levels
5. Fixed unused value warnings
6. Illegal memory access fix
2025-01-03 11:35:10 +05:30
hrushikesh.bhosale
6590cf9560 fix(esp_wifi_prov): Send failure msg on first fail
Added new sta state WIFI_PROV_ATTEMPT_FAILED, which is
returned on first failure with attemps_remaining field.
2024-11-28 15:00:54 +05:30
yinqingzhao
f40c2cbc72 feat(wifi): avoid compiling components related to wifi when wifi is not supported 2024-11-19 11:02:09 +08:00
hrushikesh.bhosale
95f5b29ffc feat(provisioning): Addded api to set Authmode in provisioning
Added api to set threshold authmode for provisioning demo
2024-10-01 19:31:53 +08:00
Rahul Tank
fb55646270 fix(nimble): Add notify characteristic flag support 2024-09-05 16:16:08 +05:30
shreeyash
6e6fd2f6a3 fix(wifi_prov_mgr): Api to keep BLE on after provisioning 2024-08-13 12:42:35 +05:30
Rahul Tank
928117e999 fix(wifi_prov): Added API to set random address 2024-07-21 15:37:37 +05:30
Ivan Grokhotkov
c921824230 fix(wifi_provisioning): fix var declarations inside switch for clang 2024-07-12 13:58:18 +02:00
Laukik Hase
379e02ec9c refactor(protocomm): Make the protocomm proto-c headers public 2024-02-28 14:35:04 +05:30
muhaidong
d278ffc501 fix(wifi): fix esp_wifi_scan_start memory leakage issue
Closes https://github.com/espressif/esp-idf/issues/10693
2024-02-03 16:32:09 +08:00
monoliths
55acf50c48 feat(wifi_prov): Add API for checking whether the provisioning state machine is idle 2023-12-19 14:09:14 +05:30
Mahavir Jain
69e89c4e95 Merge branch 'contrib/github_pr_12459' into 'master'
manager: fixing unwinding protocom endpoints, on prov_stop. (GitHub PR)

Closes IDFGH-11307

See merge request espressif/esp-idf!26742
2023-11-02 23:47:22 +08:00
kohait00
7c8663ffa9 manager: fixing unwinding protocom endpoints, on prov_stop. This enables starting and stopping provisioning on a pre started http server 2023-10-31 13:59:29 +05:30
Jin Cheng
fc174f5811 feat(bt/bluedroid): Added mode to use BlueDroid host only without Bluetooth Controller 2023-10-30 00:52:26 +00:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
WanqQixiang
5435c9b04a fix(protocomm): Remove the configuration check of wifi_provisioning for protocomm component 2023-09-25 15:32:03 +08:00
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
596b83fe15 wifi_prov: Fix build issue when building only for sec1 or sec2 2023-05-23 12:00:45 +05:30
David Cermak
5f6cb31105 lwip: Support IPv6 only mode 2023-02-27 08:53:34 +01:00
Barabas Raffai
005196d86d Clean up wifi provisioning in the esp_event thread
Signed-off-by: Laukik Hase <laukik.hase@espressif.com>
2023-01-27 15:39:08 +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
sanket.wadekar
bd6a74fcac Changed wifi provisioning scan method
Signed-off-by: sanket.wadekar <sanket.wadekar@espressif.com>
2022-12-20 17:04:30 +05:30
Rahul Tank
97f4130ad2 Wifi Prov: Disabled the default support for BLE Encrpytion on characteristics read /write
By default, disabled the BLE Encrpyption requirement for provisioning characteristic.
With this flag enabled, when remote attempts to read and if the ACL link is not encrypted,
ESP device will return Insufficient Authentication. It is remote device responsibility to go
for link encryption which may result in pairing.

Some devices do not proceed for any pairing and just show failure pop-up. Also, user needs
to remove bonding on remote phone manually and then try again. This is causing bad user experience.

End user can enable it as per their use case.
2022-11-25 11:26:10 +05:30
harshal.patil
b7de443aaa wifi_provisioning: added wifi-ctrl reprov endpoint 2022-11-01 14:19:01 +05:30
harshal.patil
dacf44dd1d wifi_provisioning: added wifi-ctrl reset endpoint 2022-11-01 14:19:01 +05:30
Harshit Malpani
9b07007efb wifi_provisioning: fix error codes for wifi connect retry
Closes: https://github.com/espressif/esp-idf/issues/9399
2022-10-12 12:10:21 +05:30
Aditya Patwardhan
6328afdce6 wifi_provisioning/manager.c: Fix small bug introduced in recent MR. 2022-10-07 18:27:08 +05:30
Mahavir Jain
5fffe4bba5 Merge branch 'fix/fix_protocomm_security2_backward_compatibility' into 'master'
wifi_prov: Update behaviour for wifi_prov_mgr_start_provisioning to avoid...

See merge request espressif/esp-idf!20003
2022-10-02 23:08:01 +08:00
Aditya Patwardhan
0e3c630f9a wifi_prov_mgr: Add security version in the proto-ver endpoint. 2022-09-30 16:53:20 +05:30
Aditya Patwardhan
1d8e7fe2d7 wifi_prov: Update behaviour for wifi_prov_mgr_start_provisioning to avoid breaking the usage for sec1 2022-09-30 16:53:06 +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
Mahavir Jain
025a8378ef wifi_provisioning: decouple wifi_prov_mgr_is_provisioned from manager state
`wifi_prov_mgr_is_provisioned()` API uses the `esp_wifi_get_config()` API
to check if Wi-Fi credentials are configured. It does not really require
any other information from the wifi_prov component. Hence, this commit
removed dependency of this API on provisioning manager initialization state.

Closes IDF-5878
2022-09-01 15:24:19 +05:30
Isha Pardikar
b8fc63d658 wifi_provisioning: Fixed prov_ctx_lock of deinit provisioning manager 2022-08-29 16:08:56 +05:30
Aditya Patwardhan
9b05874388 wifi_provisioning: Update API documentation to highlight argument validity while providing sec_params argument. 2022-08-19 14:02:41 +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
David Cermak
5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
Mahavir Jain
9cbf34b53d Merge branch 'bugfix/configure_link_encryption_for_charac' into 'master'
WifiProv: Add configuration support for forcing link encryption

Closes https://github.com/espressif/esp-idf/issues/9201
Closes IDFGH-7649

See merge request espressif/esp-idf!18620
2022-06-23 19:46:47 +08:00
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
Laukik Hase
740b9a9afe wifi_prov: Added support for WPA3_PSK and WPA2_WPA3_PSK APs 2022-06-21 04:24:19 +00:00
Aditya Patwardhan
6222d43984 protocomm: Added option to enable/disable supported security versions. 2022-06-17 13:16:20 +00:00
Aditya Patwardhan
f2cce5fa0d wifi_provisioning: Update the APIs with reference to the new APIs from protocomm
esp_local_ctrl: Update the code with reference to new changes in protocomm component
2022-06-17 13:16:20 +00:00
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
Djordje Nedic
facab8c5a7 tools: Increase the minimal supported CMake version to 3.16
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
2022-06-01 06:35:02 +00:00
Laukik Hase
b7fcbb3e7d wifi_provisioning: Regenerated proto-c and python with protobuf compiler v3.21.0 2022-05-30 09:54:32 +05:30
Yuan Jian Min
74ae372c73 feat(wifi_provisioning): Optimize memory for wifi scan ap number 2022-05-13 13:58:34 +08:00
Harshit Malpani
185a45c9d7 wifi_provisioning: Remove mdns dependency
mDNS code here was futuristic which was never used.
Removing this section of code as wifi_provisioning does not necessarily require it
2022-05-05 16:46:24 +05:30
Rodrigo Garcia
d7201b82f2 provisioning: replace <lwip/inet.h> by <lwip/ip4_addr.h> in wifi_provisioning/wifi_config.h 2022-04-26 17:42:29 +08:00
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