PebbleOS
Loading...
Searching...
No Matches
Data Structures | Enumerations
Security Manager types

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...
 

Detailed Description

Keys and pairing information.


Data Structure Documentation

◆ pbl_bt_sm_key

struct pbl_bt_sm_key

A 128-bit key.

Data Fields
uint8_t data[16] Key bytes.

◆ pbl_bt_sm_local_encryption_info

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.

◆ pbl_bt_sm_remote_encryption_info

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.

◆ pbl_bt_sm_pairing_info

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.

Enumeration Type Documentation

◆ pbl_bt_sm_root_key_type

Root keys of the local device, from which the local keys are derived.

Enumerator
PBL_BT_SM_ROOT_KEY_TYPE_ENCRYPTION 

Encryption Root key (ER).

PBL_BT_SM_ROOT_KEY_TYPE_IDENTITY 

Identity Root key (IR), from which the local IRK is derived.

PBL_BT_SM_ROOT_KEY_TYPE_NUM 

Number of root key types.