39 #ifndef __STM32F4xx_HAL_HASH_H 40 #define __STM32F4xx_HAL_HASH_H 46 #if defined(STM32F415xx) || defined(STM32F417xx) || defined(STM32F437xx) || defined(STM32F439xx) || defined(STM32F479xx) 89 HAL_HASH_STATE_RESET = 0x00U,
90 HAL_HASH_STATE_READY = 0x01U,
91 HAL_HASH_STATE_BUSY = 0x02U,
92 HAL_HASH_STATE_TIMEOUT = 0x03U,
93 HAL_HASH_STATE_ERROR = 0x04U
94 }HAL_HASH_StateTypeDef;
106 HAL_HASH_PHASE_READY = 0x01U,
107 HAL_HASH_PHASE_PROCESS = 0x02U
108 }HAL_HASH_PhaseTypeDef;
120 HASH_InitTypeDef Init;
122 uint8_t *pHashInBuffPtr;
124 uint8_t *pHashOutBuffPtr;
126 __IO uint32_t HashBuffSize;
128 __IO uint32_t HashInCount;
130 __IO uint32_t HashITCounter;
134 HAL_HASH_PhaseTypeDef Phase;
140 __IO HAL_HASH_StateTypeDef State;
141 } HASH_HandleTypeDef;
160 #define HASH_ALGOSELECTION_SHA1 ((uint32_t)0x00000000U) 161 #define HASH_ALGOSELECTION_SHA224 HASH_CR_ALGO_1 162 #define HASH_ALGOSELECTION_SHA256 HASH_CR_ALGO 163 #define HASH_ALGOSELECTION_MD5 HASH_CR_ALGO_0 171 #define HASH_ALGOMODE_HASH ((uint32_t)0x00000000U) 172 #define HASH_ALGOMODE_HMAC HASH_CR_MODE 180 #define HASH_DATATYPE_32B ((uint32_t)0x00000000U) 181 #define HASH_DATATYPE_16B HASH_CR_DATATYPE_0 182 #define HASH_DATATYPE_8B HASH_CR_DATATYPE_1 183 #define HASH_DATATYPE_1B HASH_CR_DATATYPE 192 #define HASH_HMAC_KEYTYPE_SHORTKEY ((uint32_t)0x00000000U) 193 #define HASH_HMAC_KEYTYPE_LONGKEY HASH_CR_LKEY 201 #define HASH_FLAG_DINIS HASH_SR_DINIS 202 #define HASH_FLAG_DCIS HASH_SR_DCIS 203 #define HASH_FLAG_DMAS HASH_SR_DMAS 204 #define HASH_FLAG_BUSY HASH_SR_BUSY 205 #define HASH_FLAG_DINNE HASH_CR_DINNE 213 #define HASH_IT_DINI HASH_IMR_DINIE 214 #define HASH_IT_DCI HASH_IMR_DCIE 232 #define __HAL_HASH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_HASH_STATE_RESET) 244 #define __HAL_HASH_GET_FLAG(__FLAG__) (((__FLAG__) > 8U) ? ((HASH->CR & (__FLAG__)) == (__FLAG__)) :\ 245 ((HASH->SR & (__FLAG__)) == (__FLAG__))) 252 #define __HAL_HASH_SET_MDMAT() HASH->CR |= HASH_CR_MDMAT 258 #define __HAL_HASH_RESET_MDMAT() HASH->CR &= (uint32_t)(~HASH_CR_MDMAT) 264 #define __HAL_HASH_START_DIGEST() HASH->STR |= HASH_STR_DCAL 271 #define __HAL_HASH_SET_NBVALIDBITS(SIZE) do{HASH->STR &= ~(HASH_STR_NBLW);\ 272 HASH->STR |= 8U * ((SIZE) % 4U);\ 299 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
300 HAL_StatusTypeDef HAL_HASH_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
301 HAL_StatusTypeDef HAL_HASH_MD5_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
302 HAL_StatusTypeDef HAL_HASH_SHA1_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
310 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
311 HAL_StatusTypeDef HAL_HMAC_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
319 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
320 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
328 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
329 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
330 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
331 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
339 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
340 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
348 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash);
356 HAL_HASH_StateTypeDef HAL_HASH_GetState(HASH_HandleTypeDef *hhash);
357 void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash);
358 void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash);
359 void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash);
360 void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash);
361 void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash);
401 #define IS_HASH_ALGOSELECTION(__ALGOSELECTION__) (((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA1) || \ 402 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA224) || \ 403 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA256) || \ 404 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_MD5)) 407 #define IS_HASH_ALGOMODE(__ALGOMODE__) (((__ALGOMODE__) == HASH_ALGOMODE_HASH) || \ 408 ((__ALGOMODE__) == HASH_ALGOMODE_HMAC)) 411 #define IS_HASH_DATATYPE(__DATATYPE__) (((__DATATYPE__) == HASH_DATATYPE_32B)|| \ 412 ((__DATATYPE__) == HASH_DATATYPE_16B)|| \ 413 ((__DATATYPE__) == HASH_DATATYPE_8B) || \ 414 ((__DATATYPE__) == HASH_DATATYPE_1B)) 417 #define IS_HASH_HMAC_KEYTYPE(__KEYTYPE__) (((__KEYTYPE__) == HASH_HMAC_KEYTYPE_SHORTKEY) || \ 418 ((__KEYTYPE__) == HASH_HMAC_KEYTYPE_LONGKEY)) 420 #define IS_HASH_SHA1_BUFFER_SIZE(__SIZE__) ((((__SIZE__)%4) != 0U)? 0U: 1U) This file contains HAL common defines, enumeration, macros and structures definitions.
Header file of HASH HAL Extension module.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57
#define __IO
Definition: core_cm0.h:213
HAL_LockTypeDef
HAL Lock structures definition.
Definition: stm32f4xx_hal_def.h:68
DMA handle Structure definition.
Definition: stm32f4xx_hal_dma.h:157