Lines Matching refs:hhash
138 static void HASH_GetDigest(const HASH_HandleTypeDef *hhash, const uint8_t *pMsgDigest, uint8_t Size…
139 static void HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *pInBuffer, uint32_t Size);
140 static HAL_StatusTypeDef HASH_WriteData_IT(HASH_HandleTypeDef *hhash);
143 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag…
187 HAL_StatusTypeDef HAL_HASH_Init(HASH_HandleTypeDef *hhash) in HAL_HASH_Init() argument
192 if (hhash == NULL) in HAL_HASH_Init()
198 assert_param(IS_HASH_DATATYPE(hhash->Init.DataType)); in HAL_HASH_Init()
199 assert_param(IS_HASH_ALGORITHM(hhash->Init.Algorithm)); in HAL_HASH_Init()
202 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
205 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
208 hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak InCpltCallback */ in HAL_HASH_Init()
209 hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak DgstCpltCallback */ in HAL_HASH_Init()
210 hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_HASH_Init()
211 if (hhash->MspInitCallback == NULL) in HAL_HASH_Init()
213 hhash->MspInitCallback = HAL_HASH_MspInit; in HAL_HASH_Init()
217 hhash->MspInitCallback(hhash); in HAL_HASH_Init()
220 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
223 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
226 HAL_HASH_MspInit(hhash); in HAL_HASH_Init()
231 cr_value = (uint32_t)(hhash->Init.DataType | hhash->Init.Algorithm); in HAL_HASH_Init()
233 MODIFY_REG(hhash->Instance->CR, HASH_CR_DATATYPE | HASH_CR_ALGO | HASH_CR_INIT, cr_value); in HAL_HASH_Init()
236 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_Init()
239 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Init()
242 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_Init()
246 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HAL_HASH_Init()
258 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_DeInit() argument
261 if (hhash == NULL) in HAL_HASH_DeInit()
267 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_DeInit()
270 hhash->HashInCount = 0U; in HAL_HASH_DeInit()
273 hhash->Accumulation = 0U; in HAL_HASH_DeInit()
276 if (hhash->MspDeInitCallback == NULL) in HAL_HASH_DeInit()
278 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; in HAL_HASH_DeInit()
282 hhash->MspDeInitCallback(hhash); in HAL_HASH_DeInit()
285 HAL_HASH_MspDeInit(hhash); in HAL_HASH_DeInit()
289 hhash->State = HAL_HASH_STATE_RESET; in HAL_HASH_DeInit()
291 __HAL_UNLOCK(hhash); in HAL_HASH_DeInit()
304 HAL_StatusTypeDef HAL_HASH_SetConfig(HASH_HandleTypeDef *hhash, HASH_ConfigTypeDef *pConf) in HAL_HASH_SetConfig() argument
309 if ((hhash == NULL) || (pConf == NULL)) in HAL_HASH_SetConfig()
318 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_SetConfig()
321 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_SetConfig()
322 __HAL_LOCK(hhash); in HAL_HASH_SetConfig()
325 hhash->Init.DataType = pConf->DataType; in HAL_HASH_SetConfig()
326 hhash->Init.pKey = pConf->pKey; in HAL_HASH_SetConfig()
327 hhash->Init.Algorithm = pConf->Algorithm; in HAL_HASH_SetConfig()
328 hhash->Init.KeySize = pConf->KeySize; in HAL_HASH_SetConfig()
331 cr_value = (uint32_t)(hhash->Init.DataType | hhash->Init.Algorithm); in HAL_HASH_SetConfig()
333 MODIFY_REG(hhash->Instance->CR, HASH_CR_DATATYPE | HASH_CR_ALGO | HASH_CR_INIT, cr_value); in HAL_HASH_SetConfig()
336 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_SetConfig()
339 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_SetConfig()
342 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_SetConfig()
344 __HAL_UNLOCK(hhash); in HAL_HASH_SetConfig()
352 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HAL_HASH_SetConfig()
364 HAL_StatusTypeDef HAL_HASH_GetConfig(HASH_HandleTypeDef *hhash, HASH_ConfigTypeDef *pConf) in HAL_HASH_GetConfig() argument
368 if ((hhash == NULL) || (pConf == NULL)) in HAL_HASH_GetConfig()
373 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_GetConfig()
376 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_GetConfig()
377 __HAL_LOCK(hhash); in HAL_HASH_GetConfig()
380 pConf->DataType = hhash->Init.DataType; in HAL_HASH_GetConfig()
381 pConf->pKey = hhash->Init.pKey; in HAL_HASH_GetConfig()
382 pConf->Algorithm = hhash->Init.Algorithm; in HAL_HASH_GetConfig()
383 pConf->KeySize = hhash->Init.KeySize; in HAL_HASH_GetConfig()
386 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_GetConfig()
387 __HAL_UNLOCK(hhash); in HAL_HASH_GetConfig()
395 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HAL_HASH_GetConfig()
406 __weak void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspInit() argument
409 UNUSED(hhash); in HAL_HASH_MspInit()
422 __weak void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspDeInit() argument
425 UNUSED(hhash); in HAL_HASH_MspDeInit()
448 HAL_StatusTypeDef HAL_HASH_RegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef C… in HAL_HASH_RegisterCallback() argument
456 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
460 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_RegisterCallback()
465 hhash->InCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
469 hhash->DgstCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
473 hhash->ErrorCallback = pCallback; in HAL_HASH_RegisterCallback()
477 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
481 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
486 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
492 else if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_RegisterCallback()
497 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
501 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
506 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
515 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
536 HAL_StatusTypeDef HAL_HASH_UnRegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef… in HAL_HASH_UnRegisterCallback() argument
541 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_UnRegisterCallback()
546 … hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak input completion callback */ in HAL_HASH_UnRegisterCallback()
550 hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak digest computation in HAL_HASH_UnRegisterCallback()
555 hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak error callback */ in HAL_HASH_UnRegisterCallback()
559 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak MspInit Callback */ in HAL_HASH_UnRegisterCallback()
563 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak MspDeInit Callback */ in HAL_HASH_UnRegisterCallback()
568 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
574 else if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_UnRegisterCallback()
579 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak MspInit Callback */ in HAL_HASH_UnRegisterCallback()
583 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak MspDeInit Callback */ in HAL_HASH_UnRegisterCallback()
588 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
597 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
620 void HAL_HASH_Suspend(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_Suspend() argument
623 uint32_t csr_ptr = (uint32_t)(hhash->Instance->CSR); in HAL_HASH_Suspend()
627 UNUSED(hhash); in HAL_HASH_Suspend()
630 *(uint32_t *)(mem_ptr) = READ_BIT(hhash->Instance->IMR, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_Suspend()
633 *(uint32_t *)(mem_ptr) = READ_BIT(hhash->Instance->STR, HASH_STR_NBLW); in HAL_HASH_Suspend()
636 …*(uint32_t *)(mem_ptr) = READ_BIT(hhash->Instance->CR, HASH_CR_DMAE | HASH_CR_DATATYPE | HASH_CR_M… in HAL_HASH_Suspend()
648 hhash->Init_saved = hhash->Init; in HAL_HASH_Suspend()
649 hhash->pHashOutBuffPtr_saved = hhash->pHashOutBuffPtr; in HAL_HASH_Suspend()
650 hhash->HashInCount_saved = hhash->HashInCount; in HAL_HASH_Suspend()
651 hhash->Size_saved = hhash->Size; in HAL_HASH_Suspend()
652 hhash->pHashInBuffPtr_saved = hhash->pHashInBuffPtr; in HAL_HASH_Suspend()
653 hhash->Phase_saved = hhash->Phase; in HAL_HASH_Suspend()
654 hhash->pHashKeyBuffPtr_saved = hhash->pHashKeyBuffPtr; in HAL_HASH_Suspend()
670 void HAL_HASH_Resume(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_Resume() argument
673 uint32_t csr_ptr = (uint32_t)(hhash->Instance->CSR); in HAL_HASH_Resume()
677 UNUSED(hhash); in HAL_HASH_Resume()
680 WRITE_REG(hhash->Instance->IMR, (*(uint32_t *)(mem_ptr))); in HAL_HASH_Resume()
683 WRITE_REG(hhash->Instance->STR, (*(uint32_t *)(mem_ptr))); in HAL_HASH_Resume()
686 WRITE_REG(hhash->Instance->CR, (*(uint32_t *)(mem_ptr))); in HAL_HASH_Resume()
691 SET_BIT(hhash->Instance->CR, HASH_CR_INIT); in HAL_HASH_Resume()
703 hhash->Init = hhash->Init_saved; in HAL_HASH_Resume()
704 hhash->pHashOutBuffPtr = hhash->pHashOutBuffPtr_saved; in HAL_HASH_Resume()
705 hhash->HashInCount = hhash->HashInCount_saved; in HAL_HASH_Resume()
706 hhash->Size = hhash->Size_saved; in HAL_HASH_Resume()
707 hhash->pHashInBuffPtr = hhash->pHashInBuffPtr_saved; in HAL_HASH_Resume()
708 hhash->Phase = hhash->Phase_saved; in HAL_HASH_Resume()
709 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_Resume()
710 hhash->pHashKeyBuffPtr = hhash->pHashKeyBuffPtr_saved; in HAL_HASH_Resume()
723 HAL_StatusTypeDef HAL_HASH_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_ProcessSuspend() argument
726 …uint32_t nbbytePartialHash = (((hhash->Instance->SR) >> 16U) * 4U); /* Nb byte to enter in HASH … in HAL_HASH_ProcessSuspend()
731 if (__HAL_HASH_GET_FLAG(hhash, HASH_FLAG_DMAS) != RESET) in HAL_HASH_ProcessSuspend()
733 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_ProcessSuspend()
744 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DMAS, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_ProcessSuspend()
752 remainingwords = ((((DMA_Channel_TypeDef *)hhash->hdmain->Instance)->CBR1) \ in HAL_HASH_ProcessSuspend()
754 remainingwords += ((((DMA_Channel_TypeDef *)hhash->hdmain->Instance)->CSR) \ in HAL_HASH_ProcessSuspend()
770 if (HAL_DMA_Abort(hhash->hdmain) != HAL_OK) in HAL_HASH_ProcessSuspend()
775 if (__HAL_HASH_GET_FLAG(hhash, HASH_FLAG_DCIS) != RESET) in HAL_HASH_ProcessSuspend()
781 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DINIS, RESET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_ProcessSuspend()
787 sizeinwords = (((hhash->Size % 4U) != 0U) ? \ in HAL_HASH_ProcessSuspend()
788 ((hhash->Size + 3U) / 4U) : (hhash->Size / 4U)); in HAL_HASH_ProcessSuspend()
791 hhash->pHashInBuffPtr += 4U * (sizeinwords - remainingwords) ; in HAL_HASH_ProcessSuspend()
794 hhash->HashInCount = 4U * remainingwords; in HAL_HASH_ProcessSuspend()
797 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_ProcessSuspend()
798 __HAL_UNLOCK(hhash); in HAL_HASH_ProcessSuspend()
806 hhash->SuspendRequest = HAL_HASH_SUSPEND; in HAL_HASH_ProcessSuspend()
857 HAL_StatusTypeDef HAL_HASH_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_… in HAL_HASH_Start() argument
861 if (hhash == NULL) in HAL_HASH_Start()
867 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Start()
870 __HAL_LOCK(hhash); in HAL_HASH_Start()
873 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start()
876 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Start()
877 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_Start()
878 hhash->HashInCount = 0U; in HAL_HASH_Start()
879 hhash->Size = Size; in HAL_HASH_Start()
882 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Start()
884 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Start()
887 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_Start()
890 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Start()
892 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_Start()
895 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_Start()
898 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_Start()
904 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_Start()
907 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Start()
910 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_Start()
913 __HAL_UNLOCK(hhash); in HAL_HASH_Start()
933 HAL_StatusTypeDef HAL_HASH_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint… in HAL_HASH_Start_IT() argument
940 if (hhash == NULL) in HAL_HASH_Start_IT()
946 temp_state = hhash->State; in HAL_HASH_Start_IT()
950 __HAL_LOCK(hhash); in HAL_HASH_Start_IT()
952 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Start_IT()
955 hhash->HashInCount = 0U; in HAL_HASH_Start_IT()
956 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Start_IT()
957 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_Start_IT()
958 hhash->Size = Size; in HAL_HASH_Start_IT()
961 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Start_IT()
963 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Start_IT()
966 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_Start_IT()
969 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start_IT()
971 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Start_IT()
974 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_Start_IT()
976 status = HASH_WriteData_IT(hhash); in HAL_HASH_Start_IT()
1001 HAL_StatusTypeDef HAL_HASH_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uin… in HAL_HASH_Start_DMA() argument
1008 if (hhash == NULL) in HAL_HASH_Start_DMA()
1014 temp_state = hhash->State; in HAL_HASH_Start_DMA()
1019 __HAL_LOCK(hhash); in HAL_HASH_Start_DMA()
1022 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Start_DMA()
1025 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start_DMA()
1028 hhash->HashInCount = 0U; in HAL_HASH_Start_DMA()
1029 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Start_DMA()
1030 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_Start_DMA()
1031 hhash->HashInCount = 0U; in HAL_HASH_Start_DMA()
1032 hhash->Size = Size; in HAL_HASH_Start_DMA()
1038 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_Start_DMA()
1041 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Start_DMA()
1043 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Start_DMA()
1046 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Start_DMA()
1049 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HAL_HASH_Start_DMA()
1052 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Size) % 4U)); in HAL_HASH_Start_DMA()
1057 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_Start_DMA()
1064 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start_DMA()
1066 hhash->Size = hhash->HashInCount; in HAL_HASH_Start_DMA()
1069 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HAL_HASH_Start_DMA()
1071 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HAL_HASH_Start_DMA()
1073 if ((hhash->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_HASH_Start_DMA()
1075 … if ((hhash->hdmain->LinkedListQueue != NULL) && (hhash->hdmain->LinkedListQueue->Head != NULL)) in HAL_HASH_Start_DMA()
1078 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET]\ in HAL_HASH_Start_DMA()
1079 … = ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : (hhash->Size)); in HAL_HASH_Start_DMA()
1080 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET]\ in HAL_HASH_Start_DMA()
1081 = (uint32_t)(hhash->pHashInBuffPtr); /* Set DMA source address */ in HAL_HASH_Start_DMA()
1082 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET]\ in HAL_HASH_Start_DMA()
1083 = (uint32_t)&hhash->Instance->DIN; /* Set DMA destination address */ in HAL_HASH_Start_DMA()
1085 status = HAL_DMAEx_List_Start_IT(hhash->hdmain); in HAL_HASH_Start_DMA()
1095 … status = HAL_DMA_Start_IT(hhash->hdmain, (uint32_t)pInBuffer, (uint32_t)&hhash->Instance->DIN, \ in HAL_HASH_Start_DMA()
1096 … ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : \ in HAL_HASH_Start_DMA()
1097 (hhash->Size))); in HAL_HASH_Start_DMA()
1102 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HAL_HASH_Start_DMA()
1107 hhash->ErrorCallback(hhash); in HAL_HASH_Start_DMA()
1110 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_Start_DMA()
1116 SET_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HAL_HASH_Start_DMA()
1143 HAL_StatusTypeDef HAL_HASH_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_Accumulate() argument
1149 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_Accumulate()
1155 temp_state = hhash->State; in HAL_HASH_Accumulate()
1159 __HAL_LOCK(hhash); in HAL_HASH_Accumulate()
1162 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Accumulate()
1165 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Accumulate()
1166 hhash->HashInCount = 0U; in HAL_HASH_Accumulate()
1167 hhash->Size = Size; in HAL_HASH_Accumulate()
1169 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_Accumulate()
1172 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Accumulate()
1174 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Accumulate()
1177 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Accumulate()
1179 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_Accumulate()
1182 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_Accumulate()
1187 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Accumulate()
1190 __HAL_UNLOCK(hhash); in HAL_HASH_Accumulate()
1211 HAL_StatusTypeDef HAL_HASH_AccumulateLast(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_AccumulateLast() argument
1217 if (hhash == NULL) in HAL_HASH_AccumulateLast()
1223 temp_state = hhash->State; in HAL_HASH_AccumulateLast()
1227 __HAL_LOCK(hhash); in HAL_HASH_AccumulateLast()
1230 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_AccumulateLast()
1233 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_AccumulateLast()
1234 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_AccumulateLast()
1235 hhash->HashInCount = 0U; in HAL_HASH_AccumulateLast()
1236 hhash->Size = Size; in HAL_HASH_AccumulateLast()
1238 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_AccumulateLast()
1241 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_AccumulateLast()
1243 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_AccumulateLast()
1246 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_AccumulateLast()
1249 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_AccumulateLast()
1252 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_AccumulateLast()
1255 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_AccumulateLast()
1258 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_AccumulateLast()
1263 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_AccumulateLast()
1266 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_AccumulateLast()
1269 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_AccumulateLast()
1270 hhash->Accumulation = 0; in HAL_HASH_AccumulateLast()
1272 __HAL_UNLOCK(hhash); in HAL_HASH_AccumulateLast()
1294 HAL_StatusTypeDef HAL_HASH_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_Accumulate_IT() argument
1299 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_Accumulate_IT()
1305 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Accumulate_IT()
1308 __HAL_LOCK(hhash); in HAL_HASH_Accumulate_IT()
1311 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Accumulate_IT()
1314 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Accumulate_IT()
1315 hhash->HashInCount = 0U; in HAL_HASH_Accumulate_IT()
1316 hhash->Size = Size; in HAL_HASH_Accumulate_IT()
1318 hhash->Accumulation = 1U; in HAL_HASH_Accumulate_IT()
1320 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_Accumulate_IT()
1323 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Accumulate_IT()
1325 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Accumulate_IT()
1327 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Accumulate_IT()
1330 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI); in HAL_HASH_Accumulate_IT()
1332 status = HASH_WriteData_IT(hhash); in HAL_HASH_Accumulate_IT()
1335 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Accumulate_IT()
1338 __HAL_UNLOCK(hhash); in HAL_HASH_Accumulate_IT()
1358 HAL_StatusTypeDef HAL_HASH_AccumulateLast_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuf… in HAL_HASH_AccumulateLast_IT() argument
1364 if (hhash == NULL) in HAL_HASH_AccumulateLast_IT()
1370 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_AccumulateLast_IT()
1373 __HAL_LOCK(hhash); in HAL_HASH_AccumulateLast_IT()
1376 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_AccumulateLast_IT()
1379 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_AccumulateLast_IT()
1380 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_AccumulateLast_IT()
1381 hhash->HashInCount = 0U; in HAL_HASH_AccumulateLast_IT()
1382 hhash->Size = Size; in HAL_HASH_AccumulateLast_IT()
1383 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_AccumulateLast_IT()
1386 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_AccumulateLast_IT()
1388 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_AccumulateLast_IT()
1391 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_AccumulateLast_IT()
1394 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_AccumulateLast_IT()
1397 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_AccumulateLast_IT()
1399 status = HASH_WriteData_IT(hhash); in HAL_HASH_AccumulateLast_IT()
1402 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_AccumulateLast_IT()
1405 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_AccumulateLast_IT()
1408 __HAL_UNLOCK(hhash); in HAL_HASH_AccumulateLast_IT()
1468 HAL_StatusTypeDef HAL_HASH_HMAC_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_HMAC_Start() argument
1474 if (hhash == NULL) in HAL_HASH_HMAC_Start()
1480 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start()
1484 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start()
1487 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start()
1490 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start()
1493 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start()
1494 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start()
1495 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start()
1496 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start()
1497 hhash->Size = Size; in HAL_HASH_HMAC_Start()
1500 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start()
1502 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start()
1508 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start()
1513 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start()
1517 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Start()
1519 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start()
1522 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1525 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1531 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_HMAC_Start()
1534 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_Start()
1537 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1540 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1545 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start()
1548 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start()
1551 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1554 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1560 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_HMAC_Start()
1563 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Start()
1566 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start()
1569 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Start()
1594 HAL_StatusTypeDef HAL_HASH_HMAC_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffe… in HAL_HASH_HMAC_Accumulate() argument
1600 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_HMAC_Accumulate()
1606 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Accumulate()
1609 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Accumulate()
1612 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Accumulate()
1615 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Accumulate()
1616 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Accumulate()
1617 hhash->Size = Size; in HAL_HASH_HMAC_Accumulate()
1619 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Accumulate()
1622 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Accumulate()
1625 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Accumulate()
1627 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate()
1633 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate()
1637 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Accumulate()
1640 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Accumulate()
1643 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Accumulate()
1646 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Accumulate()
1649 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Accumulate()
1656 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_HMAC_Accumulate()
1659 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_Accumulate()
1662 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Accumulate()
1665 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Accumulate()
1686 HAL_StatusTypeDef HAL_HASH_HMAC_AccumulateLast(HASH_HandleTypeDef *hhash, const uint8_t *const pInB… in HAL_HASH_HMAC_AccumulateLast() argument
1690 if (hhash == NULL) in HAL_HASH_HMAC_AccumulateLast()
1696 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_AccumulateLast()
1700 __HAL_LOCK(hhash); in HAL_HASH_HMAC_AccumulateLast()
1703 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_AccumulateLast()
1706 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_AccumulateLast()
1707 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_AccumulateLast()
1708 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_AccumulateLast()
1709 hhash->Size = Size; in HAL_HASH_HMAC_AccumulateLast()
1711 if (hhash->Phase != HAL_HASH_PHASE_PROCESS) in HAL_HASH_HMAC_AccumulateLast()
1718 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_HMAC_AccumulateLast()
1721 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_AccumulateLast()
1724 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_AccumulateLast()
1727 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_AccumulateLast()
1732 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_AccumulateLast()
1735 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_AccumulateLast()
1738 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_AccumulateLast()
1741 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_HMAC_AccumulateLast()
1747 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_HMAC_AccumulateLast()
1751 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_AccumulateLast()
1754 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_AccumulateLast()
1757 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_AccumulateLast()
1776 HAL_StatusTypeDef HAL_HASH_HMAC_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_HMAC_Start_IT() argument
1783 if (hhash == NULL) in HAL_HASH_HMAC_Start_IT()
1789 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start_IT()
1792 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_IT()
1795 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_IT()
1798 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start_IT()
1801 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start_IT()
1802 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start_IT()
1803 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start_IT()
1804 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start_IT()
1805 hhash->Size = Size; in HAL_HASH_HMAC_Start_IT()
1809 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start_IT()
1811 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_IT()
1817 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_IT()
1822 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start_IT()
1825 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Start_IT()
1827 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HAL_HASH_HMAC_Start_IT()
1830 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_IT()
1832 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_IT()
1840 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_Start_IT()
1842 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_Start_IT()
1860 HAL_StatusTypeDef HAL_HASH_HMAC_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBu… in HAL_HASH_HMAC_Accumulate_IT() argument
1866 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_HMAC_Accumulate_IT()
1872 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Accumulate_IT()
1875 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Accumulate_IT()
1878 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Accumulate_IT()
1881 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Accumulate_IT()
1882 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Accumulate_IT()
1883 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Accumulate_IT()
1884 hhash->Size = Size; in HAL_HASH_HMAC_Accumulate_IT()
1886 hhash->Accumulation = 1U; in HAL_HASH_HMAC_Accumulate_IT()
1888 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Accumulate_IT()
1892 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Accumulate_IT()
1894 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate_IT()
1900 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate_IT()
1905 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Accumulate_IT()
1908 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Accumulate_IT()
1911 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_Accumulate_IT()
1913 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_Accumulate_IT()
1932 HAL_StatusTypeDef HAL_HASH_HMAC_AccumulateLast_IT(HASH_HandleTypeDef *hhash, const uint8_t *const p… in HAL_HASH_HMAC_AccumulateLast_IT() argument
1938 if (hhash == NULL) in HAL_HASH_HMAC_AccumulateLast_IT()
1944 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_AccumulateLast_IT()
1947 __HAL_LOCK(hhash); in HAL_HASH_HMAC_AccumulateLast_IT()
1950 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_AccumulateLast_IT()
1953 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_AccumulateLast_IT()
1954 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_AccumulateLast_IT()
1955 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_AccumulateLast_IT()
1956 hhash->HashInCount = 0U; in HAL_HASH_HMAC_AccumulateLast_IT()
1957 hhash->Size = Size; in HAL_HASH_HMAC_AccumulateLast_IT()
1959 hhash->Accumulation = 0U; in HAL_HASH_HMAC_AccumulateLast_IT()
1961 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_AccumulateLast_IT()
1963 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_AccumulateLast_IT()
1988 HAL_StatusTypeDef HAL_HASH_HMAC_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_HMAC_Start_DMA() argument
1996 if (hhash == NULL) in HAL_HASH_HMAC_Start_DMA()
2002 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start_DMA()
2005 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2008 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_DMA()
2011 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start_DMA()
2012 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start_DMA()
2013 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start_DMA()
2014 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start_DMA()
2015 hhash->Size = Size; in HAL_HASH_HMAC_Start_DMA()
2018 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Start_DMA()
2022 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start_DMA()
2024 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_DMA()
2030 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_DMA()
2035 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HAL_HASH_HMAC_Start_DMA()
2038 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start_DMA()
2041 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start_DMA()
2044 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start_DMA()
2054 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HAL_HASH_HMAC_Start_DMA()
2055 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Start_DMA()
2056 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2059 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_BUSY)); in HAL_HASH_HMAC_Start_DMA()
2062 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HAL_HASH_HMAC_Start_DMA()
2063 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HAL_HASH_HMAC_Start_DMA()
2066 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Size) % 4U)); in HAL_HASH_HMAC_Start_DMA()
2071 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_HMAC_Start_DMA()
2074 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HAL_HASH_HMAC_Start_DMA()
2077 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2079 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_DMA()
2082 hhash->Size = hhash->HashInCount; in HAL_HASH_HMAC_Start_DMA()
2092 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HAL_HASH_HMAC_Start_DMA()
2094 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HAL_HASH_HMAC_Start_DMA()
2096 if ((hhash->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_HASH_HMAC_Start_DMA()
2098 if ((hhash->hdmain->LinkedListQueue != NULL) && (hhash->hdmain->LinkedListQueue->Head != NULL)) in HAL_HASH_HMAC_Start_DMA()
2101 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2102 …= ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : ((hhash->Size))); in HAL_HASH_HMAC_Start_DMA()
2103 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2104 = (uint32_t)(hhash->pHashInBuffPtr); /* Set DMA source address */ in HAL_HASH_HMAC_Start_DMA()
2105 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2106 = (uint32_t)&hhash->Instance->DIN; /* Set DMA destination address */ in HAL_HASH_HMAC_Start_DMA()
2108 status = HAL_DMAEx_List_Start_IT(hhash->hdmain); in HAL_HASH_HMAC_Start_DMA()
2118 …status = HAL_DMA_Start_IT(hhash->hdmain, (uint32_t)(hhash->pHashInBuffPtr), (uint32_t)&hhash->Inst… in HAL_HASH_HMAC_Start_DMA()
2119 … ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : \ in HAL_HASH_HMAC_Start_DMA()
2120 ((hhash->Size)))); in HAL_HASH_HMAC_Start_DMA()
2125 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HAL_HASH_HMAC_Start_DMA()
2130 hhash->ErrorCallback(hhash); in HAL_HASH_HMAC_Start_DMA()
2133 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_HMAC_Start_DMA()
2139 SET_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HAL_HASH_HMAC_Start_DMA()
2175 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash) in HAL_HASH_IRQHandler() argument
2178 uint32_t itsource = hhash->Instance->IMR; in HAL_HASH_IRQHandler()
2179 uint32_t itflag = hhash->Instance->SR; in HAL_HASH_IRQHandler()
2185 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_IRQHandler()
2188 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_IRQHandler()
2190 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_IRQHandler()
2192 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_IRQHandler()
2194 __HAL_UNLOCK(hhash); in HAL_HASH_IRQHandler()
2197 hhash->DgstCpltCallback(hhash); in HAL_HASH_IRQHandler()
2199 HAL_HASH_DgstCpltCallback(hhash); in HAL_HASH_IRQHandler()
2208 status = HASH_WriteData_IT(hhash); in HAL_HASH_IRQHandler()
2213 hhash->ErrorCallback(hhash); in HAL_HASH_IRQHandler()
2215 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_IRQHandler()
2234 __weak void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_InCpltCallback() argument
2237 UNUSED(hhash); in HAL_HASH_InCpltCallback()
2252 __weak void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_DgstCpltCallback() argument
2255 UNUSED(hhash); in HAL_HASH_DgstCpltCallback()
2270 __weak void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_ErrorCallback() argument
2273 UNUSED(hhash); in HAL_HASH_ErrorCallback()
2286 HAL_HASH_StateTypeDef HAL_HASH_GetState(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
2288 return hhash->State; in HAL_HASH_GetState()
2296 uint32_t HAL_HASH_GetError(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
2299 return hhash->ErrorCode; in HAL_HASH_GetError()
2321 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
2324 if (READ_BIT(hhash->Instance->CR, HASH_CR_MODE) == 0U) in HASH_DMAXferCplt()
2326 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HASH_DMAXferCplt()
2329 CLEAR_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HASH_DMAXferCplt()
2340 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_DMAXferCplt()
2341 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2342 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2344 hhash->ErrorCallback(hhash); in HASH_DMAXferCplt()
2346 HAL_HASH_ErrorCallback(hhash); in HASH_DMAXferCplt()
2349 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_DMAXferCplt()
2352 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
2354 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
2358 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HASH_DMAXferCplt()
2361 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2364 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_DMAXferCplt()
2367 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2371 hhash->DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2373 HAL_HASH_DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2378 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2379 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2384 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_DMAXferCplt()
2386 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HASH_DMAXferCplt()
2389 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HASH_DMAXferCplt()
2391 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HASH_DMAXferCplt()
2393 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HASH_DMAXferCplt()
2396 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_DMAXferCplt()
2406 CLEAR_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HASH_DMAXferCplt()
2409 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAXferCplt()
2410 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2411 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2413 hhash->ErrorCallback(hhash); in HASH_DMAXferCplt()
2415 HAL_HASH_ErrorCallback(hhash); in HASH_DMAXferCplt()
2418 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_DMAXferCplt()
2421 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HASH_DMAXferCplt()
2424 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2427 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_DMAXferCplt()
2430 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2434 hhash->DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2436 HAL_HASH_DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2442 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2443 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2444 hhash->Accumulation = 1; in HASH_DMAXferCplt()
2457 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
2459 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
2462 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
2465 hhash->ErrorCallback(hhash); in HASH_DMAError()
2467 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
2478 static void HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *pInBuffer, uint32_t Size) in HASH_WriteData() argument
2489 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2491 hhash->HashInCount += 4U; in HASH_WriteData()
2496 if (hhash->Init.DataType == HASH_HALFWORD_SWAP) in HASH_WriteData()
2501 hhash->Instance->DIN = (uint32_t) * (uint16_t *)inputaddr; in HASH_WriteData()
2505 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2508 else if ((hhash->Init.DataType == HASH_BYTE_SWAP) in HASH_WriteData()
2509 || (hhash->Init.DataType == HASH_BIT_SWAP)) /* byte swap or bit swap or */ in HASH_WriteData()
2514 hhash->Instance->DIN = (uint32_t) * (uint8_t *)inputaddr; in HASH_WriteData()
2518 hhash->Instance->DIN = (uint32_t) * (uint16_t *)inputaddr; in HASH_WriteData()
2525 hhash->Instance->DIN = ((uint32_t)tmp1) | ((uint32_t)tmp2 << 8U) | ((uint32_t)tmp3 << 16U); in HASH_WriteData()
2530 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2532 hhash->HashInCount += 4U; in HASH_WriteData()
2541 static HAL_StatusTypeDef HASH_WriteData_IT(HASH_HandleTypeDef *hhash) in HASH_WriteData_IT() argument
2545 __IO uint32_t keyaddr = (uint32_t)(hhash->pHashKeyBuffPtr); in HASH_WriteData_IT()
2546 __IO uint32_t inputaddr = (uint32_t)(hhash->pHashInBuffPtr); in HASH_WriteData_IT()
2547 …uint32_t nbbytePartialHash = (((hhash->Instance->SR) >> 16U) * 4U); /* Nb byte to enter in HASH … in HASH_WriteData_IT()
2550 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_WriteData_IT()
2552 if ((hhash->Instance->CR & HASH_CR_MODE) == 0U) in HASH_WriteData_IT()
2556 if (hhash->SuspendRequest == HAL_HASH_SUSPEND) in HASH_WriteData_IT()
2559 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData_IT()
2561 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2563 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData_IT()
2564 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2570 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Size)) in HASH_WriteData_IT()
2575 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2577 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2578 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2588 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2591 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2592 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2593 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2596 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2600 while ((hhash->HashInCount) < hhash->Size) in HASH_WriteData_IT()
2603 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2605 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2606 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2611 hhash->InCpltCallback(hhash); in HASH_WriteData_IT()
2614 HAL_HASH_InCpltCallback(hhash); in HASH_WriteData_IT()
2616 if (hhash->Accumulation == 0U) in HASH_WriteData_IT()
2618 if (__HAL_HASH_GET_IT_SOURCE(hhash, HASH_IT_DINI)) in HASH_WriteData_IT()
2621 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2631 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2634 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2635 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2636 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2639 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_WriteData_IT()
2645 hhash->Accumulation = 0U; in HASH_WriteData_IT()
2647 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI); in HASH_WriteData_IT()
2656 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) /* loading input*/ in HASH_WriteData_IT()
2660 if (hhash->SuspendRequest == HAL_HASH_SUSPEND) in HASH_WriteData_IT()
2663 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData_IT()
2665 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2667 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData_IT()
2668 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2673 if (hhash->Accumulation == 1U) in HASH_WriteData_IT()
2676 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HASH_WriteData_IT()
2681 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (hhash->Size % 4U)); in HASH_WriteData_IT()
2683 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Size)) in HASH_WriteData_IT()
2688 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2690 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2691 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2701 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2704 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2705 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2706 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2709 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2713 while ((hhash->HashInCount) < hhash->Size) in HASH_WriteData_IT()
2716 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2718 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2719 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2724 hhash->InCpltCallback(hhash); in HASH_WriteData_IT()
2727 HAL_HASH_InCpltCallback(hhash); in HASH_WriteData_IT()
2730 if (hhash->Accumulation == 0U) in HASH_WriteData_IT()
2732 if (__HAL_HASH_GET_IT_SOURCE(hhash, HASH_IT_DINI)) in HASH_WriteData_IT()
2735 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2745 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2748 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2749 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2750 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2753 } while (HAL_IS_BIT_SET(hhash->Instance->SR, HASH_FLAG_BUSY)); in HASH_WriteData_IT()
2755 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HASH_WriteData_IT()
2756 hhash->HashInCount = 0U; in HASH_WriteData_IT()
2757 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HASH_WriteData_IT()
2764 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2765 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2766 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2775 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3)/* loading Key*/ in HASH_WriteData_IT()
2779 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HASH_WriteData_IT()
2781 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2786 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2788 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2789 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2799 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2802 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2803 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2804 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2807 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2811 while ((hhash->HashInCount) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2814 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2816 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2819 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2829 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2832 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2833 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2834 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2837 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_WriteData_IT()
2843 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HASH_WriteData_IT()
2845 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2850 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2852 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2853 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2863 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2866 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2867 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2868 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2871 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2875 while ((hhash->HashInCount) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2878 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2880 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2881 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2884 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2894 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2897 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2898 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2899 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2902 } while (HAL_IS_BIT_SET(hhash->Instance->SR, HASH_FLAG_BUSY)); in HASH_WriteData_IT()
2904 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HASH_WriteData_IT()
2905 hhash->HashInCount = 0U; in HASH_WriteData_IT()
2910 else if ((hhash->State == HAL_HASH_STATE_SUSPENDED)) in HASH_WriteData_IT()
2917 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HASH_WriteData_IT()
2920 hhash->ErrorCallback(hhash); in HASH_WriteData_IT()
2923 HAL_HASH_ErrorCallback(hhash); in HASH_WriteData_IT()
2937 static void HASH_GetDigest(const HASH_HandleTypeDef *hhash, const uint8_t *pMsgDigest, uint8_t Size) in HASH_GetDigest() argument
2945 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
2947 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
2949 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
2951 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
2954 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
2956 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
2958 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
2960 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
2962 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
2966 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
2968 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
2970 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
2972 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
2974 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
2982 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
2984 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
2986 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
2988 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
2990 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3011 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
3019 while (__HAL_HASH_GET_FLAG(hhash, Flag) == RESET) in HASH_WaitOnFlagUntilTimeout()
3027 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
3028 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
3030 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
3038 while (__HAL_HASH_GET_FLAG(hhash, Flag) != RESET) in HASH_WaitOnFlagUntilTimeout()
3046 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
3047 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
3049 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()