4 Replies Latest reply on Nov 26, 2020 4:48 AM by AnjanaM_61

    how to reconnect to a device which changed its BT address (LE Privacy) ?

    MaCa_2922036

      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

        • 1. Re: how to reconnect to a device which changed its BT address (LE Privacy) ?
          AnjanaM_61

          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 in the attached doc for clarification.

           

          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 ) 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

          • 2. Re: how to reconnect to a device which changed its BT address (LE Privacy) ?
            MaCa_2922036

            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) */

            • 4. Re: how to reconnect to a device which changed its BT address (LE Privacy) ?
              AnjanaM_61

              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

              1 of 1 people found this helpful