This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

OOB Bonding SDK15. Question

Hi!

1. Is there any method to make paring and bonding without radio channel? For ex. write any data directly to .hex to periph and central devices.

2. Is it possible to use some OOB Bonding algorithm for mass storage production? For ex., write to both devices some password in to flash and then execute the code that makes the OOB using this code?

Parents Reply
  • Hi,

    I see. I was thinking of something in line with this thread when I answered. It should be possible to generate and write all bonding information data to flash during production. You would essentially need to store the peer address and keys (IRK, LTK), as you can find in in the pm_peer_data_bonding_t type.

    Then you would either need to populate the peer manager peer database with that information somehow, or alternatively, you could consider if it is easier to skip the peer manager and handle the SoftDevice directly from the application (essentially what is implemented in security_dispatcher.c if you only need the base functionality).

Children
  • Hi,

    Do You want to say that just flash some keys into flash and therefore will bonded 2 devices impossible? I need to know device address? One key not enough for this? And without radio exchange data impossible to bond devices?

  • Hi,

    I read your previous post too quickly. My understanding when I wrote the previous post was that you wanted to bond the two devices without any RF communication between them until after they have been bonded, but I see now that you only wanted to avoid sending the key over the air. That was what I briefly described in my initial answer.

    To be more specific, you can use normal OOB pairing method, using keys that you have already programmed to the flash during production. In this case, you provide the key with sd_ble_gap_auth_key_reply() when you get a BLE_GAP_EVT_AUTH_KEY_REQUEST event. You should configure the Peer manager for OOB pairing as described here.

  • Sorry, a lot of buttons in a page)

    If I want to use sd_ble_gap_auth_key_reply()? I see this function call in the OOB-NFC pairing.

    Is it enought to transfer key via sd_ble_gap_auth_key_reply() function? Or I need make some actions do?

    Or enough send via sd_ble_gap_auth_key_reply() my key? Should I send same key in to both devices?

    If I'll use  sd_ble_gap_auth_key_reply(), another exchange will do via air? Means, The peer's Bluetooth address and identity resolution key (IRK), LTK...

    May be in my case best way to use OOB set and sd_ble_gap_auth_key_reply()?

  • May you incorrect inderstand me. I don't want to any RF communication between them until after they have been bonded. Not only avoid a key over the air.

    I just want to flash some data in the both devices and they they have been bonded.

    As I can undestand, the OOB request some RF channel for exchange data. Therefore I don't need the OOB. Correct? 

  • I can't understand- can I make OOB bonding wo ble air exchange?
    I see diagram- bonding: passkey entry, User inputs on peripherial or OOB
    and correct me:
    I set flag OOB and MITM to periph and in to central.
    next via ble channel I from central try to connect to peripherial. And send BLE_GAP_EVT_AUTH_KEY_REQUEST
    Only in that place I use NFC for get some temp key. And transfer this key into SD - sd_ble_gap_auth_key_reply.
    Correct I undestand that OOB pairing possible to use only with ble channel?

Related