#include <platform_specific_headers.h>
#include <mcuxClCore_Examples.h>
#include <mcuxClExample_ELS_Helper.h>
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00u, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x00U,
0x00U, 0x00U, 0x00U, 0x18U};
0x8FU, 0x01U, 0xCFU, 0xEAU,
0x41U, 0x41U, 0x40U, 0xDEU,
0x5DU, 0xAEU, 0x22U, 0x23U,
0xB0U, 0x03U, 0x61U, 0xA3U,
0x96U, 0x17U, 0x7AU, 0x9CU,
0xB4U, 0x10U, 0xFFU, 0x61U,
0xF2U, 0x00U, 0x15U, 0xADU};
#define kCDOG_LockCtrl_Unlock 2U
#define kCDOG_FaultCtrl_EnableReset 1U
#define kCDOG_IrqPauseCtrl_Run 1U
#define kCDOG_DebugHaltCtrl_Pause 2U
MCUXCLEXAMPLE_FUNCTION(mcuxClEls_Hash_HW_Security_Counter_example)
{
if (kCDOG_LockCtrl_Unlock == ((CDOG->CONTROL & CDOG_CONTROL_LOCK_CTRL_MASK) >> CDOG_CONTROL_LOCK_CTRL_SHIFT))
{
CDOG->FLAGS = 0;
}
else
{
CDOG->FLAGS = 0xFFFFFFFFu;
}
CDOG->RELOAD = 0xFFFFFFFFu;
CDOG->CONTROL =
CDOG_CONTROL_LOCK_CTRL(kCDOG_LockCtrl_Unlock) |
CDOG_CONTROL_ADDRESS_CTRL(kCDOG_FaultCtrl_EnableReset) |
CDOG_CONTROL_TIMEOUT_CTRL(kCDOG_FaultCtrl_EnableReset) |
CDOG_CONTROL_MISCOMPARE_CTRL(kCDOG_FaultCtrl_EnableReset) |
CDOG_CONTROL_SEQUENCE_CTRL(kCDOG_FaultCtrl_EnableReset) |
CDOG_CONTROL_STATE_CTRL(kCDOG_FaultCtrl_EnableReset) |
CDOG_CONTROL_IRQ_PAUSE(kCDOG_IrqPauseCtrl_Run) |
CDOG_CONTROL_DEBUG_HALT_CTRL(kCDOG_DebugHaltCtrl_Pause);
CDOG->START = 0x0U;
{
return MCUXCLEXAMPLE_STATUS_ERROR;
}
hash_options,
));
CDOG->ADD = (uint32_t)(token);
return MCUXCLEXAMPLE_STATUS_ERROR;
}
CDOG->ADD = (uint32_t)(token);
return MCUXCLEXAMPLE_STATUS_ERROR;
}
{
{
return MCUXCLEXAMPLE_STATUS_ERROR;
}
}
if(!mcuxClExample_Els_Disable())
{
return MCUXCLEXAMPLE_STATUS_ERROR;
}
CDOG->STOP = expectedSc;
if ((CDOG->FLAGS & CDOG_FLAGS_MISCOM_FLAG_MASK) >> CDOG_FLAGS_MISCOM_FLAG_SHIFT != 0U)
{
return MCUXCLEXAMPLE_STATUS_ERROR;
}
return MCUXCLEXAMPLE_STATUS_OK;
}
static ALIGNED uint8_t sha256_reference_digest[MCUXCLELS_HASH_OUTPUT_SIZE_SHA_256]
Expected hash value.
Definition mcuxClEls_Hash_Sha256_One_Block_example.c:48
static ALIGNED uint8_t const sha256_padded_input[MCUXCLELS_HASH_BLOCK_SIZE_SHA_256]
Data input for SHA2-256 hashing.
Definition mcuxClEls_Hash_Sha256_One_Block_example.c:30
static ALIGNED uint8_t sha2_256_digest[MCUXCLELS_HASH_STATE_SIZE_SHA_256]
Destination buffer to receive the hash output of the SHA2-256 hashing.
Definition mcuxClEls_Hash_Sha256_One_Block_example.c:58
Definition of function identifiers for the flow protection mechanism.
Top-level include file for the ELS driver.
Provides the API for the CSSL flow protection mechanism.
#define MCUXCLELS_ERROR_FLAGS_CLEAR
Set this option at mcuxClEls_ErrorHandling_t to clear all ELS error flags.
Definition mcuxClEls_Common.h:110
#define MCUXCLELS_RESET_DO_NOT_CANCEL
Set this option at mcuxClEls_ResetOption_t to abort the requested command if another ELS operation is...
Definition mcuxClEls_Common.h:119
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Enable_Async(void)
Enables the ELS.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Disable(void)
Disable the ELS.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_WaitForOperation(mcuxClEls_ErrorHandling_t errorHandling)
Wait for an ELS operation and optionally clear the error status.
#define MCUXCLELS_HASH_INIT_ENABLE
Set this option at mcuxClEls_HashOption_t.hashini to initialize the hash.
Definition mcuxClEls_Hash.h:60
#define MCUXCLELS_HASH_OUTPUT_ENABLE
Set this option at mcuxClEls_HashOption_t.hashoe to output the hash to pDigest.
Definition mcuxClEls_Hash.h:66
#define MCUXCLELS_HASH_MODE_SHA_256
Set this option at mcuxClEls_HashOption_t.hashmd to use the hash algorithm SHA-256.
Definition mcuxClEls_Hash.h:76
#define MCUXCLELS_HASH_BLOCK_SIZE_SHA_256
SHA-256 output size: 512 bit (64 bytes)
Definition mcuxClEls_Hash.h:98
#define MCUXCLELS_HASH_STATE_SIZE_SHA_256
SHA-256 state size: 256 bit (32 bytes)
Definition mcuxClEls_Hash.h:112
#define MCUXCLELS_HASH_OUTPUT_SIZE_SHA_256
SHA-256 output size: 256 bit (32 bytes)
Definition mcuxClEls_Hash.h:126
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Hash_Async(mcuxClEls_HashOption_t options, uint8_t const *pInput, size_t inputLength, uint8_t *pDigest)
Computes the hash of a message.
#define MCUXCLELS_STATUS_OK
No error occurred.
Definition mcuxClEls_Types.h:171
#define MCUXCLELS_STATUS_OK_WAIT
An _Async function successfully started an ELS command. Call mcuxClEls_WaitForOperation to complete i...
Definition mcuxClEls_Types.h:172
#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN(...)
Call a flow protected function and check the protection token.
Definition mcuxCsslFlowProtection.h:581
#define MCUX_CSSL_FP_FUNCTION_CALLED(...)
Expectation of a called function.
Definition mcuxCsslFlowProtection.h:735
#define MCUX_CSSL_FP_FUNCTION_CALL_END(...)
End a function call section started by MCUX_CSSL_FP_FUNCTION_CALL_BEGIN.
Definition mcuxCsslFlowProtection.h:616
Command option bit field for mcuxClEls_Hash_Async and #mcuxClEls_Hash_ShaDirect.
Definition mcuxClEls_Hash.h:161
struct mcuxClEls_HashOption_t::@27 bits
Access mcuxClEls_HashOption_t bit-wise.
uint32_t hashoe
Defines if the hash digest shall be moved to the output buffer.
Definition mcuxClEls_Hash.h:172
uint32_t hashmd
Defines which hash algorithm shall be used.
Definition mcuxClEls_Hash.h:171
uint32_t hashini
Defines if the hash engine shall be initialized.
Definition mcuxClEls_Hash.h:169