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

Proximity bonding

Hello,

i have two operation modes:

  1. One or more devices are bonded and advertising mode with whitelist (BLE_GAP_ADV_FP_FILTER_CONNREQ)
  2. A new proximity central device should be added to the whitelist. When an unknown proximity is close to the proximity peripheral the user should decide if the new key is bonded and added to the whitelist.

But if i always advertising with whitelist how i can bond a new device? Do I get an event when a unknown proximity cantral can not connect? How can I proceed to decide on a user input if a device is allowed to bond.

  • some more questions:

    I try to understand the whole paring/bonding procedure. In my use case I’m proximity peripheral.

    1. If i configure the security parameters with no bonding, is than still a paring is done with short key encryption? If i configure the characteristic to require encryption but no MITM protection, than a paring is needed to encrypt data?

    2. If i configure the security parameters with bonding then, the procedure is as in Figure 1 with the difference that long keys are exchanged and stored for fast reconnection next time? If bond is configured, is bonding then required or is it sufficient that the master perform a pairing?

    3. If i have two displays with Yes/No entry, and I confirm that the two numbers are the same even though they are not, the connection is still established then?

    4. If i configure the central and peripheral device as Keyboard only, then at both sides the same pin must be entered. Can i then store a fixed key on the peripheral side or is it still a random number?

    5. If i configure no I/O capabilities the "just works" paring is done. How can I allow only certain devices to connect to my proximity peripheral device?

    6. How can I ensure that not every proximity central device can connect to my proximity peripheral device? Is this only possible if i create a characteristic and handle it in application layer? For example: The central application must send a specific characteristic value after pairing else the connection is terminated?

Related