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