STM32F479xx HAL User Manual
Functions
HASH Private Functions
HASH

Functions

static void HASH_DMAXferCplt (DMA_HandleTypeDef *hdma)
 DMA HASH Input Data transfer completion callback.
static void HASH_DMAError (DMA_HandleTypeDef *hdma)
 DMA HASH communication error callback.
static void HASH_GetDigest (uint8_t *pMsgDigest, uint8_t Size)
 Retrieve the message digest.
static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout (HASH_HandleTypeDef *hhash, uint32_t Flag, FlagStatus Status, uint32_t Timeout)
 Handle HASH processing Timeout.
static HAL_StatusTypeDef HASH_WriteData (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 Feed the input buffer to the HASH Peripheral.
static HAL_StatusTypeDef HASH_IT (HASH_HandleTypeDef *hhash)
 HASH processing in interruption mode.
static uint32_t HASH_Write_Block_Data (HASH_HandleTypeDef *hhash)
 Write a block of data in HASH Peripheral in interruption mode.
static HAL_StatusTypeDef HMAC_Processing (HASH_HandleTypeDef *hhash, uint32_t Timeout)
 HMAC processing in polling mode.
HAL_StatusTypeDef HASH_Start (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout, uint32_t Algorithm)
 Initialize the HASH peripheral, next process pInBuffer then read the computed digest.
HAL_StatusTypeDef HASH_Accumulate (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint32_t Algorithm)
 If not already done, initialize the HASH peripheral then processes pInBuffer.
HAL_StatusTypeDef HASH_Accumulate_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint32_t Algorithm)
 If not already done, initialize the HASH peripheral then processes pInBuffer in interruption mode.
HAL_StatusTypeDef HASH_Start_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Algorithm)
 Initialize the HASH peripheral, next process pInBuffer then read the computed digest in interruption mode.
HAL_StatusTypeDef HASH_Start_DMA (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint32_t Algorithm)
 Initialize the HASH peripheral then initiate a DMA transfer to feed the input buffer to the Peripheral.
HAL_StatusTypeDef HASH_Finish (HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout)
 Return the computed digest.
HAL_StatusTypeDef HMAC_Start (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout, uint32_t Algorithm)
 Initialize the HASH peripheral in HMAC mode, next process pInBuffer then read the computed digest.
HAL_StatusTypeDef HMAC_Start_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Algorithm)
 Initialize the HASH peripheral in HMAC mode, next process pInBuffer then read the computed digest in interruption mode.
HAL_StatusTypeDef HMAC_Start_DMA (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint32_t Algorithm)
 Initialize the HASH peripheral in HMAC mode then initiate the required DMA transfers to feed the key and the input buffer to the Peripheral.

Function Documentation

HAL_StatusTypeDef HASH_Accumulate ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint32_t  Algorithm 
)

If not already done, initialize the HASH peripheral then processes pInBuffer.

Note:
Field hhash->Phase of HASH handle is tested to check whether or not the Peripheral has already been initialized.
The input buffer size (in bytes) must be a multiple of 4 otherwise, the HASH digest computation is corrupted.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes, must be a multiple of 4.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 2591 of file stm32f4xx_hal_hash.c.

References HAL_HASH_PHASE_PROCESS, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_WriteData(), __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::State, and __HASH_HandleTypeDef::Status.

Referenced by HAL_HASH_MD5_Accmlt(), HAL_HASH_SHA1_Accmlt(), HAL_HASHEx_SHA224_Accmlt(), and HAL_HASHEx_SHA256_Accmlt().

HAL_StatusTypeDef HASH_Accumulate_IT ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint32_t  Algorithm 
)

If not already done, initialize the HASH peripheral then processes pInBuffer in interruption mode.

Note:
Field hhash->Phase of HASH handle is tested to check whether or not the Peripheral has already been initialized.
The input buffer size (in bytes) must be a multiple of 4 otherwise, the HASH digest computation is corrupted.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes, must be a multiple of 4.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 2694 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_ENABLE_IT, __HAL_HASH_GET_FLAG, __HASH_HandleTypeDef::Accumulation, HAL_HASH_PHASE_PROCESS, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_FLAG_DINIS, HASH_IT_DINI, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::HashITCounter, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, and __HASH_HandleTypeDef::State.

Referenced by HAL_HASH_MD5_Accmlt_IT(), HAL_HASH_SHA1_Accmlt_IT(), HAL_HASHEx_SHA224_Accmlt_IT(), and HAL_HASHEx_SHA256_Accmlt_IT().

static void HASH_DMAError ( DMA_HandleTypeDef hdma) [static]

DMA HASH communication error callback.

Parameters:
hdmaDMA handle.
Note:
HASH_DMAError() callback invokes HAL_HASH_ErrorCallback() that can contain user code to manage the error.
Return values:
None

Definition at line 1801 of file stm32f4xx_hal_hash.c.

References __HASH_HandleTypeDef::ErrorCallback, __HASH_HandleTypeDef::ErrorCode, HAL_HASH_ERROR_DMA, HAL_HASH_ErrorCallback(), HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, __HASH_HandleTypeDef::State, and __HASH_HandleTypeDef::Status.

Referenced by HASH_Start_DMA(), and HMAC_Start_DMA().

static void HASH_DMAXferCplt ( DMA_HandleTypeDef hdma) [static]
HAL_StatusTypeDef HASH_Finish ( HASH_HandleTypeDef hhash,
uint8_t *  pOutBuffer,
uint32_t  Timeout 
)

Return the computed digest.

Note:
The API waits for DCIS to be set then reads the computed digest.
Parameters:
hhashHASH handle.
pOutBufferpointer to the computed digest.
TimeoutTimeout value.
Return values:
HALstatus

Definition at line 3090 of file stm32f4xx_hal_hash.c.

References HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HASH_DIGEST_LENGTH, HASH_FLAG_DCIS, HASH_GetDigest(), HASH_WaitOnFlagUntilTimeout(), __HASH_HandleTypeDef::Phase, and __HASH_HandleTypeDef::State.

Referenced by HAL_HASH_MD5_Finish(), HAL_HASH_SHA1_Finish(), HAL_HASHEx_SHA224_Finish(), and HAL_HASHEx_SHA256_Finish().

static void HASH_GetDigest ( uint8_t *  pMsgDigest,
uint8_t  Size 
) [static]

Retrieve the message digest.

Parameters:
pMsgDigestpointer to the computed digest.
Sizemessage digest size in bytes.
Return values:
None

Definition at line 1899 of file stm32f4xx_hal_hash.c.

Referenced by HASH_Finish(), HASH_IT(), HASH_Start(), and HMAC_Processing().

static HAL_StatusTypeDef HASH_IT ( HASH_HandleTypeDef hhash) [static]

HASH processing in interruption mode.

Parameters:
hhashHASH handle.
Note:
HASH_IT() regularly reads hhash->SuspendRequest to check whether or not the HASH processing must be suspended. If this is the case, the processing is suspended when possible and the Peripheral feeding point reached at suspension time is stored in the handle for resumption later on.
Return values:
HALstatus

Definition at line 2040 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_DISABLE_IT, __HAL_HASH_ENABLE_IT, __HAL_HASH_GET_FLAG, __HAL_HASH_SET_NBVALIDBITS, __HASH_HandleTypeDef::DgstCpltCallback, HAL_HASH_DgstCpltCallback(), HAL_HASH_InCpltCallback(), HAL_HASH_PHASE_HMAC_STEP_1, HAL_HASH_PHASE_HMAC_STEP_2, HAL_HASH_PHASE_HMAC_STEP_3, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HAL_HASH_SUSPEND, HAL_HASH_SUSPEND_NONE, HASH_DIGEST_CALCULATION_STARTED, HASH_DIGEST_LENGTH, HASH_FLAG_BUSY, HASH_FLAG_DCIS, HASH_FLAG_DINIS, HASH_GetDigest(), HASH_IT_DCI, HASH_IT_DINI, HASH_TIMEOUTVALUE, HASH_WaitOnFlagUntilTimeout(), HASH_Write_Block_Data(), __HASH_HandleTypeDef::HashBuffSize, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::HashITCounter, __HASH_HandleTypeDef::InCpltCallback, __HASH_HandleTypeDef::Init, HASH_InitTypeDef::KeySize, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::pHashMsgBuffPtr, __HASH_HandleTypeDef::pHashOutBuffPtr, HASH_InitTypeDef::pKey, __HASH_HandleTypeDef::State, and __HASH_HandleTypeDef::SuspendRequest.

Referenced by HAL_HASH_IRQHandler().

HAL_StatusTypeDef HASH_Start ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint8_t *  pOutBuffer,
uint32_t  Timeout,
uint32_t  Algorithm 
)

Initialize the HASH peripheral, next process pInBuffer then read the computed digest.

Note:
Digest is available in pOutBuffer.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes.
pOutBufferpointer to the computed digest.
TimeoutTimeout value.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 2454 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_SET_NBVALIDBITS, __HAL_HASH_START_DIGEST, HAL_HASH_PHASE_PROCESS, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_DIGEST_LENGTH, HASH_FLAG_DCIS, HASH_GetDigest(), HASH_WaitOnFlagUntilTimeout(), HASH_WriteData(), __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::State, and __HASH_HandleTypeDef::Status.

Referenced by HAL_HASH_MD5_Accmlt_End(), HAL_HASH_MD5_Start(), HAL_HASH_SHA1_Accmlt_End(), HAL_HASH_SHA1_Start(), HAL_HASHEx_SHA224_Accmlt_End(), HAL_HASHEx_SHA224_Start(), HAL_HASHEx_SHA256_Accmlt_End(), and HAL_HASHEx_SHA256_Start().

HAL_StatusTypeDef HASH_Start_DMA ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint32_t  Algorithm 
)

Initialize the HASH peripheral then initiate a DMA transfer to feed the input buffer to the Peripheral.

Note:
If MDMAT bit is set before calling this function (multi-buffer HASH processing case), the input buffer size (in bytes) must be a multiple of 4 otherwise, the HASH digest computation is corrupted. For the processing of the last buffer of the thread, MDMAT bit must be reset and the buffer length (in bytes) doesn't have to be a multiple of 4.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 2974 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_SET_NBVALIDBITS, assert_param, HAL_DMA_Start_IT(), HAL_HASH_PHASE_PROCESS, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_ERROR, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_DMAError(), HASH_DMAXferCplt(), HASH_NBW_PUSHED, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::hdmain, IS_HASH_DMA_MULTIBUFFER_SIZE, IS_HASH_PROCESSING, __HASH_HandleTypeDef::NbWordsAlreadyPushed, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::State, __DMA_HandleTypeDef::XferCpltCallback, and __DMA_HandleTypeDef::XferErrorCallback.

Referenced by HAL_HASH_MD5_Start_DMA(), HAL_HASH_SHA1_Start_DMA(), HAL_HASHEx_SHA224_Start_DMA(), and HAL_HASHEx_SHA256_Start_DMA().

HAL_StatusTypeDef HASH_Start_IT ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint8_t *  pOutBuffer,
uint32_t  Algorithm 
)

Initialize the HASH peripheral, next process pInBuffer then read the computed digest in interruption mode.

Note:
Digest is available in pOutBuffer.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes.
pOutBufferpointer to the computed digest.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 2816 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_ENABLE_IT, __HAL_HASH_GET_FLAG, __HAL_HASH_SET_NBVALIDBITS, __HAL_HASH_START_DIGEST, HAL_HASH_PHASE_PROCESS, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_FLAG_DINIS, HASH_IT_DCI, HASH_IT_DINI, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::HashITCounter, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::pHashOutBuffPtr, and __HASH_HandleTypeDef::State.

Referenced by HAL_HASH_MD5_Accmlt_End_IT(), HAL_HASH_MD5_Start_IT(), HAL_HASH_SHA1_Accmlt_End_IT(), HAL_HASH_SHA1_Start_IT(), HAL_HASHEx_SHA224_Accmlt_End_IT(), HAL_HASHEx_SHA224_Start_IT(), HAL_HASHEx_SHA256_Accmlt_End_IT(), and HAL_HASHEx_SHA256_Start_IT().

static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout ( HASH_HandleTypeDef hhash,
uint32_t  Flag,
FlagStatus  Status,
uint32_t  Timeout 
) [static]

Handle HASH processing Timeout.

Parameters:
hhashHASH handle.
Flagspecifies the HASH flag to check.
Statusthe Flag status (SET or RESET).
TimeoutTimeout duration.
Return values:
HALstatus

Definition at line 1977 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_GET_FLAG, HAL_GetTick(), HAL_HASH_STATE_READY, __HASH_HandleTypeDef::State, and __HASH_HandleTypeDef::Status.

Referenced by HAL_HASH_DMAFeed_ProcessSuspend(), HASH_Finish(), HASH_IT(), HASH_Start(), and HMAC_Processing().

static uint32_t HASH_Write_Block_Data ( HASH_HandleTypeDef hhash) [static]
static HAL_StatusTypeDef HASH_WriteData ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size 
) [static]

Feed the input buffer to the HASH Peripheral.

Parameters:
hhashHASH handle.
pInBufferpointer to input buffer.
Sizethe size of input buffer in bytes.
Note:
HASH_WriteData() regularly reads hhash->SuspendRequest to check whether or not the HASH processing must be suspended. If this is the case, the processing is suspended when possible and the Peripheral feeding point reached at suspension time is stored in the handle for resumption later on.
Return values:
HALstatus

Definition at line 1835 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_GET_FLAG, HAL_HASH_PHASE_HMAC_STEP_1, HAL_HASH_PHASE_HMAC_STEP_2, HAL_HASH_PHASE_HMAC_STEP_3, HAL_HASH_PHASE_PROCESS, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HAL_HASH_SUSPEND, HAL_HASH_SUSPEND_NONE, HASH_FLAG_DINIS, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::HashKeyCount, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::pHashKeyBuffPtr, __HASH_HandleTypeDef::State, and __HASH_HandleTypeDef::SuspendRequest.

Referenced by HASH_Accumulate(), HASH_Start(), and HMAC_Processing().

static HAL_StatusTypeDef HMAC_Processing ( HASH_HandleTypeDef hhash,
uint32_t  Timeout 
) [static]
HAL_StatusTypeDef HMAC_Start ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint8_t *  pOutBuffer,
uint32_t  Timeout,
uint32_t  Algorithm 
)

Initialize the HASH peripheral in HMAC mode, next process pInBuffer then read the computed digest.

Note:
Digest is available in pOutBuffer.
Same key is used for the inner and the outer hash functions; pointer to key and key size are respectively stored in hhash->Init.pKey and hhash->Init.KeySize.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes.
pOutBufferpointer to the computed digest.
TimeoutTimeout value.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 3151 of file stm32f4xx_hal_hash.c.

References HAL_HASH_PHASE_HMAC_STEP_1, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_ALGOMODE_HMAC, HASH_HMAC_KEYTYPE_LONGKEY, __HASH_HandleTypeDef::HashBuffSize, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::HashKeyCount, HMAC_Processing(), __HASH_HandleTypeDef::Init, HASH_InitTypeDef::KeySize, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::pHashKeyBuffPtr, __HASH_HandleTypeDef::pHashOutBuffPtr, HASH_InitTypeDef::pKey, and __HASH_HandleTypeDef::State.

Referenced by HAL_HMAC_MD5_Start(), HAL_HMAC_SHA1_Start(), HAL_HMACEx_SHA224_Start(), and HAL_HMACEx_SHA256_Start().

HAL_StatusTypeDef HMAC_Start_DMA ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint32_t  Algorithm 
)

Initialize the HASH peripheral in HMAC mode then initiate the required DMA transfers to feed the key and the input buffer to the Peripheral.

Note:
Same key is used for the inner and the outer hash functions; pointer to key and key size are respectively stored in hhash->Init.pKey and hhash->Init.KeySize.
In case of multi-buffer HMAC processing, the input buffer size (in bytes) must be a multiple of 4 otherwise, the HASH digest computation is corrupted. Only the length of the last buffer of the thread doesn't have to be a multiple of 4.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 3340 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_RESET_MDMAT, __HAL_HASH_SET_NBVALIDBITS, assert_param, __HASH_HandleTypeDef::DigestCalculationDisable, HAL_DMA_Start_IT(), HAL_HASH_PHASE_HMAC_STEP_1, HAL_HASH_PHASE_HMAC_STEP_2, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_ERROR, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_ALGOMODE_HMAC, HASH_DMAError(), HASH_DMAXferCplt(), HASH_HMAC_KEYTYPE_LONGKEY, HASH_NBW_PUSHED, __HASH_HandleTypeDef::HashBuffSize, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::hdmain, __HASH_HandleTypeDef::Init, IS_HMAC_DMA_MULTIBUFFER_SIZE, IS_HMAC_PROCESSING, HASH_InitTypeDef::KeySize, __HASH_HandleTypeDef::NbWordsAlreadyPushed, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::pHashKeyBuffPtr, __HASH_HandleTypeDef::pHashMsgBuffPtr, HASH_InitTypeDef::pKey, __HASH_HandleTypeDef::State, __DMA_HandleTypeDef::XferCpltCallback, and __DMA_HandleTypeDef::XferErrorCallback.

Referenced by HAL_HMAC_MD5_Start_DMA(), HAL_HMAC_SHA1_Start_DMA(), HAL_HMACEx_MD5_Step1_2_DMA(), HAL_HMACEx_MD5_Step2_3_DMA(), HAL_HMACEx_MD5_Step2_DMA(), HAL_HMACEx_SHA1_Step1_2_DMA(), HAL_HMACEx_SHA1_Step2_3_DMA(), HAL_HMACEx_SHA1_Step2_DMA(), HAL_HMACEx_SHA224_Start_DMA(), HAL_HMACEx_SHA224_Step1_2_DMA(), HAL_HMACEx_SHA224_Step2_3_DMA(), HAL_HMACEx_SHA224_Step2_DMA(), HAL_HMACEx_SHA256_Start_DMA(), HAL_HMACEx_SHA256_Step1_2_DMA(), HAL_HMACEx_SHA256_Step2_3_DMA(), and HAL_HMACEx_SHA256_Step2_DMA().

HAL_StatusTypeDef HMAC_Start_IT ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size,
uint8_t *  pOutBuffer,
uint32_t  Algorithm 
)

Initialize the HASH peripheral in HMAC mode, next process pInBuffer then read the computed digest in interruption mode.

Note:
Digest is available in pOutBuffer.
Same key is used for the inner and the outer hash functions; pointer to key and key size are respectively stored in hhash->Init.pKey and hhash->Init.KeySize.
Parameters:
hhashHASH handle.
pInBufferpointer to the input buffer (buffer to be hashed).
Sizelength of the input buffer in bytes.
pOutBufferpointer to the computed digest.
AlgorithmHASH algorithm.
Return values:
HALstatus

Definition at line 3229 of file stm32f4xx_hal_hash.c.

References __HAL_HASH_ENABLE_IT, __HAL_HASH_SET_NBVALIDBITS, HAL_HASH_PHASE_HMAC_STEP_1, HAL_HASH_PHASE_HMAC_STEP_2, HAL_HASH_PHASE_HMAC_STEP_3, HAL_HASH_PHASE_READY, HAL_HASH_STATE_BUSY, HAL_HASH_STATE_READY, HAL_HASH_STATE_SUSPENDED, HASH_ALGOMODE_HMAC, HASH_HMAC_KEYTYPE_LONGKEY, HASH_IT_DCI, HASH_IT_DINI, __HASH_HandleTypeDef::HashBuffSize, __HASH_HandleTypeDef::HashInCount, __HASH_HandleTypeDef::HashITCounter, __HASH_HandleTypeDef::Init, HASH_InitTypeDef::KeySize, __HASH_HandleTypeDef::Phase, __HASH_HandleTypeDef::pHashInBuffPtr, __HASH_HandleTypeDef::pHashKeyBuffPtr, __HASH_HandleTypeDef::pHashMsgBuffPtr, __HASH_HandleTypeDef::pHashOutBuffPtr, HASH_InitTypeDef::pKey, and __HASH_HandleTypeDef::State.

Referenced by HAL_HMAC_MD5_Start_IT(), HAL_HMAC_SHA1_Start_IT(), HAL_HMACEx_SHA224_Start_IT(), and HAL_HMACEx_SHA256_Start_IT().