Advertising and Scan Response Data Encoder for NFC OOB pairing

nRF5 SDK v14.0.0

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...

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...

Detailed Description

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.

Macro Definition Documentation

#define AD_TYPE_CONFIRM_VALUE_DATA_SIZE   16UL

Data size (in octets) of the LESC Confirmation value.

#define AD_TYPE_CONFIRM_VALUE_SIZE
Value:
AD_TYPE_CONFIRM_VALUE_DATA_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
Value:
AD_TYPE_LE_ROLE_DATA_SIZE)

Size (in octets) of the LE Bluetooth Device Address AD type.

#define AD_TYPE_LESC_SIZE
Value:
AD_TYPE_CONFIRM_VALUE_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
Value:
AD_TYPE_OOB_FLAGS_DATA_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
Value:
AD_TYPE_RANDOM_VALUE_DATA_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
Value:
AD_TYPE_TK_VALUE_DATA_SIZE)

Size (in octets) of the Security Manager TK value AD type.

Enumeration Type Documentation

Payload field values of LE Role BLE GAP AD Type. Corresponds with ble_advdata_le_role_t enum.

Enumerator
NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_PERIPH

Only Peripheral Role supported.

NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_CENTRAL

Only Central Role supported.

NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_PERIPH_PREFERRED

Peripheral and Central Role supported. Peripheral Role preferred for connection establishment.

NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_CENTRAL_PREFERRED

Peripheral and Central Role supported. Central Role preferred for connection establishment

Function Documentation

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.

Parameters
[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.
Return values
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.

Parameters
[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.