Infineon Logo AIROC BTSDK v4.9 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups

This module provided various Bluetooth BR/EDR security functionality such as authorisation, authentication and encryption. More...

Modules

 Generic Security API
 Bluetooth generic security API.
 

Macros

#define wiced_bt_start_authentication(bdaddr, hci_handle)   wiced_bt_utils_acl_start_authentication(bdaddr, hci_handle)
 
#define wiced_bt_start_encryption(bdaddr)   wiced_bt_utils_acl_start_encryption(bdaddr)
 

Functions

void wiced_bt_dev_pin_code_reply (wiced_bt_device_address_t bd_addr, wiced_result_t res, uint8_t pin_len, uint8_t *p_pin)
 PIN code reply (use in response to BTM_PIN_REQUEST_EVT in wiced_bt_management_cback_t) More...
 
void wiced_bt_dev_pass_key_req_reply (wiced_result_t res, wiced_bt_device_address_t bd_addr, uint32_t passkey)
 Provide the pairing passkey (in response to BTM_PASSKEY_REQUEST_EVT of wiced_bt_management_cback_t) More...
 
wiced_result_t wiced_bt_dev_read_local_oob_data (void)
 Read the local OOB data from controller (for sending to peer device over oob message). More...
 
void wiced_bt_dev_remote_oob_data_reply (wiced_result_t res, wiced_bt_device_address_t bd_addr, wiced_bool_t is_extended_oob_data, BT_OCTET16 c_192, BT_OCTET16 r_192, BT_OCTET16 c_256, BT_OCTET16 r_256)
 Provide the remote OOB extended data for Simple Pairing in response to BTM_REMOTE_OOB_DATA_REQUEST_EVT. More...
 
uint16_t wiced_bt_dev_build_oob_data (uint8_t *p_data, uint16_t max_len, wiced_bool_t is_extended_oob_data, BT_OCTET16 c_192, BT_OCTET16 r_192, BT_OCTET16 c_256, BT_OCTET16 r_256)
 Build the OOB data block to be used to send OOB extended data over OOB (non-Bluetooth) link. More...
 
void wiced_bt_smp_oob_data_reply (wiced_bt_device_address_t bd_addr, wiced_result_t res, uint8_t len, uint8_t *p_data)
 This function is called to provide the OOB data for SMP in response to BTM_SMP_REMOTE_OOB_DATA_REQUEST_EVT. More...
 
wiced_bool_t wiced_bt_smp_create_local_sc_oob_data (wiced_bt_device_address_t bd_addr, wiced_bt_ble_address_type_t bd_addr_type)
 Create local LE SC (secure connection) OOB data. More...
 
void wiced_bt_smp_sc_oob_reply (wiced_bt_smp_sc_oob_data_t *p_oob_data)
 Provide the SC OOB data for SMP in response to BTM_SMP_SC_REMOTE_OOB_DATA_REQUEST_EVT. More...
 
uint8_t * wiced_bt_dev_read_oob_data (uint8_t *p_data, uint8_t eir_tag, uint8_t *p_len)
 This function is called to parse the OOB data payload received over OOB (non-Bluetooth) link. More...
 
void wiced_bt_dev_lrac_disable_secure_connection (void)
 Disable Bluetooth secure connection. More...
 
wiced_bool_t wiced_bt_utils_acl_start_authentication (wiced_bt_device_address_t bdaddr, uint16_t hci_handle)
 Start the authentication process with remote device. More...
 
wiced_bool_t wiced_bt_utils_acl_start_encryption (wiced_bt_device_address_t bdaddr)
 Start the encryption process with remote device. More...
 

Detailed Description

This module provided various Bluetooth BR/EDR security functionality such as authorisation, authentication and encryption.

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

Function Documentation

uint16_t wiced_bt_dev_build_oob_data ( uint8_t *  p_data,
uint16_t  max_len,
wiced_bool_t  is_extended_oob_data,
BT_OCTET16  c_192,
BT_OCTET16  r_192,
BT_OCTET16  c_256,
BT_OCTET16  r_256 
)

Build the OOB data block to be used to send OOB extended data over OOB (non-Bluetooth) link.

Parameters
[out]p_data: OOB data block location
[in]max_len: OOB data block size
[in]is_extended_oob_data: TRUE if extended OOB data (for Secure Connections)
[in]c_192: simple pairing Hash C derived from the P-192 public key.
[in]r_192: simple pairing Randomizer R associated with the P-192 public key.
[in]c_256: simple pairing Hash C derived from the P-256 public key (if is_extended_oob_data=TRUE)
[in]r_256: simple pairing Randomizer R associated with the P-256 public key (if is_extended_oob_data=TRUE)
Returns
Number of bytes put into OOB data block.
Note
BR/EDR Only
void wiced_bt_dev_lrac_disable_secure_connection ( void  )

Disable Bluetooth secure connection.

Note
This utility is used for LRAC application to disable the Bluetooth secure connection only. If the interference issue is fixed, this utility may be removed This utility shall be called before the Bluetooth stack is initialized (by calling app_bt_init()).
void wiced_bt_dev_pass_key_req_reply ( wiced_result_t  res,
wiced_bt_device_address_t  bd_addr,
uint32_t  passkey 
)

Provide the pairing passkey (in response to BTM_PASSKEY_REQUEST_EVT of wiced_bt_management_cback_t)

Parameters
[in]res: result of the operation WICED_BT_SUCCESS if success
[in]bd_addr: Address of the peer device
[in]passkey: numeric value in the range of 0 - 999999(0xF423F).
Returns
void
Note
BR/EDR only
void wiced_bt_dev_pin_code_reply ( wiced_bt_device_address_t  bd_addr,
wiced_result_t  res,
uint8_t  pin_len,
uint8_t *  p_pin 
)

PIN code reply (use in response to BTM_PIN_REQUEST_EVT in wiced_bt_management_cback_t)

Parameters
[in]bd_addr: Address of the device for which PIN was requested
[in]res: result of the operation WICED_BT_SUCCESS if success
[in]pin_len: length in bytes of the PIN Code
[in]p_pin: pointer to array with the PIN Code
Returns
void
Note
BR/EDR Only
wiced_result_t wiced_bt_dev_read_local_oob_data ( void  )

Read the local OOB data from controller (for sending to peer device over oob message).

When operation is completed, local OOB data will be provided via BTM_READ_LOCAL_OOB_DATA_COMPLETE_EVT.

Note
BR/EDR Only
uint8_t* wiced_bt_dev_read_oob_data ( uint8_t *  p_data,
uint8_t  eir_tag,
uint8_t *  p_len 
)

This function is called to parse the OOB data payload received over OOB (non-Bluetooth) link.

Parameters
[in]p_data: oob data
[in]eir_tag: EIR Data type( version5.0, Volume 3, Part C Section 5.2.2.7 )
[out]p_len: the length of the data with the given EIR Data type
Returns
The beginning of the data with the given EIR Data type. NULL, if the tag is not found.
Note
BR/EDR Only
void wiced_bt_dev_remote_oob_data_reply ( wiced_result_t  res,
wiced_bt_device_address_t  bd_addr,
wiced_bool_t  is_extended_oob_data,
BT_OCTET16  c_192,
BT_OCTET16  r_192,
BT_OCTET16  c_256,
BT_OCTET16  r_256 
)

Provide the remote OOB extended data for Simple Pairing in response to BTM_REMOTE_OOB_DATA_REQUEST_EVT.

Parameters
[in]res: response reply
[in]bd_addr: Address of the peer device
[in]is_extended_oob_data: TRUE if extended OOB data (set according to BTM_REMOTE_OOB_DATA_REQUEST_EVT request)
[in]c_192: simple pairing Hash C derived from the P-192 public key.
[in]r_192: simple pairing Randomizer R associated with the P-192 public key.
[in]c_256: simple pairing Hash C derived from the P-256 public key (if is_extended_oob_data=TRUE)
[in]r_256: simple pairing Randomizer R associated with the P-256 public key (if is_extended_oob_data=TRUE)
Note
BR/EDR Only
wiced_bool_t wiced_bt_smp_create_local_sc_oob_data ( wiced_bt_device_address_t  bd_addr,
wiced_bt_ble_address_type_t  bd_addr_type 
)

Create local LE SC (secure connection) OOB data.

When operation is completed, local OOB data will be provided via BTM_SMP_SC_LOCAL_OOB_DATA_NOTIFICATION_EVT.

Parameters
[in]bd_addr: intended remote address for the OOB data
[in]bd_addr_type: BLE_ADDR_PUBLIC or BLE_ADDR_PUBLIC
Returns
TRUE: creation of local SC OOB data set started.
Note
BR/EDR Only
void wiced_bt_smp_oob_data_reply ( wiced_bt_device_address_t  bd_addr,
wiced_result_t  res,
uint8_t  len,
uint8_t *  p_data 
)

This function is called to provide the OOB data for SMP in response to BTM_SMP_REMOTE_OOB_DATA_REQUEST_EVT.

Parameters
[in]bd_addr- Address of the peer device
[in]res- result of the operation WICED_BT_SUCCESS if success
[in]len- oob data length
[in]p_data- oob data
Note
BR/EDR Only
void wiced_bt_smp_sc_oob_reply ( wiced_bt_smp_sc_oob_data_t p_oob_data)

Provide the SC OOB data for SMP in response to BTM_SMP_SC_REMOTE_OOB_DATA_REQUEST_EVT.

Parameters
[in]p_oob_data: oob data
wiced_bool_t wiced_bt_utils_acl_start_authentication ( wiced_bt_device_address_t  bdaddr,
uint16_t  hci_handle 
)

Start the authentication process with remote device.

Parameters
[in]bdaddr- remote device's address
[in]hci_handle- ACL connection's handle
Returns
WICED_TRUE: success WICED_FALSE: fail
wiced_bool_t wiced_bt_utils_acl_start_encryption ( wiced_bt_device_address_t  bdaddr)

Start the encryption process with remote device.

Parameters
[in]bdaddr- remote device's address
Returns
WICED_TRUE: success WICED_FALSE: fail