mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-23 10:21:12 +00:00
document central_device_db interface
This commit is contained in:
parent
966ef2170d
commit
284ffa8374
@ -38,26 +38,73 @@
|
||||
|
||||
#include <btstack/utils.h>
|
||||
|
||||
/**
|
||||
|
||||
A Central Device DB is only required for signed writes
|
||||
|
||||
Per bonded device, it stores the Identity Resolving Key (IRK), the Connection Signature Resolving Key (CSRK)
|
||||
and the last used counter
|
||||
|
||||
The IRK is necessary to identify a device that uses private addresses
|
||||
The CSRK is used to generate the signatur on the remote device and is needed to verify the signature itself
|
||||
The Counter is necessary to prevent reply attacks
|
||||
|
||||
*/
|
||||
|
||||
|
||||
// Central Device db interface
|
||||
|
||||
|
||||
/**
|
||||
* @brief init
|
||||
*/
|
||||
void central_device_db_init();
|
||||
|
||||
// @returns index if successful, -1 otherwise
|
||||
/**
|
||||
* @brief add device to db
|
||||
* @param addr_type, address of the device
|
||||
* @param irk and csrk of the device
|
||||
* @returns index if successful, -1 otherwise
|
||||
*/
|
||||
int central_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk, sm_key_t csrk);
|
||||
|
||||
// @returns number of device in db
|
||||
/**
|
||||
* @brief get number of devices in db for enumeration
|
||||
* @returns number of device in db
|
||||
*/
|
||||
int central_device_db_count(void);
|
||||
|
||||
// get device information: addr type and address
|
||||
void central_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t csrk);
|
||||
/**
|
||||
* @brief get device information: addr type and address needed to identify device
|
||||
* @param index
|
||||
* @param addr_type, address of the device as output
|
||||
* @param irk of the device
|
||||
*/
|
||||
void central_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t irk);
|
||||
|
||||
// get signature key
|
||||
/**
|
||||
* @brief get signing key for this device
|
||||
* @param index
|
||||
* @param signing key as output
|
||||
*/
|
||||
void central_device_db_csrk(int index, sm_key_t csrk);
|
||||
|
||||
// query last used/seen signing counter
|
||||
/**
|
||||
* @brief query last used/seen signing counter
|
||||
* @param index
|
||||
* @returns next expected counter, 0 after devices was added
|
||||
*/
|
||||
uint32_t central_device_db_counter_get(int index);
|
||||
|
||||
// update signing counter
|
||||
/**
|
||||
* @brief update signing counter
|
||||
* @param index
|
||||
* @param counter to store
|
||||
*/
|
||||
void central_device_db_counter_set(int index, uint32_t counter);
|
||||
|
||||
// free device
|
||||
void central_device_db_remove(int index);
|
||||
/**
|
||||
* @brief free device
|
||||
* @param index
|
||||
*/
|
||||
void central_device_db_remove(int index);
|
||||
|
Loading…
x
Reference in New Issue
Block a user