ESPHome 2026.8.0-dev
Loading...
Searching...
No Matches
esphome::ble_device_base Namespace Reference

Data Structures

class  BLEHub
 
class  ESPBLEiBeacon
 
class  ESPBTDevice
 
class  ESPBTDeviceListener
 
class  ESPBTUUID
 
struct  HubCapabilities
 What a tracker's controller/SDK can do — consumers branch on data, not #ifdefs. More...
 
struct  ServiceData
 

Typedefs

using adv_data_t = std::vector<uint8_t>
 
using RawAdvertisementCallback
 Callback for raw advertisements (the bluetooth_proxy path).
 

Functions

void aes128_encrypt_block (const uint8_t key[16], const uint8_t in[16], uint8_t out[16])
 AES-128 single-block encrypt (the same software cipher CCM uses).
 
bool aes_ccm_auth_decrypt (const uint8_t key[16], const uint8_t *nonce, size_t nonce_len, const uint8_t *aad, size_t aad_len, const uint8_t *ciphertext, size_t ct_len, uint8_t *plaintext, const uint8_t *tag, size_t tag_len)
 

Typedef Documentation

◆ adv_data_t

using esphome::ble_device_base::adv_data_t = std::vector<uint8_t>

Definition at line 37 of file ble_device.h.

◆ RawAdvertisementCallback

Initial value:
std::function<void(const uint8_t *mac, int rssi, uint8_t addr_type, const uint8_t *data, uint16_t data_len)>

Callback for raw advertisements (the bluetooth_proxy path).

mac[] is least-significant octet first (BLE controller convention); the hub delivers on the ESPHome main loop.

Definition at line 27 of file ble_hub.h.

Function Documentation

◆ aes128_encrypt_block()

void esphome::ble_device_base::aes128_encrypt_block ( const uint8_t key[16],
const uint8_t in[16],
uint8_t out[16] )

AES-128 single-block encrypt (the same software cipher CCM uses).

Used by ESPBTDevice::resolve_irk() for the Bluetooth "ah" RPA hash, so IRK matching works identically on every platform with no chip crypto dependency.

Definition at line 110 of file ble_aes_ccm.cpp.

◆ aes_ccm_auth_decrypt()

bool esphome::ble_device_base::aes_ccm_auth_decrypt ( const uint8_t key[16],
const uint8_t * nonce,
size_t nonce_len,
const uint8_t * aad,
size_t aad_len,
const uint8_t * ciphertext,
size_t ct_len,
uint8_t * plaintext,
const uint8_t * tag,
size_t tag_len )

Definition at line 115 of file ble_aes_ccm.cpp.