UserCredential#
Modules#
u3c_event_data_learn_read_done_
u3c_credential_learn_event_data_
Enumerations#
This operation result can optionally be injected into an Admin Code Report to pass information back to the controlling node, in lieu of another report type.
Typedefs#
This operation result can optionally be injected into an Admin Code Report to pass information back to the controlling node, in lieu of another report type.
Payload for CC_USER_CREDENTIAL_EVENT_VALIDATE, received from the application.
Payload for CC_USER_CREDENTIAL_EVENT_LEARN_READ_DONE, passed to the application.
Credential Learn information passed to application layer.
Functions#
Resets the User Credential Command Class database to a blank state, removing all existing users, credentials and the admin code.
Initializes the User Credential Command Class database to a consistent state.
Copies the data for a given User from the database to an arbitrary location in memory.
Finds the first or next available User Unique Identifier.
Modifies a user in the database.
Copies the data for a given Credential from the database to an arbitrary location in memory.
Finds the first or next available Credential entry for a given User or Credential Type (set either one of these parameters to 0 to disable filtering by that property).
Adds a new credential to the database.
Deletes a Credential.
Moves a credential from one slot to another and/or assigns a credential from one User Unique Identifier to another one.
Retrieves the admin code information from the node.
Sets the admin code on the node, if supported.
Tries to add a new user to the database and reports the result.
Tries to modify a user in the database and reports the result.
Tries to delete a user from the database and reports the result.
Tries to add a new credential to the database and reports the result.
Tries to modify a credential in the database and reports the result.
Tries to delete a credential from the database and reports the result.
Tries to assign a credential to a different slot or user.
Sends a USER_CREDENTIAL_ASSOCIATION_REPORT frame.
Deletes all Credentials of a given type for a User.
Validates a Credential according to the manufacturer's security rules.
Validates the following conditions and requirements: CC:0083.01.1A.11.011 - Code follows all manufacturer security rules.
Sends one or more User Report frames to the appropriate destinations depending on the type of the report.
Sends one or more Credential Report frames to the appropriate destinations depending on the type of the report.
Sends a Notification Report frame with Event/State parameters containing the Credential Usage Data.
Macros#
Enumeration Documentation#
u3c_db_operation_result_#
u3c_db_operation_result_
Enumerator | |
---|---|
U3C_DB_OPERATION_RESULT_SUCCESS | The operation completed succesfully. |
U3C_DB_OPERATION_RESULT_ERROR | An error occurred. |
U3C_DB_OPERATION_RESULT_ERROR_IO | An I/O error occurred. |
U3C_DB_OPERATION_RESULT_ERROR_DUPLICATE | Duplicate Entry in table. |
U3C_DB_OPERATION_RESULT_FAIL_DNE | The object does not exist. |
U3C_DB_OPERATION_RESULT_FAIL_FULL | There is no space left for the object. |
U3C_DB_OPERATION_RESULT_FAIL_OCCUPIED | The object already exists. |
U3C_DB_OPERATION_RESULT_FAIL_REASSIGN | The credential is assigned to a different user. |
U3C_DB_OPERATION_RESULT_FAIL_IDENTICAL | The new data is identical to the data already stored locally. |
u3c_modifier_type_#
u3c_modifier_type_
Enumerator | |
---|---|
MODIFIER_TYPE_DNE | |
MODIFIER_TYPE_UNKNOWN | |
MODIFIER_TYPE_Z_WAVE | |
MODIFIER_TYPE_LOCALLY | |
MODIFIER_TYPE_MOBILE_APP_OR_OTHER_IOT_TECHNOLOGY |
u3c_credential_type_#
u3c_credential_type_
Enumerator | |
---|---|
CREDENTIAL_TYPE_NONE | |
CREDENTIAL_TYPE_PIN_CODE | |
CREDENTIAL_TYPE_PASSWORD | |
CREDENTIAL_TYPE_RFID_CODE | |
CREDENTIAL_TYPE_BLE | |
CREDENTIAL_TYPE_NFC | |
CREDENTIAL_TYPE_UWB | |
CREDENTIAL_TYPE_EYE_BIOMETRIC | |
CREDENTIAL_TYPE_FACE_BIOMETRIC | |
CREDENTIAL_TYPE_FINGER_BIOMETRIC | |
CREDENTIAL_TYPE_HAND_BIOMETRIC | |
CREDENTIAL_TYPE_UNSPECIFIED_BIOMETRIC | |
CREDENTIAL_TYPE_NUMBER_OF_TYPES |
_u3c_credential_report_type_t_#
_u3c_credential_report_type_t_
Enumerator | |
---|---|
CREDENTIAL_REP_TYPE_ADDED | |
CREDENTIAL_REP_TYPE_MODIFIED | |
CREDENTIAL_REP_TYPE_DELETED | |
CREDENTIAL_REP_TYPE_UNCHANGED | |
CREDENTIAL_REP_TYPE_RESPONSE_TO_GET | |
CREDENTIAL_REP_TYPE_ADD_AGAINST_OCCUPIED | |
CREDENTIAL_REP_TYPE_MODIF_AGAINST_EMPTY | |
CREDENTIAL_REP_TYPE_DUPLICATE | |
CREDENTIAL_REP_TYPE_MANUFACTURER_SECURITY_RULES | |
CREDENTIAL_REP_TYPE_WRONG_UUID | |
CREDENTIAL_REP_TYPE_DUPLICATE_ADMIN_PIN_CODE |
u3c_credential_learn_status_#
u3c_credential_learn_status_
Enumerator | |
---|---|
CL_STATUS_STARTED | |
CL_STATUS_SUCCESS | |
CL_STATUS_ALREADY_IN_PROGRESS | |
CL_STATUS_ENDED_NOT_DUE_TO_TIMEOUT | |
CL_STATUS_TIMEOUT | |
CL_STATUS_STEP_RETRY | |
CL_STATUS_INVALID_ADD_OPERATION_TYPE | |
CL_STATUS_INVALID_MODIFY_OPERATION_TYPE |
u3c_user_credential_association_report_status_t#
u3c_user_credential_association_report_status_t
Enumerator | |
---|---|
U3C_UCAR_STATUS_SUCCESS | |
U3C_UCAR_STATUS_CREDENTIAL_TYPE_INVALID | |
U3C_UCAR_STATUS_SOURCE_CREDENTIAL_SLOT_INVALID | |
U3C_UCAR_STATUS_SOURCE_CREDENTIAL_SLOT_EMPTY | |
U3C_UCAR_STATUS_DESTINATION_USER_UNIQUE_IDENTIFIER_INVALID | |
U3C_UCAR_STATUS_DESTINATION_USER_UNIQUE_IDENTIFIER_NONEXISTENT | |
U3C_UCAR_STATUS_DESTINATION_CREDENTIAL_SLOT_INVALID | |
U3C_UCAR_STATUS_DESTINATION_CREDENTIAL_SLOT_OCCUPIED |
u3c_user_report_type_t_#
u3c_user_report_type_t_
Enumerator | |
---|---|
USER_REP_TYPE_ADDED | |
USER_REP_TYPE_MODIFIED | |
USER_REP_TYPE_DELETED | |
USER_REP_TYPE_UNCHANGED | |
USER_REP_TYPE_RESPONSE_TO_GET | |
USER_REP_TYPE_ADD_AGAINST_OCCUPIED | |
USER_REP_TYPE_MODIF_AGAINST_EMPTY | |
USER_REP_TYPE_Z_EXP_MIN_INVALID |
u3c_user_type_#
u3c_user_type_
Enumerator | |
---|---|
USER_TYPE_GENERAL | |
USER_TYPE_PROGRAMMING | |
USER_TYPE_NON_ACCESS | |
USER_TYPE_DURESS | |
USER_TYPE_DISPOSABLE | |
USER_TYPE_EXPIRING | |
USER_TYPE_REMOTE_ONLY | |
USER_TYPE_END |
u3c_credential_rule_#
u3c_credential_rule_
Enumerator | |
---|---|
CREDENTIAL_RULE_SINGLE | |
CREDENTIAL_RULE_DUAL | |
CREDENTIAL_RULE_TRIPLE |
u3c_user_name_encoding_#
u3c_user_name_encoding_
Enumerator | |
---|---|
USER_NAME_ENCODING_STANDARD_ASCII | |
USER_NAME_ENCODING_STANDARD_AND_OEM_EXTENDED_ASCII | |
USER_NAME_ENCODING_UNICODE_UTF_16 |
_u3c_admin_code_operation_result_#
_u3c_admin_code_operation_result_
This operation result can optionally be injected into an Admin Code Report to pass information back to the controlling node, in lieu of another report type.
Reports MUST be sent for Get operations, but MAY be sent for Set operations.
See specification for more requirement details.
Enumerator | |
---|---|
ADMIN_CODE_OPERATION_RESULT_MODIFIED | Admin Code was modified (Set, External). |
ADMIN_CODE_OPERATION_RESULT_UNMODIFIED | Admin code was not modified as current code was identical. |
ADMIN_CODE_OPERATION_RESULT_GET_RESP | Default response, or response to successful Get. |
ADMIN_CODE_OPERATION_RESULT_FAIL_DUPLICATE_CRED | Admin Code was not modified (Set) due to duplicate existing PIN code credential. |
ADMIN_CODE_OPERATION_RESULT_FAIL_MANUF_RULE | Admin Code was not modified (Set) due to a manufacturer security rule. |
ADMIN_CODE_OPERATION_RESULT_ERROR_AC_NOT_SUPPORTED | Failed due to Admin Code not being supported (Get/Set). |
ADMIN_CODE_OPERATION_RESULT_ERROR_ACD_NOT_SUPPORTED | Failed due to Admin Code Deactivation not being supported (Set). |
ADMIN_CODE_OPERATION_RESULT_ERROR_NODE | Failed due to unspecified node error. |
ADMIN_CODE_OPERATION_RESULT_INTERNAL_DUPLICATE_AC | Internal validation result; Code is the same as the current admin code. |
ADMIN_CODE_OPERATION_RESULT_INTERNAL_NONE | Internal validation result; No error. |
ADMIN_CODE_OPERATION_RESULT_INTERNAL_INVALID_LENGTH | Internal validation result; Code has an invalid length. |
ADMIN_CODE_OPERATION_RESULT_INTERNAL_INVALID_CHAR | Internal validation result; Code has one or more invalid characters. |
u3c_operation_type_t#
u3c_operation_type_t
Enumerator | |
---|---|
U3C_OPERATION_TYPE_ADD | |
U3C_OPERATION_TYPE_MODIFY | |
U3C_OPERATION_TYPE_DELETE |
u3c_event_#
u3c_event_
Enumerator | |
---|---|
CC_USER_CREDENTIAL_EVENT_VALIDATE | Application is requesting a Credential to be validated. |
CC_USER_CREDENTIAL_EVENT_VALIDATE_VALID | Credential found and User has sufficient rights. |
CC_USER_CREDENTIAL_EVENT_VALIDATE_INVALID | Credential not found or User has insufficient rights. |
CC_USER_CREDENTIAL_EVENT_LEARN_START_REQUEST | Application is requesting to start Credential Learn. |
CC_USER_CREDENTIAL_EVENT_LEARN_START | Credential Learn process started. |
CC_USER_CREDENTIAL_EVENT_LEARN_STEP_START | Application progressed to new Credential Learn step. |
CC_USER_CREDENTIAL_EVENT_LEARN_READ_DONE | Credential data is ready to be entered into the database. |
CC_USER_CREDENTIAL_EVENT_LEARN_SUCCESS | Credential has been accepted into the database. |
CC_USER_CREDENTIAL_EVENT_LEARN_FAILED | |
CC_USER_CREDENTIAL_EVENT_LEARN_STEP_RETRY | Local Credential read failed, trying to read again. |
CC_USER_CREDENTIAL_EVENT_LEARN_TIMEOUT | Credential Learn step timed out. |
CC_USER_CREDENTIAL_EVENT_LEARN_CANCEL_REMOTE | Remote node cancelled Credential Learn process. |
CC_USER_CREDENTIAL_EVENT_LEARN_CANCEL_LOCAL | Application cancelled Credential Learn process. |
Typedef Documentation#
u3c_credential_report_type_t#
typedef enum _u3c_credential_report_type_t_ u3c_credential_report_type_t
u3c_admin_code_operation_result#
typedef enum _u3c_admin_code_operation_result_ u3c_admin_code_operation_result
This operation result can optionally be injected into an Admin Code Report to pass information back to the controlling node, in lieu of another report type.
Reports MUST be sent for Get operations, but MAY be sent for Set operations.
See specification for more requirement details.
u3c_event_data_validate#
typedef struct u3c_event_data_validate_ u3c_event_data_validate
Payload for CC_USER_CREDENTIAL_EVENT_VALIDATE, received from the application.
u3c_event_data_learn_read_done#
typedef struct u3c_event_data_learn_read_done_ u3c_event_data_learn_read_done
Payload for CC_USER_CREDENTIAL_EVENT_LEARN_READ_DONE, passed to the application.
u3c_credential_learn_event_data#
typedef struct u3c_credential_learn_event_data_ u3c_credential_learn_event_data
Credential Learn information passed to application layer.
Function Documentation#
CC_UserCredential_factory_reset#
void CC_UserCredential_factory_reset (void )
Resets the User Credential Command Class database to a blank state, removing all existing users, credentials and the admin code.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
CC_UserCredential_init_database#
void CC_UserCredential_init_database (void )
Initializes the User Credential Command Class database to a consistent state.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
This function is called automatically by the Z-Wave Application Framework when the application starts.
CC_UserCredential_get_user#
u3c_db_operation_result CC_UserCredential_get_user (uint16_t unique_identifier, u3c_user * user, uint8_t * name)
Copies the data for a given User from the database to an arbitrary location in memory.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | unique_identifier | Unique Identifier of the requested User |
u3c_user * | [out] | user | The memory location where the User data will be copied, or NULL if not requested |
uint8_t * | [out] | name | The memory location where the User name will be copied, or NULL if not requested. If not NULL, user cannot be NULL either. |
Returns
the result of the operation
CC_UserCredential_get_next_user#
uint16_t CC_UserCredential_get_next_user (uint16_t unique_identifier)
Finds the first or next available User Unique Identifier.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | unique_identifier | Unique Identifier of the current User, or 0 if the first available User Unique Identifier is requested |
Returns
The Unique Identifier of the next User if available, otherwise 0
CC_UserCredential_add_user#
u3c_db_operation_result CC_UserCredential_add_user (u3c_user * user, uint8_t * name)
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_user * | N/A | user | |
uint8_t * | N/A | name |
CC_UserCredential_modify_user#
u3c_db_operation_result CC_UserCredential_modify_user (u3c_user * user, uint8_t * name)
Modifies a user in the database.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_user * | [in] | user | Pointer to the user's new metadata |
uint8_t * | [in] | name | Pointer to the user's new name (set to NULL to keep old name) |
CC_UserCredential_delete_user#
u3c_db_operation_result CC_UserCredential_delete_user (uint16_t user_unique_identifier)
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | N/A | user_unique_identifier |
CC_UserCredential_get_credential#
u3c_db_operation_result CC_UserCredential_get_credential (uint16_t user_unique_identifier, u3c_credential_type credential_type, uint16_t credential_slot, u3c_credential_metadata * credential_metadata, uint8_t * credential_data)
Copies the data for a given Credential from the database to an arbitrary location in memory.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | user_unique_identifier | Unique Identifier of the Credential's associated User (0 matches any UUID) |
u3c_credential_type | [in] | credential_type | Type of the requested Credential |
uint16_t | [in] | credential_slot | Slot of the requested Credential |
u3c_credential_metadata * | [out] | credential_metadata | The memory location where the Credential metadata will be copied, or NULL if not requested |
uint8_t * | [out] | credential_data | The memory location where the Credential data will be copied, or NULL if not requested |
Returns
the result of the operation
CC_UserCredential_get_next_credential#
bool CC_UserCredential_get_next_credential (uint16_t user_unique_identifier, u3c_credential_type credential_type, uint16_t credential_slot, u3c_credential_type * next_credential_type, uint16_t * next_credential_slot)
Finds the first or next available Credential entry for a given User or Credential Type (set either one of these parameters to 0 to disable filtering by that property).
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | user_unique_identifier | Unique Identifier of the Credential's associated User (0 matches any UUID) |
u3c_credential_type | [in] | credential_type | Type of the current Credential (0 matches any Credential Type) |
uint16_t | [in] | credential_slot | Slot of the current Credential (0 to get the first available Credential) |
u3c_credential_type * | [out] | next_credential_type | Type of the next available Credential, if available |
uint16_t * | [out] | next_credential_slot | Slot of the next available Credential, if available |
Set credential_slot to 0 to get the first available Credential matching the filter criteria.
Returns
true if a subsequent Credential matching the criteria is found
CC_UserCredential_add_credential#
u3c_db_operation_result CC_UserCredential_add_credential (u3c_credential * credential)
Adds a new credential to the database.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential * | [in] | credential | Pointer to the credential to be added |
Returns
The result of the operation
CC_UserCredential_modify_credential#
u3c_db_operation_result CC_UserCredential_modify_credential (u3c_credential * credential)
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential * | N/A | credential |
CC_UserCredential_delete_credential#
u3c_db_operation_result CC_UserCredential_delete_credential (u3c_credential_type credential_type, uint16_t credential_slot, credential_slot)
Deletes a Credential.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential_type | [in] | credential_type | Unique Identifier of the Credential's associated User (0 matches any UUID) |
uint16_t | [in] | credential_slot | Type of the current Credential |
[in] | credential_slot | Slot of the current Credential |
Returns
the result of the operation
CC_UserCredential_move_credential#
u3c_db_operation_result CC_UserCredential_move_credential (u3c_credential_type credential_type, uint16_t source_credential_slot, uint16_t destination_user_uid, uint16_t destination_credential_slot)
Moves a credential from one slot to another and/or assigns a credential from one User Unique Identifier to another one.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential_type | [in] | credential_type | Type of the credential |
uint16_t | [in] | source_credential_slot | Slot of the credential to be moved |
uint16_t | [in] | destination_user_uid | The new desired UUID to assign the credential to |
uint16_t | [in] | destination_credential_slot | The new desired slot number for the credential |
CC_UserCredential_get_admin_code_info#
u3c_db_operation_result CC_UserCredential_get_admin_code_info (u3c_admin_code_metadata_t * code)
Retrieves the admin code information from the node.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_admin_code_metadata_t * | [out] | code | Admin Code information. If Admin Code is not supported, the struct will be fully zeroed out upon return. |
Can be used to ensure node supports the functionality.
Returns
U3C_DB_OPERATION_SUCCESS if successful
U3C_DB_OPERATION_ERROR otherwise
CC_UserCredential_set_admin_code#
u3c_db_operation_result CC_UserCredential_set_admin_code (u3c_admin_code_metadata_t * code)
Sets the admin code on the node, if supported.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_admin_code_metadata_t * | [in] | code | Admin Code information to apply to node |
Returns
U3C_DB_OPERATION_ERROR_DUPLICATE if Admin Code is a duplicate of an existing PIN Code or Admin Code
U3C_OPERATION_SUCCESS if successful
U3C_OPERATION_ERROR otherwise
CC_UserCredential_add_user_and_report#
u3c_db_operation_result CC_UserCredential_add_user_and_report (u3c_user * p_user, uint8_t * p_name, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to add a new user to the database and reports the result.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_user * | [in] | p_user | Pointer to the new user's metadata |
uint8_t * | [in] | p_name | Pointer to the new user's name |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_modify_user_and_report#
u3c_db_operation_result CC_UserCredential_modify_user_and_report (u3c_user * p_user, uint8_t * p_name, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to modify a user in the database and reports the result.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_user * | [in] | p_user | Pointer to the user's new metadata |
uint8_t * | [in] | p_name | Pointer to the new user's new name |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_delete_user_and_report#
u3c_db_operation_result CC_UserCredential_delete_user_and_report (uint16_t uuid, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to delete a user from the database and reports the result.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | uuid | The target user's unique identifier or 0 to delete all users. |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_add_credential_and_report#
u3c_db_operation_result CC_UserCredential_add_credential_and_report (u3c_credential * p_credential, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to add a new credential to the database and reports the result.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential * | [in] | p_credential | Pointer to the new credential |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_modify_credential_and_report#
u3c_db_operation_result CC_UserCredential_modify_credential_and_report (u3c_credential * p_credential, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to modify a credential in the database and reports the result.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential * | [in] | p_credential | Pointer to the credential with the new desired data |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_delete_credential_and_report#
u3c_db_operation_result CC_UserCredential_delete_credential_and_report (uint16_t uuid, u3c_credential_type credential_type, uint16_t credential_slot, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to delete a credential from the database and reports the result.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | uuid | The UUID that the credentials are assigned to (only used for bulk operations), 0 to disable filtering by user |
u3c_credential_type | [in] | credential_type | Type of the target credential |
uint16_t | [in] | credential_slot | Slot of the target credential, or 0 for all credentials |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_move_credential_and_report#
u3c_db_operation_result CC_UserCredential_move_credential_and_report (u3c_credential_type credential_type, uint16_t source_credential_slot, uint16_t destination_uuid, uint16_t destination_credential_slot, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Tries to assign a credential to a different slot or user.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential_type | [in] | credential_type | Type of the credential |
uint16_t | [in] | source_credential_slot | Slot of the original credential |
uint16_t | [in] | destination_uuid | New desired UUID to assign the credential to |
uint16_t | [in] | destination_credential_slot | New desired slot number for the credential |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the details of the received frame |
Returns
The result of the operation
CC_UserCredential_send_association_report#
bool CC_UserCredential_send_association_report (u3c_credential_metadata const *const p_source_metadata, u3c_credential_metadata const *const p_destination_metadata, u3c_user_credential_association_report_status_t const status, RECEIVE_OPTIONS_TYPE_EX *const p_rx_options, status, p_rx_options)
Sends a USER_CREDENTIAL_ASSOCIATION_REPORT frame.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential_metadata const *const | [out] | p_source_metadata | Address of frame memory to fill. |
u3c_credential_metadata const *const | [inout] | p_destination_metadata | Frame buffer length. Will be overwritten with the filled frame length. |
u3c_user_credential_association_report_status_t const | [in] | status | Source credential metadata. |
RECEIVE_OPTIONS_TYPE_EX *const | [in] | p_rx_options | Destination credential metadata. |
[in] | status | Status of association set action. | |
[in] | p_rx_options | Pointer to the details of the received frame. |
Returns
true if the frame was enqueued succesfully.
CC_UserCredential_delete_all_credentials_of_type#
void CC_UserCredential_delete_all_credentials_of_type (uint16_t uuid, u3c_credential_type filter_type)
Deletes all Credentials of a given type for a User.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint16_t | [in] | uuid | User Unique Identifier |
u3c_credential_type | [in] | filter_type | The type of Credentials to delete, set this to CREDENTIAL_TYPE_NONE to delete every Credential |
CC_UserCredential_manufacturer_validate_credential#
bool CC_UserCredential_manufacturer_validate_credential (u3c_credential * credential)
Validates a Credential according to the manufacturer's security rules.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_credential * | N/A | credential |
Returns
True if the Credential conforms to the security rules
CC_UserCredential_manufacturer_validate_admin_pin_code#
bool CC_UserCredential_manufacturer_validate_admin_pin_code (u3c_admin_code_metadata_t * code)
Validates the following conditions and requirements: CC:0083.01.1A.11.011 - Code follows all manufacturer security rules.
Type | Direction | Argument Name | Description |
---|---|---|---|
u3c_admin_code_metadata_t * | N/A | code | Pointer to structure containing Admin Code information. |
Should not be called if AC is not supported.
Returns
True if all checks pass. If checks do not pass, returns false, and result code populated in code struct.
Note
result code of a successful check should be ignored, but in practice ensure it is set to ADMIN_CODE_OPERATION_RESULT_NONE in this case.
CC_UserCredential_UserReport_tx#
void CC_UserCredential_UserReport_tx (const u3c_user_report_type_t report_type, const u3c_user *const p_user, const uint8_t *const p_name, const uint16_t next_uuid, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Sends one or more User Report frames to the appropriate destinations depending on the type of the report.
Type | Direction | Argument Name | Description |
---|---|---|---|
const u3c_user_report_type_t | [in] | report_type | The type of report to send |
const u3c_user *const | [in] | p_user | Pointer to the User metadata |
const uint8_t *const | [in] | p_name | Pointer to the User Name |
const uint16_t | [in] | next_uuid | The UUID of the next User |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the properties of the incoming frame |
CC_UserCredential_CredentialReport_tx#
void CC_UserCredential_CredentialReport_tx (const u3c_credential_report_type_t report_type, const u3c_credential * p_credential, const u3c_credential_type next_credential_type, const uint16_t next_credential_slot, RECEIVE_OPTIONS_TYPE_EX * p_rx_options)
Sends one or more Credential Report frames to the appropriate destinations depending on the type of the report.
Type | Direction | Argument Name | Description |
---|---|---|---|
const u3c_credential_report_type_t | [in] | report_type | The type of report to send |
const u3c_credential * | [in] | p_credential | Pointer to the metadata and content of the credential |
const u3c_credential_type | [in] | next_credential_type | The type of the next credential |
const uint16_t | [in] | next_credential_slot | The slot number of the next credential |
RECEIVE_OPTIONS_TYPE_EX * | [in] | p_rx_options | Pointer to the properties of the incoming frame |
CC_User_Credential_UsageNotification_tx#
JOB_STATUS CC_User_Credential_UsageNotification_tx (const uint8_t notification_event, const uint16_t uuid, const uint8_t credential_count, const u3c_credential_metadata *const p_credential_metadata)
Sends a Notification Report frame with Event/State parameters containing the Credential Usage Data.
Type | Direction | Argument Name | Description |
---|---|---|---|
const uint8_t | [in] | notification_event | The type of notification to send |
const uint16_t | [in] | uuid | The unique identifier of the user |
const uint8_t | [in] | credential_count | The number of credentials in the notification |
const u3c_credential_metadata *const | [in] | p_credential_metadata | Pointer to the metadata of the credentials |
Returns
Whether the transmission was successful