STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
stm32f4xx_hal_hash.h File Reference

Header file of HASH HAL module. More...

Include dependency graph for stm32f4xx_hal_hash.h:

Go to the source code of this file.

Data Structures

struct  HASH_InitTypeDef
 HASH Configuration Structure definition. More...
 
struct  HASH_HandleTypeDef
 HASH Handle Structure definition. More...
 

Macros

#define HASH_ALGOSELECTION_SHA1   0x00000000U
 
#define HASH_ALGOSELECTION_MD5   HASH_CR_ALGO_0
 
#define HASH_ALGOSELECTION_SHA224   HASH_CR_ALGO_1
 
#define HASH_ALGOSELECTION_SHA256   HASH_CR_ALGO
 
#define HASH_ALGOMODE_HASH   0x00000000U
 
#define HASH_ALGOMODE_HMAC   HASH_CR_MODE
 
#define HASH_DATATYPE_32B   0x00000000U
 
#define HASH_DATATYPE_16B   HASH_CR_DATATYPE_0
 
#define HASH_DATATYPE_8B   HASH_CR_DATATYPE_1
 
#define HASH_DATATYPE_1B   HASH_CR_DATATYPE
 
#define HASH_HMAC_KEYTYPE_SHORTKEY   0x00000000U
 
#define HASH_HMAC_KEYTYPE_LONGKEY   HASH_CR_LKEY
 
#define HASH_FLAG_DINIS   HASH_SR_DINIS
 
#define HASH_FLAG_DCIS   HASH_SR_DCIS
 
#define HASH_FLAG_DMAS   HASH_SR_DMAS
 
#define HASH_FLAG_BUSY   HASH_SR_BUSY
 
#define HASH_FLAG_DINNE   HASH_CR_DINNE
 
#define HASH_IT_DINI   HASH_IMR_DINIE
 
#define HASH_IT_DCI   HASH_IMR_DCIE
 
#define HAL_HASH_ERROR_NONE   0x00000000U
 
#define HAL_HASH_ERROR_IT   0x00000001U
 
#define HAL_HASH_ERROR_DMA   0x00000002U
 
#define __HAL_HASH_GET_FLAG(__FLAG__)
 Check whether or not the specified HASH flag is set.
 
#define __HAL_HASH_CLEAR_FLAG(__FLAG__)
 Clear the specified HASH flag.
 
#define __HAL_HASH_ENABLE_IT(__INTERRUPT__)
 Enable the specified HASH interrupt.
 
#define __HAL_HASH_DISABLE_IT(__INTERRUPT__)
 Disable the specified HASH interrupt.
 
#define __HAL_HASH_RESET_HANDLE_STATE(__HANDLE__)
 Reset HASH handle state.
 
#define __HAL_HASH_RESET_HANDLE_STATUS(__HANDLE__)
 Reset HASH handle status.
 
#define __HAL_HASH_SET_MDMAT()
 Enable the multi-buffer DMA transfer mode.
 
#define __HAL_HASH_RESET_MDMAT()
 Disable the multi-buffer DMA transfer mode.
 
#define __HAL_HASH_START_DIGEST()
 Start the digest computation.
 
#define __HAL_HASH_SET_NBVALIDBITS(__SIZE__)
 Set the number of valid bits in the last word written in data register DIN.
 
#define __HAL_HASH_INIT()
 Reset the HASH core.
 
#define HASH_DIGEST_LENGTH()
 Return digest length in bytes.
 
#define HASH_NBW_PUSHED()
 Return number of words already pushed in the FIFO.
 
#define IS_HASH_DATATYPE(__DATATYPE__)
 Ensure that HASH input data type is valid.
 
#define IS_HASH_DMA_MULTIBUFFER_SIZE(__SIZE__)
 Ensure that input data buffer size is valid for multi-buffer HASH processing in DMA mode.
 
#define IS_HMAC_DMA_MULTIBUFFER_SIZE(__HANDLE__, __SIZE__)
 Ensure that input data buffer size is valid for multi-buffer HMAC processing in DMA mode.
 
#define IS_HASH_PROCESSING(__HANDLE__)
 Ensure that handle phase is set to HASH processing.
 
#define IS_HMAC_PROCESSING(__HANDLE__)
 Ensure that handle phase is set to HMAC processing.
 

Enumerations

enum  HAL_HASH_StateTypeDef {
  HAL_HASH_STATE_RESET = 0x00U , HAL_HASH_STATE_READY = 0x01U , HAL_HASH_STATE_BUSY = 0x02U , HAL_HASH_STATE_TIMEOUT = 0x06U ,
  HAL_HASH_STATE_ERROR = 0x07U , HAL_HASH_STATE_SUSPENDED = 0x08U
}
 HAL State structures definition. More...
 
enum  HAL_HASH_PhaseTypeDef {
  HAL_HASH_PHASE_READY = 0x01U , HAL_HASH_PHASE_PROCESS = 0x02U , HAL_HASH_PHASE_HMAC_STEP_1 = 0x03U , HAL_HASH_PHASE_HMAC_STEP_2 = 0x04U ,
  HAL_HASH_PHASE_HMAC_STEP_3 = 0x05U
}
 HAL phase structures definition. More...
 
enum  HAL_HASH_SuspendTypeDef { HAL_HASH_SUSPEND_NONE = 0x00U , HAL_HASH_SUSPEND = 0x01U }
 HAL HASH mode suspend definitions. More...
 

Functions

HAL_StatusTypeDef HAL_HASH_Init (HASH_HandleTypeDef *hhash)
 Initialize the HASH according to the specified parameters in the HASH_HandleTypeDef and create the associated handle.
 
HAL_StatusTypeDef HAL_HASH_DeInit (HASH_HandleTypeDef *hhash)
 DeInitialize the HASH peripheral.
 
void HAL_HASH_MspInit (HASH_HandleTypeDef *hhash)
 Initialize the HASH MSP.
 
void HAL_HASH_MspDeInit (HASH_HandleTypeDef *hhash)
 DeInitialize the HASH MSP.
 
void HAL_HASH_InCpltCallback (HASH_HandleTypeDef *hhash)
 Input data transfer complete call back.
 
void HAL_HASH_DgstCpltCallback (HASH_HandleTypeDef *hhash)
 Digest computation complete call back.
 
void HAL_HASH_ErrorCallback (HASH_HandleTypeDef *hhash)
 Error callback.
 
HAL_StatusTypeDef HAL_HASH_SHA1_Start (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout)
 Initialize the HASH peripheral in SHA1 mode, next process pInBuffer then read the computed digest.
 
HAL_StatusTypeDef HAL_HASH_MD5_Start (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout)
 Initialize the HASH peripheral in MD5 mode, next process pInBuffer then read the computed digest.
 
HAL_StatusTypeDef HAL_HASH_MD5_Accmlt (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 If not already done, initialize the HASH peripheral in MD5 mode then processes pInBuffer.
 
HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 If not already done, initialize the HASH peripheral in SHA1 mode then processes pInBuffer.
 
HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout)
 End computation of a single HASH signature after several calls to HAL_HASH_MD5_Accmlt() API.
 
HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout)
 End computation of a single HASH signature after several calls to HAL_HASH_SHA1_Accmlt() 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.
 
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.
 
void HAL_HASH_IRQHandler (HASH_HandleTypeDef *hhash)
 Handle HASH interrupt request.
 
HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 Initialize the HASH peripheral in SHA1 mode then initiate a DMA transfer to feed the input buffer to the Peripheral.
 
HAL_StatusTypeDef HAL_HASH_SHA1_Finish (HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout)
 Return the computed digest in SHA1 mode.
 
HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 Initialize the HASH peripheral in MD5 mode then initiate a DMA transfer to feed the input buffer to the Peripheral.
 
HAL_StatusTypeDef HAL_HASH_MD5_Finish (HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout)
 Return the computed digest in MD5 mode.
 
HAL_StatusTypeDef HAL_HMAC_SHA1_Start (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout)
 Initialize the HASH peripheral in HMAC SHA1 mode, next process pInBuffer then read the computed digest.
 
HAL_StatusTypeDef HAL_HMAC_MD5_Start (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer, uint32_t Timeout)
 Initialize the HASH peripheral in HMAC MD5 mode, next process pInBuffer then read the computed digest.
 
HAL_StatusTypeDef HAL_HMAC_MD5_Start_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer)
 Initialize the HASH peripheral in HMAC MD5 mode, next process pInBuffer then read the computed digest in interrupt mode.
 
HAL_StatusTypeDef HAL_HMAC_SHA1_Start_IT (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t *pOutBuffer)
 Initialize the HASH peripheral in HMAC SHA1 mode, next process pInBuffer then read the computed digest in interrupt mode.
 
HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 Initialize the HASH peripheral in HMAC SHA1 mode then initiate the required DMA transfers to feed the key and the input buffer to the Peripheral.
 
HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA (HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size)
 Initialize the HASH peripheral in HMAC MD5 mode then initiate the required DMA transfers to feed the key and the input buffer to the Peripheral.
 
HAL_HASH_StateTypeDef HAL_HASH_GetState (HASH_HandleTypeDef *hhash)
 Return the HASH handle state.
 
HAL_StatusTypeDef HAL_HASH_GetStatus (HASH_HandleTypeDef *hhash)
 Return the HASH HAL status.
 
void HAL_HASH_ContextSaving (HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer)
 Save the HASH context in case of processing suspension.
 
void HAL_HASH_ContextRestoring (HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer)
 Restore the HASH context in case of processing resumption.
 
void HAL_HASH_SwFeed_ProcessSuspend (HASH_HandleTypeDef *hhash)
 Initiate HASH processing suspension when in polling or interruption mode.
 
HAL_StatusTypeDef HAL_HASH_DMAFeed_ProcessSuspend (HASH_HandleTypeDef *hhash)
 Suspend the HASH processing when in DMA mode.
 
uint32_t HAL_HASH_GetError (HASH_HandleTypeDef *hhash)
 Return the HASH handle error code.
 
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.
 

Detailed Description

Header file of HASH HAL module.

Author
MCD Application Team
Attention

Copyright (c) 2016 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

Definition in file stm32f4xx_hal_hash.h.