RTEMS 6.1-rc4
|
Data Structures | |
struct | _dcp_hash_ctx_t |
Storage type used to save hash context. More... | |
Macros | |
#define | DCP_HASH_CAVP_COMPATIBLE |
#define | DCP_SHA_BLOCK_SIZE 128U |
DCP HASH Context size. | |
#define | DCP_HASH_BLOCK_SIZE DCP_SHA_BLOCK_SIZE |
#define | DCP_HASH_CTX_SIZE 64 |
DCP HASH Context size. | |
Typedefs | |
typedef enum _dcp_hash_algo_t | dcp_hash_algo_t |
Supported cryptographic block cipher functions for HASH creation. | |
typedef struct _dcp_hash_ctx_t | dcp_hash_ctx_t |
Storage type used to save hash context. | |
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. | |
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. | |
status_t | DCP_HASH_Finish (DCP_Type *base, dcp_hash_ctx_t *ctx, uint8_t *output, size_t *outputSize) |
Finalize hashing. | |
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. | |
#define DCP_HASH_BLOCK_SIZE DCP_SHA_BLOCK_SIZE |
DCP hash block size
#define DCP_SHA_BLOCK_SIZE 128U |
DCP HASH Context size.
internal buffer block size
enum _dcp_hash_algo_t |
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.
Perform the full SHA or CRC32 in one function call. The function is blocking.
base | DCP peripheral base address | |
handle | Handle used for the request. | |
algo | Underlaying algorithm to use for hash computation. | |
input | Input data | |
inputSize | Size of input data in bytes | |
[out] | output | Output hash data |
[out] | outputSize | Output parameter storing the size of the output hash in bytes |
brief Create HASH on given data
Perform the full SHA or CRC32 in one function call. The function is blocking.
param base DCP peripheral base address param handle Handle used for the request. param algo Underlaying algorithm to use for hash computation. param input Input data param inputSize Size of input data in bytes param[out] output Output hash data param[out] outputSize Output parameter storing the size of the output hash in bytes return Status of the one call hash operation.
status_t DCP_HASH_Finish | ( | DCP_Type * | base, |
dcp_hash_ctx_t * | ctx, | ||
uint8_t * | output, | ||
size_t * | outputSize | ||
) |
Finalize hashing.
Outputs the final hash (computed by DCP_HASH_Update()) and erases the context.
base | DCP peripheral base address | |
[in,out] | ctx | Input hash context |
[out] | output | Output hash data |
[in,out] | outputSize | Optional 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. |
brief Finalize hashing
Outputs the final hash (computed by DCP_HASH_Update()) and erases the context.
param[in,out] ctx Input hash context param[out] output Output hash data param[in,out] outputSize Optional 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. return Status of the hash finish operation
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.
This function initializes the HASH.
base | DCP peripheral base address | |
handle | Specifies the DCP channel used for hashing. | |
[out] | ctx | Output hash context |
algo | Underlaying algorithm to use for hash computation. |
brief Initialize HASH context
This function initializes the HASH.
param base DCP peripheral base address param handle Specifies the DCP channel used for hashing. param[out] ctx Output hash context param algo Underlaying algorithm to use for hash computation. return 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.
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 the 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.
base | DCP peripheral base address | |
[in,out] | ctx | HASH context |
input | Input data | |
inputSize | Size of input data in bytes |
brief Add data to current HASH
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 ref 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.
param base DCP peripheral base address param[in,out] ctx HASH context param input Input data param inputSize Size of input data in bytes return Status of the hash update operation