|
PebbleOS
|
Former single-struct layout of the shared PRF storage, not used by the firmware. More...
Data Structures | |
| struct | BLEPairingData |
| BLE pairing. More... | |
| struct | BTClassicPairingData |
| BT Classic pairing. More... | |
| struct | SharedPRFData |
| Legacy shared PRF storage contents. More... | |
| struct | SharedPRFData.main_fw_scratch |
| Area reserved for the normal firmware to stash pairing related data. More... | |
Macros | |
| #define | SHARED_PRF_STORAGE_VERSION 3 |
| Layout version. | |
Former single-struct layout of the shared PRF storage, not used by the firmware.
| struct BLEPairingData |
BLE pairing.
| Data Fields | ||
|---|---|---|
| struct pbl_bt_sm_key | csrk | Remote signature key. |
| uint16_t | ediv | Remote EDIV, used when the watch is central. |
| struct pbl_bt_device_internal | identity | Remote identity address, used when the watch is peripheral. |
| struct pbl_bt_sm_key | irk | Remote IRK, used when the watch is peripheral. |
| bool | is_local_encryption_info_valid: 1 | local_div and local_ediv are valid. |
| bool | is_remote_encryption_info_valid: 1 | ltk, rand and ediv are valid. |
| bool | is_remote_identity_info_valid: 1 | irk and identity are valid. |
| bool | is_remote_signing_info_valid: 1 |
csrk is valid. Since iOS 9, the CSRK is no longer exchanged. |
| uint16_t | local_div | DIV handed to the remote with our LTK, used when the watch is peripheral. |
| uint16_t | local_ediv | EDIV handed to the remote with our LTK, used when the watch is peripheral. |
| struct pbl_bt_sm_key | ltk | Remote LTK, used when the watch is central. |
| char | name[PBL_BT_DEVICE_NAME_BUFFER_SIZE] | Remote device name. |
| uint64_t | rand | Remote Rand, used when the watch is central. |
| struct BTClassicPairingData |
BT Classic pairing.
| Data Fields | ||
|---|---|---|
| struct pbl_bt_addr | address | Remote address. |
| struct pbl_bt_sm_key | link_key | Link key. |
| char | name[PBL_BT_DEVICE_NAME_BUFFER_SIZE] | Remote device name. |
| uint8_t | platform_bits | Remote platform bits. |
| struct SharedPRFData |
Legacy shared PRF storage contents.
Shared PRF storage entry.
| Data Fields | ||
|---|---|---|
| BLEPairingData | ble_data | BLE pairing, must be adjacent to bt_classic_data. |
| SprfBlePairingData | ble_pairing_data | BLE pairing. |
| SprfBlePairingName | ble_pairing_name | BLE pairing device name. |
| BTClassicPairingData | bt_classic_data | BT Classic pairing. |
| SprfGettingStarted | getting_started | Onboarding state. |
| bool | getting_started_is_complete | Onboarding has been completed. |
| char | local_device_name[PBL_BT_DEVICE_NAME_BUFFER_SIZE] | Custom local device name, empty to use the default name. |
| SprfLocalIdentityAddress | local_identity_address | Local identity address. |
| SprfLocalName | local_name | Custom local device name. |
| SprfMagic | magic | Entry state. |
| struct SharedPRFData.main_fw_scratch | main_fw_scratch | Area reserved for the normal firmware to stash pairing related data. |
| SprfPinnedAddress | pinned_address | Pinned address. |
| struct pbl_bt_sm_key | root_keys[PBL_BT_SM_ROOT_KEY_TYPE_NUM] | BLE root keys (ER and IR). |
| SprfRootKeys | root_keys | BLE root keys. |
| uint8_t | rsvd[3] | Reserved. |
| uint32_t | version | Layout version, see SHARED_PRF_STORAGE_VERSION. |
| uint8_t | version | Layout version, currently 2. |
| struct SharedPRFData.main_fw_scratch |
| #define SHARED_PRF_STORAGE_VERSION 3 |
Layout version.