Bluetooth Host Stack Library
All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules Pages
LE Security

General Description

Bluetooth LE security API (authorisation, authentication and encryption)

Note
General Security APIs are listed in Generic Security API section.

API Reference

 Generic Security API
 Bluetooth generic security API.
 

Functions

wiced_result_t wiced_bt_dev_add_device_to_address_resolution_db (wiced_bt_device_link_keys_t *p_link_keys)
 add link key information to internal address resolution db More...
 
wiced_result_t wiced_bt_dev_remove_device_from_address_resolution_db (wiced_bt_device_link_keys_t *p_link_keys)
 remove link key information from internal address resolution db More...
 
uint16_t wiced_bt_dev_get_acl_conn_handle (wiced_bt_device_address_t bdaddr, wiced_bt_transport_t transport)
 get the acl connection handle for bdaddr More...
 
void wiced_bt_ble_security_grant (wiced_bt_device_address_t bd_addr, wiced_bt_dev_status_t res)
 Grant or deny access. More...
 
wiced_bool_t wiced_bt_ble_data_signature (wiced_bt_device_address_t bd_addr, uint8_t *p_text, uint16_t len, wiced_dev_ble_signature_t signature)
 Sign the data using AES128 CMAC algorith. More...
 
wiced_bool_t wiced_bt_ble_verify_signature (wiced_bt_device_address_t bd_addr, uint8_t *p_orig, uint16_t len, uint32_t counter, uint8_t *p_comp)
 Verify the data signature. More...
 
wiced_bool_t wiced_bt_ble_get_security_state (wiced_bt_device_address_t bd_addr, uint8_t *p_le_sec_flags, uint8_t *p_le_key_size)
 Get security mode 1 flags and encryption key size for LE peer. More...
 
wiced_bt_dev_status_t wiced_bt_ble_set_privacy_mode (wiced_bt_device_address_t remote_bda, wiced_bt_ble_address_type_t rem_bda_type, wiced_bt_ble_privacy_mode_t privacy_mode)
 Updates privacy mode if device is already available in controller resolving list. More...
 
wiced_bt_dev_status_t wiced_bt_ble_read_device_random_address (wiced_bt_device_address_t random_bd_addr)
 Get the configured local random device address. More...
 
wiced_result_t wiced_ble_private_device_address_resolution (wiced_bt_device_address_t rpa, BT_OCTET16 irk)
 Function wiced_ble_private_device_address_resolution. More...
 
wiced_result_t wiced_bt_ble_address_resolution_list_clear_and_disable (void)
 Function wiced_bt_ble_address_resolution_list_clear_and_disable. More...
 

Function Documentation

◆ wiced_bt_ble_security_grant()

void wiced_bt_ble_security_grant ( wiced_bt_device_address_t  bd_addr,
wiced_bt_dev_status_t  res 
)

Grant or deny access.

Used in response to an BTM_SECURITY_REQUEST_EVT event.

Parameters
[in]bd_addr: peer device bd address.
[in]res: WICED_BT_SUCCESS to grant access; WICED_BT_UNSUPPORTED , if local device does not allow pairing; WICED_BT_REPEATED_ATTEMPTS otherwise
Returns
None

◆ wiced_bt_dev_add_device_to_address_resolution_db()

wiced_result_t wiced_bt_dev_add_device_to_address_resolution_db ( wiced_bt_device_link_keys_t p_link_keys)

add link key information to internal address resolution db

Parameters
[in]p_link_keys: link keys information stored in application side
Returns
wiced_result_t

◆ wiced_bt_dev_remove_device_from_address_resolution_db()

wiced_result_t wiced_bt_dev_remove_device_from_address_resolution_db ( wiced_bt_device_link_keys_t p_link_keys)

remove link key information from internal address resolution db

Parameters
[in]p_link_keys: link keys information stored in application side
Returns
wiced_result_t

◆ wiced_bt_dev_get_acl_conn_handle()

uint16_t wiced_bt_dev_get_acl_conn_handle ( wiced_bt_device_address_t  bdaddr,
wiced_bt_transport_t  transport 
)

get the acl connection handle for bdaddr

Parameters
[in]bdaddrdevice identity address
[in]transportconnection transport
Returns
: acl connection handle

◆ wiced_bt_ble_data_signature()

wiced_bool_t wiced_bt_ble_data_signature ( wiced_bt_device_address_t  bd_addr,
uint8_t *  p_text,
uint16_t  len,
wiced_dev_ble_signature_t  signature 
)

Sign the data using AES128 CMAC algorith.

Parameters
[in]bd_addrtarget device the data to be signed for.
[in]p_textsigning data
[in]lenlength of the signing data
[in]signatureoutput parameter where data signature is going to be stored
Returns
TRUE if signing successful, otherwise FALSE.

◆ wiced_bt_ble_verify_signature()

wiced_bool_t wiced_bt_ble_verify_signature ( wiced_bt_device_address_t  bd_addr,
uint8_t *  p_orig,
uint16_t  len,
uint32_t  counter,
uint8_t *  p_comp 
)

Verify the data signature.

Parameters
[in]bd_addrtarget device the data to be signed for.
[in]p_origoriginal data before signature.
[in]lenlength of the signing data
[in]countercounter used when doing data signing
[in]p_compsignature to be compared against.
Returns
TRUE if signature verified correctly; otherwise FALSE.

◆ wiced_bt_ble_get_security_state()

wiced_bool_t wiced_bt_ble_get_security_state ( wiced_bt_device_address_t  bd_addr,
uint8_t *  p_le_sec_flags,
uint8_t *  p_le_key_size 
)

Get security mode 1 flags and encryption key size for LE peer.

Parameters
[in]bd_addr: peer address
[out]p_le_sec_flags: security flags (see wiced_bt_ble_sec_flags_e)
[out]p_le_key_size: encryption key size
Returns
TRUE if successful

◆ wiced_bt_ble_set_privacy_mode()

wiced_bt_dev_status_t wiced_bt_ble_set_privacy_mode ( wiced_bt_device_address_t  remote_bda,
wiced_bt_ble_address_type_t  rem_bda_type,
wiced_bt_ble_privacy_mode_t  privacy_mode 
)

Updates privacy mode if device is already available in controller resolving list.

Parameters
[in]remote_bda-remote device address received during connection up
[in]rem_bda_type-remote device address type received during connection up
[in]privacy_mode- privacy mode (see wiced_bt_ble_privacy_mode_t)
Returns
wiced_bt_dev_status_t
WICED_BT_ILLEGAL_VALUE : if paramer is wrong
WICED_BT_UNSUPPORTED : if command not supported
WICED_BT_UNKNOWN_ADDR : if bd_addr is wrong
WICED_BT_ILLEGAL_ACTION : if device not added to resolving list or peer irk is not valid
WICED_BT_ERROR : error while processing the command
WICED_BT_SUCCESS : if command started

◆ wiced_bt_ble_read_device_random_address()

wiced_bt_dev_status_t wiced_bt_ble_read_device_random_address ( wiced_bt_device_address_t  random_bd_addr)

Get the configured local random device address.

Note : random address depends on below settings in that priority order. 1) Global privacy configuration using rpa_refresh_timeout (see wiced_bt_cfg_settings_t). 2) else configured for static random bd_address while downloading using BT_DEVICE_ADDRESS=random build setting.

Parameters
[out]random_bd_addr- device random bd address
Returns
wiced_bt_dev_status_t WICED_BT_SUCCESS : if random address is configured.
WICED_BT_WRONG_MODE : if random address not configured.

◆ wiced_ble_private_device_address_resolution()

wiced_result_t wiced_ble_private_device_address_resolution ( wiced_bt_device_address_t  rpa,
BT_OCTET16  irk 
)

Function wiced_ble_private_device_address_resolution.

             This API verifies whether given device address is Resolvable Private Address or not
Parameters
rpaLE Resolvable Private Address
irkLE IRK
Returns
wiced_result_t WICED_BT_SUCCESS the identity of device address has been resolved. WICED_BT_ERROR otherwise.

◆ wiced_bt_ble_address_resolution_list_clear_and_disable()

wiced_result_t wiced_bt_ble_address_resolution_list_clear_and_disable ( void  )

Function wiced_bt_ble_address_resolution_list_clear_and_disable.

             This API clears the address resolution list and disables the address resolution feature.
Returns
wiced_result_t WICED_BT_SUCCESS if address resolution list is cleared and adress resolution feature is disabled. WICED_BT_ERROR otherwise.