1 of 1 people found this helpful
Very good question.
Please look at the Blue Spec 4.1 located at https://www.bluetooth.org/en-us :
- Section 5.2 talks about the Classic BT Pairing
- In BLE, The Classic Bluetooth of Paring (Ex: using "1111") does not apply to BLE - As you referred to in your automobile. Most BLE devices were expected NOT to have a KeyPad and LCD to enter the "1111"
- In BLE, connections are created between a smartphone and a peripheral without passwords using the "Just Works" method - 22.214.171.124 Just Works in the BLE Spec.
- The smartphone can connect to a specific device by "bonding" to it - something like "pairing" but the differences are explained in the Section 13.2 BONDING FOR BR/EDR/LE DEVICE TYPE.
- Also take a look at Section 4.3.1 White List on Page 2525/2684.
This should get you started.
I noticed the BGM code supports up to 4 bonds …
On a paired device, such as, iPhone or Android one can “UN-PAIR” from a device.
But, does this leave the BGM code still with that previous bond?
So, for example, say the BGM sensor has 4 bonded devices. What happens if a fifth one attempts to bond? Is there a way to clear any of the bonds on the sensor side similar to un-pairing on a Smartphone?
2 of 2 people found this helpful
Actually looks like the fifth bonded device will takeover the first slot … so it’s a circular buffer where you can have up to 4 but any new requests to add to bonded list overwrites the very first one
We do have future plans on the number of bonded devices, so stay tuned...
Thanks for the post!
Have a great weekend!
To answer your original question after pairing is performed 2 devices have a common key that can be used in the current or future connection to encrypt the data. Indeed 2 devices can be paired and not connected, and may have connection without pairing. In the latter case data is not encrypted.
Both sides of the connection can force security. If you are developing a sensor application on 2,0 SDK and your application requires security (i.e. encrypted link), you can do something like that in the Connection Up callback
and you need to make sure that by the time you receive data, Encryption callback is executed.