|
PebbleOS
|
Keys and pairing information. More...
Data Structures | |
| struct | pbl_bt_sm_key |
| A 128-bit key. More... | |
| struct | pbl_bt_sm_local_encryption_info |
| Encryption information used when the local device is the peripheral. More... | |
| struct | pbl_bt_sm_remote_encryption_info |
| Encryption information distributed by the remote device. More... | |
| struct | pbl_bt_sm_pairing_info |
| Keys and identity exchanged during pairing. More... | |
Enumerations | |
| enum | pbl_bt_sm_root_key_type { PBL_BT_SM_ROOT_KEY_TYPE_ENCRYPTION , PBL_BT_SM_ROOT_KEY_TYPE_IDENTITY , PBL_BT_SM_ROOT_KEY_TYPE_NUM } |
| Root keys of the local device, from which the local keys are derived. More... | |
Keys and pairing information.
| struct pbl_bt_sm_local_encryption_info |
Encryption information used when the local device is the peripheral.
| Data Fields | ||
|---|---|---|
| uint16_t | div |
Diversifier. Only used by the legacy cc2564x/Bluetopia backend. |
| uint16_t | ediv | Encrypted Diversifier. |
| struct pbl_bt_sm_key | ltk | Long Term Key. |
| uint64_t | rand | Random number. |
| struct pbl_bt_sm_remote_encryption_info |
Encryption information distributed by the remote device.
| Data Fields | ||
|---|---|---|
| uint16_t | ediv | Encrypted Diversifier. |
| struct pbl_bt_sm_key | ltk | Long Term Key. |
| uint64_t | rand | Random number. |
| struct pbl_bt_sm_pairing_info |
Keys and identity exchanged during pairing.
Packed because it is serialized. Which fields are populated depends on the backend; the is_*_valid flags tell.
| Data Fields | ||
|---|---|---|
| struct pbl_bt_sm_key | csrk | Connection Signature Resolving Key of the remote device. |
| struct pbl_bt_device_internal | identity | Identity address of the remote device. |
| struct pbl_bt_sm_key | irk | Identity Resolving Key of the remote device. |
| bool | is_local_encryption_info_valid | True if local_encryption_info is valid. |
| bool | is_mitm_protection_enabled |
True if the pairing is MITM protected. Not set by every backend. |
| bool | is_remote_encryption_info_valid | True if remote_encryption_info is valid. |
| bool | is_remote_identity_info_valid | True if irk and identity are valid. |
| bool | is_remote_signing_info_valid | True if csrk is valid. |
| struct pbl_bt_sm_local_encryption_info | local_encryption_info | Encryption information used when the local device is the peripheral. |
| struct pbl_bt_sm_remote_encryption_info | remote_encryption_info | Encryption information used when the local device is the central. |