mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-26 13:12:21 +00:00
Merge branch 'feat/add_static_passkey' into 'master'
feat(nimble): Add support for static passkey See merge request espressif/esp-idf!41726
This commit is contained in:
@@ -1250,7 +1250,12 @@ menu "Extra Features"
|
||||
help
|
||||
Enable connection subrate change feature
|
||||
|
||||
|
||||
config BT_NIMBLE_STATIC_PASSKEY
|
||||
bool "Enable support for Static Passkey"
|
||||
default y
|
||||
depends on BT_NIMBLE_ENABLED && BT_NIMBLE_SECURITY_ENABLE
|
||||
help
|
||||
Enable support for user defined static passkey for SMP
|
||||
endmenu
|
||||
|
||||
menu "NimBLE Mesh"
|
||||
|
||||
Submodule components/bt/host/nimble/nimble updated: 686728c09e...445bdeb281
@@ -2230,4 +2230,12 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_STATIC_PASSKEY
|
||||
#ifdef CONFIG_BT_NIMBLE_STATIC_PASSKEY
|
||||
#define MYNEWT_VAL_STATIC_PASSKEY CONFIG_BT_NIMBLE_STATIC_PASSKEY
|
||||
#else
|
||||
#define CONFIG_BT_NIMBLE_STATIC_PASSKEY (0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -61,6 +61,14 @@ idf.py menuconfig
|
||||
In the `Example Configuration` menu:
|
||||
|
||||
* Change the `Peer Address` option if needed.
|
||||
* Optional: enable static passkey support via `Component config -> Bluetooth -> NimBLE -> Enable support for Static Passkey`.
|
||||
|
||||
Static passkey mode is useful for demos where you want to avoid interactive passkey entry.
|
||||
When enabled, the example calls `ble_sm_configure_static_passkey(456789, true)` and NimBLE
|
||||
automatically injects the passkey during pairing. Update the passkey in
|
||||
`examples/bluetooth/nimble/blecent/main/main.c` if you want a different value.
|
||||
Both devices must use the same 6-digit passkey, and you should only use a fixed
|
||||
passkey for development or controlled environments.
|
||||
|
||||
### Build and Flash
|
||||
|
||||
|
||||
@@ -1098,6 +1098,10 @@ app_main(void)
|
||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
||||
|
||||
#if NIMBLE_BLE_CONNECT
|
||||
#if MYNEWT_VAL(STATIC_PASSKEY)
|
||||
ble_sm_configure_static_passkey(456789, true);
|
||||
#endif
|
||||
|
||||
int rc;
|
||||
/* Initialize data structures to track connected peers. */
|
||||
#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES)
|
||||
|
||||
@@ -41,6 +41,14 @@ In the `Example Configuration` menu:
|
||||
|
||||
* Select I/O capabilities of device from `Example Configuration --> I/O Capability`, default is `Just_works`.
|
||||
* Enable/Disable other security related parameters `Bonding, MITM option, secure connection(SM SC)`.
|
||||
* Optional: enable static passkey support via `Component config -> Bluetooth -> NimBLE -> Enable support for Static Passkey`.
|
||||
|
||||
Static passkey mode is useful for demos where you want to avoid interactive passkey entry.
|
||||
When enabled, the example calls `ble_sm_configure_static_passkey(456789, true)` and NimBLE
|
||||
automatically injects the passkey during pairing. Update the passkey in
|
||||
`examples/bluetooth/nimble/bleprph/main/main.c` if you want a different value.
|
||||
Both devices must use the same 6-digit passkey, and you should only use a fixed
|
||||
passkey for development or controlled environments.
|
||||
|
||||
### Build and Flash
|
||||
|
||||
|
||||
@@ -599,6 +599,10 @@ app_main(void)
|
||||
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
||||
#endif
|
||||
|
||||
#if MYNEWT_VAL(STATIC_PASSKEY) && NIMBLE_BLE_CONNECT
|
||||
ble_sm_configure_static_passkey(456789, true);
|
||||
#endif
|
||||
|
||||
#if MYNEWT_VAL(BLE_GATTS)
|
||||
rc = gatt_svr_init();
|
||||
assert(rc == 0);
|
||||
|
||||
Reference in New Issue
Block a user