26 #ifndef MCUXCLELS_TYPES_H_ 27 #define MCUXCLELS_TYPES_H_ 31 #include <mcuxClConfig.h> 50 #define MCUXCLELS_KEY_SLOTS (20U) 57 #define MCUXCLELS_KEYPROPERTY_VALUE_KEY_SIZE_128 ((uint32_t) 0u<< 0u) 58 #define MCUXCLELS_KEYPROPERTY_VALUE_KEY_SIZE_256 ((uint32_t) 1u<< 0u) 59 #ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL 60 #define MCUXCLELS_KEYPROPERTY_VALUE_KEY_SIZE_512 ((uint32_t) 3u<< 0u) 62 #define MCUXCLELS_KEYPROPERTY_VALUE_ACTIVE ((uint32_t) 1u<< 5u) 63 #define MCUXCLELS_KEYPROPERTY_VALUE_BASE_SLOT ((uint32_t) 1u<< 6u) 64 #define MCUXCLELS_KEYPROPERTY_VALUE_GENERAL_PURPOSE_SLOT ((uint32_t) 1u<< 7u) 65 #define MCUXCLELS_KEYPROPERTY_VALUE_RETENTION_SLOT ((uint32_t) 1u<< 8u) 66 #define MCUXCLELS_KEYPROPERTY_VALUE_HW_OUT_SLOT ((uint32_t) 1u<< 9u) 67 #ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL 68 #define MCUXCLELS_KEYPROPERTY_VALUE_PUK ((uint32_t) 1u<<11u) 69 #define MCUXCLELS_KEYPROPERTY_VALUE_TECDH ((uint32_t) 1u<<12u) 71 #define MCUXCLELS_KEYPROPERTY_VALUE_CMAC ((uint32_t) 1u<<13u) 72 #define MCUXCLELS_KEYPROPERTY_VALUE_KSK ((uint32_t) 1u<<14u) 73 #define MCUXCLELS_KEYPROPERTY_VALUE_RTF ((uint32_t) 1u<<15u) 74 #define MCUXCLELS_KEYPROPERTY_VALUE_CKDF ((uint32_t) 1u<<16u) 75 #define MCUXCLELS_KEYPROPERTY_VALUE_HKDF ((uint32_t) 1u<<17u) 76 #define MCUXCLELS_KEYPROPERTY_VALUE_ECSGN ((uint32_t) 1u<<18u) 77 #define MCUXCLELS_KEYPROPERTY_VALUE_ECDH ((uint32_t) 1u<<19u) 78 #define MCUXCLELS_KEYPROPERTY_VALUE_AES ((uint32_t) 1u<<20u) 79 #define MCUXCLELS_KEYPROPERTY_VALUE_HMAC ((uint32_t) 1u<<21u) 80 #define MCUXCLELS_KEYPROPERTY_VALUE_KWK ((uint32_t) 1u<<22u) 81 #define MCUXCLELS_KEYPROPERTY_VALUE_KUOK ((uint32_t) 1u<<23u) 82 #define MCUXCLELS_KEYPROPERTY_VALUE_TLS_PREMASTER_SECRET ((uint32_t) 1u<<24u) 83 #define MCUXCLELS_KEYPROPERTY_VALUE_TLS_MASTER_SECRET ((uint32_t) 1u<<25u) 84 #define MCUXCLELS_KEYPROPERTY_VALUE_KGSRC ((uint32_t) 1u<<26u) 85 #define MCUXCLELS_KEYPROPERTY_VALUE_HW_OUT ((uint32_t) 1u<<27u) 86 #define MCUXCLELS_KEYPROPERTY_VALUE_WRPOK ((uint32_t) 1u<<28u) 87 #define MCUXCLELS_KEYPROPERTY_VALUE_DUK ((uint32_t) 1u<<29u) 88 #define MCUXCLELS_KEYPROPERTY_VALUE_PRIVILEGED ((uint32_t) 1u<<30u) 89 #define MCUXCLELS_KEYPROPERTY_VALUE_NOTPRIVILEGED ((uint32_t) 0u<<30u) 90 #define MCUXCLELS_KEYPROPERTY_VALUE_SECURE ((uint32_t) 0u<<31u) 91 #define MCUXCLELS_KEYPROPERTY_VALUE_NOTSECURE ((uint32_t) 1u<<31u) 101 #define MCUXCLELS_KEYPROPERTY_KEY_SIZE_128 0U 102 #define MCUXCLELS_KEYPROPERTY_KEY_SIZE_256 1U 103 #ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL 104 #define MCUXCLELS_KEYPROPERTY_KEY_SIZE_512 3U 106 #define MCUXCLELS_KEYPROPERTY_ACTIVE_TRUE 1U 107 #define MCUXCLELS_KEYPROPERTY_ACTIVE_FALSE 0U 108 #define MCUXCLELS_KEYPROPERTY_BASE_SLOT 1U 109 #define MCUXCLELS_KEYPROPERTY_SECOND_SLOT 0U 110 #define MCUXCLELS_KEYPROPERTY_GENERAL_PURPOSE_SLOT_TRUE 1U 111 #define MCUXCLELS_KEYPROPERTY_GENERAL_PURPOSE_SLOT_FALSE 0U 112 #define MCUXCLELS_KEYPROPERTY_RETENTION_SLOT_TRUE 1U 113 #define MCUXCLELS_KEYPROPERTY_RETENTION_SLOT_FALSE 0U 114 #define MCUXCLELS_KEYPROPERTY_HW_OUT_SLOT_TRUE 1U 115 #define MCUXCLELS_KEYPROPERTY_HW_OUT_SLOT_FALSE 0U 116 #ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL 117 #define MCUXCLELS_KEYPROPERTY_PUK_TRUE 1U 118 #define MCUXCLELS_KEYPROPERTY_PUK_FALSE 0U 119 #define MCUXCLELS_KEYPROPERTY_TECDH_TRUE 1U 120 #define MCUXCLELS_KEYPROPERTY_TECDH_FALSE 0U 122 #define MCUXCLELS_KEYPROPERTY_CMAC_TRUE 1U 123 #define MCUXCLELS_KEYPROPERTY_CMAC_FALSE 0U 124 #define MCUXCLELS_KEYPROPERTY_KSK_TRUE 1U 125 #define MCUXCLELS_KEYPROPERTY_KSK_FALSE 0U 126 #define MCUXCLELS_KEYPROPERTY_RTF_TRUE 1U 127 #define MCUXCLELS_KEYPROPERTY_RTF_FALSE 0U 128 #define MCUXCLELS_KEYPROPERTY_CKDF_TRUE 1U 129 #define MCUXCLELS_KEYPROPERTY_CKDF_FALSE 0U 130 #define MCUXCLELS_KEYPROPERTY_HKDF_TRUE 1U 131 #define MCUXCLELS_KEYPROPERTY_HKDF_FALSE 0U 132 #define MCUXCLELS_KEYPROPERTY_ECC_TRUE 1U 133 #define MCUXCLELS_KEYPROPERTY_ECC_FALSE 0U 134 #define MCUXCLELS_KEYPROPERTY_ECC_DH_PRIVATE_TRUE 1U 135 #define MCUXCLELS_KEYPROPERTY_ECC_DH_PRIVATE_FALSE 0U 136 #define MCUXCLELS_KEYPROPERTY_AES_TRUE 1U 137 #define MCUXCLELS_KEYPROPERTY_AES_FALSE 0U 138 #define MCUXCLELS_KEYPROPERTY_HMAC_TRUE 1U 139 #define MCUXCLELS_KEYPROPERTY_HMAC_FALSE 0U 140 #define MCUXCLELS_KEYPROPERTY_KWK_TRUE 1U 141 #define MCUXCLELS_KEYPROPERTY_KWK_FALSE 0U 142 #define MCUXCLELS_KEYPROPERTY_KUOK_TRUE 1U 143 #define MCUXCLELS_KEYPROPERTY_KUOK_FALSE 0U 144 #define MCUXCLELS_KEYPROPERTY_TLS_PREMASTER_SECRET_TRUE 1U 145 #define MCUXCLELS_KEYPROPERTY_TLS_PREMASTER_SECRET_FALSE 0U 146 #define MCUXCLELS_KEYPROPERTY_TLS_MASTER_SECRET_TRUE 1U 147 #define MCUXCLELS_KEYPROPERTY_TLS_MASTER_SECRET_FALSE 0U 148 #define MCUXCLELS_KEYPROPERTY_INPUT_FOR_ECC_TRUE 1U 149 #define MCUXCLELS_KEYPROPERTY_INPUT_FOR_ECC_FALSE 0U 150 #define MCUXCLELS_KEYPROPERTY_HW_OUT_TRUE 1U 151 #define MCUXCLELS_KEYPROPERTY_HW_OUT_FALSE 0U 152 #define MCUXCLELS_KEYPROPERTY_WRAP_TRUE 1U 153 #define MCUXCLELS_KEYPROPERTY_WRAP_FALSE 0U 154 #define MCUXCLELS_KEYPROPERTY_DEVICE_UNIQUE_TRUE 1U 155 #define MCUXCLELS_KEYPROPERTY_DEVICE_UNIQUE_FALSE 0U 156 #define MCUXCLELS_KEYPROPERTY_PRIVILEGED_TRUE 1U 157 #define MCUXCLELS_KEYPROPERTY_PRIVILEGED_FALSE 0U 158 #define MCUXCLELS_KEYPROPERTY_SECURE_TRUE 0U 159 #define MCUXCLELS_KEYPROPERTY_SECURE_FALSE 1U 170 #define MCUXCLELS_STATUS_OK ((mcuxClEls_Status_t) 0x05552E03u) 171 #define MCUXCLELS_STATUS_OK_WAIT ((mcuxClEls_Status_t) 0x05552E07u) 172 #define MCUXCLELS_STATUS_HW_FAULT ((mcuxClEls_Status_t) 0x05555330u) 173 #define MCUXCLELS_STATUS_HW_ALGORITHM ((mcuxClEls_Status_t) 0x05555334u) 174 #define MCUXCLELS_STATUS_HW_OPERATIONAL ((mcuxClEls_Status_t) 0x05555338u) 175 #define MCUXCLELS_STATUS_HW_BUS ((mcuxClEls_Status_t) 0x0555533Cu) 176 #define MCUXCLELS_STATUS_HW_INTEGRITY ((mcuxClEls_Status_t) 0x05555370u) 177 #define MCUXCLELS_STATUS_HW_PRNG ((mcuxClEls_Status_t) 0x05555374u) 178 #define MCUXCLELS_STATUS_HW_DTRNG ((mcuxClEls_Status_t) 0x05555378u) 179 #define MCUXCLELS_STATUS_SW_FAULT ((mcuxClEls_Status_t) 0x0555F0F0u) 180 #define MCUXCLELS_STATUS_SW_CANNOT_INTERRUPT ((mcuxClEls_Status_t) 0x055553B0u) 181 #define MCUXCLELS_STATUS_SW_INVALID_PARAM ((mcuxClEls_Status_t) 0x055553F8u) 182 #define MCUXCLELS_STATUS_SW_INVALID_STATE ((mcuxClEls_Status_t) 0x055553B8u) 183 #define MCUXCLELS_STATUS_SW_COUNTER_EXPIRED ((mcuxClEls_Status_t) 0x055553BCu) 184 #define MCUXCLELS_STATUS_SW_COMPARISON_FAILED ((mcuxClEls_Status_t) 0x05558930u) 185 #ifdef MCUXCL_FEATURE_ELS_LOCKING 186 #define MCUXCLELS_STATUS_SW_LOCKING_FAILED ((mcuxClEls_Status_t) 0x055553F4u) 187 #define MCUXCLELS_STATUS_SW_STATUS_LOCKED ((mcuxClEls_Status_t) 0x05552E0Bu) 191 #define MCUXCLELS_STATUS_IS_HW_ERROR(x) ((((mcuxClEls_Status_t) (x)) & 0x0000FF00U) == 0x0000E100U) 193 #define MCUXCLELS_STATUS_IS_SW_ERROR(x) ((((mcuxClEls_Status_t) (x)) & 0x0000FF00U) == 0x0000F000U) 232 #ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL 244 #ifdef MCUXCL_FEATURE_ELS_PUK_INTERNAL 274 #define utlpsms utlspms 290 uint32_t
volatile * pDestRegister,
291 uint8_t
const * pSource,
Header providing mapping for legacy function/definition names (with CSS)
uint32_t mcuxClEls_Status_t
Type for ELS driver status codes.
Definition: mcuxClEls_Types.h:211
uint32_t uhmac
Usage permission for HMAC.
Definition: mcuxClEls_Types.h:259
uint32_t frtn
Hardware feature flag: Retention key slot.
Definition: mcuxClEls_Types.h:242
uint32_t uhkdf
Usage permission for HKDF.
Definition: mcuxClEls_Types.h:255
uint32_t upprot_priv
Access restriction to privileged mode.
Definition: mcuxClEls_Types.h:268
uint32_t uckdf
Usage permission for CKDF.
Definition: mcuxClEls_Types.h:254
mcuxClEls_Status_t(* mcuxClEls_TransferToRegisterFunction_t)(uint32_t volatile *pDestRegister, uint8_t const *pSource, size_t sourceLength, void *pCallerData)
Function type for transfer of data to a memory-mapped register.
Definition: mcuxClEls_Types.h:289
uint32_t ukgsrc
Usage permission as input for ECC key generation.
Definition: mcuxClEls_Types.h:264
uint32_t kbase
Status flag to indicate whether the key slot is a base slot or the second slot of a 256-bit key.
Definition: mcuxClEls_Types.h:240
uint32_t uaes
Usage permission for AES.
Definition: mcuxClEls_Types.h:258
uint32_t upprot_sec
Access restriction to TrustZone secure mode.
Definition: mcuxClEls_Types.h:269
uint32_t kactv
Status flag to indicate whether the key slot contains an active key or not.
Definition: mcuxClEls_Types.h:239
uint32_t ucmac
Usage permission for CMAC.
Definition: mcuxClEls_Types.h:251
Type for ELS key store key properties.
Definition: mcuxClEls_Types.h:224
uint32_t ukuok
Usage permission for key unwrapping, but not for key wrapping.
Definition: mcuxClEls_Types.h:261
uint32_t ksize
Key size.
Definition: mcuxClEls_Types.h:236
uint32_t uecdh
Usage permission for Elliptic Curve Diffie-Hellman.
Definition: mcuxClEls_Types.h:257
uint32_t mcuxClEls_KeyIndex_t
Type for ELS keystore indices.
Definition: mcuxClEls_Types.h:221
uint32_t uksk
Usage permission for key signing.
Definition: mcuxClEls_Types.h:252
uint32_t uecsg
Usage permission for ECDSA signing.
Definition: mcuxClEls_Types.h:256
uint32_t wrpok
Usage permission to wrap.
Definition: mcuxClEls_Types.h:266
uint32_t value
Accesses the bit field as a full word; initialize with a combination of constants from MCUXCLELS_KEYP...
Definition: mcuxClEls_Types.h:228
uint32_t ukwk
Usage permission for key wrapping.
Definition: mcuxClEls_Types.h:260
Provides the API for the CSSL flow protection mechanism.
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition: mcuxCsslFlowProtection.h:81
uint32_t uhwo
Usage permission in a hardware-out key slot.
Definition: mcuxClEls_Types.h:265
mcuxClEls_Status_t mcuxClEls_Status_Protected_t
Deprecated type for ELS driver protected status codes.
Definition: mcuxClEls_Types.h:216
uint32_t urtf
Usage permission for RTF signing.
Definition: mcuxClEls_Types.h:253
uint32_t utlspms
Usage permission as a TLS premaster secret.
Definition: mcuxClEls_Types.h:262
uint32_t duk
Device-unique key flag.
Definition: mcuxClEls_Types.h:267
uint32_t fgp
Hardware feature flag: General purpose key slot.
Definition: mcuxClEls_Types.h:241
uint32_t fhwo
Hardware feature flag: Hardware-out key slot.
Definition: mcuxClEls_Types.h:243
uint32_t utlsms
Usage permission as a TLS master secret.
Definition: mcuxClEls_Types.h:263