|
PebbleOS
|
On-flash layout of BLE pairing info in the bonding database. More...
Data Structures | |
| struct | BtPersistLEEncryptionInfo |
| Stored LE encryption info. More... | |
| struct | BtPersistLEPairingInfo |
| Stored BLE pairing info. More... | |
Functions | |
| static void | bt_persistent_storage_assign_persist_pairing_info (BtPersistLEPairingInfo *out, const struct pbl_bt_sm_pairing_info *in) |
| Convert pairing info to its stored form. | |
| static void | bt_persistent_storage_assign_sm_pairing_info (struct pbl_bt_sm_pairing_info *out, const BtPersistLEPairingInfo *in) |
| Convert stored pairing info back to pairing info. | |
On-flash layout of BLE pairing info in the bonding database.
The layout is persisted: fields may only be added, never changed or removed.
| struct BtPersistLEEncryptionInfo |
Stored LE encryption info.
| Data Fields | ||
|---|---|---|
| uint16_t | ediv | Encrypted diversifier. |
| struct pbl_bt_sm_key | ltk | Long term key. |
| uint64_t | rand | Random number. |
| struct BtPersistLEPairingInfo |
Stored BLE pairing info.
| Data Fields | ||
|---|---|---|
| struct pbl_bt_sm_key | csrk | Remote connection signature resolving key. |
| struct pbl_bt_device_internal | identity | Remote identity address. |
| struct pbl_bt_sm_key | irk | Remote identity resolving key. |
| bool | is_local_encryption_info_valid: 1 | True if local_encryption_info is valid. |
| bool | is_mitm_protection_enabled: 1 | True if man-in-the-middle protection was used during pairing. |
| bool | is_remote_encryption_info_valid: 1 | True if remote_encryption_info is valid. |
| bool | is_remote_identity_info_valid: 1 | True if irk and identity are valid. |
| bool | is_remote_signing_info_valid: 1 | True if csrk is valid. |
| BtPersistLEEncryptionInfo | local_encryption_info | Encryption info distributed by the watch. |
| BtPersistLEEncryptionInfo | remote_encryption_info | Encryption info distributed by the remote device. |
| uint8_t | rsvd: 3 | Reserved. |
|
inlinestatic |
Convert pairing info to its stored form.
| [out] | out | Stored pairing info. |
| in | Pairing info. |
References pbl_bt_sm_pairing_info::csrk, pbl_bt_sm_local_encryption_info::ediv, pbl_bt_sm_remote_encryption_info::ediv, pbl_bt_sm_pairing_info::identity, pbl_bt_sm_pairing_info::irk, pbl_bt_sm_pairing_info::is_local_encryption_info_valid, pbl_bt_sm_pairing_info::is_mitm_protection_enabled, pbl_bt_sm_pairing_info::is_remote_encryption_info_valid, pbl_bt_sm_pairing_info::is_remote_identity_info_valid, pbl_bt_sm_pairing_info::is_remote_signing_info_valid, pbl_bt_sm_pairing_info::local_encryption_info, BtPersistLEPairingInfo::local_encryption_info, pbl_bt_sm_local_encryption_info::ltk, pbl_bt_sm_remote_encryption_info::ltk, BtPersistLEEncryptionInfo::ltk, pbl_bt_sm_local_encryption_info::rand, pbl_bt_sm_remote_encryption_info::rand, and pbl_bt_sm_pairing_info::remote_encryption_info.
|
inlinestatic |
Convert stored pairing info back to pairing info.
| [out] | out | Pairing info. |
| in | Stored pairing info. |
References BtPersistLEPairingInfo::csrk, BtPersistLEEncryptionInfo::ediv, BtPersistLEPairingInfo::identity, BtPersistLEPairingInfo::irk, BtPersistLEPairingInfo::is_local_encryption_info_valid, BtPersistLEPairingInfo::is_mitm_protection_enabled, BtPersistLEPairingInfo::is_remote_encryption_info_valid, BtPersistLEPairingInfo::is_remote_identity_info_valid, BtPersistLEPairingInfo::is_remote_signing_info_valid, pbl_bt_sm_pairing_info::local_encryption_info, BtPersistLEPairingInfo::local_encryption_info, pbl_bt_sm_local_encryption_info::ltk, BtPersistLEEncryptionInfo::ltk, BtPersistLEEncryptionInfo::rand, and BtPersistLEPairingInfo::remote_encryption_info.