14#ifndef MCUXCLOSCCASAFO_FUNCTIONS_H_
15#define MCUXCLOSCCASAFO_FUNCTIONS_H_
20#include <mcuxClOsccaSafo_Sfr_Ctrl.h>
36void mcuxClOsccaSafo_Drv_wait(
void);
50void mcuxClOsccaSafo_Drv_init(uint32_t mode);
75#ifdef MCUXCL_FEATURE_HW_SAFO_SM3
76#define MCUXCLOSCCASAFO_DRV_START_SM3 (MCUXCLOSCCASAFO_SFR_CTRL_SM3 | MCUXCLOSCCASAFO_SFR_CTRL_DATOUT_RES_END_UP)
79void mcuxClOsccaSafo_Drv_start(uint32_t operation);
88#ifdef MCUXCL_FEATURE_HW_SAFO_SM3
90void mcuxClOsccaSafo_Drv_stopSm3(
void);
101void mcuxClOsccaSafo_Drv_setControl2(uint32_t control);
103#ifdef MCUXCL_FEATURE_HW_SAFO_SM3
114#define MCUXCLOSCCASAFO_DRV_STATE_SIZE_SM3 (32u)
116#define MCUXCLOSCCASAFO_DRV_DIGEST_SIZE_SM3 (32u)
118#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3 (MCUXCLOSCCASAFO_SFR_CTRL_SM3_EN \
119 | MCUXCLOSCCASAFO_SFR_CTRL_SM3_LOW_LIM)
121#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_LOAD_IV (MCUXCLOSCCASAFO_SFR_CTRL_SM3_HASH_RELOAD \
122 | MCUXCLOSCCASAFO_SFR_CTRL_SM3_NO_AUTO_INIT)
124#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_USE_LOADED_IV (MCUXCLOSCCASAFO_SFR_CTRL_SM3_NO_AUTO_INIT)
126#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTO_MODE (MCUXCLOSCCASAFO_SFR_CTRL_SM3_MODE_AUTO \
127 | MCUXCLOSCCASAFO_SFR_CTRL_SM3_HIGH_LIM)
129#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_FIFO_HILIM (MCUXCLOSCCASAFO_SFR_CTRL_SM3_HIGH_LIM)
131#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTOMODE_LOADDATA_USESTANDARDIV (MCUXCLOSCCASAFO_DRV_CONFIG_SM3 \
132 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTO_MODE)
134#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTOMODE_LOADIV (MCUXCLOSCCASAFO_DRV_CONFIG_SM3 \
135 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTO_MODE \
136 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_LOAD_IV)
138#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTOMODE_LOADDATA_USELOADEDIV (MCUXCLOSCCASAFO_DRV_CONFIG_SM3 \
139 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_AUTO_MODE \
140 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_USE_LOADED_IV)
142#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_NORMALMODE_LOADDATA_USESTANDARDIV (MCUXCLOSCCASAFO_DRV_CONFIG_SM3 \
143 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_FIFO_HILIM)
145#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_NORMALMODE_LOADIV (MCUXCLOSCCASAFO_DRV_CONFIG_SM3 \
146 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_FIFO_HILIM \
147 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_LOAD_IV)
149#define MCUXCLOSCCASAFO_DRV_CONFIG_SM3_NORMALMODE_LOADDATA_USELOADEDIV (MCUXCLOSCCASAFO_DRV_CONFIG_SM3 \
150 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_FIFO_HILIM \
151 | MCUXCLOSCCASAFO_DRV_CONFIG_SM3_USE_LOADED_IV)
154void mcuxClOsccaSafo_Drv_configureSm3(uint32_t control);
167void mcuxClOsccaSafo_Drv_enableHashReload(
void);
179void mcuxClOsccaSafo_Drv_disableHashReload(
void);
191void mcuxClOsccaSafo_Drv_disableIvAutoInit(
void);
201void mcuxClOsccaSafo_Drv_enableIvAutoInit(
void);
217#define MCUXCLOSCCASAFO_DRV_FLUSH_ALL (MCUXCLOSCCASAFO_SFR_CTRL2_FLUSH)
218#define MCUXCLOSCCASAFO_DRV_FLUSH_KEY (MCUXCLOSCCASAFO_SFR_CTRL2_FLUSHKEY)
219#define MCUXCLOSCCASAFO_DRV_FLUSH_DATA (MCUXCLOSCCASAFO_SFR_CTRL2_FLUSHDATA)
221void mcuxClOsccaSafo_Drv_enableFlush(uint32_t option);
240void mcuxClOsccaSafo_Drv_loadKey(uint32_t offset, uint32_t key);
242#ifdef MCUXCL_FEATURE_HW_SAFO_SM4
254void mcuxClOsccaSafo_Drv_incrementData(uint32_t offset, uint32_t length);
266#define MCUXCLOSCCASAFO_DRV_BYTE_ORDER_LE (MCUXCLOSCCASAFO_SFR_CTRL2_BYTES_ORDER)
267#define MCUXCLOSCCASAFO_DRV_BYTE_ORDER_BE (0u)
269uint32_t mcuxClOsccaSafo_Drv_setByteOrder(uint32_t mode);
271#ifdef MCUXCL_FEATURE_HW_SAFO_SM4
281uint32_t mcuxClOsccaSafo_Drv_enableXorWrite(
void);
291void mcuxClOsccaSafo_Drv_disableXorWrite(
void);
307void mcuxClOsccaSafo_Drv_load(uint32_t offset, uint32_t data);
309#ifdef MCUXCL_FEATURE_HW_SAFO_SM3
320void mcuxClOsccaSafo_Drv_loadFifo(uint32_t data);
323#ifdef MCUXCL_FEATURE_HW_SAFO_SM4
336uint32_t mcuxClOsccaSafo_Drv_dataOut_res(uint32_t mode);
349uint32_t mcuxClOsccaSafo_Drv_enableOutputToKey(uint32_t keyIndex);
360void mcuxClOsccaSafo_Drv_disableOutputToKey(
void);
376void mcuxClOsccaSafo_Drv_triggerOutput(
void);
389uint32_t mcuxClOsccaSafo_Drv_store(uint32_t offset);
402uint32_t mcuxClOsccaSafo_Drv_storeInput(uint32_t offset);
417uint32_t mcuxClOsccaSafo_Drv_storeKey(uint32_t offset);
427bool mcuxClOsccaSafo_Drv_isStatusError(
void);
Type and associated constant definitions of the mcuxClOsccaSafo component.
Provides the API for the CSSL flow protection mechanism.
uint32_t mcuxClOsccaSafo_Status_t
SAFO status code.
Definition mcuxClOsccaSafo_Types.h:44
#define MCUX_CSSL_FP_FUNCTION_DECL(...)
Declaration of a flow protected function.
Definition mcuxCsslFlowProtection.h:125
#define MCUX_CSSL_FP_FUNCTION_DEF(...)
Definition of a flow protected function.
Definition mcuxCsslFlowProtection.h:159