MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClEls_Common.h File Reference

ELS header for common functionality. More...

#include <mcuxClConfig.h>
#include <mcuxClEls_Types.h>
#include <mcuxCsslFlowProtection.h>
#include <mcuxClCore_FunctionIdentifiers.h>
#include <platform_specific_headers.h>

Go to the source code of this file.

Data Structures

union  mcuxClEls_HwVersion_t
 Result type of mcuxClEls_GetHwVersion. More...
 
union  mcuxClEls_HwState_t
 Result type of mcuxClEls_GetHwState. More...
 
union  mcuxClEls_InterruptOptionEn_t
 Command option type for mcuxClEls_SetIntEnableFlags and mcuxClEls_GetIntEnableFlags. More...
 
union  mcuxClEls_InterruptOptionRst_t
 Type to control which ELS interrupts should be reset when calling mcuxClEls_ResetIntFlags. More...
 
union  mcuxClEls_InterruptOptionSet_t
 Type to control which ELS interrupts should be set when calling mcuxClEls_SetIntFlags. More...
 
union  mcuxClEls_HwConfig_t
 Result type of #mcuxClEls_GetHwConfig. More...
 

Macros

#define MCUXCLELS_API
 Marks a function as a public API function of the mcuxClEls component. More...
 
#define MCUXCLELS_HW_VERSION
 Compatible ELS hardware IP version for the CLNS release that this header is part of. More...
 
#define MCUXCLELS_DMA_READBACK_PROTECTION_TOKEN
 
#define MCUXCLELS_ELS_INTERRUPT_ENABLE
 Set this option at mcuxClEls_InterruptOptionEn_t.elsint to allow ELS to trigger an interrupt. More...
 
#define MCUXCLELS_ELS_INTERRUPT_DISABLE
 Set this option at mcuxClEls_InterruptOptionEn_t.elsint to prevent ELS from triggering an interrupt. More...
 
#define MCUXCLELS_ELS_RESET_CLEAR
 Set this option at mcuxClEls_InterruptOptionRst_t.elsint to reset the ELS interrupt flag. More...
 
#define MCUXCLELS_ELS_RESET_KEEP
 Set this option at mcuxClEls_InterruptOptionRst_t.elsint to keep the ELS interrupt flag. More...
 
#define MCUXCLELS_ELS_INTERRUPT_SET
 Set this option at mcuxClEls_InterruptOptionSet_t.elsint to set the ELS interrupt flag. More...
 
#define MCUXCLELS_ELS_INTERRUPT_KEEP
 Set this option at mcuxClEls_InterruptOptionSet_t.elsint to leave the ELS interrupt flag unchanged. More...
 
#define MCUXCLELS_ERROR_FLAGS_KEEP
 Set this option at mcuxClEls_ErrorHandling_t to not clear any error flags. More...
 
#define MCUXCLELS_ERROR_FLAGS_CLEAR
 Set this option at mcuxClEls_ErrorHandling_t to clear all ELS error flags. More...
 
#define MCUXCLELS_RESET_DO_NOT_CANCEL
 Set this option at mcuxClEls_ResetOption_t to abort the requested command if another ELS operation is still running. More...
 
#define MCUXCLELS_RESET_CANCEL
 Set this option at mcuxClEls_ResetOption_t to execute the requested command even if another ELS operation is still running. More...
 
#define MCUXCLELS_STATUS_PPROT_UNPRIVILEGED_SECURE
 This value of mcuxClEls_HwState_t.pprot means that the most recently started ELS operation was or is running in unprivileged secure mode. More...
 
#define MCUXCLELS_STATUS_PPROT_PRIVILEGED_SECURE
 This value of mcuxClEls_HwState_t.pprot means that the most recently started ELS operation was or is running in privileged secure mode. More...
 
#define MCUXCLELS_STATUS_PPROT_UNPRIVILEGED_NONSECURE
 This value of mcuxClEls_HwState_t.pprot means that the most recently started ELS operation was or is running in unprivileged non-secure mode. More...
 
#define MCUXCLELS_STATUS_PPROT_PRIVILEGED_NONSECURE
 This value of mcuxClEls_HwState_t.pprot means that the most recently started ELS operation was or is running in privileged non-secure mode. More...
 
#define MCUXCLELS_STATUS_ECDSAVFY_NORUN
 This value of mcuxClEls_HwState_t.ecdsavfy means that no ECDSA verify operation has been executed. More...
 
#define MCUXCLELS_STATUS_ECDSAVFY_FAIL
 This value of mcuxClEls_HwState_t.ecdsavfy means that the most recently finished ECDSA signature verification failed. More...
 
#define MCUXCLELS_STATUS_ECDSAVFY_OK
 This value of mcuxClEls_HwState_t.ecdsavfy means that the most recently finished ECDSA signature verification passed. More...
 
#define MCUXCLELS_STATUS_ECDSAVFY_ERROR
 This value of mcuxClEls_HwState_t.ecdsavfy means that an error has occurred. More...
 
#define MCUXCLELS_STATUS_DRBGENTLVL_NONE
 This value of mcuxClEls_HwState_t.drbgentlvl means that the DRBG is not running. More...
 
#define MCUXCLELS_STATUS_DRBGENTLVL_LOW
 This value of mcuxClEls_HwState_t.drbgentlvl means that the DRBG can generate random numbers with a low security strength (sufficient for commands with a low DRBG security strength requirement, see the function description to check which level is required) More...
 
#define MCUXCLELS_STATUS_DRBGENTLVL_HIGH
 This value of mcuxClEls_HwState_t.drbgentlvl means that the DRBG can generate random numbers with 128 bits of security strength (sufficient for commands with a high DRBG security strength requirement, see the function description to check which level is required) More...
 
#define drbgreqsub
 Deprecated name for mcuxClEls_HwConfig_t.drbgreqsup. More...
 

Typedefs

typedef uint32_t mcuxClEls_ErrorHandling_t
 Type to handle ELS error clearing options. More...
 
typedef uint32_t mcuxClEls_ResetOption_t
 Type to handle ELS reset options. More...
 

Functions

MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetHwVersion (mcuxClEls_HwVersion_t *result)
 Determines the version of the underlying ELS hardware IP. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetHwState (mcuxClEls_HwState_t *result)
 Determines the current state of the ELS. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Enable_Async (void)
 Enables the ELS. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Reset_Async (mcuxClEls_ResetOption_t options)
 Perform a synchronous reset of the ELS. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Disable (void)
 Disable the ELS. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_SetIntEnableFlags (mcuxClEls_InterruptOptionEn_t options)
 Set interrupt enable flags. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetIntEnableFlags (mcuxClEls_InterruptOptionEn_t *result)
 Get interrupt enable flags. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_ResetIntFlags (mcuxClEls_InterruptOptionRst_t options)
 Clear the interrupt status register. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_SetIntFlags (mcuxClEls_InterruptOptionSet_t options)
 Set the interrupt status register, for debug and testing purposes. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_WaitForOperation (mcuxClEls_ErrorHandling_t errorHandling)
 Wait for an ELS operation and optionally clear the error status. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_LimitedWaitForOperation (uint32_t counterLimit, mcuxClEls_ErrorHandling_t errorHandling)
 Await the completion of an ELS operation for a limited amount of time and optionally clear the error status. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_ResetErrorFlags (void)
 Resets all error flags that have been set by a previous operation. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetErrorCode (mcuxClEls_ErrorHandling_t errorHandling)
 Get the last ELS error code and optionally clear the error status. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetErrorLevel (mcuxClEls_ErrorHandling_t errorHandling, uint32_t *errorLevel)
 Get the last ELS error code and level and optionally clear the error status. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_SetRandomStartDelay (uint32_t delay)
 Set the random start delay for AES based operations. More...
 
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetRandomStartDelay (uint32_t *delay)
 Get the random start delay for AES based operations. More...
 

Detailed Description

ELS header for common functionality.

This header exposes functions that support hardware state management for other ELS commands.