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.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Start()
1501 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Start()
1502 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Start()
1510 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start()
1512 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start()
1518 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start()
1523 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start()
1527 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Start()
1529 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start()
1532 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1535 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1541 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_HMAC_Start()
1544 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_Start()
1547 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1550 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1555 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start()
1558 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start()
1561 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1564 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1570 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_HMAC_Start()
1573 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Start()
1576 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start()
1579 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Start()
1604 HAL_StatusTypeDef HAL_HASH_HMAC_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffe… in HAL_HASH_HMAC_Accumulate() argument
1610 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_HMAC_Accumulate()
1616 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Accumulate()
1619 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Accumulate()
1622 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Accumulate()
1625 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Accumulate()
1626 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Accumulate()
1627 hhash->Size = Size; in HAL_HASH_HMAC_Accumulate()
1629 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Accumulate()
1632 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Accumulate()
1635 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Accumulate()
1636 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Accumulate()
1637 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Accumulate()
1645 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Accumulate()
1647 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate()
1653 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate()
1657 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Accumulate()
1660 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Accumulate()
1663 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Accumulate()
1666 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Accumulate()
1669 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Accumulate()
1676 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_HMAC_Accumulate()
1679 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_Accumulate()
1682 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Accumulate()
1685 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Accumulate()
1706 HAL_StatusTypeDef HAL_HASH_HMAC_AccumulateLast(HASH_HandleTypeDef *hhash, const uint8_t *const pInB… in HAL_HASH_HMAC_AccumulateLast() argument
1710 if (hhash == NULL) in HAL_HASH_HMAC_AccumulateLast()
1716 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_AccumulateLast()
1720 __HAL_LOCK(hhash); in HAL_HASH_HMAC_AccumulateLast()
1723 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_AccumulateLast()
1726 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_AccumulateLast()
1727 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_AccumulateLast()
1728 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_AccumulateLast()
1729 hhash->Size = Size; in HAL_HASH_HMAC_AccumulateLast()
1731 if (hhash->Phase != HAL_HASH_PHASE_PROCESS) in HAL_HASH_HMAC_AccumulateLast()
1738 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_HMAC_AccumulateLast()
1741 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_AccumulateLast()
1744 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_AccumulateLast()
1747 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_AccumulateLast()
1752 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_AccumulateLast()
1755 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_AccumulateLast()
1758 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_AccumulateLast()
1761 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_HMAC_AccumulateLast()
1767 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_HMAC_AccumulateLast()
1771 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_AccumulateLast()
1774 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_AccumulateLast()
1777 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_AccumulateLast()
1796 HAL_StatusTypeDef HAL_HASH_HMAC_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_HMAC_Start_IT() argument
1803 if (hhash == NULL) in HAL_HASH_HMAC_Start_IT()
1809 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start_IT()
1812 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_IT()
1815 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_IT()
1818 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start_IT()
1821 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start_IT()
1822 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start_IT()
1823 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start_IT()
1824 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start_IT()
1825 hhash->Size = Size; in HAL_HASH_HMAC_Start_IT()
1828 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Start_IT()
1829 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Start_IT()
1830 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Start_IT()
1838 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start_IT()
1840 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_IT()
1846 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_IT()
1851 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start_IT()
1854 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Start_IT()
1856 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HAL_HASH_HMAC_Start_IT()
1859 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_IT()
1861 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_IT()
1869 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_Start_IT()
1871 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_Start_IT()
1889 HAL_StatusTypeDef HAL_HASH_HMAC_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBu… in HAL_HASH_HMAC_Accumulate_IT() argument
1895 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_HMAC_Accumulate_IT()
1901 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Accumulate_IT()
1904 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Accumulate_IT()
1907 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Accumulate_IT()
1910 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Accumulate_IT()
1911 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Accumulate_IT()
1912 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Accumulate_IT()
1913 hhash->Size = Size; in HAL_HASH_HMAC_Accumulate_IT()
1915 hhash->Accumulation = 1U; in HAL_HASH_HMAC_Accumulate_IT()
1917 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Accumulate_IT()
1920 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Accumulate_IT()
1921 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Accumulate_IT()
1922 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Accumulate_IT()
1930 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Accumulate_IT()
1932 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate_IT()
1938 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate_IT()
1943 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Accumulate_IT()
1946 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Accumulate_IT()
1949 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_Accumulate_IT()
1951 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_Accumulate_IT()
1970 HAL_StatusTypeDef HAL_HASH_HMAC_AccumulateLast_IT(HASH_HandleTypeDef *hhash, const uint8_t *const p… in HAL_HASH_HMAC_AccumulateLast_IT() argument
1976 if (hhash == NULL) in HAL_HASH_HMAC_AccumulateLast_IT()
1982 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_AccumulateLast_IT()
1985 __HAL_LOCK(hhash); in HAL_HASH_HMAC_AccumulateLast_IT()
1988 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_AccumulateLast_IT()
1991 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_AccumulateLast_IT()
1992 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_AccumulateLast_IT()
1993 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_AccumulateLast_IT()
1994 hhash->HashInCount = 0U; in HAL_HASH_HMAC_AccumulateLast_IT()
1995 hhash->Size = Size; in HAL_HASH_HMAC_AccumulateLast_IT()
1997 hhash->Accumulation = 0U; in HAL_HASH_HMAC_AccumulateLast_IT()
1999 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_AccumulateLast_IT()
2001 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_AccumulateLast_IT()
2026 HAL_StatusTypeDef HAL_HASH_HMAC_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_HMAC_Start_DMA() argument
2034 if (hhash == NULL) in HAL_HASH_HMAC_Start_DMA()
2040 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start_DMA()
2043 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2046 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_DMA()
2049 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start_DMA()
2050 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start_DMA()
2051 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start_DMA()
2052 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start_DMA()
2053 hhash->Size = Size; in HAL_HASH_HMAC_Start_DMA()
2056 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Start_DMA()
2059 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Start_DMA()
2060 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Start_DMA()
2061 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Start_DMA()
2069 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start_DMA()
2071 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_DMA()
2077 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_DMA()
2082 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HAL_HASH_HMAC_Start_DMA()
2085 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start_DMA()
2088 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start_DMA()
2091 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start_DMA()
2101 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HAL_HASH_HMAC_Start_DMA()
2102 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Start_DMA()
2103 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2106 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_BUSY)); in HAL_HASH_HMAC_Start_DMA()
2109 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HAL_HASH_HMAC_Start_DMA()
2110 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HAL_HASH_HMAC_Start_DMA()
2113 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Size) % 4U)); in HAL_HASH_HMAC_Start_DMA()
2118 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_HMAC_Start_DMA()
2121 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HAL_HASH_HMAC_Start_DMA()
2124 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2126 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_DMA()
2129 hhash->Size = hhash->HashInCount; in HAL_HASH_HMAC_Start_DMA()
2139 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HAL_HASH_HMAC_Start_DMA()
2141 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HAL_HASH_HMAC_Start_DMA()
2143 if ((hhash->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_HASH_HMAC_Start_DMA()
2145 if ((hhash->hdmain->LinkedListQueue != NULL) && (hhash->hdmain->LinkedListQueue->Head != NULL)) in HAL_HASH_HMAC_Start_DMA()
2148 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2149 …= ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : ((hhash->Size))); in HAL_HASH_HMAC_Start_DMA()
2150 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2151 = (uint32_t)(hhash->pHashInBuffPtr); /* Set DMA source address */ in HAL_HASH_HMAC_Start_DMA()
2152 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2153 = (uint32_t)&hhash->Instance->DIN; /* Set DMA destination address */ in HAL_HASH_HMAC_Start_DMA()
2155 status = HAL_DMAEx_List_Start_IT(hhash->hdmain); in HAL_HASH_HMAC_Start_DMA()
2165 …status = HAL_DMA_Start_IT(hhash->hdmain, (uint32_t)(hhash->pHashInBuffPtr), (uint32_t)&hhash->Inst… in HAL_HASH_HMAC_Start_DMA()
2166 … ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : \ in HAL_HASH_HMAC_Start_DMA()
2167 ((hhash->Size)))); in HAL_HASH_HMAC_Start_DMA()
2172 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HAL_HASH_HMAC_Start_DMA()
2177 hhash->ErrorCallback(hhash); in HAL_HASH_HMAC_Start_DMA()
2180 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_HMAC_Start_DMA()
2186 SET_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HAL_HASH_HMAC_Start_DMA()
2222 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash) in HAL_HASH_IRQHandler() argument
2225 uint32_t itsource = hhash->Instance->IMR; in HAL_HASH_IRQHandler()
2226 uint32_t itflag = hhash->Instance->SR; in HAL_HASH_IRQHandler()
2232 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_IRQHandler()
2235 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_IRQHandler()
2237 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_IRQHandler()
2239 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_IRQHandler()
2241 __HAL_UNLOCK(hhash); in HAL_HASH_IRQHandler()
2244 hhash->DgstCpltCallback(hhash); in HAL_HASH_IRQHandler()
2246 HAL_HASH_DgstCpltCallback(hhash); in HAL_HASH_IRQHandler()
2255 status = HASH_WriteData_IT(hhash); in HAL_HASH_IRQHandler()
2260 hhash->ErrorCallback(hhash); in HAL_HASH_IRQHandler()
2262 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_IRQHandler()
2281 __weak void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_InCpltCallback() argument
2284 UNUSED(hhash); in HAL_HASH_InCpltCallback()
2299 __weak void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_DgstCpltCallback() argument
2302 UNUSED(hhash); in HAL_HASH_DgstCpltCallback()
2317 __weak void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_ErrorCallback() argument
2320 UNUSED(hhash); in HAL_HASH_ErrorCallback()
2333 HAL_HASH_StateTypeDef HAL_HASH_GetState(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
2335 return hhash->State; in HAL_HASH_GetState()
2343 uint32_t HAL_HASH_GetError(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
2346 return hhash->ErrorCode; in HAL_HASH_GetError()
2368 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
2371 if (READ_BIT(hhash->Instance->CR, HASH_CR_MODE) == 0U) in HASH_DMAXferCplt()
2373 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HASH_DMAXferCplt()
2376 CLEAR_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HASH_DMAXferCplt()
2387 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_DMAXferCplt()
2388 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2389 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2391 hhash->ErrorCallback(hhash); in HASH_DMAXferCplt()
2393 HAL_HASH_ErrorCallback(hhash); in HASH_DMAXferCplt()
2396 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_DMAXferCplt()
2399 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
2401 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
2405 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HASH_DMAXferCplt()
2408 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2411 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_DMAXferCplt()
2414 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2418 hhash->DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2420 HAL_HASH_DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2425 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2426 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2431 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_DMAXferCplt()
2433 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HASH_DMAXferCplt()
2436 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HASH_DMAXferCplt()
2438 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HASH_DMAXferCplt()
2440 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HASH_DMAXferCplt()
2443 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_DMAXferCplt()
2453 CLEAR_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HASH_DMAXferCplt()
2456 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAXferCplt()
2457 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2458 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2460 hhash->ErrorCallback(hhash); in HASH_DMAXferCplt()
2462 HAL_HASH_ErrorCallback(hhash); in HASH_DMAXferCplt()
2465 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_DMAXferCplt()
2468 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HASH_DMAXferCplt()
2471 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2474 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_DMAXferCplt()
2477 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2481 hhash->DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2483 HAL_HASH_DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2489 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2490 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2491 hhash->Accumulation = 1; in HASH_DMAXferCplt()
2504 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
2506 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
2509 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
2512 hhash->ErrorCallback(hhash); in HASH_DMAError()
2514 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
2525 static void HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *pInBuffer, uint32_t Size) in HASH_WriteData() argument
2536 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2538 hhash->HashInCount += 4U; in HASH_WriteData()
2543 if (hhash->Init.DataType == HASH_HALFWORD_SWAP) in HASH_WriteData()
2548 hhash->Instance->DIN = (uint32_t) * (uint16_t *)inputaddr; in HASH_WriteData()
2552 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2555 else if ((hhash->Init.DataType == HASH_BYTE_SWAP) in HASH_WriteData()
2556 || (hhash->Init.DataType == HASH_BIT_SWAP)) /* byte swap or bit swap or */ in HASH_WriteData()
2561 hhash->Instance->DIN = (uint32_t) * (uint8_t *)inputaddr; in HASH_WriteData()
2565 hhash->Instance->DIN = (uint32_t) * (uint16_t *)inputaddr; in HASH_WriteData()
2572 hhash->Instance->DIN = ((uint32_t)tmp1) | ((uint32_t)tmp2 << 8U) | ((uint32_t)tmp3 << 16U); in HASH_WriteData()
2577 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2579 hhash->HashInCount += 4U; in HASH_WriteData()
2588 static HAL_StatusTypeDef HASH_WriteData_IT(HASH_HandleTypeDef *hhash) in HASH_WriteData_IT() argument
2592 __IO uint32_t keyaddr = (uint32_t)(hhash->pHashKeyBuffPtr); in HASH_WriteData_IT()
2593 __IO uint32_t inputaddr = (uint32_t)(hhash->pHashInBuffPtr); in HASH_WriteData_IT()
2594 …uint32_t nbbytePartialHash = (((hhash->Instance->SR) >> 16U) * 4U); /* Nb byte to enter in HASH … in HASH_WriteData_IT()
2597 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_WriteData_IT()
2599 if ((hhash->Instance->CR & HASH_CR_MODE) == 0U) in HASH_WriteData_IT()
2603 if (hhash->SuspendRequest == HAL_HASH_SUSPEND) in HASH_WriteData_IT()
2606 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData_IT()
2608 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2610 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData_IT()
2611 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2617 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Size)) in HASH_WriteData_IT()
2622 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2624 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2625 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2635 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2638 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2639 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2640 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2643 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2647 while ((hhash->HashInCount) < hhash->Size) in HASH_WriteData_IT()
2650 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2652 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2653 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2658 hhash->InCpltCallback(hhash); in HASH_WriteData_IT()
2661 HAL_HASH_InCpltCallback(hhash); in HASH_WriteData_IT()
2663 if (hhash->Accumulation == 0U) in HASH_WriteData_IT()
2665 if (__HAL_HASH_GET_IT_SOURCE(hhash, HASH_IT_DINI)) in HASH_WriteData_IT()
2668 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2678 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2681 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2682 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2683 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2686 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_WriteData_IT()
2692 hhash->Accumulation = 0U; in HASH_WriteData_IT()
2694 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI); in HASH_WriteData_IT()
2703 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) /* loading input*/ in HASH_WriteData_IT()
2707 if (hhash->SuspendRequest == HAL_HASH_SUSPEND) in HASH_WriteData_IT()
2710 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData_IT()
2712 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2714 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData_IT()
2715 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2720 if (hhash->Accumulation == 1U) in HASH_WriteData_IT()
2723 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HASH_WriteData_IT()
2728 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (hhash->Size % 4U)); in HASH_WriteData_IT()
2730 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Size)) in HASH_WriteData_IT()
2735 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2737 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2738 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2748 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2751 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2752 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2753 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2756 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2760 while ((hhash->HashInCount) < hhash->Size) in HASH_WriteData_IT()
2763 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2765 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2766 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2771 hhash->InCpltCallback(hhash); in HASH_WriteData_IT()
2774 HAL_HASH_InCpltCallback(hhash); in HASH_WriteData_IT()
2777 if (hhash->Accumulation == 0U) in HASH_WriteData_IT()
2779 if (__HAL_HASH_GET_IT_SOURCE(hhash, HASH_IT_DINI)) in HASH_WriteData_IT()
2782 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2792 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2795 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2796 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2797 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2800 } while (HAL_IS_BIT_SET(hhash->Instance->SR, HASH_FLAG_BUSY)); in HASH_WriteData_IT()
2802 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HASH_WriteData_IT()
2803 hhash->HashInCount = 0U; in HASH_WriteData_IT()
2804 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HASH_WriteData_IT()
2811 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2812 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2813 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2822 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3)/* loading Key*/ in HASH_WriteData_IT()
2826 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HASH_WriteData_IT()
2828 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2833 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2835 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2836 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2846 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2849 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2850 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2851 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2854 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2858 while ((hhash->HashInCount) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2861 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2863 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2866 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2876 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2879 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2880 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2881 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2884 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_WriteData_IT()
2890 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HASH_WriteData_IT()
2892 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2897 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2899 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2900 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2910 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2913 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2914 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2915 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2918 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2922 while ((hhash->HashInCount) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2925 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2927 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2928 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2931 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2941 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2944 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2945 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2946 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2949 } while (HAL_IS_BIT_SET(hhash->Instance->SR, HASH_FLAG_BUSY)); in HASH_WriteData_IT()
2951 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HASH_WriteData_IT()
2952 hhash->HashInCount = 0U; in HASH_WriteData_IT()
2957 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_WriteData_IT()
2964 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HASH_WriteData_IT()
2967 hhash->ErrorCallback(hhash); in HASH_WriteData_IT()
2970 HAL_HASH_ErrorCallback(hhash); in HASH_WriteData_IT()
2984 static void HASH_GetDigest(const HASH_HandleTypeDef *hhash, const uint8_t *pMsgDigest, uint8_t Size) in HASH_GetDigest() argument
2991 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
2993 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
2995 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
2997 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
2999 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3003 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3005 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3007 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3009 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3011 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3019 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3021 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3023 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3025 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3027 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3036 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3038 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3040 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3042 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3044 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3062 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3064 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3066 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3068 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3070 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3108 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
3113 while (__HAL_HASH_GET_FLAG(hhash, Flag) == Status) in HASH_WaitOnFlagUntilTimeout()
3121 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
3122 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
3124 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()