Lines Matching refs:hhash
276 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag…
278 static HAL_StatusTypeDef HASH_WriteData(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz…
279 static HAL_StatusTypeDef HASH_IT(HASH_HandleTypeDef *hhash);
280 static uint32_t HASH_Write_Block_Data(HASH_HandleTypeDef *hhash);
281 static HAL_StatusTypeDef HMAC_Processing(HASH_HandleTypeDef *hhash, uint32_t Timeout);
328 HAL_StatusTypeDef HAL_HASH_Init(HASH_HandleTypeDef *hhash) in HAL_HASH_Init() argument
331 if (hhash == NULL) in HAL_HASH_Init()
337 assert_param(IS_HASH_DATATYPE(hhash->Init.DataType)); in HAL_HASH_Init()
340 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
343 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
346 …hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak (surcharged) input completion… in HAL_HASH_Init()
347 …hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak (surcharged) digest computati… in HAL_HASH_Init()
349 …hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak (surcharged) error callback */ in HAL_HASH_Init()
350 if (hhash->MspInitCallback == NULL) in HAL_HASH_Init()
352 hhash->MspInitCallback = HAL_HASH_MspInit; in HAL_HASH_Init()
356 hhash->MspInitCallback(hhash); in HAL_HASH_Init()
359 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
362 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
365 HAL_HASH_MspInit(hhash); in HAL_HASH_Init()
370 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Init()
373 hhash->HashInCount = 0; in HAL_HASH_Init()
374 hhash->HashBuffSize = 0; in HAL_HASH_Init()
375 hhash->HashITCounter = 0; in HAL_HASH_Init()
376 hhash->NbWordsAlreadyPushed = 0; in HAL_HASH_Init()
378 hhash->DigestCalculationDisable = RESET; in HAL_HASH_Init()
380 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_Init()
382 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HAL_HASH_Init()
385 MODIFY_REG(HASH->CR, HASH_CR_DATATYPE, hhash->Init.DataType); in HAL_HASH_Init()
391 hhash->Status = HAL_OK; in HAL_HASH_Init()
394 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Init()
397 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_Init()
408 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_DeInit() argument
411 if (hhash == NULL) in HAL_HASH_DeInit()
417 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_DeInit()
420 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_DeInit()
423 hhash->HashInCount = 0; in HAL_HASH_DeInit()
424 hhash->HashBuffSize = 0; in HAL_HASH_DeInit()
425 hhash->HashITCounter = 0; in HAL_HASH_DeInit()
427 hhash->DigestCalculationDisable = RESET; in HAL_HASH_DeInit()
430 if (hhash->MspDeInitCallback == NULL) in HAL_HASH_DeInit()
432 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; in HAL_HASH_DeInit()
436 hhash->MspDeInitCallback(hhash); in HAL_HASH_DeInit()
439 HAL_HASH_MspDeInit(hhash); in HAL_HASH_DeInit()
444 hhash->Status = HAL_OK; in HAL_HASH_DeInit()
447 hhash->State = HAL_HASH_STATE_RESET; in HAL_HASH_DeInit()
450 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_DeInit()
453 hhash->Accumulation = 0U; in HAL_HASH_DeInit()
464 __weak void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspInit() argument
467 UNUSED(hhash); in HAL_HASH_MspInit()
479 __weak void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspDeInit() argument
482 UNUSED(hhash); in HAL_HASH_MspDeInit()
500 __weak void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_InCpltCallback() argument
503 UNUSED(hhash); in HAL_HASH_InCpltCallback()
517 __weak void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_DgstCpltCallback() argument
520 UNUSED(hhash); in HAL_HASH_DgstCpltCallback()
534 __weak void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_ErrorCallback() argument
537 UNUSED(hhash); in HAL_HASH_ErrorCallback()
559 HAL_StatusTypeDef HAL_HASH_RegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef C… in HAL_HASH_RegisterCallback() argument
567 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
571 __HAL_LOCK(hhash); in HAL_HASH_RegisterCallback()
573 if (HAL_HASH_STATE_READY == hhash->State) in HAL_HASH_RegisterCallback()
578 hhash->InCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
582 hhash->DgstCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
586 hhash->ErrorCallback = pCallback; in HAL_HASH_RegisterCallback()
590 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
594 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
599 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
605 else if (HAL_HASH_STATE_RESET == hhash->State) in HAL_HASH_RegisterCallback()
610 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
614 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
619 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
628 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
634 __HAL_UNLOCK(hhash); in HAL_HASH_RegisterCallback()
651 HAL_StatusTypeDef HAL_HASH_UnRegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef… in HAL_HASH_UnRegisterCallback() argument
656 __HAL_LOCK(hhash); in HAL_HASH_UnRegisterCallback()
658 if (HAL_HASH_STATE_READY == hhash->State) in HAL_HASH_UnRegisterCallback()
663 …hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak (surcharged) input completion … in HAL_HASH_UnRegisterCallback()
667 …hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak (surcharged) digest computation in HAL_HASH_UnRegisterCallback()
672 … hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak (surcharged) error callback */ in HAL_HASH_UnRegisterCallback()
676 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak (surcharged) Msp Init */ in HAL_HASH_UnRegisterCallback()
680 … hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak (surcharged) Msp DeInit */ in HAL_HASH_UnRegisterCallback()
685 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
691 else if (HAL_HASH_STATE_RESET == hhash->State) in HAL_HASH_UnRegisterCallback()
696 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak (surcharged) Msp Init */ in HAL_HASH_UnRegisterCallback()
700 … hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak (surcharged) Msp DeInit */ in HAL_HASH_UnRegisterCallback()
705 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
714 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
720 __HAL_UNLOCK(hhash); in HAL_HASH_UnRegisterCallback()
769 HAL_StatusTypeDef HAL_HASH_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, … in HAL_HASH_MD5_Start() argument
772 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start()
795 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size) in HAL_HASH_MD5_Accmlt() argument
797 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt()
810 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HASH_MD5_Accmlt_End() argument
813 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End()
827 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size,… in HAL_HASH_SHA1_Start() argument
830 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start()
853 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size) in HAL_HASH_SHA1_Accmlt() argument
855 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt()
868 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t … in HAL_HASH_SHA1_Accmlt_End() argument
871 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_End()
916 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz… in HAL_HASH_MD5_Start_IT() argument
919 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start_IT()
940 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HASH_MD5_Accmlt_IT() argument
942 return HASH_Accumulate_IT(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_IT()
954 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_… in HAL_HASH_MD5_Accmlt_End_IT() argument
957 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End_IT()
970 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HASH_SHA1_Start_IT() argument
973 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start_IT()
995 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HASH_SHA1_Accmlt_IT() argument
997 return HASH_Accumulate_IT(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_IT()
1009 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32… in HAL_HASH_SHA1_Accmlt_End_IT() argument
1012 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_End_IT()
1024 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash) in HAL_HASH_IRQHandler() argument
1026 hhash->Status = HASH_IT(hhash); in HAL_HASH_IRQHandler()
1027 if (hhash->Status != HAL_OK) in HAL_HASH_IRQHandler()
1029 hhash->ErrorCode |= HAL_HASH_ERROR_IT; in HAL_HASH_IRQHandler()
1031 hhash->ErrorCallback(hhash); in HAL_HASH_IRQHandler()
1033 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_IRQHandler()
1036 hhash->Status = HAL_OK; in HAL_HASH_IRQHandler()
1082 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HASH_MD5_Start_DMA() argument
1084 return HASH_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start_DMA()
1097 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Time… in HAL_HASH_MD5_Finish() argument
1099 return HASH_Finish(hhash, pOutBuffer, Timeout); in HAL_HASH_MD5_Finish()
1112 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HASH_SHA1_Start_DMA() argument
1114 return HASH_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start_DMA()
1128 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Tim… in HAL_HASH_SHA1_Finish() argument
1130 return HASH_Finish(hhash, pOutBuffer, Timeout); in HAL_HASH_SHA1_Finish()
1169 HAL_StatusTypeDef HAL_HMAC_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, … in HAL_HMAC_MD5_Start() argument
1172 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start()
1188 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size,… in HAL_HMAC_SHA1_Start() argument
1191 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start()
1230 HAL_StatusTypeDef HAL_HMAC_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz… in HAL_HMAC_MD5_Start_IT() argument
1233 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_IT()
1248 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HMAC_SHA1_Start_IT() argument
1251 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_IT()
1302 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HMAC_MD5_Start_DMA() argument
1304 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_DMA()
1327 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HMAC_SHA1_Start_DMA() argument
1329 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_DMA()
1374 HAL_HASH_StateTypeDef HAL_HASH_GetState(HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
1376 return hhash->State; in HAL_HASH_GetState()
1387 HAL_StatusTypeDef HAL_HASH_GetStatus(HASH_HandleTypeDef *hhash) in HAL_HASH_GetStatus() argument
1389 return hhash->Status; in HAL_HASH_GetStatus()
1405 void HAL_HASH_ContextSaving(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_ContextSaving() argument
1412 UNUSED(hhash); in HAL_HASH_ContextSaving()
1451 void HAL_HASH_ContextRestoring(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_ContextRestoring() argument
1458 UNUSED(hhash); in HAL_HASH_ContextRestoring()
1494 void HAL_HASH_SwFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_SwFeed_ProcessSuspend() argument
1497 hhash->SuspendRequest = HAL_HASH_SUSPEND; in HAL_HASH_SwFeed_ProcessSuspend()
1509 HAL_StatusTypeDef HAL_HASH_DMAFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_DMAFeed_ProcessSuspend() argument
1515 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_DMAFeed_ProcessSuspend()
1523 tmp_remaining_DMATransferSize_inWords = ((DMA_Stream_TypeDef *)hhash->hdmain->Instance)->NDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1533 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1544 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, RESET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1554 if (HAL_DMA_Abort(hhash->hdmain) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1563 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1575 tmp_remaining_DMATransferSize_inWords = ((DMA_Stream_TypeDef *)hhash->hdmain->Instance)->NDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1594 tmp_initial_DMATransferSize_inWords = (((hhash->HashInCount % 4U) != 0U) ? \ in HAL_HASH_DMAFeed_ProcessSuspend()
1595 … ((hhash->HashInCount + 3U) / 4U) : (hhash->HashInCount / 4U)); in HAL_HASH_DMAFeed_ProcessSuspend()
1601 tmp_words_already_pushed = hhash->NbWordsAlreadyPushed; in HAL_HASH_DMAFeed_ProcessSuspend()
1610 …hhash->pHashInBuffPtr += 4U * (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSiz… in HAL_HASH_DMAFeed_ProcessSuspend()
1613 hhash->HashInCount = 4U * tmp_remaining_DMATransferSize_inWords; in HAL_HASH_DMAFeed_ProcessSuspend()
1618 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_DMAFeed_ProcessSuspend()
1630 uint32_t HAL_HASH_GetError(HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
1633 return hhash->ErrorCode; in HAL_HASH_GetError()
1657 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
1662 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAXferCplt()
1673 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1677 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1679 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1690 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HASH_DMAXferCplt()
1695 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1701 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1703 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1708 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_DMAXferCplt()
1710 inputaddr = (uint32_t)hhash->pHashMsgBuffPtr; /* DMA transfer start address */ in HASH_DMAXferCplt()
1711 buffersize = hhash->HashBuffSize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1712 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_DMAXferCplt()
1715 hhash->HashInCount = hhash->HashBuffSize; /* Initial DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1716 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr ; /* DMA transfer start address */ in HASH_DMAXferCplt()
1718 … hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1721 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1731 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1738 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1740 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1742 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1750 inputaddr = (uint32_t)hhash->Init.pKey; /* DMA transfer start address */ in HASH_DMAXferCplt()
1751 buffersize = hhash->Init.KeySize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1752 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_DMAXferCplt()
1754 …hhash->HashInCount = hhash->Init.KeySize; /* Initial size for second DMA transfer (input data)… in HASH_DMAXferCplt()
1755 …hhash->pHashInBuffPtr = hhash->Init.pKey ; /* address passed to DMA, now entering data message … in HASH_DMAXferCplt()
1757 hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1765 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_DMAXferCplt()
1768 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_DMAXferCplt()
1779 hhash->State = HAL_HASH_STATE_ERROR; in HASH_DMAXferCplt()
1784 hhash->State = HAL_HASH_STATE_BUSY; in HASH_DMAXferCplt()
1801 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
1803 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAError()
1805 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
1808 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
1810 hhash->Status = HAL_ERROR; in HASH_DMAError()
1812 hhash->ErrorCallback(hhash); in HASH_DMAError()
1814 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
1817 hhash->Status = HAL_OK; in HASH_DMAError()
1833 static HAL_StatusTypeDef HASH_WriteData(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz… in HASH_WriteData() argument
1847 if ((hhash->SuspendRequest == HAL_HASH_SUSPEND) && ((buffercounter * 4 + 4U) < Size)) in HASH_WriteData()
1852 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_WriteData()
1862 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData()
1866 … if ((hhash->Phase == HAL_HASH_PHASE_PROCESS) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2)) in HASH_WriteData()
1869 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1871 hhash->HashInCount = Size - (buffercounter * 4 + 4U); in HASH_WriteData()
1873 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HASH_WriteData()
1876 hhash->pHashKeyBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1878 hhash->HashKeyCount = Size - (buffercounter * 4 + 4U); in HASH_WriteData()
1883 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData()
1884 __HAL_UNLOCK(hhash); in HASH_WriteData()
1889 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData()
1900 if (hhash->Init.DataType == HASH_DATATYPE_16B) in HASH_WriteData()
1914 else if ((hhash->Init.DataType == HASH_DATATYPE_8B) in HASH_WriteData()
1915 || (hhash->Init.DataType == HASH_DATATYPE_1B)) /* byte swap or bit swap or */ in HASH_WriteData()
2030 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
2046 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
2048 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
2051 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2068 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
2070 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
2073 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2093 static HAL_StatusTypeDef HASH_IT(HASH_HandleTypeDef *hhash) in HASH_IT() argument
2095 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_IT()
2098 if (hhash->HashITCounter == 0U) in HASH_IT()
2104 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2107 else if (hhash->HashITCounter == 1U) in HASH_IT()
2112 hhash->HashITCounter = 2U; in HASH_IT()
2118 hhash->HashITCounter = 3U; in HASH_IT()
2125 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HASH_IT()
2130 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2132 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_IT()
2135 hhash->DgstCpltCallback(hhash); in HASH_IT()
2137 HAL_HASH_DgstCpltCallback(hhash); in HASH_IT()
2149 if ((hhash->HashInCount != 0U) && (hhash->SuspendRequest == HAL_HASH_SUSPEND)) in HASH_IT()
2155 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_IT()
2158 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_IT()
2165 if (HASH_Write_Block_Data(hhash) == HASH_DIGEST_CALCULATION_STARTED) in HASH_IT()
2170 hhash->InCpltCallback(hhash); in HASH_IT()
2172 HAL_HASH_InCpltCallback(hhash); in HASH_IT()
2175 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_IT()
2178 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2185 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_IT()
2186 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); /* Set NBLW for the input message */ in HASH_IT()
2187 hhash->HashInCount = hhash->HashBuffSize; /* Set the input data size (in bytes) */ in HASH_IT()
2188 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr; /* Set the input data address */ in HASH_IT()
2189 … hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2193 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_IT()
2196 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2203 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_IT()
2204 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); /* Set NBLW for the key */ in HASH_IT()
2205 hhash->HashInCount = hhash->Init.KeySize; /* Set the key size (in bytes) */ in HASH_IT()
2206 hhash->pHashInBuffPtr = hhash->Init.pKey; /* Set the key address */ in HASH_IT()
2207 … hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2234 static uint32_t HASH_Write_Block_Data(HASH_HandleTypeDef *hhash) in HASH_Write_Block_Data() argument
2242 if (hhash->HashInCount > 64U) in HASH_Write_Block_Data()
2244 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2254 if (hhash->HashITCounter == 2U) in HASH_Write_Block_Data()
2257 if (hhash->HashInCount >= 68U) in HASH_Write_Block_Data()
2262 hhash->HashInCount -= 68U; in HASH_Write_Block_Data()
2263 hhash->pHashInBuffPtr += 68U; in HASH_Write_Block_Data()
2268 hhash->HashInCount = 0U; in HASH_Write_Block_Data()
2276 hhash->HashInCount -= 64U; in HASH_Write_Block_Data()
2277 hhash->pHashInBuffPtr += 64U; in HASH_Write_Block_Data()
2286 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2288 inputcounter = hhash->HashInCount; in HASH_Write_Block_Data()
2299 if (hhash->Accumulation == 1U) in HASH_Write_Block_Data()
2305 hhash->Accumulation = 0U; in HASH_Write_Block_Data()
2307 hhash->State = HAL_HASH_STATE_READY; in HASH_Write_Block_Data()
2310 hhash->InCpltCallback(hhash); in HASH_Write_Block_Data()
2312 HAL_HASH_InCpltCallback(hhash); in HASH_Write_Block_Data()
2326 hhash->HashInCount = 0; in HASH_Write_Block_Data()
2339 static HAL_StatusTypeDef HMAC_Processing(HASH_HandleTypeDef *hhash, uint32_t Timeout) in HMAC_Processing() argument
2342 if ((hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_1) && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2343 && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_3)) in HMAC_Processing()
2346 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2349 __HAL_UNLOCK(hhash); in HMAC_Processing()
2356 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HMAC_Processing()
2360 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2363 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2364 if (hhash->Status != HAL_OK) in HMAC_Processing()
2366 return hhash->Status; in HMAC_Processing()
2370 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2373 __HAL_UNLOCK(hhash); in HMAC_Processing()
2383 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2389 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HMAC_Processing()
2398 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2402 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); in HMAC_Processing()
2405 hhash->Status = HASH_WriteData(hhash, hhash->pHashInBuffPtr, hhash->HashInCount); in HMAC_Processing()
2406 if (hhash->Status != HAL_OK) in HMAC_Processing()
2408 return hhash->Status; in HMAC_Processing()
2412 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2415 __HAL_UNLOCK(hhash); in HMAC_Processing()
2425 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2431 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HMAC_Processing()
2435 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HMAC_Processing()
2436 hhash->HashKeyCount = hhash->Init.KeySize; in HMAC_Processing()
2445 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HMAC_Processing()
2449 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2452 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2453 if (hhash->Status != HAL_OK) in HMAC_Processing()
2455 return hhash->Status; in HMAC_Processing()
2459 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2462 __HAL_UNLOCK(hhash); in HMAC_Processing()
2472 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HMAC_Processing()
2478 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HMAC_Processing()
2481 hhash->Phase = HAL_HASH_PHASE_READY; in HMAC_Processing()
2485 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2488 __HAL_UNLOCK(hhash); in HMAC_Processing()
2507 HAL_StatusTypeDef HASH_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t … in HASH_Start() argument
2512 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start()
2521 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2526 __HAL_LOCK(hhash); in HASH_Start()
2529 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start()
2532 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2546 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start()
2548 else if (hhash->Phase == HAL_HASH_PHASE_PROCESS) in HASH_Start()
2553 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2558 pInBuffer_tmp = hhash->pHashInBuffPtr; in HASH_Start()
2559 Size_tmp = hhash->HashInCount; in HASH_Start()
2572 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2577 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2580 __HAL_UNLOCK(hhash); in HASH_Start()
2588 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Start()
2589 if (hhash->Status != HAL_OK) in HASH_Start()
2591 return hhash->Status; in HASH_Start()
2595 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2601 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Start()
2610 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2613 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Start()
2618 __HAL_UNLOCK(hhash); in HASH_Start()
2644 HAL_StatusTypeDef HASH_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uin… in HASH_Accumulate() argument
2648 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate()
2662 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2667 __HAL_LOCK(hhash); in HASH_Accumulate()
2670 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2673 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2678 pInBuffer_tmp = hhash->pHashInBuffPtr; /* pInBuffer_tmp is set to the input data address */ in HASH_Accumulate()
2679 Size_tmp = hhash->HashInCount; /* Size_tmp contains the input data size in bytes */ in HASH_Accumulate()
2685 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2693 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate()
2700 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate()
2705 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Accumulate()
2706 if (hhash->Status != HAL_OK) in HASH_Accumulate()
2708 return hhash->Status; in HASH_Accumulate()
2712 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2715 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2719 __HAL_UNLOCK(hhash); in HASH_Accumulate()
2747 HAL_StatusTypeDef HASH_Accumulate_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, … in HASH_Accumulate_IT() argument
2749 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate_IT()
2765 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2770 __HAL_LOCK(hhash); in HASH_Accumulate_IT()
2773 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate_IT()
2776 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2781 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2784 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate_IT()
2788 hhash->HashITCounter = 1; in HASH_Accumulate_IT()
2792 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Accumulate_IT()
2796 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate_IT()
2815 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2818 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2825 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Accumulate_IT()
2827 …hhash->pHashInBuffPtr = (uint8_t *)inputaddr; /* Points at data which will be fed to the Per… in HASH_Accumulate_IT()
2837 hhash->Accumulation = 1U; in HASH_Accumulate_IT()
2840 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2869 HAL_StatusTypeDef HASH_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8… in HASH_Start_IT() argument
2872 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_IT()
2884 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_IT()
2889 __HAL_LOCK(hhash); in HASH_Start_IT()
2892 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_IT()
2895 hhash->HashITCounter = 1; in HASH_Start_IT()
2898 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_IT()
2907 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Start_IT()
2909 … hhash->pHashInBuffPtr = pInBuffer; /* Points at data which will be fed to the Peripheral at in HASH_Start_IT()
2916 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2924 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_IT()
2945 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2950 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2963 hhash->HashInCount = SizeVar; in HASH_Start_IT()
2964 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_Start_IT()
2967 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2970 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Start_IT()
2981 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2984 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2996 __HAL_UNLOCK(hhash); in HASH_Start_IT()
3027 HAL_StatusTypeDef HASH_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint… in HASH_Start_DMA() argument
3032 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_DMA()
3047 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HASH_PROCESSING(hhash))))) in HASH_Start_DMA()
3049 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_DMA()
3055 __HAL_LOCK(hhash); in HASH_Start_DMA()
3058 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Start_DMA()
3061 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3067 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_DMA()
3073 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_DMA()
3083 hhash->pHashInBuffPtr = pInBuffer; /* DMA transfer start address */ in HASH_Start_DMA()
3084 hhash->HashInCount = Size; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3091 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3096 inputaddr = (uint32_t)hhash->pHashInBuffPtr; /* DMA transfer start address */ in HASH_Start_DMA()
3097 inputSize = hhash->HashInCount; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3102 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_Start_DMA()
3104 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HASH_Start_DMA()
3107 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HASH_Start_DMA()
3110 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_Start_DMA()
3118 __HAL_UNLOCK(hhash); in HASH_Start_DMA()
3124 hhash->State = HAL_HASH_STATE_ERROR; in HASH_Start_DMA()
3143 HAL_StatusTypeDef HASH_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout) in HASH_Finish() argument
3146 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Finish()
3155 __HAL_LOCK(hhash); in HASH_Finish()
3158 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Finish()
3161 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Finish()
3170 hhash->State = HAL_HASH_STATE_READY; in HASH_Finish()
3173 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Finish()
3176 __HAL_UNLOCK(hhash); in HASH_Finish()
3204 HAL_StatusTypeDef HMAC_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t … in HMAC_Start() argument
3207 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start()
3213 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start()
3216 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start()
3221 __HAL_LOCK(hhash); in HMAC_Start()
3224 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start()
3227 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start()
3230 if (hhash->Init.KeySize > 64U) in HMAC_Start()
3241 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start()
3245 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start()
3246 hhash->pHashInBuffPtr = pInBuffer; /* Input data address, HMAC_Processing input in HMAC_Start()
3248 hhash->HashInCount = Size; /* Input data size, HMAC_Processing input in HMAC_Start()
3250 …hhash->HashBuffSize = Size; /* Store the input buffer size for the whole HMAC… in HMAC_Start()
3251 …hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address, HMAC_Processing input parameter f… in HMAC_Start()
3253 …hhash->HashKeyCount = hhash->Init.KeySize; /* Key size, HMAC_Processing input parameter for … in HMAC_Start()
3258 return HMAC_Processing(hhash, Timeout); in HMAC_Start()
3282 HAL_StatusTypeDef HMAC_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8… in HMAC_Start_IT() argument
3285 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_IT()
3291 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_IT()
3294 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3299 __HAL_LOCK(hhash); in HMAC_Start_IT()
3302 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_IT()
3305 hhash->HashITCounter = 1; in HMAC_Start_IT()
3308 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_IT()
3311 if (hhash->Init.KeySize > 64U) in HMAC_Start_IT()
3325 hhash->HashInCount = hhash->Init.KeySize; /* Key size */ in HMAC_Start_IT()
3326 hhash->pHashInBuffPtr = hhash->Init.pKey ; /* Key address */ in HMAC_Start_IT()
3330 hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address */ in HMAC_Start_IT()
3331 hhash->pHashMsgBuffPtr = pInBuffer; /* Input message address */ in HMAC_Start_IT()
3332 hhash->HashBuffSize = Size; /* Input message size (in bytes) */ in HMAC_Start_IT()
3333 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start_IT()
3336 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_IT()
3339 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_IT()
3341 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HMAC_Start_IT()
3346 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_IT()
3355 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3356 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3361 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3393 HAL_StatusTypeDef HMAC_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint… in HMAC_Start_DMA() argument
3398 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_DMA()
3401 assert_param(IS_HMAC_DMA_MULTIBUFFER_SIZE(hhash, Size)); in HMAC_Start_DMA()
3406 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_DMA()
3410 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HMAC_PROCESSING(hhash))))) in HMAC_Start_DMA()
3412 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_DMA()
3418 __HAL_LOCK(hhash); in HMAC_Start_DMA()
3421 if (hhash->State == HAL_HASH_STATE_READY) in HMAC_Start_DMA()
3424 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_DMA()
3427 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3431 if (hhash->Init.KeySize > 64U) in HMAC_Start_DMA()
3443 if (hhash->Init.KeySize > 64U) in HMAC_Start_DMA()
3456 …hhash->HashInCount = hhash->Init.KeySize; /* Initial size for first DMA transfer (key size) … in HMAC_Start_DMA()
3457 …hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address … in HMAC_Start_DMA()
3458 …hhash->pHashInBuffPtr = hhash->Init.pKey ; /* First address passed to DMA (key address at Step 1)… in HMAC_Start_DMA()
3459 …hhash->pHashMsgBuffPtr = pInBuffer; /* Input data address … in HMAC_Start_DMA()
3460 …hhash->HashBuffSize = Size; /* input data size (in bytes) … in HMAC_Start_DMA()
3463 …inputaddr = (uint32_t)(hhash->Init.pKey); /* Address passed to DMA (start by entering Key messag… in HMAC_Start_DMA()
3464 inputSize = hhash->Init.KeySize; /* Size for first DMA transfer (in bytes) */ in HMAC_Start_DMA()
3467 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_DMA()
3470 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_DMA()
3473 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_DMA()
3479 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3482 hhash->HashInCount = Size; /* Input message address */ in HMAC_Start_DMA()
3483 hhash->pHashInBuffPtr = pInBuffer; /* Input message size in bytes */ in HMAC_Start_DMA()
3489 if (hhash->DigestCalculationDisable == RESET) in HMAC_Start_DMA()
3501 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3511 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3517 inputaddr = (uint32_t)(hhash->pHashInBuffPtr); /* Input message address */ in HMAC_Start_DMA()
3518 inputSize = hhash->HashInCount; /* Input message size in bytes */ in HMAC_Start_DMA()
3523 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HMAC_Start_DMA()
3525 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HMAC_Start_DMA()
3528 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HMAC_Start_DMA()
3531 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HMAC_Start_DMA()
3539 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3545 hhash->State = HAL_HASH_STATE_ERROR; in HMAC_Start_DMA()