MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
DCP HASH driver

Overview

This section describes the programming interface of the DCP HASH driver.

Data Structures

struct  dcp_hash_ctx_t
 Storage type used to save hash context. More...
 

Macros

#define DCP_SHA_BLOCK_SIZE   128
 DCP HASH Context size. More...
 
#define DCP_HASH_BLOCK_SIZE   DCP_SHA_BLOCK_SIZE
 DCP hash block size.
 
#define DCP_HASH_CTX_SIZE   58
 DCP HASH Context size. More...
 

Enumerations

enum  dcp_hash_algo_t {
  kDCP_Sha1,
  kDCP_Sha256,
  kDCP_Crc32
}
 Supported cryptographic block cipher functions for HASH creation. More...
 

Functions

status_t DCP_HASH_Init (DCP_Type *base, dcp_handle_t *handle, dcp_hash_ctx_t *ctx, dcp_hash_algo_t algo)
 Initialize HASH context. More...
 
status_t DCP_HASH_Update (DCP_Type *base, dcp_hash_ctx_t *ctx, const uint8_t *input, size_t inputSize)
 Add data to current HASH. More...
 
status_t DCP_HASH_Finish (DCP_Type *base, dcp_hash_ctx_t *ctx, uint8_t *output, size_t *outputSize)
 Finalize hashing. More...
 
status_t DCP_HASH (DCP_Type *base, dcp_handle_t *handle, dcp_hash_algo_t algo, const uint8_t *input, size_t inputSize, uint8_t *output, size_t *outputSize)
 Create HASH on given data. More...
 

Data Structure Documentation

struct dcp_hash_ctx_t

Macro Definition Documentation

#define DCP_SHA_BLOCK_SIZE   128

internal buffer block size

#define DCP_HASH_CTX_SIZE   58

Enumeration Type Documentation

Enumerator
kDCP_Sha1 

SHA_1.

kDCP_Sha256 

SHA_256.

kDCP_Crc32 

CRC_32.

Function Documentation

status_t DCP_HASH_Init ( DCP_Type *  base,
dcp_handle_t handle,
dcp_hash_ctx_t ctx,
dcp_hash_algo_t  algo 
)

This function initializes the HASH.

Parameters
baseDCP peripheral base address
handleSpecifies the DCP channel used for hashing.
[out]ctxOutput hash context
algoUnderlaying algorithm to use for hash computation.
Returns
Status of initialization
status_t DCP_HASH_Update ( DCP_Type *  base,
dcp_hash_ctx_t ctx,
const uint8_t *  input,
size_t  inputSize 
)

Add data to current HASH. This can be called repeatedly with an arbitrary amount of data to be hashed. The functions blocks. If it returns kStatus_Success, the running hash has been updated (DCP has processed the input data), so the memory at input pointer can be released back to system. The DCP context buffer is updated with the running hash and with all necessary information to support possible context switch.

Parameters
baseDCP peripheral base address
[in,out]ctxHASH context
inputInput data
inputSizeSize of input data in bytes
Returns
Status of the hash update operation
status_t DCP_HASH_Finish ( DCP_Type *  base,
dcp_hash_ctx_t ctx,
uint8_t *  output,
size_t *  outputSize 
)

Outputs the final hash (computed by DCP_HASH_Update()) and erases the context.

Parameters
[in,out]ctxInput hash context
[out]outputOutput hash data
[in,out]outputSizeOptional parameter (can be passed as NULL). On function entry, it specifies the size of output[] buffer. On function return, it stores the number of updated output bytes.
Returns
Status of the hash finish operation
status_t DCP_HASH ( DCP_Type *  base,
dcp_handle_t handle,
dcp_hash_algo_t  algo,
const uint8_t *  input,
size_t  inputSize,
uint8_t *  output,
size_t *  outputSize 
)

Perform the full SHA or CRC32 in one function call. The function is blocking.

Parameters
baseDCP peripheral base address
handleHandle used for the request.
algoUnderlaying algorithm to use for hash computation.
inputInput data
inputSizeSize of input data in bytes
[out]outputOutput hash data
[out]outputSizeOutput parameter storing the size of the output hash in bytes
Returns
Status of the one call hash operation.