STM32F479xx HAL User Manual
Functions
HASH processing functions in interrupt mode
HASH Exported Functions

HASH processing functions using interrupt mode. More...

Functions

HAL_StatusTypeDef HAL_HASH_MD5_Start_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer)
 Initialize the HASH peripheral in MD5 mode, next process pInBuffer then read the computed digest in interruption mode.
HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 If not already done, initialize the HASH peripheral in MD5 mode then processes pInBuffer in interruption mode.
HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer)
 End computation of a single HASH signature after several calls to HAL_HASH_MD5_Accmlt_IT() API.
HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer)
 Initialize the HASH peripheral in SHA1 mode, next process pInBuffer then read the computed digest in interruption mode.
HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 If not already done, initialize the HASH peripheral in SHA1 mode then processes pInBuffer in interruption mode.
HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer)
 End computation of a single HASH signature after several calls to HAL_HASH_SHA1_Accmlt_IT() API.
void HAL_HASH_IRQHandler (HASH_HandleTypeDef *hhash)
 Handle HASH interrupt request.

Detailed Description

HASH processing functions using interrupt mode.

 ===============================================================================
                 ##### Interruption mode HASH processing functions #####
 ===============================================================================
    [..]  This section provides functions allowing to calculate in interrupt mode
          the hash value using one of the following algorithms:
      (+) MD5
         (++) HAL_HASH_MD5_Start_IT()
         (++) HAL_HASH_MD5_Accmlt_IT()
         (++) HAL_HASH_MD5_Accmlt_End_IT()
      (+) SHA1
         (++) HAL_HASH_SHA1_Start_IT()
         (++) HAL_HASH_SHA1_Accmlt_IT()
         (++) HAL_HASH_SHA1_Accmlt_End_IT()

    [..]  API HAL_HASH_IRQHandler() manages each HASH interruption.

    [..] Note that HAL_HASH_IRQHandler() manages as well HASH Peripheral interruptions when in
         HMAC processing mode.



Function Documentation

Handle HASH interrupt request.

Parameters:
hhashHASH handle.
Note:
HAL_HASH_IRQHandler() handles interrupts in HMAC processing as well.
In case of error reported during the HASH interruption processing, HAL_HASH_ErrorCallback() API is called so that user code can manage the error. The error type is available in hhash->Status field.
Return values:
None

Definition at line 1024 of file stm32f4xx_hal_hash.c.

References __HASH_HandleTypeDef::ErrorCallback, __HASH_HandleTypeDef::ErrorCode, HAL_HASH_ERROR_IT, HAL_HASH_ErrorCallback(), HASH_IT(), and __HASH_HandleTypeDef::Status.

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

End computation of a single HASH signature after several calls to HAL_HASH_MD5_Accmlt_IT() API.

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. Digest size is 16 bytes.
Return values:
HALstatus

Definition at line 954 of file stm32f4xx_hal_hash.c.

References HASH_ALGOSELECTION_MD5, and HASH_Start_IT().

HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_IT ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size 
)

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

Note:
Consecutive calls to HAL_HASH_MD5_Accmlt_IT() can be used to feed several input buffers back-to-back to the Peripheral that will yield a single HASH signature once all buffers have been entered. Wrap-up of input buffers feeding and retrieval of digest is done by a call to HAL_HASH_MD5_Accmlt_End_IT().
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. Only HAL_HASH_MD5_Accmlt_End_IT() is able to manage the ending buffer with a length in bytes not a multiple of 4.
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.
Return values:
HALstatus

Definition at line 940 of file stm32f4xx_hal_hash.c.

References HASH_Accumulate_IT(), and HASH_ALGOSELECTION_MD5.

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

Initialize the HASH peripheral in MD5 mode, 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. Digest size is 16 bytes.
Return values:
HALstatus

Definition at line 916 of file stm32f4xx_hal_hash.c.

References HASH_ALGOSELECTION_MD5, and HASH_Start_IT().

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

End computation of a single HASH signature after several calls to HAL_HASH_SHA1_Accmlt_IT() API.

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. Digest size is 20 bytes.
Return values:
HALstatus

Definition at line 1009 of file stm32f4xx_hal_hash.c.

References HASH_ALGOSELECTION_SHA1, and HASH_Start_IT().

HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_IT ( HASH_HandleTypeDef hhash,
uint8_t *  pInBuffer,
uint32_t  Size 
)

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

Note:
Consecutive calls to HAL_HASH_SHA1_Accmlt_IT() can be used to feed several input buffers back-to-back to the Peripheral that will yield a single HASH signature once all buffers have been entered. Wrap-up of input buffers feeding and retrieval of digest is done by a call to HAL_HASH_SHA1_Accmlt_End_IT().
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. Only HAL_HASH_SHA1_Accmlt_End_IT() is able to manage the ending buffer with a length in bytes not a multiple of 4.
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.
Return values:
HALstatus

Definition at line 995 of file stm32f4xx_hal_hash.c.

References HASH_Accumulate_IT(), and HASH_ALGOSELECTION_SHA1.

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

Initialize the HASH peripheral in SHA1 mode, 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. Digest size is 20 bytes.
Return values:
HALstatus

Definition at line 970 of file stm32f4xx_hal_hash.c.

References HASH_ALGOSELECTION_SHA1, and HASH_Start_IT().