Lines Matching refs:hhash
142 static void HASH_GetDigest(const HASH_HandleTypeDef *hhash, const uint8_t *pMsgDigest, uint8_t Size…
143 static void HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *pInBuffer, uint32_t Size);
144 static HAL_StatusTypeDef HASH_WriteData_IT(HASH_HandleTypeDef *hhash);
147 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag…
191 HAL_StatusTypeDef HAL_HASH_Init(HASH_HandleTypeDef *hhash) in HAL_HASH_Init() argument
196 if (hhash == NULL) in HAL_HASH_Init()
202 assert_param(IS_HASH_DATATYPE(hhash->Init.DataType)); in HAL_HASH_Init()
203 assert_param(IS_HASH_ALGORITHM(hhash->Init.Algorithm)); in HAL_HASH_Init()
206 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
209 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
212 hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak InCpltCallback */ in HAL_HASH_Init()
213 hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak DgstCpltCallback */ in HAL_HASH_Init()
214 hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_HASH_Init()
215 if (hhash->MspInitCallback == NULL) in HAL_HASH_Init()
217 hhash->MspInitCallback = HAL_HASH_MspInit; in HAL_HASH_Init()
221 hhash->MspInitCallback(hhash); in HAL_HASH_Init()
224 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
227 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
230 HAL_HASH_MspInit(hhash); in HAL_HASH_Init()
235 cr_value = (uint32_t)(hhash->Init.DataType | hhash->Init.Algorithm); in HAL_HASH_Init()
237 MODIFY_REG(hhash->Instance->CR, HASH_CR_DATATYPE | HASH_CR_ALGO | HASH_CR_INIT, cr_value); in HAL_HASH_Init()
240 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_Init()
243 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Init()
246 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_Init()
250 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HAL_HASH_Init()
262 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_DeInit() argument
265 if (hhash == NULL) in HAL_HASH_DeInit()
271 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_DeInit()
274 hhash->HashInCount = 0U; in HAL_HASH_DeInit()
277 hhash->Accumulation = 0U; in HAL_HASH_DeInit()
280 if (hhash->MspDeInitCallback == NULL) in HAL_HASH_DeInit()
282 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; in HAL_HASH_DeInit()
286 hhash->MspDeInitCallback(hhash); in HAL_HASH_DeInit()
289 HAL_HASH_MspDeInit(hhash); in HAL_HASH_DeInit()
293 hhash->State = HAL_HASH_STATE_RESET; in HAL_HASH_DeInit()
295 __HAL_UNLOCK(hhash); in HAL_HASH_DeInit()
308 HAL_StatusTypeDef HAL_HASH_SetConfig(HASH_HandleTypeDef *hhash, HASH_ConfigTypeDef *pConf) in HAL_HASH_SetConfig() argument
313 if ((hhash == NULL) || (pConf == NULL)) in HAL_HASH_SetConfig()
322 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_SetConfig()
325 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_SetConfig()
326 __HAL_LOCK(hhash); in HAL_HASH_SetConfig()
329 hhash->Init.DataType = pConf->DataType; in HAL_HASH_SetConfig()
330 hhash->Init.pKey = pConf->pKey; in HAL_HASH_SetConfig()
331 hhash->Init.Algorithm = pConf->Algorithm; in HAL_HASH_SetConfig()
332 hhash->Init.KeySize = pConf->KeySize; in HAL_HASH_SetConfig()
335 cr_value = (uint32_t)(hhash->Init.DataType | hhash->Init.Algorithm); in HAL_HASH_SetConfig()
337 MODIFY_REG(hhash->Instance->CR, HASH_CR_DATATYPE | HASH_CR_ALGO | HASH_CR_INIT, cr_value); in HAL_HASH_SetConfig()
340 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_SetConfig()
343 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_SetConfig()
346 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_SetConfig()
348 __HAL_UNLOCK(hhash); in HAL_HASH_SetConfig()
356 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HAL_HASH_SetConfig()
368 HAL_StatusTypeDef HAL_HASH_GetConfig(HASH_HandleTypeDef *hhash, HASH_ConfigTypeDef *pConf) in HAL_HASH_GetConfig() argument
372 if ((hhash == NULL) || (pConf == NULL)) in HAL_HASH_GetConfig()
377 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_GetConfig()
380 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_GetConfig()
381 __HAL_LOCK(hhash); in HAL_HASH_GetConfig()
384 pConf->DataType = hhash->Init.DataType; in HAL_HASH_GetConfig()
385 pConf->pKey = hhash->Init.pKey; in HAL_HASH_GetConfig()
386 pConf->Algorithm = hhash->Init.Algorithm; in HAL_HASH_GetConfig()
387 pConf->KeySize = hhash->Init.KeySize; in HAL_HASH_GetConfig()
390 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_GetConfig()
391 __HAL_UNLOCK(hhash); in HAL_HASH_GetConfig()
399 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HAL_HASH_GetConfig()
410 __weak void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspInit() argument
413 UNUSED(hhash); in HAL_HASH_MspInit()
426 __weak void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspDeInit() argument
429 UNUSED(hhash); in HAL_HASH_MspDeInit()
452 HAL_StatusTypeDef HAL_HASH_RegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef C… in HAL_HASH_RegisterCallback() argument
460 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
464 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_RegisterCallback()
469 hhash->InCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
473 hhash->DgstCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
477 hhash->ErrorCallback = pCallback; in HAL_HASH_RegisterCallback()
481 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
485 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
490 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
496 else if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_RegisterCallback()
501 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
505 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
510 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
519 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
540 HAL_StatusTypeDef HAL_HASH_UnRegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef… in HAL_HASH_UnRegisterCallback() argument
545 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_UnRegisterCallback()
550 … hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak input completion callback */ in HAL_HASH_UnRegisterCallback()
554 hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak digest computation in HAL_HASH_UnRegisterCallback()
559 hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak error callback */ in HAL_HASH_UnRegisterCallback()
563 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak MspInit Callback */ in HAL_HASH_UnRegisterCallback()
567 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak MspDeInit Callback */ in HAL_HASH_UnRegisterCallback()
572 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
578 else if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_UnRegisterCallback()
583 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak MspInit Callback */ in HAL_HASH_UnRegisterCallback()
587 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak MspDeInit Callback */ in HAL_HASH_UnRegisterCallback()
592 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
601 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
624 void HAL_HASH_Suspend(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_Suspend() argument
627 uint32_t csr_ptr = (uint32_t)(hhash->Instance->CSR); in HAL_HASH_Suspend()
631 UNUSED(hhash); in HAL_HASH_Suspend()
634 *(uint32_t *)(mem_ptr) = READ_BIT(hhash->Instance->IMR, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_Suspend()
637 *(uint32_t *)(mem_ptr) = READ_BIT(hhash->Instance->STR, HASH_STR_NBLW); in HAL_HASH_Suspend()
640 …*(uint32_t *)(mem_ptr) = READ_BIT(hhash->Instance->CR, HASH_CR_DMAE | HASH_CR_DATATYPE | HASH_CR_M… in HAL_HASH_Suspend()
652 hhash->Init_saved = hhash->Init; in HAL_HASH_Suspend()
653 hhash->pHashOutBuffPtr_saved = hhash->pHashOutBuffPtr; in HAL_HASH_Suspend()
654 hhash->HashInCount_saved = hhash->HashInCount; in HAL_HASH_Suspend()
655 hhash->Size_saved = hhash->Size; in HAL_HASH_Suspend()
656 hhash->pHashInBuffPtr_saved = hhash->pHashInBuffPtr; in HAL_HASH_Suspend()
657 hhash->Phase_saved = hhash->Phase; in HAL_HASH_Suspend()
658 hhash->pHashKeyBuffPtr_saved = hhash->pHashKeyBuffPtr; in HAL_HASH_Suspend()
674 void HAL_HASH_Resume(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_Resume() argument
677 uint32_t csr_ptr = (uint32_t)(hhash->Instance->CSR); in HAL_HASH_Resume()
681 UNUSED(hhash); in HAL_HASH_Resume()
684 WRITE_REG(hhash->Instance->IMR, (*(uint32_t *)(mem_ptr))); in HAL_HASH_Resume()
687 WRITE_REG(hhash->Instance->STR, (*(uint32_t *)(mem_ptr))); in HAL_HASH_Resume()
690 WRITE_REG(hhash->Instance->CR, (*(uint32_t *)(mem_ptr))); in HAL_HASH_Resume()
695 SET_BIT(hhash->Instance->CR, HASH_CR_INIT); in HAL_HASH_Resume()
707 hhash->Init = hhash->Init_saved; in HAL_HASH_Resume()
708 hhash->pHashOutBuffPtr = hhash->pHashOutBuffPtr_saved; in HAL_HASH_Resume()
709 hhash->HashInCount = hhash->HashInCount_saved; in HAL_HASH_Resume()
710 hhash->Size = hhash->Size_saved; in HAL_HASH_Resume()
711 hhash->pHashInBuffPtr = hhash->pHashInBuffPtr_saved; in HAL_HASH_Resume()
712 hhash->Phase = hhash->Phase_saved; in HAL_HASH_Resume()
713 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_Resume()
714 hhash->pHashKeyBuffPtr = hhash->pHashKeyBuffPtr_saved; in HAL_HASH_Resume()
727 HAL_StatusTypeDef HAL_HASH_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_ProcessSuspend() argument
730 …uint32_t nbbytePartialHash = (((hhash->Instance->SR) >> 16U) * 4U); /* Nb byte to enter in HASH … in HAL_HASH_ProcessSuspend()
735 if (__HAL_HASH_GET_FLAG(hhash, HASH_FLAG_DMAS) != RESET) in HAL_HASH_ProcessSuspend()
737 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_ProcessSuspend()
748 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DMAS, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_ProcessSuspend()
756 remainingwords = ((((DMA_Channel_TypeDef *)hhash->hdmain->Instance)->CBR1) \ in HAL_HASH_ProcessSuspend()
758 remainingwords += ((((DMA_Channel_TypeDef *)hhash->hdmain->Instance)->CSR) \ in HAL_HASH_ProcessSuspend()
774 if (HAL_DMA_Abort(hhash->hdmain) != HAL_OK) in HAL_HASH_ProcessSuspend()
779 if (__HAL_HASH_GET_FLAG(hhash, HASH_FLAG_DCIS) != RESET) in HAL_HASH_ProcessSuspend()
785 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DINIS, RESET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_ProcessSuspend()
791 sizeinwords = (((hhash->Size % 4U) != 0U) ? \ in HAL_HASH_ProcessSuspend()
792 ((hhash->Size + 3U) / 4U) : (hhash->Size / 4U)); in HAL_HASH_ProcessSuspend()
795 hhash->pHashInBuffPtr += 4U * (sizeinwords - remainingwords) ; in HAL_HASH_ProcessSuspend()
798 hhash->HashInCount = 4U * remainingwords; in HAL_HASH_ProcessSuspend()
801 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_ProcessSuspend()
802 __HAL_UNLOCK(hhash); in HAL_HASH_ProcessSuspend()
810 hhash->SuspendRequest = HAL_HASH_SUSPEND; in HAL_HASH_ProcessSuspend()
861 HAL_StatusTypeDef HAL_HASH_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_… in HAL_HASH_Start() argument
865 if (hhash == NULL) in HAL_HASH_Start()
871 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Start()
874 __HAL_LOCK(hhash); in HAL_HASH_Start()
877 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start()
880 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Start()
881 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_Start()
882 hhash->HashInCount = 0U; in HAL_HASH_Start()
883 hhash->Size = Size; in HAL_HASH_Start()
886 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Start()
888 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Start()
891 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_Start()
894 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Start()
896 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_Start()
899 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_Start()
902 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_Start()
908 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_Start()
911 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Start()
914 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_Start()
917 __HAL_UNLOCK(hhash); in HAL_HASH_Start()
937 HAL_StatusTypeDef HAL_HASH_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint… in HAL_HASH_Start_IT() argument
944 if (hhash == NULL) in HAL_HASH_Start_IT()
950 temp_state = hhash->State; in HAL_HASH_Start_IT()
954 __HAL_LOCK(hhash); in HAL_HASH_Start_IT()
956 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Start_IT()
959 hhash->HashInCount = 0U; in HAL_HASH_Start_IT()
960 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Start_IT()
961 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_Start_IT()
962 hhash->Size = Size; in HAL_HASH_Start_IT()
965 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Start_IT()
967 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Start_IT()
970 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_Start_IT()
973 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start_IT()
975 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Start_IT()
978 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_Start_IT()
980 status = HASH_WriteData_IT(hhash); in HAL_HASH_Start_IT()
1005 HAL_StatusTypeDef HAL_HASH_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uin… in HAL_HASH_Start_DMA() argument
1012 if (hhash == NULL) in HAL_HASH_Start_DMA()
1018 temp_state = hhash->State; in HAL_HASH_Start_DMA()
1023 __HAL_LOCK(hhash); in HAL_HASH_Start_DMA()
1026 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Start_DMA()
1029 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start_DMA()
1032 hhash->HashInCount = 0U; in HAL_HASH_Start_DMA()
1033 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Start_DMA()
1034 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_Start_DMA()
1035 hhash->HashInCount = 0U; in HAL_HASH_Start_DMA()
1036 hhash->Size = Size; in HAL_HASH_Start_DMA()
1042 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_Start_DMA()
1045 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Start_DMA()
1047 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Start_DMA()
1050 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Start_DMA()
1053 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HAL_HASH_Start_DMA()
1056 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Size) % 4U)); in HAL_HASH_Start_DMA()
1061 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_Start_DMA()
1068 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Start_DMA()
1070 hhash->Size = hhash->HashInCount; in HAL_HASH_Start_DMA()
1073 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HAL_HASH_Start_DMA()
1075 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HAL_HASH_Start_DMA()
1077 if ((hhash->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_HASH_Start_DMA()
1079 … if ((hhash->hdmain->LinkedListQueue != NULL) && (hhash->hdmain->LinkedListQueue->Head != NULL)) in HAL_HASH_Start_DMA()
1082 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET]\ in HAL_HASH_Start_DMA()
1083 … = ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : (hhash->Size)); in HAL_HASH_Start_DMA()
1084 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET]\ in HAL_HASH_Start_DMA()
1085 = (uint32_t)(hhash->pHashInBuffPtr); /* Set DMA source address */ in HAL_HASH_Start_DMA()
1086 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET]\ in HAL_HASH_Start_DMA()
1087 = (uint32_t)&hhash->Instance->DIN; /* Set DMA destination address */ in HAL_HASH_Start_DMA()
1089 status = HAL_DMAEx_List_Start_IT(hhash->hdmain); in HAL_HASH_Start_DMA()
1099 … status = HAL_DMA_Start_IT(hhash->hdmain, (uint32_t)pInBuffer, (uint32_t)&hhash->Instance->DIN, \ in HAL_HASH_Start_DMA()
1100 … ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : \ in HAL_HASH_Start_DMA()
1101 (hhash->Size))); in HAL_HASH_Start_DMA()
1106 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HAL_HASH_Start_DMA()
1111 hhash->ErrorCallback(hhash); in HAL_HASH_Start_DMA()
1114 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_Start_DMA()
1120 SET_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HAL_HASH_Start_DMA()
1147 HAL_StatusTypeDef HAL_HASH_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_Accumulate() argument
1153 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_Accumulate()
1159 temp_state = hhash->State; in HAL_HASH_Accumulate()
1163 __HAL_LOCK(hhash); in HAL_HASH_Accumulate()
1166 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Accumulate()
1169 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Accumulate()
1170 hhash->HashInCount = 0U; in HAL_HASH_Accumulate()
1171 hhash->Size = Size; in HAL_HASH_Accumulate()
1173 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_Accumulate()
1176 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Accumulate()
1178 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Accumulate()
1181 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Accumulate()
1183 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_Accumulate()
1186 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_Accumulate()
1191 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Accumulate()
1194 __HAL_UNLOCK(hhash); in HAL_HASH_Accumulate()
1215 HAL_StatusTypeDef HAL_HASH_AccumulateLast(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_AccumulateLast() argument
1221 if (hhash == NULL) in HAL_HASH_AccumulateLast()
1227 temp_state = hhash->State; in HAL_HASH_AccumulateLast()
1231 __HAL_LOCK(hhash); in HAL_HASH_AccumulateLast()
1234 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_AccumulateLast()
1237 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_AccumulateLast()
1238 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_AccumulateLast()
1239 hhash->HashInCount = 0U; in HAL_HASH_AccumulateLast()
1240 hhash->Size = Size; in HAL_HASH_AccumulateLast()
1242 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_AccumulateLast()
1245 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_AccumulateLast()
1247 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_AccumulateLast()
1250 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_AccumulateLast()
1253 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_AccumulateLast()
1256 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_AccumulateLast()
1259 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_AccumulateLast()
1262 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_AccumulateLast()
1267 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_AccumulateLast()
1270 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_AccumulateLast()
1273 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_AccumulateLast()
1274 hhash->Accumulation = 0; in HAL_HASH_AccumulateLast()
1276 __HAL_UNLOCK(hhash); in HAL_HASH_AccumulateLast()
1298 HAL_StatusTypeDef HAL_HASH_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_Accumulate_IT() argument
1303 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_Accumulate_IT()
1309 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_Accumulate_IT()
1312 __HAL_LOCK(hhash); in HAL_HASH_Accumulate_IT()
1315 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Accumulate_IT()
1318 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_Accumulate_IT()
1319 hhash->HashInCount = 0U; in HAL_HASH_Accumulate_IT()
1320 hhash->Size = Size; in HAL_HASH_Accumulate_IT()
1322 hhash->Accumulation = 1U; in HAL_HASH_Accumulate_IT()
1324 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_Accumulate_IT()
1327 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_Accumulate_IT()
1329 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_Accumulate_IT()
1331 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_Accumulate_IT()
1334 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI); in HAL_HASH_Accumulate_IT()
1336 status = HASH_WriteData_IT(hhash); in HAL_HASH_Accumulate_IT()
1339 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Accumulate_IT()
1342 __HAL_UNLOCK(hhash); in HAL_HASH_Accumulate_IT()
1362 HAL_StatusTypeDef HAL_HASH_AccumulateLast_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuf… in HAL_HASH_AccumulateLast_IT() argument
1368 if (hhash == NULL) in HAL_HASH_AccumulateLast_IT()
1374 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_AccumulateLast_IT()
1377 __HAL_LOCK(hhash); in HAL_HASH_AccumulateLast_IT()
1380 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_AccumulateLast_IT()
1383 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_AccumulateLast_IT()
1384 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_AccumulateLast_IT()
1385 hhash->HashInCount = 0U; in HAL_HASH_AccumulateLast_IT()
1386 hhash->Size = Size; in HAL_HASH_AccumulateLast_IT()
1387 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_AccumulateLast_IT()
1390 CLEAR_BIT(hhash->Instance->CR, HASH_CR_MODE); in HAL_HASH_AccumulateLast_IT()
1392 MODIFY_REG(hhash->Instance->CR, HASH_CR_INIT, HASH_CR_INIT); in HAL_HASH_AccumulateLast_IT()
1395 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_AccumulateLast_IT()
1398 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_AccumulateLast_IT()
1401 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_AccumulateLast_IT()
1403 status = HASH_WriteData_IT(hhash); in HAL_HASH_AccumulateLast_IT()
1406 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_AccumulateLast_IT()
1409 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_AccumulateLast_IT()
1412 __HAL_UNLOCK(hhash); in HAL_HASH_AccumulateLast_IT()
1472 HAL_StatusTypeDef HAL_HASH_HMAC_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_HMAC_Start() argument
1478 if (hhash == NULL) in HAL_HASH_HMAC_Start()
1484 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start()
1488 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start()
1491 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start()
1494 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start()
1497 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start()
1498 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start()
1499 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start()
1500 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start()
1501 hhash->Size = Size; in HAL_HASH_HMAC_Start()
1504 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Start()
1505 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Start()
1506 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Start()
1514 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start()
1516 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start()
1522 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start()
1527 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start()
1531 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Start()
1533 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start()
1536 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1539 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 * (Size % 4U)); in HAL_HASH_HMAC_Start()
1548 HASH_WriteData(hhash, pInBuffer, Size); 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_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1559 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start()
1562 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start()
1565 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start()
1568 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Start()
1574 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_HMAC_Start()
1577 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Start()
1580 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start()
1583 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Start()
1608 HAL_StatusTypeDef HAL_HASH_HMAC_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffe… in HAL_HASH_HMAC_Accumulate() argument
1614 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_HMAC_Accumulate()
1620 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Accumulate()
1623 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Accumulate()
1626 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Accumulate()
1629 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Accumulate()
1630 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Accumulate()
1631 hhash->Size = Size; in HAL_HASH_HMAC_Accumulate()
1633 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Accumulate()
1636 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Accumulate()
1639 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Accumulate()
1640 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Accumulate()
1641 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Accumulate()
1649 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Accumulate()
1651 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate()
1657 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate()
1661 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Accumulate()
1664 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Accumulate()
1667 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Accumulate()
1670 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Accumulate()
1673 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_Accumulate()
1680 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_HMAC_Accumulate()
1683 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_Accumulate()
1686 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Accumulate()
1689 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Accumulate()
1710 HAL_StatusTypeDef HAL_HASH_HMAC_AccumulateLast(HASH_HandleTypeDef *hhash, const uint8_t *const pInB… in HAL_HASH_HMAC_AccumulateLast() argument
1714 if (hhash == NULL) in HAL_HASH_HMAC_AccumulateLast()
1720 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_AccumulateLast()
1724 __HAL_LOCK(hhash); in HAL_HASH_HMAC_AccumulateLast()
1727 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_AccumulateLast()
1730 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_AccumulateLast()
1731 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_AccumulateLast()
1732 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_AccumulateLast()
1733 hhash->Size = Size; in HAL_HASH_HMAC_AccumulateLast()
1735 if (hhash->Phase != HAL_HASH_PHASE_PROCESS) in HAL_HASH_HMAC_AccumulateLast()
1742 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (Size % 4U)); in HAL_HASH_HMAC_AccumulateLast()
1745 HASH_WriteData(hhash, pInBuffer, Size); in HAL_HASH_HMAC_AccumulateLast()
1748 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_AccumulateLast()
1751 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HAL_HASH_HMAC_AccumulateLast()
1756 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_AccumulateLast()
1759 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_AccumulateLast()
1762 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_AccumulateLast()
1765 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HAL_HASH_HMAC_AccumulateLast()
1771 HASH_GetDigest(hhash, pOutBuffer, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_HMAC_AccumulateLast()
1775 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_AccumulateLast()
1778 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_AccumulateLast()
1781 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_AccumulateLast()
1800 HAL_StatusTypeDef HAL_HASH_HMAC_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_HMAC_Start_IT() argument
1807 if (hhash == NULL) in HAL_HASH_HMAC_Start_IT()
1813 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start_IT()
1816 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_IT()
1819 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_IT()
1822 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_HMAC_Start_IT()
1825 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start_IT()
1826 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start_IT()
1827 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start_IT()
1828 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start_IT()
1829 hhash->Size = Size; in HAL_HASH_HMAC_Start_IT()
1832 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Start_IT()
1833 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Start_IT()
1834 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Start_IT()
1842 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start_IT()
1844 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_IT()
1850 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_IT()
1855 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start_IT()
1858 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Start_IT()
1860 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HAL_HASH_HMAC_Start_IT()
1863 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_IT()
1865 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_IT()
1873 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_Start_IT()
1875 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_Start_IT()
1893 HAL_StatusTypeDef HAL_HASH_HMAC_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBu… in HAL_HASH_HMAC_Accumulate_IT() argument
1899 if ((hhash == NULL) || ((Size % 4U) != 0U)) in HAL_HASH_HMAC_Accumulate_IT()
1905 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Accumulate_IT()
1908 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Accumulate_IT()
1911 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Accumulate_IT()
1914 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Accumulate_IT()
1915 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Accumulate_IT()
1916 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Accumulate_IT()
1917 hhash->Size = Size; in HAL_HASH_HMAC_Accumulate_IT()
1919 hhash->Accumulation = 1U; in HAL_HASH_HMAC_Accumulate_IT()
1921 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Accumulate_IT()
1924 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Accumulate_IT()
1925 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Accumulate_IT()
1926 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Accumulate_IT()
1934 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Accumulate_IT()
1936 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate_IT()
1942 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Accumulate_IT()
1947 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Accumulate_IT()
1950 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HAL_HASH_HMAC_Accumulate_IT()
1953 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_Accumulate_IT()
1955 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_Accumulate_IT()
1974 HAL_StatusTypeDef HAL_HASH_HMAC_AccumulateLast_IT(HASH_HandleTypeDef *hhash, const uint8_t *const p… in HAL_HASH_HMAC_AccumulateLast_IT() argument
1980 if (hhash == NULL) in HAL_HASH_HMAC_AccumulateLast_IT()
1986 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_AccumulateLast_IT()
1989 __HAL_LOCK(hhash); in HAL_HASH_HMAC_AccumulateLast_IT()
1992 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_AccumulateLast_IT()
1995 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_AccumulateLast_IT()
1996 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_AccumulateLast_IT()
1997 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_AccumulateLast_IT()
1998 hhash->HashInCount = 0U; in HAL_HASH_HMAC_AccumulateLast_IT()
1999 hhash->Size = Size; in HAL_HASH_HMAC_AccumulateLast_IT()
2001 hhash->Accumulation = 0U; in HAL_HASH_HMAC_AccumulateLast_IT()
2003 __HAL_HASH_ENABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_HMAC_AccumulateLast_IT()
2005 status = HASH_WriteData_IT(hhash); in HAL_HASH_HMAC_AccumulateLast_IT()
2030 HAL_StatusTypeDef HAL_HASH_HMAC_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_HMAC_Start_DMA() argument
2038 if (hhash == NULL) in HAL_HASH_HMAC_Start_DMA()
2044 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_HMAC_Start_DMA()
2047 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2050 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_DMA()
2053 hhash->pHashInBuffPtr = pInBuffer; in HAL_HASH_HMAC_Start_DMA()
2054 hhash->pHashOutBuffPtr = pOutBuffer; in HAL_HASH_HMAC_Start_DMA()
2055 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HAL_HASH_HMAC_Start_DMA()
2056 hhash->HashInCount = 0U; in HAL_HASH_HMAC_Start_DMA()
2057 hhash->Size = Size; in HAL_HASH_HMAC_Start_DMA()
2060 if (hhash->Phase == HAL_HASH_PHASE_READY) in HAL_HASH_HMAC_Start_DMA()
2063 if ((hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA1) || in HAL_HASH_HMAC_Start_DMA()
2064 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA224) || in HAL_HASH_HMAC_Start_DMA()
2065 (hhash->Init.Algorithm == HASH_ALGOSELECTION_SHA256)) in HAL_HASH_HMAC_Start_DMA()
2073 if (hhash->Init.KeySize > blocksize) in HAL_HASH_HMAC_Start_DMA()
2075 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_DMA()
2081 MODIFY_REG(hhash->Instance->CR, HASH_CR_LKEY | HASH_CR_MODE | HASH_CR_INIT, in HAL_HASH_HMAC_Start_DMA()
2086 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HAL_HASH_HMAC_Start_DMA()
2089 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HAL_HASH_HMAC_Start_DMA()
2092 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HAL_HASH_HMAC_Start_DMA()
2095 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HAL_HASH_HMAC_Start_DMA()
2105 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HAL_HASH_HMAC_Start_DMA()
2106 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_HMAC_Start_DMA()
2107 __HAL_UNLOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2110 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_BUSY)); in HAL_HASH_HMAC_Start_DMA()
2113 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HAL_HASH_HMAC_Start_DMA()
2114 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HAL_HASH_HMAC_Start_DMA()
2117 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Size) % 4U)); in HAL_HASH_HMAC_Start_DMA()
2122 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HAL_HASH_HMAC_Start_DMA()
2125 else if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HAL_HASH_HMAC_Start_DMA()
2128 __HAL_LOCK(hhash); in HAL_HASH_HMAC_Start_DMA()
2130 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_HMAC_Start_DMA()
2133 hhash->Size = hhash->HashInCount; in HAL_HASH_HMAC_Start_DMA()
2143 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HAL_HASH_HMAC_Start_DMA()
2145 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HAL_HASH_HMAC_Start_DMA()
2147 if ((hhash->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_HASH_HMAC_Start_DMA()
2149 if ((hhash->hdmain->LinkedListQueue != NULL) && (hhash->hdmain->LinkedListQueue->Head != NULL)) in HAL_HASH_HMAC_Start_DMA()
2152 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2153 …= ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : ((hhash->Size))); in HAL_HASH_HMAC_Start_DMA()
2154 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2155 = (uint32_t)(hhash->pHashInBuffPtr); /* Set DMA source address */ in HAL_HASH_HMAC_Start_DMA()
2156 hhash->hdmain->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET]\ in HAL_HASH_HMAC_Start_DMA()
2157 = (uint32_t)&hhash->Instance->DIN; /* Set DMA destination address */ in HAL_HASH_HMAC_Start_DMA()
2159 status = HAL_DMAEx_List_Start_IT(hhash->hdmain); in HAL_HASH_HMAC_Start_DMA()
2169 …status = HAL_DMA_Start_IT(hhash->hdmain, (uint32_t)(hhash->pHashInBuffPtr), (uint32_t)&hhash->Inst… in HAL_HASH_HMAC_Start_DMA()
2170 … ((((hhash->Size) % 4U) != 0U) ? ((hhash->Size) + (4U - ((hhash->Size) % 4U))) : \ in HAL_HASH_HMAC_Start_DMA()
2171 ((hhash->Size)))); in HAL_HASH_HMAC_Start_DMA()
2176 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HAL_HASH_HMAC_Start_DMA()
2181 hhash->ErrorCallback(hhash); in HAL_HASH_HMAC_Start_DMA()
2184 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_HMAC_Start_DMA()
2190 SET_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HAL_HASH_HMAC_Start_DMA()
2226 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash) in HAL_HASH_IRQHandler() argument
2229 uint32_t itsource = hhash->Instance->IMR; in HAL_HASH_IRQHandler()
2230 uint32_t itflag = hhash->Instance->SR; in HAL_HASH_IRQHandler()
2236 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HAL_HASH_IRQHandler()
2239 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HAL_HASH_IRQHandler()
2241 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_IRQHandler()
2243 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_IRQHandler()
2245 __HAL_UNLOCK(hhash); in HAL_HASH_IRQHandler()
2248 hhash->DgstCpltCallback(hhash); in HAL_HASH_IRQHandler()
2250 HAL_HASH_DgstCpltCallback(hhash); in HAL_HASH_IRQHandler()
2259 status = HASH_WriteData_IT(hhash); in HAL_HASH_IRQHandler()
2264 hhash->ErrorCallback(hhash); in HAL_HASH_IRQHandler()
2266 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_IRQHandler()
2285 __weak void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_InCpltCallback() argument
2288 UNUSED(hhash); in HAL_HASH_InCpltCallback()
2303 __weak void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_DgstCpltCallback() argument
2306 UNUSED(hhash); in HAL_HASH_DgstCpltCallback()
2321 __weak void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_ErrorCallback() argument
2324 UNUSED(hhash); in HAL_HASH_ErrorCallback()
2337 HAL_HASH_StateTypeDef HAL_HASH_GetState(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
2339 return hhash->State; in HAL_HASH_GetState()
2347 uint32_t HAL_HASH_GetError(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
2350 return hhash->ErrorCode; in HAL_HASH_GetError()
2372 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
2375 if (READ_BIT(hhash->Instance->CR, HASH_CR_MODE) == 0U) in HASH_DMAXferCplt()
2377 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HASH_DMAXferCplt()
2380 CLEAR_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HASH_DMAXferCplt()
2391 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_DMAXferCplt()
2392 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2393 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2395 hhash->ErrorCallback(hhash); in HASH_DMAXferCplt()
2397 HAL_HASH_ErrorCallback(hhash); in HASH_DMAXferCplt()
2400 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_DMAXferCplt()
2403 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
2405 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
2409 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HASH_DMAXferCplt()
2412 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2415 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_DMAXferCplt()
2418 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2422 hhash->DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2424 HAL_HASH_DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2429 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2430 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2435 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_DMAXferCplt()
2437 if ((hhash->Instance->CR & HASH_CR_MDMAT) == 0U) in HASH_DMAXferCplt()
2440 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HASH_DMAXferCplt()
2442 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HASH_DMAXferCplt()
2444 HASH_WriteData(hhash, hhash->Init.pKey, hhash->Init.KeySize); in HASH_DMAXferCplt()
2447 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_DMAXferCplt()
2457 CLEAR_BIT(hhash->Instance->CR, HASH_CR_DMAE); in HASH_DMAXferCplt()
2460 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAXferCplt()
2461 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2462 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2464 hhash->ErrorCallback(hhash); in HASH_DMAXferCplt()
2466 HAL_HASH_ErrorCallback(hhash); in HASH_DMAXferCplt()
2469 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_DMAXferCplt()
2472 HASH_GetDigest(hhash, hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH(hhash)); in HASH_DMAXferCplt()
2475 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2478 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_DMAXferCplt()
2481 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2485 hhash->DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2487 HAL_HASH_DgstCpltCallback(hhash); in HASH_DMAXferCplt()
2493 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
2494 __HAL_UNLOCK(hhash); in HASH_DMAXferCplt()
2495 hhash->Accumulation = 1; in HASH_DMAXferCplt()
2508 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
2510 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
2513 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
2516 hhash->ErrorCallback(hhash); in HASH_DMAError()
2518 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
2529 static void HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *pInBuffer, uint32_t Size) in HASH_WriteData() argument
2540 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2542 hhash->HashInCount += 4U; in HASH_WriteData()
2547 if (hhash->Init.DataType == HASH_HALFWORD_SWAP) in HASH_WriteData()
2552 hhash->Instance->DIN = (uint32_t) * (uint16_t *)inputaddr; in HASH_WriteData()
2556 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2559 else if ((hhash->Init.DataType == HASH_BYTE_SWAP) in HASH_WriteData()
2560 || (hhash->Init.DataType == HASH_BIT_SWAP)) /* byte swap or bit swap or */ in HASH_WriteData()
2565 hhash->Instance->DIN = (uint32_t) * (uint8_t *)inputaddr; in HASH_WriteData()
2569 hhash->Instance->DIN = (uint32_t) * (uint16_t *)inputaddr; in HASH_WriteData()
2576 hhash->Instance->DIN = ((uint32_t)tmp1) | ((uint32_t)tmp2 << 8U) | ((uint32_t)tmp3 << 16U); in HASH_WriteData()
2581 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData()
2583 hhash->HashInCount += 4U; in HASH_WriteData()
2592 static HAL_StatusTypeDef HASH_WriteData_IT(HASH_HandleTypeDef *hhash) in HASH_WriteData_IT() argument
2596 __IO uint32_t keyaddr = (uint32_t)(hhash->pHashKeyBuffPtr); in HASH_WriteData_IT()
2597 __IO uint32_t inputaddr = (uint32_t)(hhash->pHashInBuffPtr); in HASH_WriteData_IT()
2598 …uint32_t nbbytePartialHash = (((hhash->Instance->SR) >> 16U) * 4U); /* Nb byte to enter in HASH … in HASH_WriteData_IT()
2601 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_WriteData_IT()
2603 if ((hhash->Instance->CR & HASH_CR_MODE) == 0U) in HASH_WriteData_IT()
2607 if (hhash->SuspendRequest == HAL_HASH_SUSPEND) in HASH_WriteData_IT()
2610 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData_IT()
2612 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2614 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData_IT()
2615 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2621 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Size)) in HASH_WriteData_IT()
2626 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2628 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2629 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2639 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2642 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2643 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2644 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2647 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2651 while ((hhash->HashInCount) < hhash->Size) in HASH_WriteData_IT()
2654 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2656 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2657 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2662 hhash->InCpltCallback(hhash); in HASH_WriteData_IT()
2665 HAL_HASH_InCpltCallback(hhash); in HASH_WriteData_IT()
2667 if (hhash->Accumulation == 0U) in HASH_WriteData_IT()
2669 if (__HAL_HASH_GET_IT_SOURCE(hhash, HASH_IT_DINI)) in HASH_WriteData_IT()
2672 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2682 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2685 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2686 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2687 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2690 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_WriteData_IT()
2696 hhash->Accumulation = 0U; in HASH_WriteData_IT()
2698 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI); in HASH_WriteData_IT()
2707 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) /* loading input*/ in HASH_WriteData_IT()
2711 if (hhash->SuspendRequest == HAL_HASH_SUSPEND) in HASH_WriteData_IT()
2714 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData_IT()
2716 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2718 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData_IT()
2719 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2724 if (hhash->Accumulation == 1U) in HASH_WriteData_IT()
2727 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 0U); in HASH_WriteData_IT()
2732 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * (hhash->Size % 4U)); in HASH_WriteData_IT()
2734 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Size)) in HASH_WriteData_IT()
2739 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2741 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2742 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2752 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2755 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2756 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2757 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2760 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2764 while ((hhash->HashInCount) < hhash->Size) in HASH_WriteData_IT()
2767 hhash->Instance->DIN = *(uint32_t *)inputaddr; in HASH_WriteData_IT()
2769 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2770 hhash->pHashInBuffPtr += 4U; in HASH_WriteData_IT()
2775 hhash->InCpltCallback(hhash); in HASH_WriteData_IT()
2778 HAL_HASH_InCpltCallback(hhash); in HASH_WriteData_IT()
2781 if (hhash->Accumulation == 0U) in HASH_WriteData_IT()
2783 if (__HAL_HASH_GET_IT_SOURCE(hhash, HASH_IT_DINI)) in HASH_WriteData_IT()
2786 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2796 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2799 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2800 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2801 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2804 } while (HAL_IS_BIT_SET(hhash->Instance->SR, HASH_FLAG_BUSY)); in HASH_WriteData_IT()
2806 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HASH_WriteData_IT()
2807 hhash->HashInCount = 0U; in HASH_WriteData_IT()
2808 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HASH_WriteData_IT()
2815 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2816 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2817 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2826 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3)/* loading Key*/ in HASH_WriteData_IT()
2830 MODIFY_REG(hhash->Instance->STR, HASH_STR_NBLW, 8U * ((hhash->Init.KeySize) % 4U)); in HASH_WriteData_IT()
2832 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2837 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2839 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2840 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2850 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2853 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2854 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2855 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2858 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2862 while ((hhash->HashInCount) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2865 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2867 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2870 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2880 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2883 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2884 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2885 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2888 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DCIS)); in HASH_WriteData_IT()
2894 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HASH_WriteData_IT()
2896 if (((hhash->HashInCount) + nbbytePartialHash) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2901 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2903 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2904 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2914 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2917 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2918 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2919 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2922 } while (HAL_IS_BIT_CLR(hhash->Instance->SR, HASH_FLAG_DINIS)); in HASH_WriteData_IT()
2926 while ((hhash->HashInCount) < (hhash->Init.KeySize)) in HASH_WriteData_IT()
2929 hhash->Instance->DIN = *(uint32_t *)keyaddr; in HASH_WriteData_IT()
2931 hhash->HashInCount += 4U; in HASH_WriteData_IT()
2932 hhash->pHashKeyBuffPtr += 4U; in HASH_WriteData_IT()
2935 SET_BIT(hhash->Instance->STR, HASH_STR_DCAL); in HASH_WriteData_IT()
2945 __HAL_HASH_DISABLE_IT(hhash, HASH_IT_DINI | HASH_IT_DCI); in HASH_WriteData_IT()
2948 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WriteData_IT()
2949 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData_IT()
2950 __HAL_UNLOCK(hhash); in HASH_WriteData_IT()
2953 } while (HAL_IS_BIT_SET(hhash->Instance->SR, HASH_FLAG_BUSY)); in HASH_WriteData_IT()
2955 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HASH_WriteData_IT()
2956 hhash->HashInCount = 0U; in HASH_WriteData_IT()
2961 else if ((hhash->State == HAL_HASH_STATE_SUSPENDED)) in HASH_WriteData_IT()
2968 hhash->ErrorCode |= HAL_HASH_ERROR_BUSY; in HASH_WriteData_IT()
2971 hhash->ErrorCallback(hhash); in HASH_WriteData_IT()
2974 HAL_HASH_ErrorCallback(hhash); in HASH_WriteData_IT()
2988 static void HASH_GetDigest(const HASH_HandleTypeDef *hhash, const uint8_t *pMsgDigest, uint8_t Size) in HASH_GetDigest() argument
2995 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
2997 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
2999 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3001 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3003 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3007 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3009 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3011 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3013 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3015 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3023 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3025 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3027 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3029 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3031 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3041 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3043 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3045 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3047 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3049 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3067 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[0]); in HASH_GetDigest()
3069 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[1]); in HASH_GetDigest()
3071 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[2]); in HASH_GetDigest()
3073 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[3]); in HASH_GetDigest()
3075 *(uint32_t *)(msgdigest) = __REV(hhash->Instance->HR[4]); in HASH_GetDigest()
3114 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
3119 while (__HAL_HASH_GET_FLAG(hhash, Flag) == Status) in HASH_WaitOnFlagUntilTimeout()
3127 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
3128 hhash->ErrorCode |= HAL_HASH_ERROR_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
3130 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()