MCUX CLNS
MCUX Crypto Library Normal Secure
 
Loading...
Searching...
No Matches
mcuxClEls_Types.h File Reference

ELS type header. More...

#include <stdint.h>
#include <stddef.h>
#include <mcuxClConfig.h>
#include <mcuxCsslFlowProtection.h>
#include <mcuxClEls_mapping.h>

Go to the source code of this file.

Data Structures

union  mcuxClEls_KeyProp_t
 Type for ELS key store key properties. More...
 

Macros

#define MCUXCLELS_KEY_SLOTS
 Number of key slots in the ELS key store.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_KEY_SIZE_128
 128-bit key
 
#define MCUXCLELS_KEYPROPERTY_VALUE_KEY_SIZE_256
 256-bit key
 
#define MCUXCLELS_KEYPROPERTY_VALUE_ACTIVE
 Key is active (loaded)
 
#define MCUXCLELS_KEYPROPERTY_VALUE_BASE_SLOT
 First part of multi-slot key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_GENERAL_PURPOSE_SLOT
 General purpose key slot.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_RETENTION_SLOT
 Retention key slot.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_HW_OUT_SLOT
 Hardware output key slot.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_CMAC
 CMAC key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_KSK
 Key signing key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_RTF
 RTF signing key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_CKDF
 CKDF signing key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_HKDF
 HKDF signing key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_ECSGN
 ECC signing key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_ECDH
 ECC Diffie Hellman private key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_AES
 AES key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_HMAC
 HMAC key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_KWK
 Key Wrapping Key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_KUOK
 Key Unwrapping Only Key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_TLS_PREMASTER_SECRET
 TLS Premaster Secret.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_TLS_MASTER_SECRET
 TLS Master Secret.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_KGSRC
 Can provide key material input for ECC key generation.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_HW_OUT
 A key to be used in a hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_WRPOK
 The key can be wrapped.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_DUK
 Device Unique Key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_PRIVILEGED
 Caller must be in privileged mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_NOTPRIVILEGED
 Caller does not have to be in privileged mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_SECURE
 Caller must be in secure mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_VALUE_NOTSECURE
 Caller does not have to be in secure mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_KEY_SIZE_128
 This value of mcuxClEls_KeyProp_t.ksize indicates a 128 bit key.
 
#define MCUXCLELS_KEYPROPERTY_KEY_SIZE_256
 This value of mcuxClEls_KeyProp_t.ksize indicates a 256 bit key.
 
#define MCUXCLELS_KEYPROPERTY_ACTIVE_TRUE
 This value of mcuxClEls_KeyProp_t.kactv indicates that the slot contains an active key.
 
#define MCUXCLELS_KEYPROPERTY_ACTIVE_FALSE
 This value of mcuxClEls_KeyProp_t.kactv indicates that the slot does not contain active key.
 
#define MCUXCLELS_KEYPROPERTY_BASE_SLOT
 This value of mcuxClEls_KeyProp_t.kbase indicates that the slot is the base slot of a 2-slot key.
 
#define MCUXCLELS_KEYPROPERTY_SECOND_SLOT
 This value of mcuxClEls_KeyProp_t.kbase indicates that the slot is the second slot of a 2-slot key.
 
#define MCUXCLELS_KEYPROPERTY_GENERAL_PURPOSE_SLOT_TRUE
 This value of mcuxClEls_KeyProp_t.fgp indicates that the slot is a retention key slot or a hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_GENERAL_PURPOSE_SLOT_FALSE
 This value of mcuxClEls_KeyProp_t.fgp indicates that the slot is a neither retention key slot nor hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_RETENTION_SLOT_TRUE
 This value of mcuxClEls_KeyProp_t.frtn indicates that the slot is a retention key slot.
 
#define MCUXCLELS_KEYPROPERTY_RETENTION_SLOT_FALSE
 This value of mcuxClEls_KeyProp_t.frtn indicates that the slot is not a retention key slot.
 
#define MCUXCLELS_KEYPROPERTY_HW_OUT_SLOT_TRUE
 This value of mcuxClEls_KeyProp_t.fhwo indicates that the slot is a hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_HW_OUT_SLOT_FALSE
 This value of mcuxClEls_KeyProp_t.fhwo indicates that the slot is not a hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_CMAC_TRUE
 This value of mcuxClEls_KeyProp_t.ucmac indicates that the key can be used for CMAC.
 
#define MCUXCLELS_KEYPROPERTY_CMAC_FALSE
 This value of mcuxClEls_KeyProp_t.ucmac indicates that the key cannot be used for CMAC.
 
#define MCUXCLELS_KEYPROPERTY_KSK_TRUE
 This value of mcuxClEls_KeyProp_t.uksk indicates that the key can be used for key signing.
 
#define MCUXCLELS_KEYPROPERTY_KSK_FALSE
 This value of mcuxClEls_KeyProp_t.uksk indicates that the key cannot be used for key signing.
 
#define MCUXCLELS_KEYPROPERTY_RTF_TRUE
 This value of mcuxClEls_KeyProp_t.urtf indicates that the key can be used for RTF signing.
 
#define MCUXCLELS_KEYPROPERTY_RTF_FALSE
 This value of mcuxClEls_KeyProp_t.urtf indicates that the key cannot be used for RTF signing.
 
#define MCUXCLELS_KEYPROPERTY_CKDF_TRUE
 This value of mcuxClEls_KeyProp_t.uckdf indicates that the key can be used for CKDF.
 
#define MCUXCLELS_KEYPROPERTY_CKDF_FALSE
 This value of mcuxClEls_KeyProp_t.uckdf indicates that the key cannot be used for CKDF.
 
#define MCUXCLELS_KEYPROPERTY_HKDF_TRUE
 This value of mcuxClEls_KeyProp_t.uhkdf indicates that the key can be used for HKDF.
 
#define MCUXCLELS_KEYPROPERTY_HKDF_FALSE
 This value of mcuxClEls_KeyProp_t.uhkdf indicates that the key cannot be used for HKDF.
 
#define MCUXCLELS_KEYPROPERTY_ECC_TRUE
 This value of mcuxClEls_KeyProp_t.uecsg indicates that the key can be used for ECC signing.
 
#define MCUXCLELS_KEYPROPERTY_ECC_FALSE
 This value of mcuxClEls_KeyProp_t.uecsg indicates that the key cannot be used for ECC signing.
 
#define MCUXCLELS_KEYPROPERTY_ECC_DH_PRIVATE_TRUE
 This value of mcuxClEls_KeyProp_t.uecdh indicates that the key is a ECC Diffie Hellman private key.
 
#define MCUXCLELS_KEYPROPERTY_ECC_DH_PRIVATE_FALSE
 This value of mcuxClEls_KeyProp_t.uecdh indicates that the key is not an ECC Diffie Hellman private key.
 
#define MCUXCLELS_KEYPROPERTY_AES_TRUE
 This value of mcuxClEls_KeyProp_t.uaes indicates that the key is an AES key.
 
#define MCUXCLELS_KEYPROPERTY_AES_FALSE
 This value of mcuxClEls_KeyProp_t.uaes indicates that the key is not an AES key.
 
#define MCUXCLELS_KEYPROPERTY_HMAC_TRUE
 This value of mcuxClEls_KeyProp_t.uhmac indicates that the key is an HMAC key.
 
#define MCUXCLELS_KEYPROPERTY_HMAC_FALSE
 This value of mcuxClEls_KeyProp_t.uhmac indicates that the key is not an HMAC key.
 
#define MCUXCLELS_KEYPROPERTY_KWK_TRUE
 This value of mcuxClEls_KeyProp_t.ukwk indicates that the key is a Key Wrapping Key.
 
#define MCUXCLELS_KEYPROPERTY_KWK_FALSE
 This value of mcuxClEls_KeyProp_t.ukwk indicates that the key is not a Key Wrapping Key.
 
#define MCUXCLELS_KEYPROPERTY_KUOK_TRUE
 This value of mcuxClEls_KeyProp_t.ukuok indicates that the key is a Key Unwrapping Only Key.
 
#define MCUXCLELS_KEYPROPERTY_KUOK_FALSE
 This value of mcuxClEls_KeyProp_t.ukuok indicates that the key is not a Key Unwrapping Only Key.
 
#define MCUXCLELS_KEYPROPERTY_TLS_PREMASTER_SECRET_TRUE
 This value of mcuxClEls_KeyProp_t.utlspms indicates that the key is a TLS Premaster Secret.
 
#define MCUXCLELS_KEYPROPERTY_TLS_PREMASTER_SECRET_FALSE
 This value of mcuxClEls_KeyProp_t.utlspms indicates that the key is not a TLS Premaster Secret.
 
#define MCUXCLELS_KEYPROPERTY_TLS_MASTER_SECRET_TRUE
 This value of mcuxClEls_KeyProp_t.utlsms indicates that the key is a TLS Master Secret.
 
#define MCUXCLELS_KEYPROPERTY_TLS_MASTER_SECRET_FALSE
 This value of mcuxClEls_KeyProp_t.utlsms indicates that the key is not a TLS Master Secret.
 
#define MCUXCLELS_KEYPROPERTY_INPUT_FOR_ECC_TRUE
 This value of mcuxClEls_KeyProp_t.ukgsrc indicates that the key can be used as key material input for ECC key generation.
 
#define MCUXCLELS_KEYPROPERTY_INPUT_FOR_ECC_FALSE
 This value of mcuxClEls_KeyProp_t.ukgsrc indicates that the key cannot be used as key material input for ECC key generation.
 
#define MCUXCLELS_KEYPROPERTY_HW_OUT_TRUE
 This value of mcuxClEls_KeyProp_t.uhwo indicates that the key can be used in a hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_HW_OUT_FALSE
 This value of mcuxClEls_KeyProp_t.uhwo indicates that the key cannot be used in a hardware out key slot.
 
#define MCUXCLELS_KEYPROPERTY_WRAP_TRUE
 This value of mcuxClEls_KeyProp_t.wrpok indicates that the key can be wrapped.
 
#define MCUXCLELS_KEYPROPERTY_WRAP_FALSE
 This value of mcuxClEls_KeyProp_t.wrpok indicates that the key cannot be wrapped.
 
#define MCUXCLELS_KEYPROPERTY_DEVICE_UNIQUE_TRUE
 This value of mcuxClEls_KeyProp_t.duk indicates that the key is a Device Unique Key.
 
#define MCUXCLELS_KEYPROPERTY_DEVICE_UNIQUE_FALSE
 This value of mcuxClEls_KeyProp_t.duk indicates that the key is not a Device Unique Key.
 
#define MCUXCLELS_KEYPROPERTY_PRIVILEGED_TRUE
 This value of mcuxClEls_KeyProp_t.upprot_priv indicates that the caller must be in privileged mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_PRIVILEGED_FALSE
 This value of mcuxClEls_KeyProp_t.upprot_priv indicates that the caller does not need to be in privileged mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_SECURE_TRUE
 This value of mcuxClEls_KeyProp_t.upprot_sec indicates that the caller must be in secure mode to use the key.
 
#define MCUXCLELS_KEYPROPERTY_SECURE_FALSE
 This value of mcuxClEls_KeyProp_t.upprot_sec indicates that the caller does not need to be in secure mode to use the key.
 
#define MCUXCLELS_STATUS_OK
 No error occurred.
 
#define MCUXCLELS_STATUS_OK_WAIT
 An _Async function successfully started an ELS command. Call mcuxClEls_WaitForOperation to complete it.
 
#define MCUXCLELS_STATUS_HW_FAULT
 ELS hardware detected a fault.
 
#define MCUXCLELS_STATUS_HW_ALGORITHM
 An algorithm failed in hardware.
 
#define MCUXCLELS_STATUS_HW_OPERATIONAL
 ELS was operated incorrectly.
 
#define MCUXCLELS_STATUS_HW_BUS
 A bus access failed.
 
#define MCUXCLELS_STATUS_HW_INTEGRITY
 An integrity check failed in hardware.
 
#define MCUXCLELS_STATUS_HW_PRNG
 Read access to PRNG output while PRNG is not in ready state.
 
#define MCUXCLELS_STATUS_HW_DTRNG
 Unable to get entropy from dTRNG with current configuration.
 
#define MCUXCLELS_STATUS_SW_FAULT
 Software detected a fault.
 
#define MCUXCLELS_STATUS_SW_CANNOT_INTERRUPT
 an ELS command was started while the ELS was still busy, or a SHA-Direct command was started while the SHA kernel was still busy
 
#define MCUXCLELS_STATUS_SW_INVALID_PARAM
 Incorrect parameters were supplied.
 
#define MCUXCLELS_STATUS_SW_INVALID_STATE
 This can happen when ELS is in a wrong state for the requested ELS command.
 
#define MCUXCLELS_STATUS_SW_COUNTER_EXPIRED
 A software counter expired while waiting for an ELS operation to finish.
 
#define MCUXCLELS_STATUS_SW_COMPARISON_FAILED
 A comparison between an ELS flag and its expected value failed.
 
#define MCUXCLELS_STATUS_IS_HW_ERROR(x_)
 Checks whether an error code is a hardware error. Indicates that an error was reported by ELS hardware.
 
#define MCUXCLELS_STATUS_IS_SW_ERROR(x_)
 Checks whether an error code is a software error. Indicates that the error was detected by the driver software and not by ELS hardware.
 
#define utlpsms
 Deprecated name for mcuxClEls_KeyProp_t.utlspms.
 

Typedefs

typedef uint32_t mcuxClEls_Status_t
 Type for ELS driver status codes.
 
typedef mcuxClEls_Status_t mcuxClEls_Status_Protected_t
 Deprecated type for ELS driver protected status codes.
 
typedef uint32_t mcuxClEls_KeyIndex_t
 Type for ELS keystore indices.
 
typedef 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.
 

Detailed Description

ELS type header.

This header defines types that are used by other mcuxClEls headers.