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

Hard code bonding, whitelist

Hello,

My goal at the moment is to be able to configure my peer device which utilize ble_app_uart example so it would connect only to a specific master device e.g. android or another NRF device. I have read that I can achieve this by using whitelisting, direct advertising.

  1. What are the options of programmatically telling the peer to connect only to a specific master?

  2. Is it possibile to bond two devices programatically? For example I imagine if I use NFC OOB bondig I would have my android device IRK resolved and other required information. Would it be possibile to use this info to hard code bonding? If yes, then what kind of information I must pass to the peer?

  3. Is it possibile to create a whitelist and put a device address in it without pairing, bonding? e.g. I would know parameters of android devices from bonding before.

Thank you

Parents
  • I'm assuming you are implementing a peripheral device, then you are not connecting, but you are being connected to. If you advertise with a whitelist only devices in the whitelist will be able to connect to you. This does not necessarily give protection against devices that mimic the addresses of the devices you have in the whitelist. So you cannot stop devices from trying to connect to you, but you can ignore connection requests from devices that you don't know.

    1. It seems you want to have two devices bonded without doing the actual bonding procedure. With our devices you may be able to do this, but not with Android. They don't allow you to hard code bonding information, this is handled at the system level.

    2. Yes, it is possible. And if the Android phone is using a static address it should work fine. If it is using a random resolvable address it will probably not work. This is because Android will only use the same IRK to generate its address if it has a bond.

Reply
  • I'm assuming you are implementing a peripheral device, then you are not connecting, but you are being connected to. If you advertise with a whitelist only devices in the whitelist will be able to connect to you. This does not necessarily give protection against devices that mimic the addresses of the devices you have in the whitelist. So you cannot stop devices from trying to connect to you, but you can ignore connection requests from devices that you don't know.

    1. It seems you want to have two devices bonded without doing the actual bonding procedure. With our devices you may be able to do this, but not with Android. They don't allow you to hard code bonding information, this is handled at the system level.

    2. Yes, it is possible. And if the Android phone is using a static address it should work fine. If it is using a random resolvable address it will probably not work. This is because Android will only use the same IRK to generate its address if it has a bond.

Children
Related