26#ifndef MCUXCLELS_CRC_H_
27#define MCUXCLELS_CRC_H_
29#include <mcuxClConfig.h>
53#define MCUXCLELS_CMD_CRC_VALUE_RESET ((uint32_t) 0x1u)
54#define MCUXCLELS_CMD_CRC_VALUE_ENABLE ((uint32_t) 0x2u)
55#define MCUXCLELS_CMD_CRC_VALUE_DISABLE ((uint32_t) 0x0u)
57#define MCUXCLELS_CMD_CRC_RESET ((uint32_t) 0x1u)
58#define MCUXCLELS_CMD_CRC_ENABLE ((uint32_t) 0x1u)
59#define MCUXCLELS_CMD_CRC_DISABLE ((uint32_t) 0x0u)
61#define MCUXCLELS_CMD_CRC_POLYNOMIAL ((uint32_t) 0x04C11DB7u)
62#define MCUXCLELS_CMD_CRC_INITIAL_VALUE ((uint32_t) 0xA5A5A5A5u)
76#define MCUXCLELS_CMD_CRC_REFERENCE_INIT(crc) \
77 uint32_t (crc) = MCUXCLELS_CMD_CRC_INITIAL_VALUE
82#define MCUXCLELS_CMD_CRC_REFERENCE_RESET(crc) \
83 (crc) = MCUXCLELS_CMD_CRC_INITIAL_VALUE
88#ifndef MCUXCL_FEATURE_ELS_NO_INTERNAL_STATE_FLAGS
89#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_INIT(crc, options) \
91 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_INIT; \
92 MCUX_CSSL_ANALYSIS_START_PATTERN_0U_1U_ARE_UNSIGNED() \
93 (options).bits.lastinit = MCUXCLELS_AEAD_LASTINIT_TRUE; \
94 MCUX_CSSL_ANALYSIS_STOP_PATTERN_0U_1U_ARE_UNSIGNED() \
95 (options).bits.acpsie = MCUXCLELS_AEAD_STATE_IN_DISABLE; \
96 (options).bits.acpsoe = MCUXCLELS_AEAD_STATE_OUT_ENABLE; \
97 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
101#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_INIT(crc, options) \
103 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_INIT; \
104 MCUX_CSSL_ANALYSIS_START_PATTERN_0U_1U_ARE_UNSIGNED() \
105 (options).bits.lastinit = MCUXCLELS_AEAD_LASTINIT_TRUE; \
106 MCUX_CSSL_ANALYSIS_STOP_PATTERN_0U_1U_ARE_UNSIGNED() \
107 (options).bits.acpsie = MCUXCLELS_AEAD_STATE_IN_DISABLE; \
108 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
116#ifndef MCUXCL_FEATURE_ELS_NO_INTERNAL_STATE_FLAGS
117#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_PARTIALINIT(crc, options) \
119 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_INIT; \
120 (options).bits.acpsoe = MCUXCLELS_AEAD_STATE_OUT_ENABLE; \
121 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
125#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_PARTIALINIT(crc, options) \
127 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_INIT; \
128 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
136#ifndef MCUXCL_FEATURE_ELS_NO_INTERNAL_STATE_FLAGS
137#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_UPDATEAAD(crc, options) \
139 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_AADPROC \
140 (options).bits.acpsie = MCUXCLELS_AEAD_STATE_IN_ENABLE; \
141 (options).bits.acpsoe = MCUXCLELS_AEAD_STATE_OUT_ENABLE; \
142 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
146#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_UPDATEAAD(crc, options) \
148 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_AADPROC; \
149 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
157#ifndef MCUXCL_FEATURE_ELS_NO_INTERNAL_STATE_FLAGS
158#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_UPDATEDATA(crc, options) \
160 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_MSGPROC \
161 (options).bits.acpsie = MCUXCLELS_AEAD_STATE_IN_ENABLE; \
162 (options).bits.acpsoe = MCUXCLELS_AEAD_STATE_OUT_ENABLE; \
163 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
167#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_UPDATEDATA(crc, options) \
169 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_MSGPROC; \
170 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
178#ifndef MCUXCL_FEATURE_ELS_NO_INTERNAL_STATE_FLAGS
179#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_FINALIZE(crc, options) \
181 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_FINAL \
182 (options).bits.acpsie = MCUXCLELS_AEAD_STATE_IN_ENABLE; \
183 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
187#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_AEAD_FINALIZE(crc, options) \
189 (options).bits.acpmod = MCUXCLELS_AEAD_ACPMOD_FINAL; \
190 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER, (options).word.value, &(crc)); \
198#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_CIPHER(crc, options) \
199 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_CIPHER, (options).word.value, &(crc))
204#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_CMAC(crc, options) \
205 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_CMAC, (options).word.value, &(crc))
211#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCKEYGEN(crc, options) \
213 (options).bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
214 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_KEYGEN, (options).word.value, &(crc)); \
221#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL_BIT
222#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCKEYEXCHANGE(crc) \
224 mcuxClEls_EccKeyExchOption_t options = {0u}; \
225 options.bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
226 options.bits.extkey = MCUXCLELS_ECC_EXTKEY_EXTERNAL; \
227 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECKXH, options.word.value, &(crc)); \
231#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCKEYEXCHANGE(crc) \
233 mcuxClEls_EccKeyExchOption_t options = {0u}; \
234 options.bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
235 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECKXH, options.word.value, &(crc)); \
240#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
244#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCKEYEXCHANGEINT(crc) \
246 mcuxClEls_EccKeyExchOption_t options = {0u}; \
247 options.bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
248 options.bits.extkey = MCUXCLELS_ECC_EXTKEY_INTERNAL; \
249 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECKXH, options.word.value, &(crc)); \
257#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCSIGN(crc, options) \
259 (options).bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
260 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECSIGN, (options).word.value, &(crc)); \
267#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL_BIT
268#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCVERFIFY(crc, options) \
270 (options).bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
271 (options).bits.extkey = MCUXCLELS_ECC_EXTKEY_EXTERNAL; \
272 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECVFY, (options).word.value, &(crc)); \
276#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCVERFIFY(crc, options) \
278 (options).bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
279 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECVFY, (options).word.value, &(crc)); \
284#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
288#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_ECCVERFIFYINT(crc, options) \
290 (options).bits.revf = MCUXCLELS_ECC_REVERSEFETCH_ENABLE; \
291 (options).bits.extkey = MCUXCLELS_ECC_EXTKEY_INTERNAL; \
292 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_ECVFY, (options).word.value, &(crc)); \
300#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_GLITCHDETECTOR_LOADCONFIG(crc) \
301 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_GDET_CFG_LOAD, 0u, &(crc))
306#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_GLITCHDETECTOR_TRIM(crc) \
307 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_GDET_TRIM, 0u, &(crc))
312#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_HASH(crc, options) \
313 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_HASH, (options).word.value, &(crc))
318#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_HMAC(crc, options) \
319 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_HMAC, (options).word.value, &(crc))
324#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_CKDF_SP800108(crc) \
326 mcuxClEls_CkdfOption_t options = {0u}; \
327 options.bits.ckdf_algo = MCUXCLELS_CKDF_ALGO_SP800108; \
328 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_CKDF, options.word.value, &(crc)); \
336#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_HKDF_RFC5869(crc, options) \
338 (options).bits.hkdf_algo = MCUXCLELS_HKDF_ALGO_RFC5869; \
339 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_HKDF, (options).word.value, &(crc)); \
346#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_HKDF_SP80056C(crc) \
348 mcuxClEls_HkdfOption_t options = {0u}; \
349 options.bits.hkdf_algo = MCUXCLELS_HKDF_ALGO_SP80056C; \
350 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_HKDF, options.word.value, &(crc)); \
357#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_TLSGENERATEMASTERKEYFROMPREMASTERKEY(crc) \
359 mcuxClEls_TlsOption_t options = {0u}; \
360 options.bits.mode = MCUXCLELS_TLS_INIT; \
361 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_TLS, options.word.value, &(crc)); \
368#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_TLSGENERATESESSIONKEYSFROMMASTERKEY(crc) \
370 mcuxClEls_TlsOption_t options = {0u}; \
371 options.bits.mode = MCUXCLELS_TLS_FINALIZE; \
372 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_TLS, options.word.value, &(crc)); \
379#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_KEYDELETE(crc) \
380 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_KDELETE, 0u, &(crc))
387#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_KEYIMPORT(crc, options) \
388 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_KEYIN, (options).word.value, &(crc))
390#ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL
394#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_KEYIMPORTPUK(crc) \
396 mcuxClEls_KeyImportOption_t options = {0u}; \
397 options.bits.revf = MCUXCLELS_KEYIMPORT_REVERSEFETCH_ENABLE; \
398 options.bits.kfmt = MCUXCLELS_KEYIMPORT_KFMT_PBK; \
399 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_KEYIN, options.word.value, &(crc)); \
407#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_KEYEXPORT(crc) \
409 mcuxClEls_Status_t retVal = mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_KEYOUT, 0u, &(crc)); \
410 mcuxClEls_KeyImportOption_t import_options = {0u}; \
411 import_options.bits.kfmt = MCUXCLELS_KEYIMPORT_KFMT_RFC3394; \
412 retVal = MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_KEYDELETE(crc); \
413 retVal = MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_KEYIMPORT(crc, import_options); \
420#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DRBGREQUEST(crc) \
421 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_RND_REQ, 0u, &(crc))
423#ifdef MCUXCL_FEATURE_ELS_RND_RAW
427#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DRBGREQUESTRAW(crc) \
428 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_RND_REQ, MCUXCLELS_RNG_RND_REQ_RND_RAW, &(crc))
434#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DRBGTESTINSTANTIATE(crc) \
435 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_DRBG_TEST, MCUXCLELS_RNG_DRBG_TEST_MODE_INSTANTIATE, &(crc))
440#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DRBGTESTEXTRACT(crc) \
441 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_DRBG_TEST, MCUXCLELS_RNG_DRBG_TEST_MODE_EXTRACT, &(crc))
446#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DRBGTESTAESECB(crc) \
447 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_DRBG_TEST, MCUXCLELS_RNG_DRBG_TEST_MODE_AES_ECB, &(crc))
452#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DRBGTESTAESCTR(crc) \
453 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_DRBG_TEST, MCUXCLELS_RNG_DRBG_TEST_MODE_AES_CTR, &(crc))
458#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DTRNG_CONFIGLOAD(crc) \
459 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_DTRNG_CFG_LOAD, 0u, &(crc))
464#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_RNG_DTRNG_CONFIGEVALUATE(crc) \
465 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_DTRNG_EVAL, 0u, &(crc))
467#ifdef MCUXCL_FEATURE_ELS_PRND_INIT
471#define MCUXCLELS_CMD_CRC_REFERENCE_UPDATE_PRNG_INIT(crc) \
472 mcuxClEls_UpdateRefCRC(MCUXCLELS_CMD_CRC_CMD_ID_RND_REQ, MCUXCLELS_RNG_RND_REQ_PRND_INIT, &(crc))
484#define MCUXCLELS_CMD_CRC_CMD_ID_CIPHER 0
485#define MCUXCLELS_CMD_CRC_CMD_ID_AUTH_CIPHER 1
486#define MCUXCLELS_CMD_CRC_CMD_ID_CHAL_RESP_GEN 3
487#define MCUXCLELS_CMD_CRC_CMD_ID_ECSIGN 4
488#define MCUXCLELS_CMD_CRC_CMD_ID_ECVFY 5
489#define MCUXCLELS_CMD_CRC_CMD_ID_ECKXH 6
490#define MCUXCLELS_CMD_CRC_CMD_ID_KEYGEN 8
491#define MCUXCLELS_CMD_CRC_CMD_ID_KEYIN 9
492#define MCUXCLELS_CMD_CRC_CMD_ID_KEYOUT 10
493#define MCUXCLELS_CMD_CRC_CMD_ID_KDELETE 11
494#define MCUXCLELS_CMD_CRC_CMD_ID_KEYPROV 12
495#define MCUXCLELS_CMD_CRC_CMD_ID_CKDF 16
496#define MCUXCLELS_CMD_CRC_CMD_ID_HKDF 17
497#define MCUXCLELS_CMD_CRC_CMD_ID_TLS 18
498#define MCUXCLELS_CMD_CRC_CMD_ID_HASH 20
499#define MCUXCLELS_CMD_CRC_CMD_ID_HMAC 21
500#define MCUXCLELS_CMD_CRC_CMD_ID_CMAC 22
501#define MCUXCLELS_CMD_CRC_CMD_ID_RND_REQ 24
502#define MCUXCLELS_CMD_CRC_CMD_ID_DRBG_TEST 25
503#define MCUXCLELS_CMD_CRC_CMD_ID_DTRNG_CFG_LOAD 28
504#define MCUXCLELS_CMD_CRC_CMD_ID_DTRNG_EVAL 29
505#define MCUXCLELS_CMD_CRC_CMD_ID_GDET_CFG_LOAD 30
506#define MCUXCLELS_CMD_CRC_CMD_ID_GDET_TRIM 31
Definition of function identifiers for the flow protection mechanism.
Provides the API for the CSSL flow protection mechanism.
#define MCUXCLELS_API
Marks a function as a public API function of the mcuxClEls component.
Definition mcuxClEls_Common.h:46
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_ConfigureCommandCRC(mcuxClEls_CommandCrcConfig_t options)
Set command CRC flags.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_VerifyVsRefCRC(uint32_t refCrc)
Verifies a reference CRC against the computed ELS command CRC.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_UpdateRefCRC(uint8_t command, uint32_t options, uint32_t *refCrc)
Updates a reference CRC with the parameters of an ELS command.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetCommandCRC(uint32_t *commandCrc)
Get the current command CRC value.
uint32_t mcuxClEls_Status_t
Type for ELS driver status codes.
Definition mcuxClEls_Types.h:212
#define MCUX_CSSL_FP_FUNCTION_DECL(...)
Declaration of a flow protected function.
Definition mcuxCsslFlowProtection.h:125
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition mcuxCsslFlowProtection.h:81
Type to control ELS Command CRC.
Definition mcuxClEls_Crc.h:527
uint32_t value
Accesses the bit field as a full word.
Definition mcuxClEls_Crc.h:530
uint32_t enable
Enable/Disable update of Command CRC value by executing commands, set with MCUXCLELS_CMD_CRC_ENABLE /...
Definition mcuxClEls_Crc.h:535
uint32_t reset
Reset the Command CRC to initial value, set by MCUXCLELS_CMD_CRC_RESET.
Definition mcuxClEls_Crc.h:534