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.
-
enumerator PROV_INVITE
-
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.
-
enumerator PROV_CAP_ALGO_FIPS_P256_ELLIPTIC_CURVE
-
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.
-
enumerator PROV_START_FIPS_P256_ELLIPTIC_CURVE
-
enum prov_cap_public_key_t
-
Enum for provisioning capability public key types.
Values:
-
enumerator PROV_CAP_PUBLIC_KEY_OOB
-
OOB Public Key.
-
enumerator PROV_CAP_PUBLIC_KEY_OOB
-
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.
-
enumerator PROV_START_NO_OOB_PUBLIC_KEY
-
enum prov_cap_static_oob_t
-
Enum for provisioning capability static OOB types.
Values:
-
enumerator PROV_CAP_STATIC_OOB
-
Static OOB capability.
-
enumerator PROV_CAP_STATIC_OOB
-
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.
-
enumerator PROV_CAP_OUTPUT_OOB_ACTION_BLINK
-
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.
-
enumerator PROV_START_OUTPUT_OOB_ACTION_BLINK
-
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.
-
enumerator PROV_CAP_INPUT_OOB_ACTION_BIT_PUSH
-
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.
-
enumerator PROV_START_INPUT_OOB_ACTION_PUSH
-
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.
-
enumerator PROV_AUTH_METHOD_NO_OOB
-
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.
-
enumerator PROV_AUTH_VALUE_TYPE_NONE
-
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.
-
enumerator PROV_VALID
-
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.
-
enumerator PROV_MATERIAL_LEN_TYPE_RANDOM
-
struct prov_invite_t
-
Structure for provisioning invite message.
Public Members
-
uint8_t attn_dur
-
Attention duration in seconds.
-
uint8_t attn_dur
-
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.
-
uint8_t element_num
-
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.
-
uint8_t oob_action
-
union prov_auth_size_t
-
Union for authentication sizes in provisioning.
-
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.
-
prov_start_algorithm_t algorithm
-
struct prov_public_key_t
-
Structure for provisioning public key message.
Public Members
-
uint8_t public_key[64]
-
Public key data (64 bytes).
-
uint8_t public_key[64]
-
struct prov_confirmation_t
-
Structure for provisioning confirmation message.
Public Members
-
uint8_t confirmation[32]
-
Confirmation data (32 bytes).
-
uint8_t confirmation[32]
-
struct prov_random_t
-
Structure for provisioning random message.
Public Members
-
uint8_t rand[32]
-
Random value for provisioning (32 bytes).
-
uint8_t rand[32]
-
struct prov_data_t
-
Structure for provisioning data message.
-
struct prov_failed_t
-
Structure for provisioning failed message.
Public Members
-
prov_result_t failed_reason
-
Reason for provisioning failure.
-
prov_result_t failed_reason
-
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.
-
uint8_t public_key[64]
-
OUTPUT_OOB_SIZE_MAX 8