39 #ifndef __STM32F7xx_HAL_HASH_H 40 #define __STM32F7xx_HAL_HASH_H 46 #if defined (STM32F756xx) || defined (STM32F777xx) || defined (STM32F779xx) 88 HAL_HASH_STATE_RESET = 0x00U,
89 HAL_HASH_STATE_READY = 0x01U,
90 HAL_HASH_STATE_BUSY = 0x02U,
91 HAL_HASH_STATE_TIMEOUT = 0x03U,
92 HAL_HASH_STATE_ERROR = 0x04U
93 }HAL_HASH_StateTypeDef;
105 HAL_HASH_PHASE_READY = 0x01U,
106 HAL_HASH_PHASE_PROCESS = 0x02U,
119 HASH_InitTypeDef Init;
121 uint8_t *pHashInBuffPtr;
123 uint8_t *pHashOutBuffPtr;
125 __IO uint32_t HashBuffSize;
127 __IO uint32_t HashInCount;
129 __IO uint32_t HashITCounter;
133 HAL_HASH_PhaseTypeDef Phase;
139 __IO HAL_HASH_StateTypeDef State;
140 } HASH_HandleTypeDef;
159 #define HASH_ALGOSELECTION_SHA1 ((uint32_t)0x0000U) 160 #define HASH_ALGOSELECTION_SHA224 HASH_CR_ALGO_1 161 #define HASH_ALGOSELECTION_SHA256 HASH_CR_ALGO 162 #define HASH_ALGOSELECTION_MD5 HASH_CR_ALGO_0 170 #define HASH_ALGOMODE_HASH ((uint32_t)0x00000000U) 171 #define HASH_ALGOMODE_HMAC HASH_CR_MODE 179 #define HASH_DATATYPE_32B ((uint32_t)0x0000U) 180 #define HASH_DATATYPE_16B HASH_CR_DATATYPE_0 181 #define HASH_DATATYPE_8B HASH_CR_DATATYPE_1 182 #define HASH_DATATYPE_1B HASH_CR_DATATYPE 191 #define HASH_HMAC_KEYTYPE_SHORTKEY ((uint32_t)0x00000000U) 192 #define HASH_HMAC_KEYTYPE_LONGKEY HASH_CR_LKEY 200 #define HASH_FLAG_DINIS HASH_SR_DINIS 201 #define HASH_FLAG_DCIS HASH_SR_DCIS 202 #define HASH_FLAG_DMAS HASH_SR_DMAS 203 #define HASH_FLAG_BUSY HASH_SR_BUSY 204 #define HASH_FLAG_DINNE HASH_CR_DINNE 212 #define HASH_IT_DINI HASH_IMR_DINIE 213 #define HASH_IT_DCI HASH_IMR_DCIE 231 #define __HAL_HASH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_HASH_STATE_RESET) 243 #define __HAL_HASH_GET_FLAG(__FLAG__) (((__FLAG__) > 8U) ? ((HASH->CR & (__FLAG__)) == (__FLAG__)) :\ 244 ((HASH->SR & (__FLAG__)) == (__FLAG__))) 251 #define __HAL_HASH_SET_MDMAT() HASH->CR |= HASH_CR_MDMAT 257 #define __HAL_HASH_RESET_MDMAT() HASH->CR &= (uint32_t)(~HASH_CR_MDMAT) 263 #define __HAL_HASH_START_DIGEST() HASH->STR |= HASH_STR_DCAL 270 #define __HAL_HASH_SET_NBVALIDBITS(SIZE) do{HASH->STR &= ~(HASH_STR_NBW);\ 271 HASH->STR |= 8 * ((SIZE) % 4);\ 298 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
299 HAL_StatusTypeDef HAL_HASH_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
300 HAL_StatusTypeDef HAL_HASH_MD5_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
301 HAL_StatusTypeDef HAL_HASH_SHA1_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
309 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
310 HAL_StatusTypeDef HAL_HMAC_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
318 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
319 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
327 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
328 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
329 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
330 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
338 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
339 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
347 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash);
355 HAL_HASH_StateTypeDef HAL_HASH_GetState(HASH_HandleTypeDef *hhash);
356 void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash);
357 void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash);
358 void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash);
359 void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash);
360 void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash);
400 #define IS_HASH_ALGOSELECTION(__ALGOSELECTION__) (((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA1) || \ 401 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA224) || \ 402 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA256) || \ 403 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_MD5)) 406 #define IS_HASH_ALGOMODE(__ALGOMODE__) (((__ALGOMODE__) == HASH_ALGOMODE_HASH) || \ 407 ((__ALGOMODE__) == HASH_ALGOMODE_HMAC)) 410 #define IS_HASH_DATATYPE(__DATATYPE__) (((__DATATYPE__) == HASH_DATATYPE_32B)|| \ 411 ((__DATATYPE__) == HASH_DATATYPE_16B)|| \ 412 ((__DATATYPE__) == HASH_DATATYPE_8B) || \ 413 ((__DATATYPE__) == HASH_DATATYPE_1B)) 416 #define IS_HASH_HMAC_KEYTYPE(__KEYTYPE__) (((__KEYTYPE__) == HASH_HMAC_KEYTYPE_SHORTKEY) || \ 417 ((__KEYTYPE__) == HASH_HMAC_KEYTYPE_LONGKEY)) 419 #define IS_HASH_SHA1_BUFFER_SIZE(__SIZE__) ((((__SIZE__)%4) != 0)? 0U: 1U) HAL_LockTypeDef
HAL Lock structures definition.
Header file of HASH HAL Extension module.
#define HAL_HASHPhaseTypeDef
DMA handle Structure definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.