Skip to content

Device Bonding

Dariusz Seweryn edited this page Feb 2, 2018 · 1 revision

This library does not provide possibility to explicitly create a bond with a peripheral.

There is a possibility that a bond will be automatically created by the OS. This usually happens when a read/write request is sent to a characteristic that needs encryption.

The usual process on a low level looks like this:

  1. Central sends a read/write characteristic request to a peripheral
  2. Peripheral responds with GATT_INSUF_AUTHENTICATION/GATT_INSUF_AUTHORIZATION
  3. Central—OS intercepts the response and kicks off bonding procedure

After the bond is created the iOS automatically retries the request that was responded with the GATT_INSUF_AUTH* whereas Android returns an error and a manual retry should be performed.

Notes: