- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am using the 1LD Wifi/BT module with Wiced v6.4.
In my application, an iOs smartphone is connecting, pairing and bonding with the module. The complete secure connection seems to be done successfully.
The problem is when the smartphone changes its random BT address (LE Privacy) and try to reconnect, the module did not recognized it from the list of previously bonded devices, and a new pairing procedure must restart (with passkey confirmation).
I guess that the BT library is able to manage the LE privacy and resolving random BT address changed, but I can't find any Cypress documentation on this point.
I found that the pairing procedure must exchange the "Identity Resolution Key" (IRK) to enable resolving the random address. How to do that ?
Thanks
Solved! Go to Solution.
- Labels:
-
Wifi+Bluetooth
- Tags:
- le privacy itk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi MaCa_2922036 ,
You have to use API wiced_bt_dev_add_device_to_address_resolution_db to resolve the random address.
Refer to example demo example available in WICED SDK (C:\Users\...\Documents\WICED-Studio-6.4-broad\43xxx_Wi-Fi\apps\demo\ble_wifi_introducer)
For the detailed explanation of flow of these BT events I would suggest you to please go through the doc attached. WBT101-04B-BLE-Ntfy-Sec.pdf please refer to table under 4B.7 WICED Bluetooth Firmware Architecture ...
Not sure if you are experiencing the same issue discussed here: About saving bonding information . If the issue is not fixing by wiced_bt_dev_add_device_to_address_resolution_db , I would suggest you to try the test example provided in thread About saving bonding information (on AnjanaM_61 05-Mar-2020 14:42) which is marked as correct answer.
Please note : WICED 6.6 is the latest SDK for wifi combo chips with several bug fixes. So I would suggest you to migrate to the same.
Thanks & Regards,
Anjana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi MaCa_2922036 ,
You have to use API wiced_bt_dev_add_device_to_address_resolution_db to resolve the random address.
Refer to example demo example available in WICED SDK (C:\Users\...\Documents\WICED-Studio-6.4-broad\43xxx_Wi-Fi\apps\demo\ble_wifi_introducer)
For the detailed explanation of flow of these BT events I would suggest you to please go through the doc attached. WBT101-04B-BLE-Ntfy-Sec.pdf please refer to table under 4B.7 WICED Bluetooth Firmware Architecture ...
Not sure if you are experiencing the same issue discussed here: About saving bonding information . If the issue is not fixing by wiced_bt_dev_add_device_to_address_resolution_db , I would suggest you to try the test example provided in thread About saving bonding information (on AnjanaM_61 05-Mar-2020 14:42) which is marked as correct answer.
Please note : WICED 6.6 is the latest SDK for wifi combo chips with several bug fixes. So I would suggest you to migrate to the same.
Thanks & Regards,
Anjana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok I am working on it.
I have another question:
for key to define during the IO capabilities. I didn't find any documentation on which key to use, and for which usage.
p_event_data->pairing_io_capabilities_ble_request.init_keys = ???
enum wiced_bt_dev_le_key_type_e
{
BTM_LE_KEY_PENC = (1 << 0), /**< encryption information of peer device */
BTM_LE_KEY_PID = (1 << 1), /**< identity key of the peer device */
BTM_LE_KEY_PCSRK = (1 << 2), /**< peer SRK */
#if SMP_LE_SC_INCLUDED == TRUE
BTM_LE_KEY_PLK = (1 << 3),
BTM_LE_KEY_LENC = (1 << 4), /**< master role security information:div */
BTM_LE_KEY_LID = (1 << 5), /**< master device ID key */
BTM_LE_KEY_LCSRK = (1 << 6), /**< local CSRK has been deliver to peer */
BTM_LE_KEY_LLK = (1 << 7),
#else
BTM_LE_KEY_LENC = (1 << 3), /**< master role security information:div */
BTM_LE_KEY_LID = (1 << 4), /**< master device ID key */
BTM_LE_KEY_LCSRK = (1 << 5) /**< local CSRK has been deliver to peer */
#endif
};
#endif /* BTM_LE_KEY_TYPES */
typedef uint8_t wiced_bt_dev_le_key_type_t; /**< LE key type (see #wiced_bt_dev_le_key_type_e) */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
no response ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi MaCa_2922036 ,
p_event_data->pairing_io_capabilities_ble_request.init_keys have to be set depending upon which keys to be distributed with respect to your application security requirements.
Please go through key distribution in BT core spec.
In general , you can use
p_event_data->pairing_io_capabilities_ble_request.init_keys = BTM_LE_KEY_PENC|BTM_LE_KEY_PID|BTM_LE_KEY_PCSRK|BTM_LE_KEY_LENC;
Regards,
Anjana