Provision PDU

group Provision_PDU

Provision PDU used for provisioning procedure.

Defines

OUTPUT_OOB_SIZE_MAX 8

Maximum size for output OOB.

INPUT_OOB_SIZE_MAX 8

Maximum size for input OOB.

CONFIRMATION_INPUTS_LENGTH (sizeof(prov_invite_t) + sizeof(prov_capabilities_t) + sizeof(prov_start_t) + sizeof(prov_public_key_t) + sizeof(prov_public_key_t))

Length of inputs for confirmation calculation.

Typedefs

typedef uint8_t prov_pdu_type_t

Type alias matching _prov_pdu_type_t to ensure the correct frame format.

typedef uint8_t prov_start_algorithm_t

Type alias matching _prov_start_algorithm_t to ensure the correct frame format.

typedef uint8_t prov_start_public_key_t

Type alias matching _prov_start_public_key_t to ensure the correct frame format.

typedef uint8_t prov_start_output_oob_action_t

Type alias matching _prov_start_output_oob_action_t to ensure the correct frame format.

typedef uint8_t prov_start_input_oob_action_t

Type alias matching _prov_start_input_oob_action_t to ensure the correct frame format.

typedef uint8_t prov_auth_method_t

Type alias matching _prov_auth_method_t to ensure the correct frame format.

typedef uint8_t prov_result_t

Type alias matching _prov_result_t to ensure the correct frame format.

Enums

enum _prov_pdu_type_t

Enum for provisioning PDU types. Use prov_pdu_type_t to ensure the correct frame format.

Values:

enumerator PROV_INVITE

Provisioning invite message.

enumerator PROV_CAPABILITIES

Provisioning capabilities message.

enumerator PROV_START

Provisioning start message.

enumerator PROV_PUBLIC_KEY

Provisioning public key message.

enumerator PROV_INPUT_COMPLETE

Provisioning input complete message.

enumerator PROV_CONFIRMATION

Provisioning confirmation message.

enumerator PROV_RANDOM

Provisioning random message.

enumerator PROV_DATA

Provisioning data message.

enumerator PROV_COMPLETE

Provisioning complete message.

enumerator PROV_FAILED

Provisioning failed message.

enum prov_cap_algorithm_t

Enum for provisioning capability algorithms.

Values:

enumerator PROV_CAP_ALGO_FIPS_P256_ELLIPTIC_CURVE

Algorithm BTM_ECDH_P256_CMAC_AES128_AES_CCM.

enum _prov_start_algorithm_t

Enum for starting algorithms in provisioning. Use prov_start_algorithm_t to ensure the correct frame format.

Values:

enumerator PROV_START_FIPS_P256_ELLIPTIC_CURVE

Starting with BTM_ECDH_P256_CMAC_AES128_AES_CCM.

enum prov_cap_public_key_t

Enum for provisioning capability public key types.

Values:

enumerator PROV_CAP_PUBLIC_KEY_OOB

OOB Public Key.

enum _prov_start_public_key_t

Enum for starting public key types in provisioning. Use prov_start_public_key_t to ensure the correct frame format.

Values:

enumerator PROV_START_NO_OOB_PUBLIC_KEY

No OOB Public Key used for start.

enumerator PROV_START_OOB_PUBLIC_KEY

OOB Public Key used for start.

enum prov_cap_static_oob_t

Enum for provisioning capability static OOB types.

Values:

enumerator PROV_CAP_STATIC_OOB

Static OOB capability.

enum prov_cap_output_oob_action_t

Enum for output OOB actions in provisioning capabilities.

Values:

enumerator PROV_CAP_OUTPUT_OOB_ACTION_BLINK

Blink action for output OOB.

enumerator PROV_CAP_OUTPUT_OOB_ACTION_BEEP

Beep action for output OOB.

enumerator PROV_CAP_OUTPUT_OOB_ACTION_VIBRATE

Vibrate action for output OOB.

enumerator PROV_CAP_OUTPUT_OOB_ACTION_OUTPUT_NUMERIC

Output numeric action for output OOB.

enumerator PROV_CAP_OUTPUT_OOB_ACTION_OUTPUT_ALPHANUMERIC

Output alphanumeric action for output OOB.

enum _prov_start_output_oob_action_t

Enum for starting output OOB actions in provisioning. Use prov_start_output_oob_action_t to ensure the correct frame format.

Values:

enumerator PROV_START_OUTPUT_OOB_ACTION_BLINK

Start blink action for output OOB.

enumerator PROV_START_OUTPUT_OOB_ACTION_BEEP

Start beep action for output OOB.

enumerator PROV_START_OUTPUT_OOB_ACTION_VIBRATE

Start vibrate action for output OOB.

enumerator PROV_START_OUTPUT_OOB_ACTION_OUTPUT_NUMERIC

Start output numeric action for output OOB.

enumerator PROV_START_OUTPUT_OOB_ACTION_OUTPUT_ALPHANUMERIC

Start output alphanumeric action for output OOB.

enum prov_cap_input_oob_action_t

Enum for input OOB actions in provisioning capabilities.

Values:

enumerator PROV_CAP_INPUT_OOB_ACTION_BIT_PUSH

Push action for input OOB.

enumerator PROV_CAP_INPUT_OOB_ACTION_BIT_TWIST

Twist action for input OOB.

enumerator PROV_CAP_INPUT_OOB_ACTION_BIT_INPUT_NUMERIC

Input numeric action for input OOB.

enumerator PROV_CAP_INPUT_OOB_ACTION_BIT_INPUT_ALPHANUMERIC

Input alphanumeric action for input OOB.

enum _prov_start_input_oob_action_t

Enum for starting input OOB actions in provisioning. Use prov_start_input_oob_action_t to ensure the correct frame format.

Values:

enumerator PROV_START_INPUT_OOB_ACTION_PUSH

Start push action for input OOB.

enumerator PROV_START_INPUT_OOB_ACTION_TWIST

Start twist action for input OOB.

enumerator PROV_START_INPUT_OOB_ACTION_INPUT_NUMERIC

Start input numeric action for input OOB.

enumerator PROV_START_INPUT_OOB_ACTION_INPUT_ALPHANUMERIC

Start input alphanumeric action for input OOB.

enum _prov_auth_method_t

Enum for authentication methods used in provisioning. Use prov_auth_method_t to ensure the correct frame format.

Values:

enumerator PROV_AUTH_METHOD_NO_OOB

No OOB authentication method.

enumerator PROV_AUTH_METHOD_STATIC_OOB

Static OOB authentication method.

enumerator PROV_AUTH_METHOD_OUTPUT_OOB

Output OOB authentication method.

enumerator PROV_AUTH_METHOD_INPUT_OOB

Input OOB authentication method.

enum prov_auth_value_type_t

Enum for authentication value types in provisioning.

Values:

enumerator PROV_AUTH_VALUE_TYPE_NONE

No authentication value type.

enumerator PROV_AUTH_VALUE_TYPE_BINARY

Binary authentication value type.

enumerator PROV_AUTH_VALUE_TYPE_NUMERIC

Numeric authentication value type.

enumerator PROV_AUTH_VALUE_TYPE_ALPHANUMERIC

Alphanumeric authentication value type.

enum _prov_result_t

Enum for provisioning result types. Use prov_result_t to ensure the correct frame format.

Values:

enumerator PROV_VALID

Provisioning was successful and valid.

enumerator PROV_FAILED_INVALID_PDU

Failure due to invalid PDU.

enumerator PROV_FAILED_INVALID_FORMAT

Failure due to invalid format.

enumerator PROV_FAILED_UNEXPECTED_PDU

Failure due to unexpected PDU.

enumerator PROV_FAILED_CONFIRMATION_FAILED

Failure due to confirmation mismatch.

enumerator PROV_FAILED_OUT_OF_RESOURCE

Failure due to lack of resources.

enumerator PROV_FAILED_DECRYPTION_FAILED

Failure due to decryption error.

enumerator PROV_FAILED_UNEXPECTED_ERROR

Failure due to unexpected error.

enumerator PROV_FAILED_CANNOT_ASSIGN_ADDR

Failure due to inability to assign address.

enumerator PROV_FAILED_INVALID_DATA

Failure due to invalid data; used by RPR.

enum prov_material_len_type_t

Enum for types of provisioning material lengths.

Values:

enumerator PROV_MATERIAL_LEN_TYPE_RANDOM

Random length type.

enumerator PROV_MATERIAL_LEN_TYPE_CONF

Confirmation length type.

enumerator PROV_MATERIAL_LEN_TYPE_CONF_SALT

Confirmation salt length type.

enumerator PROV_MATERIAL_LEN_TYPE_CONF_KEY

Confirmation key length type.

enumerator PROV_MATERIAL_LEN_TYPE_AUTH_VALUE

Authentication value length type.

struct prov_invite_t

Structure for provisioning invite message.

Public Members

uint8_t attn_dur

Attention duration in seconds.

struct prov_capabilities_t

Structure for provisioning capabilities message.

Public Members

uint8_t element_num

Number of elements.

uint16_t algorithm

Algorithm used; refers to prov_cap_algorithm_t.

uint8_t public_key

Public key type; see prov_cap_public_key_t.

uint8_t static_oob

Static OOB type; see prov_cap_static_oob_t.

uint8_t output_oob_size

Size of output OOB; max value is OUTPUT_OOB_SIZE_MAX.

uint16_t output_oob_action

Action type for output OOB; see prov_cap_output_oob_action_t.

uint8_t input_oob_size

Size of input OOB; max value is INPUT_OOB_SIZE_MAX.

uint16_t input_oob_action

Action type for input OOB; see prov_cap_input_oob_action_t.

union prov_auth_action_t

Union for authentication actions in provisioning.

Public Members

uint8_t oob_action

OOB action type.

prov_start_output_oob_action_t output_oob_action

Output OOB action.

prov_start_input_oob_action_t input_oob_action

Input OOB action.

union prov_auth_size_t

Union for authentication sizes in provisioning.

Public Members

uint8_t oob_size

OOB size.

uint8_t output_oob_size

Output OOB size.

uint8_t input_oob_size

Input OOB size.

struct prov_start_t

Structure for provisioning start message.

Public Members

prov_start_algorithm_t algorithm

Algorithm used for provisioning.

prov_start_public_key_t public_key

Public key type used.

prov_auth_method_t auth_method

Authentication method used.

prov_auth_action_t auth_action

Authentication action type.

prov_auth_size_t auth_size

Authentication size type.

struct prov_public_key_t

Structure for provisioning public key message.

Public Members

uint8_t public_key[64]

Public key data (64 bytes).

struct prov_confirmation_t

Structure for provisioning confirmation message.

Public Members

uint8_t confirmation[32]

Confirmation data (32 bytes).

struct prov_random_t

Structure for provisioning random message.

Public Members

uint8_t rand[32]

Random value for provisioning (32 bytes).

struct prov_data_t

Structure for provisioning data message.

Public Members

uint8_t net_key[16]

Network key (16 bytes).

uint16_t net_key_index

Index of the network key.

uint8_t flags

Flags: bit0 for key refresh, bit1 for IV update.

uint32_t iv_index

IV index.

uint16_t unicast_address

Unicast address.

uint8_t mic[8]

Message Integrity Check (8 bytes).

struct prov_failed_t

Structure for provisioning failed message.

Public Members

prov_result_t failed_reason

Reason for provisioning failure.

struct prov_pdu_t

Structure for provisioning PDU.

Union members

union prov_pdu_t

Public Members

uint8_t type

Type of PDU; see prov_pdu_type_t.

uint8_t padding

Padding.

prov_invite_t prov_invite

Provisioning invite structure.

prov_capabilities_t prov_capabilities

Provisioning capabilities structure.

prov_start_t prov_start

Provisioning start structure.

prov_public_key_t prov_public_key

Provisioning public key structure.

prov_confirmation_t prov_confirmation

Provisioning confirmation structure.

prov_random_t prov_random

Provisioning random number structure.

prov_data_t prov_data

Provisioning data structure.

prov_failed_t prov_failed

Provisioning failure structure.

struct prov_ctx_tmp_t

Structure for temporary provisioning context.

Public Members

uint8_t public_key[64]

Public key (64 bytes).

uint8_t private_key[32]

Private key (32 bytes).

uint8_t random[32]

Random value (32 bytes).

uint8_t ecdh_secret[32]

ECDH secret (32 bytes).

uint8_t conf[32]

Confirmation value (32 bytes).

uint8_t conf_salt[32]

Salt for confirmation (32 bytes).

uint8_t conf_key[32]

Key for confirmation (32 bytes).

uint8_t prov_salt[16]

Provisioning salt (16 bytes).

uint8_t conf_inputs[(sizeof(prov_invite_t) + sizeof(prov_capabilities_t) + sizeof(prov_start_t) + sizeof(prov_public_key_t) + sizeof(prov_public_key_t))]

Inputs used in confirmation calculation.

uint8_t auth_value[32]

Authentication value (32 bytes).

bool auth_value_flag

Flag indicating if authentication value is set.

bool confirm_rx_flag

Flag indicating if confirmation is received.

prov_start_t prov_start

Provisioning start structure.