Function for encoding data in the Advertising and Scan Response Data format, which can be used to create payload of NFC message intended for initiating the Out-of-Band pairing. More...
Modules | |
Encoding the advertising data and/or scan response data which is specific for OOB pairing configuration | |
Macros | |
#define | AD_TYPE_LE_ROLE_DATA_SIZE 1UL |
#define | AD_TYPE_LE_ROLE_SIZE |
#define | AD_TYPE_TK_VALUE_DATA_SIZE (sizeof(ble_advdata_tk_value_t)) |
#define | AD_TYPE_TK_VALUE_SIZE |
#define | AD_TYPE_OOB_FLAGS_DATA_SIZE 1UL |
#define | AD_TYPE_OOB_FLAGS_SIZE |
#define | AD_TYPE_CONFIRM_VALUE_DATA_SIZE 16UL |
#define | AD_TYPE_CONFIRM_VALUE_SIZE |
#define | AD_TYPE_RANDOM_VALUE_DATA_SIZE 16UL |
#define | AD_TYPE_RANDOM_VALUE_SIZE |
#define | AD_TYPE_LESC_SIZE |
#define | AD_TYPE_SEC_MGR_OOB_FLAG_SET 1U |
#define | AD_TYPE_SEC_MGR_OOB_FLAG_CLEAR 0U |
#define | AD_TYPE_SEC_MGR_OOB_FLAG_OOB_DATA_PRESENT_POS 0UL |
#define | AD_TYPE_SEC_MGR_OOB_FLAG_OOB_LE_SUPPORTED_POS 1UL |
#define | AD_TYPE_SEC_MGR_OOB_FLAG_SIM_LE_AND_EP_POS 2UL |
#define | AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_PUBLIC 0UL |
#define | AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_RANDOM 1UL |
#define | AD_TYPE_SEC_MGR_OOB_FLAG_ADDRESS_TYPE_POS 3UL |
Enumerations | |
enum | nfc_ble_advdata_le_role_encoded_t { NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_PERIPH = 0, NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_CENTRAL, NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_PERIPH_PREFERRED, NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_CENTRAL_PREFERRED } |
Payload field values of LE Role BLE GAP AD Type. Corresponds with ble_advdata_le_role_t enum. More... | |
Functions | |
ret_code_t | nfc_ble_oob_adv_data_encode (ble_advdata_t const *const p_advdata, uint8_t *const p_encoded_data, uint16_t *const p_len) |
Function for encoding data in the Advertising and Scan Response data format, which is used for NFC OOB pairing. More... | |
void | nfc_tk_value_payload_encode (ble_advdata_tk_value_t *p_tk_value, uint8_t *p_tk_payload_data) |
Function for encoding payload field of Security Manager TK Value AD Type. More... | |
Function for encoding data in the Advertising and Scan Response Data format, which can be used to create payload of NFC message intended for initiating the Out-of-Band pairing.
#define AD_TYPE_CONFIRM_VALUE_DATA_SIZE 16UL |
Data size (in octets) of the LESC Confirmation value.
#define AD_TYPE_CONFIRM_VALUE_SIZE |
Size (in octets) of the LESC Confirmation value AD type.
#define AD_TYPE_LE_ROLE_DATA_SIZE 1UL |
Data size (in octets) of the LE Bluetooth Device Address AD type.
#define AD_TYPE_LE_ROLE_SIZE |
Size (in octets) of the LE Bluetooth Device Address AD type.
#define AD_TYPE_LESC_SIZE |
Size (in octets) of the LESC OOB AD data field in NDEF message.
#define AD_TYPE_OOB_FLAGS_DATA_SIZE 1UL |
Data size (in octets) of the Security Manager OOB Flags AD type.
#define AD_TYPE_OOB_FLAGS_SIZE |
Size (in octets) of the Security Manager OOB Flags AD type.
#define AD_TYPE_RANDOM_VALUE_DATA_SIZE 16UL |
Data size (in octets) of the LESC Random value.
#define AD_TYPE_RANDOM_VALUE_SIZE |
Size (in octets) of the LESC Random value AD type.
#define AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_PUBLIC 0UL |
Security Manager OOB Public Address type.
#define AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_RANDOM 1UL |
Security Manager OOB Random Address type.
#define AD_TYPE_SEC_MGR_OOB_FLAG_ADDRESS_TYPE_POS 3UL |
Security Manager OOB Address type Flag (0 = Public Address, 1 = Random Address) position.
#define AD_TYPE_SEC_MGR_OOB_FLAG_CLEAR 0U |
Security Manager OOB Flag clear. Flag selection is done using _POS defines
#define AD_TYPE_SEC_MGR_OOB_FLAG_OOB_DATA_PRESENT_POS 0UL |
Security Manager OOB Data Present Flag position.
#define AD_TYPE_SEC_MGR_OOB_FLAG_OOB_LE_SUPPORTED_POS 1UL |
Security Manager OOB Low Energy Supported Flag position.
#define AD_TYPE_SEC_MGR_OOB_FLAG_SET 1U |
Security Manager OOB Flag set. Flag selection is done using _POS defines
#define AD_TYPE_SEC_MGR_OOB_FLAG_SIM_LE_AND_EP_POS 2UL |
Security Manager OOB Simultaneous LE and BR/EDR to Same Device Capable Flag position.
#define AD_TYPE_TK_VALUE_DATA_SIZE (sizeof(ble_advdata_tk_value_t)) |
Data size (in octets) of the Security Manager TK value AD type.
#define AD_TYPE_TK_VALUE_SIZE |
Size (in octets) of the Security Manager TK value AD type.
Payload field values of LE Role BLE GAP AD Type. Corresponds with ble_advdata_le_role_t enum.
ret_code_t nfc_ble_oob_adv_data_encode | ( | ble_advdata_t const *const | p_advdata, |
uint8_t *const | p_encoded_data, | ||
uint16_t *const | p_len | ||
) |
Function for encoding data in the Advertising and Scan Response data format, which is used for NFC OOB pairing.
This function encodes data into the Advertising and Scan Response data format (AD structures). Encoding is based on the selections in the supplied structures. This function uses ble_advdata_encode to encode regular data and adds additional AD Structures which are specific for NFC OOB pairing: Security Manager TK Value, LESC OOB values, OOB Flags, and LE Role.
[in] | p_advdata | Pointer to the structure for specifying the content of encoded data. |
[out] | p_encoded_data | Pointer to the buffer where encoded data will be returned. |
[in,out] | p_len | in: Size of p_encoded_data buffer. out: Length of encoded data. |
NRF_SUCCESS | If the operation was successful. |
NRF_ERROR_INVALID_PARAM | If the operation failed because a wrong parameter was provided in p_advdata . |
NRF_ERROR_DATA_SIZE | If the operation failed because not all the requested data could fit into the provided buffer or some encoded AD structure is too long and its length cannot be encoded with one octet. |
void nfc_tk_value_payload_encode | ( | ble_advdata_tk_value_t * | p_tk_value, |
uint8_t * | p_tk_payload_data | ||
) |
Function for encoding payload field of Security Manager TK Value AD Type.
[in] | p_tk_value | Security Manager TK Value AD Type payload. |
[out] | p_tk_payload_data | Pointer to the buffer where TK payload data will be stored. |