Key Establishment Client/Server#
API and Callbacks for the Key Establishment Cluster Client/Server Component.
Silicon Labs implementation of the Smart Energy Key Establishment cluster. The key establishment cluster is used by the Smart Energy profile to perform Certificate-Based Key Establishment (CBKE), which performs mutual authentication and establishes a symmetric APS link key. Direct CBKE between any two non-TC devices is supported after the two devices have completed partner link key exchange via Trust Center. This component defaults to using CBKE functions with the 163k ECC curve support, but users can also choose the 283k1 ECC curve by selecting the 'CBKE 283k1' component.
API#
Enumerations#
Typedefs#
Variables#
Macros#
Init - bytes: suite (2), key gen time (1), derive secret time (1), cert (48)
Terminate - bytes: status (1), wait time (1), suite (2)
The offset within the 163k1 curve certificate struct where the issuer field lives. 22-bytes for Public Key Reconstruction data, and 8-bytes for subject.
The offset within the 283k1 curve certificate struct where the issuer field lives. 22-bytes for Public Key Reconstruction data, and 8-bytes for subject.
These values reported to the remote device as to how long the local device takes to execute these operations.
API Documentation#
checkIssuer#
bool checkIssuer (uint8_t * issuer)
N/A | issuer |
140
of file app/framework/plugin/key-establishment/key-establishment.h
cleanupAndStopWithDelay#
void cleanupAndStopWithDelay (sl_zigbee_af_key_establishment_notify_message_t message, uint8_t delayInSec)
N/A | message | |
N/A | delayInSec |
141
of file app/framework/plugin/key-establishment/key-establishment.h
sendCertificate#
sl_zigbee_af_key_establishment_notify_message_t sendCertificate (void )
N/A |
143
of file app/framework/plugin/key-establishment/key-establishment.h
sendNextKeyEstablishMessage#
void sendNextKeyEstablishMessage (sli_zigbee_key_establish_message_t message, uint8_t * data)
N/A | message | |
N/A | data |
144
of file app/framework/plugin/key-establishment/key-establishment.h
Enumeration Documentation#
sli_zigbee_key_establish_event_t#
sli_zigbee_key_establish_event_t
Enumerator | |
---|---|
NO_KEY_ESTABLISHMENT_EVENT | |
CHECK_SUPPORTED_CURVES | |
BEGIN_KEY_ESTABLISHMENT | |
GENERATE_KEYS | |
SEND_EPHEMERAL_DATA_MESSAGE | |
GENERATE_SHARED_SECRET | |
SEND_CONFIRM_KEY_MESSAGE | |
INITIATOR_RECEIVED_CONFIRM_KEY |
103
of file app/framework/plugin/key-establishment/key-establishment.h
Typedef Documentation#
sli_zigbee_key_establish_message_t#
typedef uint8_t sli_zigbee_key_establish_message_t
117
of file app/framework/plugin/key-establishment/key-establishment.h
Variable Documentation#
sli_zigbee_af_key_establish_message_to_data_size#
const uint8_t sli_zigbee_af_key_establish_message_to_data_size[]
84
of file app/framework/plugin/key-establishment/key-establishment.h
sli_zigbee_af_available_cbke_suite#
sl_zigbee_af_cbke_key_establishment_suite_t sli_zigbee_af_available_cbke_suite
119
of file app/framework/plugin/key-establishment/key-establishment.h
sli_zigbee_af_current_cbke_suite#
sl_zigbee_af_cbke_key_establishment_suite_t sli_zigbee_af_current_cbke_suite
120
of file app/framework/plugin/key-establishment/key-establishment.h
sl_zigbee_af_key_establishment_aps_duplicate_detection_event#
sl_zigbee_af_event_t sl_zigbee_af_key_establishment_aps_duplicate_detection_event
121
of file app/framework/plugin/key-establishment/key-establishment.h
Macro Definition Documentation#
EM_AF_KE_INITIATE_SIZE#
#define EM_AF_KE_INITIATE_SIZEValue:
(2 + 1 + 1 + SL_ZIGBEE_CERTIFICATE_SIZE)
Init - bytes: suite (2), key gen time (1), derive secret time (1), cert (48)
51
of file app/framework/plugin/key-establishment/key-establishment.h
EM_AF_KE_INITIATE_SIZE_283K1#
#define EM_AF_KE_INITIATE_SIZE_283K1Value:
(2 + 1 + 1 + SL_ZIGBEE_CERTIFICATE_283K1_SIZE)
52
of file app/framework/plugin/key-establishment/key-establishment.h
EM_AF_KE_EPHEMERAL_SIZE#
#define EM_AF_KE_EPHEMERAL_SIZEValue:
SL_ZIGBEE_PUBLIC_KEY_SIZE
53
of file app/framework/plugin/key-establishment/key-establishment.h
EM_AF_KE_EPHEMERAL_SIZE_283K1#
#define EM_AF_KE_EPHEMERAL_SIZE_283K1Value:
SL_ZIGBEE_PUBLIC_KEY_283K1_SIZE
54
of file app/framework/plugin/key-establishment/key-establishment.h
EM_AF_KE_SMAC_SIZE#
#define EM_AF_KE_SMAC_SIZEValue:
SL_ZIGBEE_SMAC_SIZE
55
of file app/framework/plugin/key-establishment/key-establishment.h
EM_AF_KE_TERMINATE_SIZE#
#define EM_AF_KE_TERMINATE_SIZEValue:
(1 + 1 + 2)
Terminate - bytes: status (1), wait time (1), suite (2)
59
of file app/framework/plugin/key-establishment/key-establishment.h
APS_ACK_TIMEOUT_SECONDS#
#define APS_ACK_TIMEOUT_SECONDSValue:
1
61
of file app/framework/plugin/key-establishment/key-establishment.h
KEY_ESTABLISHMENT_APS_DUPLICATE_DETECTION_TIMEOUT_SEC#
#define KEY_ESTABLISHMENT_APS_DUPLICATE_DETECTION_TIMEOUT_SECValue:
5
63
of file app/framework/plugin/key-establishment/key-establishment.h
CERT_SUBJECT_OFFSET#
#define CERT_SUBJECT_OFFSETValue:
22
The offset within the 163k1 curve certificate struct where the issuer field lives. 22-bytes for Public Key Reconstruction data, and 8-bytes for subject.
68
of file app/framework/plugin/key-establishment/key-establishment.h
CERT_ISSUER_OFFSET#
#define CERT_ISSUER_OFFSETValue:
(CERT_SUBJECT_OFFSET + 8)
69
of file app/framework/plugin/key-establishment/key-establishment.h
CERT_ISSUER_SIZE#
#define CERT_ISSUER_SIZEValue:
8
70
of file app/framework/plugin/key-establishment/key-establishment.h
CERT_SUBJECT_OFFSET_283K1#
#define CERT_SUBJECT_OFFSET_283K1Value:
(1 + 8 + 1 + 1 + 8 + 5 + 4)
The offset within the 283k1 curve certificate struct where the issuer field lives. 22-bytes for Public Key Reconstruction data, and 8-bytes for subject.
75
of file app/framework/plugin/key-establishment/key-establishment.h
CERT_ISSUER_OFFSET_283K1#
#define CERT_ISSUER_OFFSET_283K1Value:
(1 + 8 + 1 + 1)
76
of file app/framework/plugin/key-establishment/key-establishment.h
DEFAULT_EPHEMERAL_DATA_GENERATE_TIME_SECONDS#
#define DEFAULT_EPHEMERAL_DATA_GENERATE_TIME_SECONDSValue:
(10 + APS_ACK_TIMEOUT_SECONDS)
These values reported to the remote device as to how long the local device takes to execute these operations.
81
of file app/framework/plugin/key-establishment/key-establishment.h
DEFAULT_GENERATE_SHARED_SECRET_TIME_SECONDS
#define DEFAULT_GENERATE_SHARED_SECRET_TIME_SECONDSValue:
(15 + APS_ACK_TIMEOUT_SECONDS)
82
of file app/framework/plugin/key-establishment/key-establishment.h
sli_zigbee_af_key_establishment_generate_cbke_keys_handler#
#define sli_zigbee_af_key_establishment_generate_cbke_keys_handlerValue:
sli_zigbee_af_generate_cbke_keys_callback
86
of file app/framework/plugin/key-establishment/key-establishment.h
sli_zigbee_af_key_establishment_calculate_smacs_handler#
#define sli_zigbee_af_key_establishment_calculate_smacs_handlerValue:
sli_zigbee_af_calculate_smacs_callback
87
of file app/framework/plugin/key-establishment/key-establishment.h
sli_zigbee_af_key_establishment_generate_cbke_keys_handler283k1#
#define sli_zigbee_af_key_establishment_generate_cbke_keys_handler283k1Value:
sli_zigbee_af_generate_cbke_keys_callback_283k1
88
of file app/framework/plugin/key-establishment/key-establishment.h
sli_zigbee_af_key_establishment_calculate_smacs_handler283k1#
#define sli_zigbee_af_key_establishment_calculate_smacs_handler283k1Value:
sli_zigbee_af_calculate_smacs_callback_283k1
89
of file app/framework/plugin/key-establishment/key-establishment.h
TERMINATE_STATUS_STRINGS#
#define TERMINATE_STATUS_STRINGSValue:
91
of file app/framework/plugin/key-establishment/key-establishment.h
UNKNOWN_TERMINATE_STATUS#
#define UNKNOWN_TERMINATE_STATUSValue:
7
101
of file app/framework/plugin/key-establishment/key-establishment.h
isCbkeKeyEstablishmentSuiteValid#
#define isCbkeKeyEstablishmentSuiteValidValue:
()
122
of file app/framework/plugin/key-establishment/key-establishment.h
isCbkeKeyEstablishmentSuite163k1#
#define isCbkeKeyEstablishmentSuite163k1Value:
125
of file app/framework/plugin/key-establishment/key-establishment.h
isCbkeKeyEstablishmentSuite283k1#
#define isCbkeKeyEstablishmentSuite283k1Value:
129
of file app/framework/plugin/key-establishment/key-establishment.h
cleanupAndStop#
#define cleanupAndStopValue:
(message)
133
of file app/framework/plugin/key-establishment/key-establishment.h