3.3.2.4 Crypto_Hash_Sha_Digest

crypto_Hash_Status_E Crypto_Hash_Sha_Digest (
    crypto_HandlerType_E shaHandler_en, 
    uint8_t *ptr_data, 
    uint32_t dataLen, 
    uint8_t *ptr_digest, 
    crypto_Hash_Algo_E shaAlgorithm_en, 
    uint32_t shaSessionId
    );

Description

This API performs hash generation for different variants of SHA-1, SHA-2, and SHA-3 (Excluding SHAKE) algorithms in a single step without initializing.

Parameters

No.Argument TypeArgument NameTypeDescription
1crypto_HandlerType_EshaHandler_enInputEnum for crypto operation handler i.e., SW, HW.
2uint8_t*ptr_dataInputInput data which digest needs to calculate.
3uint32_tdataLenInputLength of the input data in number of bytes.
4uint8_t*ptr_digestOutputPointer to store calculated digest.
5crypto_Hash_Algo_EshaAlgorithm_enInputSelection of SHA algorithm variant, i.e., SHA-2-224 or SHA-1 or SHA3-224, etc.
6uint32_tshaSessionIdInputIt defines the session ID, must be more than zero.

Returns

Return TypeDescription
crypto_Hash_Status_EFunction returns the status of the API.

Example

#define sessionID 1
crypto_Hash_Status_E status;
crypto_HandlerType_E handlerType_en = CRYPTO_HANDLER_HW_INTERNAL;
crypto_Hash_Algo_E shaAlgorithm_en = CRYPTO_HASH_SHA2_224;
uint8_t inputData[32] = {/*data*/};
uint32_t dataLen = sizeof(inputData);
uint8_t digest[28];

status = Crypto_Hash_Sha_Digest(
    handlerType_en,
    inputData,
    dataLen,
    digest,
    shaAlgorithm_en,
    sessionID
    );