UserCredential#

Modules#

u3c_user_

u3c_credential_metadata_

u3c_credential_

u3c_credential_identifier_

u3c_event_data_validate_

u3c_event_data_learn_start_

u3c_event_data_learn_read_done_

Enumerations#

enum
U3C_DB_OPERATION_RESULT_SUCCESS
U3C_DB_OPERATION_RESULT_ERROR
U3C_DB_OPERATION_RESULT_ERROR_IO
U3C_DB_OPERATION_RESULT_FAIL_DNE
U3C_DB_OPERATION_RESULT_FAIL_FULL
U3C_DB_OPERATION_RESULT_FAIL_OCCUPIED
}
enum
MODIFIER_TYPE_DNE = CREDENTIAL_REPORT_DNE
MODIFIER_TYPE_UNKNOWN
MODIFIER_TYPE_Z_WAVE
MODIFIER_TYPE_LOCALLY
MODIFIER_TYPE_MOBILE_APP_OR_OTHER_IOT_TECHNOLOGY
}
enum
CREDENTIAL_TYPE_NONE
CREDENTIAL_TYPE_PIN_CODE = CREDENTIAL_REPORT_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
}
enum
CL_STATUS_STARTED = CREDENTIAL_LEARN_REPORT_STARTED
CL_STATUS_SUCCESS = CREDENTIAL_LEARN_REPORT_SUCCESS
CL_STATUS_ALREADY_IN_PROGRESS = CREDENTIAL_LEARN_REPORT_ALREADY_IN_PROGRESS
CL_STATUS_ENDED_NOT_DUE_TO_TIMEOUT = CREDENTIAL_LEARN_REPORT_ENDED_NOT_DUE_TO_TIMEOUT
CL_STATUS_TIMEOUT = CREDENTIAL_LEARN_REPORT_TIMEOUT
CL_STATUS_STEP_RETRY = CREDENTIAL_LEARN_REPORT_CREDENTIAL_LEARN_STEP_RETRY
CL_STATUS_INVALID_ADD_OPERATION_TYPE = CREDENTIAL_LEARN_REPORT_INVALID_CREDENTIAL_LEARN_ADD_OPERATION_TYPE
CL_STATUS_INVALID_MODIFY_OPERATION_TYPE = CREDENTIAL_LEARN_REPORT_INVALID_CREDENTIAL_LEARN_MODIFY_OPERATION_TYPE
}
enum
USER_TYPE_GENERAL = 0x00
USER_TYPE_PROGRAMMING = 0x03
USER_TYPE_NON_ACCESS = 0x04
USER_TYPE_DURESS = 0x05
USER_TYPE_DISPOSABLE = 0x06
USER_TYPE_EXPIRING = 0x07
USER_TYPE_REMOTE_ONLY = 0x09
}
enum
CREDENTIAL_RULE_SINGLE = 0x01
CREDENTIAL_RULE_DUAL
CREDENTIAL_RULE_TRIPLE
}
enum
USER_NAME_ENCODING_STANDARD_ASCII
USER_NAME_ENCODING_STANDARD_AND_OEM_EXTENDED_ASCII
USER_NAME_ENCODING_UNICODE_UTF_16
}
enum
U3C_OPERATION_TYPE_ADD = 0
U3C_OPERATION_TYPE_MODIFY = 1
U3C_OPERATION_TYPE_DELETE = 2
}
enum
CC_USER_CREDENTIAL_EVENT_VALIDATE = 1
CC_USER_CREDENTIAL_EVENT_VALIDATE_VALID = 2
CC_USER_CREDENTIAL_EVENT_VALIDATE_INVALID = 3
CC_USER_CREDENTIAL_EVENT_LEARN_START_REQUEST = 4
CC_USER_CREDENTIAL_EVENT_LEARN_START = 5
CC_USER_CREDENTIAL_EVENT_LEARN_STEP_START = 6
CC_USER_CREDENTIAL_EVENT_LEARN_READ_DONE = 7
CC_USER_CREDENTIAL_EVENT_LEARN_SUCCESS = 8
CC_USER_CREDENTIAL_EVENT_LEARN_FAILED = 9
CC_USER_CREDENTIAL_EVENT_LEARN_STEP_RETRY = 10
CC_USER_CREDENTIAL_EVENT_LEARN_TIMEOUT = 11
CC_USER_CREDENTIAL_EVENT_LEARN_CANCEL_REMOTE = 12
CC_USER_CREDENTIAL_EVENT_LEARN_CANCEL_LOCAL = 13
}

Functions#

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.

uint16_t
CC_UserCredential_get_next_user(uint16_t unique_identifier)

Finds the first or next available User Unique Identifier.

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.

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

CC_UserCredential_delete_credential(uint16_t user_unique_identifier, u3c_credential_type credential_type, uint16_t credential_slot)

Deletes a Credential.

CC_UserCredential_move_credential(uint16_t source_user_uid, u3c_credential_type credential_type, uint16_t source_credential_slot, uint16_t destination_user_uid, uint16_t destination_credential_slot)
bool

Validates a Credential according to the manufacturer's security rules.

Enumeration Documentation#

u3c_db_operation_result_#

u3c_db_operation_result_
Enumerator
U3C_DB_OPERATION_RESULT_SUCCESS
U3C_DB_OPERATION_RESULT_ERROR
U3C_DB_OPERATION_RESULT_ERROR_IO
U3C_DB_OPERATION_RESULT_FAIL_DNE
U3C_DB_OPERATION_RESULT_FAIL_FULL
U3C_DB_OPERATION_RESULT_FAIL_OCCUPIED

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

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

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_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_db_operation_result#

typedef enum u3c_db_operation_result_ u3c_db_operation_result

u3c_modifier_type#

typedef enum u3c_modifier_type_ u3c_modifier_type

u3c_credential_type#

typedef enum u3c_credential_type_ u3c_credential_type

u3c_credential_learn_status#

typedef enum u3c_credential_learn_status_ u3c_credential_learn_status

u3c_user_type#

typedef enum u3c_user_type_ u3c_user_type

u3c_credential_rule#

typedef enum u3c_credential_rule_ u3c_credential_rule

u3c_user_name_encoding#

typedef enum u3c_user_name_encoding_ u3c_user_name_encoding

u3c_user#

typedef struct u3c_user_ u3c_user

u3c_credential_metadata#

typedef struct u3c_credential_metadata_ u3c_credential_metadata

u3c_credential#

typedef struct u3c_credential_ u3c_credential

u3c_credential_identifier#

typedef struct u3c_credential_identifier_ u3c_credential_identifier

u3c_event_data_validate#

typedef struct u3c_event_data_validate_ u3c_event_data_validate

u3c_event_data_learn_start#

typedef struct u3c_event_data_learn_start_ u3c_event_data_learn_start

u3c_event_data_learn_read_done#

typedef struct u3c_event_data_learn_read_done_ u3c_event_data_learn_read_done

u3c_event_type#

typedef enum u3c_event_ u3c_event_type

Function Documentation#

CC_UserCredential_factory_reset#

void CC_UserCredential_factory_reset (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

CC_UserCredential_init_database#

void CC_UserCredential_init_database (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

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.

Parameters
TypeDirectionArgument NameDescription
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

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.

Parameters
TypeDirectionArgument NameDescription
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)
Parameters
TypeDirectionArgument NameDescription
u3c_user *N/Auser
uint8_t *N/Aname

CC_UserCredential_modify_user#

u3c_db_operation_result CC_UserCredential_modify_user (u3c_user * user, uint8_t * name)
Parameters
TypeDirectionArgument NameDescription
u3c_user *N/Auser
uint8_t *N/Aname

CC_UserCredential_delete_user#

u3c_db_operation_result CC_UserCredential_delete_user (uint16_t user_unique_identifier)
Parameters
TypeDirectionArgument NameDescription
uint16_tN/Auser_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.

Parameters
TypeDirectionArgument NameDescription
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

  • true if the Credential object was copied succesfully


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

Parameters
TypeDirectionArgument NameDescription
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)
Parameters
TypeDirectionArgument NameDescription
u3c_credential *N/Acredential

CC_UserCredential_modify_credential#

u3c_db_operation_result CC_UserCredential_modify_credential (u3c_credential * credential)
Parameters
TypeDirectionArgument NameDescription
u3c_credential *N/Acredential

CC_UserCredential_delete_credential#

u3c_db_operation_result CC_UserCredential_delete_credential (uint16_t user_unique_identifier, u3c_credential_type credential_type, uint16_t credential_slot)

Deletes a Credential.

Parameters
TypeDirectionArgument NameDescription
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

uint16_t[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 (uint16_t source_user_uid, u3c_credential_type credential_type, uint16_t source_credential_slot, uint16_t destination_user_uid, uint16_t destination_credential_slot)
Parameters
TypeDirectionArgument NameDescription
uint16_tN/Asource_user_uid
u3c_credential_typeN/Acredential_type
uint16_tN/Asource_credential_slot
uint16_tN/Adestination_user_uid
uint16_tN/Adestination_credential_slot

CC_UserCredential_manufacturer_validate_credential#

bool CC_UserCredential_manufacturer_validate_credential (u3c_credential * credential)

Validates a Credential according to the manufacturer's security rules.

Parameters
TypeDirectionArgument NameDescription
u3c_credential *N/Acredential

Returns

  • True if the Credential conforms to the security rules