UserCredential#

Modules#

u3c_user_

u3c_credential_metadata_

u3c_credential_

u3c_credential_identifier_

u3c_event_data_validate_

u3c_event_data_learn_read_done_

u3c_credential_learn_event_data_

u3c_admin_code_metadata_

Enumerations#

enum
U3C_DB_OPERATION_RESULT_SUCCESS
U3C_DB_OPERATION_RESULT_ERROR
U3C_DB_OPERATION_RESULT_ERROR_IO
U3C_DB_OPERATION_RESULT_ERROR_DUPLICATE
U3C_DB_OPERATION_RESULT_FAIL_DNE
U3C_DB_OPERATION_RESULT_FAIL_FULL
U3C_DB_OPERATION_RESULT_FAIL_OCCUPIED
U3C_DB_OPERATION_RESULT_FAIL_REASSIGN
U3C_DB_OPERATION_RESULT_FAIL_IDENTICAL
}
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
CREDENTIAL_TYPE_NUMBER_OF_TYPES
}
enum
CREDENTIAL_REP_TYPE_ADDED = CREDENTIAL_REPORT_ADDED
CREDENTIAL_REP_TYPE_MODIFIED = CREDENTIAL_REPORT_MODIFIED
CREDENTIAL_REP_TYPE_DELETED = CREDENTIAL_REPORT_DELETED
CREDENTIAL_REP_TYPE_UNCHANGED = CREDENTIAL_REPORT_UNCHANGED
CREDENTIAL_REP_TYPE_RESPONSE_TO_GET = CREDENTIAL_REPORT_RESPONSE_TO_GET
CREDENTIAL_REP_TYPE_ADD_AGAINST_OCCUPIED = CREDENTIAL_REPORT_ADD_AGAINST_OCCUPIED
CREDENTIAL_REP_TYPE_MODIF_AGAINST_EMPTY = CREDENTIAL_REPORT_MODIFY_AGAINST_EMPTY
CREDENTIAL_REP_TYPE_DUPLICATE = CREDENTIAL_REPORT_DUPLICATE
CREDENTIAL_REP_TYPE_MANUFACTURER_SECURITY_RULES = CREDENTIAL_REPORT_MANUFACTURER_SECURITY_RULES
CREDENTIAL_REP_TYPE_ASSIGNED_TO_DIFFERENT_USER = CREDENTIAL_REPORT_ASSIGNED_TO_DIFFERENT_USER
CREDENTIAL_REP_TYPE_DUPLICATE_ADMIN_PIN_CODE = CREDENTIAL_REPORT_DUPLICATE_ADMIN_PIN_CODE
}
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_REP_TYPE_ADDED = USER_REPORT_ADDED
USER_REP_TYPE_MODIFIED = USER_REPORT_MODIFIED
USER_REP_TYPE_DELETED = USER_REPORT_DELETED
USER_REP_TYPE_UNCHANGED = USER_REPORT_UNCHANGED
USER_REP_TYPE_RESPONSE_TO_GET = USER_REPORT_RESPONSE_TO_GET
USER_REP_TYPE_ADD_AGAINST_OCCUPIED = USER_REPORT_ADD_AGAINST_OCCUPIED
USER_REP_TYPE_MODIF_AGAINST_EMPTY = USER_REPORT_MODIFY_AGAINST_EMPTY
USER_REP_TYPE_EXP_NZ_EXP_MIN_INVALID = USER_REPORT_NON_ZERO_EXPIRING_MINUTES_INVALID
}
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
USER_TYPE_END
}
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
ADMIN_CODE_OPERATION_RESULT_MODIFIED = 0x01
ADMIN_CODE_OPERATION_RESULT_UNMODIFIED = 0x03
ADMIN_CODE_OPERATION_RESULT_GET_RESP = 0x04
ADMIN_CODE_OPERATION_RESULT_FAIL_DUPLICATE_CRED = 0x07
ADMIN_CODE_OPERATION_RESULT_FAIL_MANUF_RULE = 0x08
ADMIN_CODE_OPERATION_RESULT_ERROR_AC_NOT_SUPPORTED = 0x0D
ADMIN_CODE_OPERATION_RESULT_ERROR_ACD_NOT_SUPPORTED = 0x0E
ADMIN_CODE_OPERATION_RESULT_ERROR_NODE = 0x0F
ADMIN_CODE_OPERATION_RESULT_INTERNAL_DUPLICATE_AC = 0x13
ADMIN_CODE_OPERATION_RESULT_INTERNAL_NONE = 0x14
ADMIN_CODE_OPERATION_RESULT_INTERNAL_INVALID_LENGTH = 0x1F
ADMIN_CODE_OPERATION_RESULT_INTERNAL_INVALID_CHAR = 0x2F
}

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.

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)
CC_UserCredential_get_admin_code_info(u3c_admin_code_metadata_t *code)

Retrieves the admin code information from the node.

CC_UserCredential_set_admin_code(u3c_admin_code_metadata_t *code)

Sets the admin code on the node, if supported.

bool

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

bool

Validates the following conditions and requirements: CC:0083.01.1A.11.011 - Code follows all manufacturer security rules.

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.

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.

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.


Definition at line 24 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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

Definition at line 37 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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

Definition at line 45 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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

Definition at line 61 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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

Definition at line 75 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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_EXP_NZ_EXP_MIN_INVALID

Definition at line 86 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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

Definition at line 97 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_rule_#

u3c_credential_rule_
Enumerator
CREDENTIAL_RULE_SINGLE
CREDENTIAL_RULE_DUAL
CREDENTIAL_RULE_TRIPLE

Definition at line 108 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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

Definition at line 114 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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


Definition at line 129 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_operation_type_t#

u3c_operation_type_t
Enumerator
U3C_OPERATION_TYPE_ADD
U3C_OPERATION_TYPE_MODIFY
U3C_OPERATION_TYPE_DELETE

Definition at line 171 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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.


Definition at line 207 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

Typedef Documentation#

u3c_db_operation_result#

typedef enum u3c_db_operation_result_ u3c_db_operation_result

Definition at line 34 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

u3c_modifier_type#

typedef enum u3c_modifier_type_ u3c_modifier_type

Definition at line 43 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_type#

typedef enum u3c_credential_type_ u3c_credential_type

Definition at line 59 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_report_type_t#

typedef enum _u3c_credential_report_type_t_ u3c_credential_report_type_t

Definition at line 73 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_learn_status#

typedef enum u3c_credential_learn_status_ u3c_credential_learn_status

Definition at line 84 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_user_report_type_t#

typedef enum u3c_user_report_type_t_ u3c_user_report_type_t

Definition at line 95 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_user_type#

typedef enum u3c_user_type_ u3c_user_type

Definition at line 106 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_rule#

typedef enum u3c_credential_rule_ u3c_credential_rule

Definition at line 112 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_user_name_encoding#

typedef enum u3c_user_name_encoding_ u3c_user_name_encoding

Definition at line 118 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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.


Definition at line 143 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_user#

typedef struct u3c_user_ u3c_user

Definition at line 155 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_metadata#

typedef struct u3c_credential_metadata_ u3c_credential_metadata

Definition at line 164 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential#

typedef struct u3c_credential_ u3c_credential

Definition at line 169 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_identifier#

typedef struct u3c_credential_identifier_ u3c_credential_identifier

Definition at line 181 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_event_data_validate#

typedef struct u3c_event_data_validate_ u3c_event_data_validate

Definition at line 186 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_event_data_learn_read_done#

typedef struct u3c_event_data_learn_read_done_ u3c_event_data_learn_read_done

Definition at line 191 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_credential_learn_event_data#

typedef struct u3c_credential_learn_event_data_ u3c_credential_learn_event_data

Credential Learn information passed to application layer.


Definition at line 199 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_admin_code_metadata_t#

typedef struct u3c_admin_code_metadata_ u3c_admin_code_metadata_t

Definition at line 205 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

u3c_event_type#

typedef enum u3c_event_ u3c_event_type

Definition at line 221 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

Function Documentation#

CC_UserCredential_factory_reset#

void CC_UserCredential_factory_reset (void )
Parameters
N/A

Definition at line 40 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

CC_UserCredential_init_database#

void CC_UserCredential_init_database (void )
Parameters
N/A

Definition at line 42 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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
[in]unique_identifier

Unique Identifier of the requested User

[out]user

The memory location where the User data will be copied, or NULL if not requested

[out]name

The memory location where the User name will be copied, or NULL if not requested

Returns

  • the result of the operation


Definition at line 59 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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


Definition at line 72 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

CC_UserCredential_add_user#

u3c_db_operation_result CC_UserCredential_add_user (u3c_user * user, uint8_t * name)
Parameters
N/Auser
N/Aname

Definition at line 74 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

CC_UserCredential_modify_user#

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

Definition at line 79 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

CC_UserCredential_delete_user#

u3c_db_operation_result CC_UserCredential_delete_user (uint16_t user_unique_identifier)
Parameters
N/Auser_unique_identifier

Definition at line 84 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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
[in]user_unique_identifier

Unique Identifier of the Credential's associated User (0 matches any UUID)

[in]credential_type

Type of the requested Credential

[in]credential_slot

Slot of the requested Credential

[out]credential_metadata

The memory location where the Credential metadata will be copied, or NULL if not requested

[out]credential_data

The memory location where the Credential data will be copied, or NULL if not requested

Returns

  • the result of the operation


Definition at line 107 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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
[in]user_unique_identifier

Unique Identifier of the Credential's associated User (0 matches any UUID)

[in]credential_type

Type of the current Credential (0 matches any Credential Type)

[in]credential_slot

Slot of the current Credential (0 to get the first available Credential)

[out]next_credential_type

Type of the next available Credential, if available

[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


Definition at line 134 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

CC_UserCredential_add_credential#

u3c_db_operation_result CC_UserCredential_add_credential (u3c_credential * credential)
Parameters
N/Acredential

Definition at line 142 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

CC_UserCredential_modify_credential#

u3c_db_operation_result CC_UserCredential_modify_credential (u3c_credential * credential)
Parameters
N/Acredential

Definition at line 146 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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
[in]user_unique_identifier

Unique Identifier of the Credential's associated User (0 matches any UUID)

[in]credential_type

Type of the current Credential

[in]credential_slot

Slot of the current Credential

Returns

  • the result of the operation


Definition at line 159 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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
N/Asource_user_uid
N/Acredential_type
N/Asource_credential_slot
N/Adestination_user_uid
N/Adestination_credential_slot

Definition at line 165 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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.

Parameters
[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


Definition at line 186 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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.

Parameters
[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


Definition at line 197 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_io.h

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
N/Acredential

Returns

  • True if the Credential conforms to the security rules


Definition at line 232 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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.

Parameters
N/Acode

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.


Definition at line 250 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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.

Parameters
[in]report_type

The type of report to send

[in]p_user

Pointer to the User metadata

[in]p_name

Pointer to the User Name

[in]next_uuid

The UUID of the next User

[in]p_rx_options

Pointer to the properties of the incoming frame


Definition at line 264 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

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.

Parameters
[in]report_type

The type of report to send

[in]p_credential

Pointer to the metadata and content of the credential

[in]next_credential_type

The type of the next credential

[in]next_credential_slot

The slot number of the next credential

[in]p_rx_options

Pointer to the properties of the incoming frame


Definition at line 282 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h

Macro Definition Documentation#

U3C_CREDENTIAL_TYPE_PIN_CODE_MIN_LENGTH_REQUIREMENT#

#define U3C_CREDENTIAL_TYPE_PIN_CODE_MIN_LENGTH_REQUIREMENT
Value:
4

Definition at line 35 of file /mnt/raid/workspaces/ws.eV40Coy1M/overlay/gsdk/protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/CC_UserCredential.h