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

CSSv2 header for hashing. More...

#include <mcuxClCss_Common.h>

Go to the source code of this file.

Data Structures

union  mcuxClCss_HashOption_t
 Command option bit field for mcuxClCss_Hash_Async and mcuxClCss_Hash_ShaDirect. More...
 

Macros

#define MCUXCLCSS_HASH_INIT_ENABLE
 Set this option at mcuxClCss_HashOption_t.hashini to initialize the hash. More...
 
#define MCUXCLCSS_HASH_INIT_DISABLE
 Set this option at mcuxClCss_HashOption_t.hashini to continue the hash. More...
 
#define MCUXCLCSS_HASH_LOAD_ENABLE
 Set this option at mcuxClCss_HashOption_t.hashld to load the hash state from pDigest. More...
 
#define MCUXCLCSS_HASH_LOAD_DISABLE
 Set this option at mcuxClCss_HashOption_t.hashld to not load the hash state. More...
 
#define MCUXCLCSS_HASH_OUTPUT_ENABLE
 Set this option at mcuxClCss_HashOption_t.hashoe to output the hash to pDigest. More...
 
#define MCUXCLCSS_HASH_OUTPUT_DISABLE
 Set this option at mcuxClCss_HashOption_t.hashoe to not output the hash. More...
 
#define MCUXCLCSS_HASH_RTF_UPDATE_ENABLE
 Set this option at mcuxClCss_HashOption_t.rtfupd to update the run-time fingerprint (only supported by mcuxClCss_Hash_Async) More...
 
#define MCUXCLCSS_HASH_RTF_UPDATE_DISABLE
 Set this option at mcuxClCss_HashOption_t.rtfupd to not update the run-time fingerprint. More...
 
#define MCUXCLCSS_HASH_RTF_OUTPUT_ENABLE
 Set this option at mcuxClCss_HashOption_t.rtfoe to output the run-time fingerprint (only supported by mcuxClCss_Hash_Async) More...
 
#define MCUXCLCSS_HASH_RTF_OUTPUT_DISABLE
 Set this option at mcuxClCss_HashOption_t.rtfoe to not output the run-time fingerprint. More...
 
#define MCUXCLCSS_HASH_MODE_SHA_224
 Set this option at mcuxClCss_HashOption_t.hashmd to use the hash algorithm SHA-224. More...
 
#define MCUXCLCSS_HASH_MODE_SHA_256
 Set this option at mcuxClCss_HashOption_t.hashmd to use the hash algorithm SHA-256. More...
 
#define MCUXCLCSS_HASH_MODE_SHA_384
 Set this option at mcuxClCss_HashOption_t.hashmd to use the hash algorithm SHA-384. More...
 
#define MCUXCLCSS_HASH_MODE_SHA_512
 Set this option at mcuxClCss_HashOption_t.hashmd to use the hash algorithm SHA-512. More...
 
#define MCUXCLCSS_HASH_BLOCK_SIZE_SHA_224
 SHA-224 output size: 512 bit (64 bytes) More...
 
#define MCUXCLCSS_HASH_BLOCK_SIZE_SHA_256
 SHA-256 output size: 512 bit (64 bytes) More...
 
#define MCUXCLCSS_HASH_BLOCK_SIZE_SHA_384
 SHA-384 output size: 1024 bit (128 bytes) More...
 
#define MCUXCLCSS_HASH_BLOCK_SIZE_SHA_512
 SHA-512 output size: 1024 bit (128 bytes) More...
 
#define MCUXCLCSS_HASH_STATE_SIZE_SHA_224
 SHA-224 state size: 256 bit (32 bytes) More...
 
#define MCUXCLCSS_HASH_STATE_SIZE_SHA_256
 SHA-256 state size: 256 bit (32 bytes) More...
 
#define MCUXCLCSS_HASH_STATE_SIZE_SHA_384
 SHA-384 state size: 512 bit (64 bytes) More...
 
#define MCUXCLCSS_HASH_STATE_SIZE_SHA_512
 SHA-512 state size: 512 bit (64 bytes) More...
 
#define MCUXCLCSS_HASH_OUTPUT_SIZE_SHA_224
 SHA-224 output size: 224 bit (28 bytes) More...
 
#define MCUXCLCSS_HASH_OUTPUT_SIZE_SHA_256
 SHA-256 output size: 256 bit (32 bytes) More...
 
#define MCUXCLCSS_HASH_OUTPUT_SIZE_SHA_384
 SHA-384 output size: 384 bit (48 bytes) More...
 
#define MCUXCLCSS_HASH_OUTPUT_SIZE_SHA_512
 SHA-512 output size: 512 bit (64 bytes) More...
 
#define MCUXCLCSS_HASH_RTF_OUTPUT_SIZE
 

Functions

MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Hash_Async (mcuxClCss_HashOption_t options, uint8_t const *pInput, size_t inputLength, uint8_t *pDigest)
 Computes the hash of a message. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_ShaDirect_Enable (void)
 Enables SHA-direct mode. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_ShaDirect_Disable (void)
 Disables SHA-direct mode. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Hash_ShaDirect (mcuxClCss_HashOption_t options, uint8_t const *pInput, size_t inputLength, uint8_t *pDigest, mcuxClCss_TransferToRegisterFunction_t pCallback, void *pCallerData)
 Calculates the hash of a message using SHA-Direct mode. More...
 

Detailed Description

CSSv2 header for hashing.

This header exposes functions that enable using the CSSv2 for hashing. There are two modes to hash a message: The asynchronous way as a CSSv2 command, and the SHA-Direct mode which feeds data to the internal registers of the CSSv2 and is synchronous (blocking). The SHA-Direct mode is meant to be used when another command should be executed in parallel on the CSSv2 while the hash operation is still ongoing. For this, use the DMA callback option in mcuxClCss_Hash_ShaDirect.