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()
346hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak (surcharged) input completion… in HAL_HASH_Init()
347hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak (surcharged) digest computati… in HAL_HASH_Init()
349hhash->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()
389 hhash->Status = HAL_OK; in HAL_HASH_Init()
392 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Init()
395 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_Init()
406 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_DeInit() argument
409 if (hhash == NULL) in HAL_HASH_DeInit()
415 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_DeInit()
418 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_DeInit()
421 hhash->HashInCount = 0; in HAL_HASH_DeInit()
422 hhash->HashBuffSize = 0; in HAL_HASH_DeInit()
423 hhash->HashITCounter = 0; in HAL_HASH_DeInit()
425 hhash->DigestCalculationDisable = RESET; in HAL_HASH_DeInit()
428 if (hhash->MspDeInitCallback == NULL) in HAL_HASH_DeInit()
430 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; in HAL_HASH_DeInit()
434 hhash->MspDeInitCallback(hhash); in HAL_HASH_DeInit()
437 HAL_HASH_MspDeInit(hhash); in HAL_HASH_DeInit()
442 hhash->Status = HAL_OK; in HAL_HASH_DeInit()
445 hhash->State = HAL_HASH_STATE_RESET; in HAL_HASH_DeInit()
448 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_DeInit()
451 hhash->Accumulation = 0U; in HAL_HASH_DeInit()
462 __weak void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspInit() argument
465 UNUSED(hhash); in HAL_HASH_MspInit()
477 __weak void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspDeInit() argument
480 UNUSED(hhash); in HAL_HASH_MspDeInit()
498 __weak void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_InCpltCallback() argument
501 UNUSED(hhash); in HAL_HASH_InCpltCallback()
515 __weak void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_DgstCpltCallback() argument
518 UNUSED(hhash); in HAL_HASH_DgstCpltCallback()
532 __weak void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_ErrorCallback() argument
535 UNUSED(hhash); in HAL_HASH_ErrorCallback()
557 HAL_StatusTypeDef HAL_HASH_RegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef C… in HAL_HASH_RegisterCallback() argument
565 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
569 __HAL_LOCK(hhash); in HAL_HASH_RegisterCallback()
571 if (HAL_HASH_STATE_READY == hhash->State) in HAL_HASH_RegisterCallback()
576 hhash->InCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
580 hhash->DgstCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
584 hhash->ErrorCallback = pCallback; in HAL_HASH_RegisterCallback()
588 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
592 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
597 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
603 else if (HAL_HASH_STATE_RESET == hhash->State) in HAL_HASH_RegisterCallback()
608 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
612 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
617 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
626 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
632 __HAL_UNLOCK(hhash); in HAL_HASH_RegisterCallback()
649 HAL_StatusTypeDef HAL_HASH_UnRegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef… in HAL_HASH_UnRegisterCallback() argument
654 __HAL_LOCK(hhash); in HAL_HASH_UnRegisterCallback()
656 if (HAL_HASH_STATE_READY == hhash->State) in HAL_HASH_UnRegisterCallback()
661hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak (surcharged) input completion … in HAL_HASH_UnRegisterCallback()
665hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak (surcharged) digest computation in HAL_HASH_UnRegisterCallback()
670hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak (surcharged) error callback */ in HAL_HASH_UnRegisterCallback()
674 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak (surcharged) Msp Init */ in HAL_HASH_UnRegisterCallback()
678hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak (surcharged) Msp DeInit */ in HAL_HASH_UnRegisterCallback()
683 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
689 else if (HAL_HASH_STATE_RESET == hhash->State) in HAL_HASH_UnRegisterCallback()
694 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak (surcharged) Msp Init */ in HAL_HASH_UnRegisterCallback()
698hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak (surcharged) Msp DeInit */ in HAL_HASH_UnRegisterCallback()
703 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
712 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
718 __HAL_UNLOCK(hhash); in HAL_HASH_UnRegisterCallback()
767 HAL_StatusTypeDef HAL_HASH_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, … in HAL_HASH_MD5_Start() argument
770 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start()
793 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size) in HAL_HASH_MD5_Accmlt() argument
795 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt()
808 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HASH_MD5_Accmlt_End() argument
811 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End()
825 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size,… in HAL_HASH_SHA1_Start() argument
828 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start()
851 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size) in HAL_HASH_SHA1_Accmlt() argument
853 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt()
866 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t … in HAL_HASH_SHA1_Accmlt_End() argument
869 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_End()
914 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz… in HAL_HASH_MD5_Start_IT() argument
917 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start_IT()
938 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HASH_MD5_Accmlt_IT() argument
940 return HASH_Accumulate_IT(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_IT()
952 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_… in HAL_HASH_MD5_Accmlt_End_IT() argument
955 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End_IT()
968 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HASH_SHA1_Start_IT() argument
971 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start_IT()
993 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HASH_SHA1_Accmlt_IT() argument
995 return HASH_Accumulate_IT(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_IT()
1007 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32… in HAL_HASH_SHA1_Accmlt_End_IT() argument
1010 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_End_IT()
1022 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash) in HAL_HASH_IRQHandler() argument
1024 hhash->Status = HASH_IT(hhash); in HAL_HASH_IRQHandler()
1025 if (hhash->Status != HAL_OK) in HAL_HASH_IRQHandler()
1027 hhash->ErrorCode |= HAL_HASH_ERROR_IT; in HAL_HASH_IRQHandler()
1029 hhash->ErrorCallback(hhash); in HAL_HASH_IRQHandler()
1031 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_IRQHandler()
1034 hhash->Status = HAL_OK; in HAL_HASH_IRQHandler()
1080 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HASH_MD5_Start_DMA() argument
1082 return HASH_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start_DMA()
1095 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Time… in HAL_HASH_MD5_Finish() argument
1097 return HASH_Finish(hhash, pOutBuffer, Timeout); in HAL_HASH_MD5_Finish()
1110 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HASH_SHA1_Start_DMA() argument
1112 return HASH_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start_DMA()
1126 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Tim… in HAL_HASH_SHA1_Finish() argument
1128 return HASH_Finish(hhash, pOutBuffer, Timeout); in HAL_HASH_SHA1_Finish()
1167 HAL_StatusTypeDef HAL_HMAC_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, … in HAL_HMAC_MD5_Start() argument
1170 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start()
1186 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size,… in HAL_HMAC_SHA1_Start() argument
1189 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start()
1228 HAL_StatusTypeDef HAL_HMAC_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz… in HAL_HMAC_MD5_Start_IT() argument
1231 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_IT()
1246 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HMAC_SHA1_Start_IT() argument
1249 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_IT()
1300 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Si… in HAL_HMAC_MD5_Start_DMA() argument
1302 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_DMA()
1325 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t S… in HAL_HMAC_SHA1_Start_DMA() argument
1327 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_DMA()
1372 HAL_HASH_StateTypeDef HAL_HASH_GetState(HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
1374 return hhash->State; in HAL_HASH_GetState()
1385 HAL_StatusTypeDef HAL_HASH_GetStatus(HASH_HandleTypeDef *hhash) in HAL_HASH_GetStatus() argument
1387 return hhash->Status; in HAL_HASH_GetStatus()
1403 void HAL_HASH_ContextSaving(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_ContextSaving() argument
1410 UNUSED(hhash); in HAL_HASH_ContextSaving()
1444 void HAL_HASH_ContextRestoring(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_ContextRestoring() argument
1451 UNUSED(hhash); in HAL_HASH_ContextRestoring()
1487 void HAL_HASH_SwFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_SwFeed_ProcessSuspend() argument
1490 hhash->SuspendRequest = HAL_HASH_SUSPEND; in HAL_HASH_SwFeed_ProcessSuspend()
1502 HAL_StatusTypeDef HAL_HASH_DMAFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_DMAFeed_ProcessSuspend() argument
1508 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_DMAFeed_ProcessSuspend()
1516 tmp_remaining_DMATransferSize_inWords = ((DMA_Channel_TypeDef *)hhash->hdmain->Instance)->CNDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1526 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1537 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, RESET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1547 if (HAL_DMA_Abort(hhash->hdmain) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1556 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1568 tmp_remaining_DMATransferSize_inWords = ((DMA_Channel_TypeDef *)hhash->hdmain->Instance)->CNDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1587 tmp_initial_DMATransferSize_inWords = (((hhash->HashInCount % 4U) != 0U) ? \ in HAL_HASH_DMAFeed_ProcessSuspend()
1588 … ((hhash->HashInCount + 3U) / 4U) : (hhash->HashInCount / 4U)); in HAL_HASH_DMAFeed_ProcessSuspend()
1594 tmp_words_already_pushed = hhash->NbWordsAlreadyPushed; in HAL_HASH_DMAFeed_ProcessSuspend()
1603hhash->pHashInBuffPtr += 4U * (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSiz… in HAL_HASH_DMAFeed_ProcessSuspend()
1606 hhash->HashInCount = 4U * tmp_remaining_DMATransferSize_inWords; in HAL_HASH_DMAFeed_ProcessSuspend()
1611 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_DMAFeed_ProcessSuspend()
1623 uint32_t HAL_HASH_GetError(HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
1626 return hhash->ErrorCode; in HAL_HASH_GetError()
1650 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
1655 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAXferCplt()
1666 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1670 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1672 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1683 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HASH_DMAXferCplt()
1688 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1694 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1696 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1701 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_DMAXferCplt()
1703 inputaddr = (uint32_t)hhash->pHashMsgBuffPtr; /* DMA transfer start address */ in HASH_DMAXferCplt()
1704 buffersize = hhash->HashBuffSize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1705 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_DMAXferCplt()
1708 hhash->HashInCount = hhash->HashBuffSize; /* Initial DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1709 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr ; /* DMA transfer start address */ in HASH_DMAXferCplt()
1711hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1713 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1722 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1729 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1731 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1733 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1741 inputaddr = (uint32_t)hhash->Init.pKey; /* DMA transfer start address */ in HASH_DMAXferCplt()
1742 buffersize = hhash->Init.KeySize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1743 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_DMAXferCplt()
1745hhash->HashInCount = hhash->Init.KeySize; /* Initial size for second DMA transfer (input data)… in HASH_DMAXferCplt()
1746hhash->pHashInBuffPtr = hhash->Init.pKey ; /* address passed to DMA, now entering data message … in HASH_DMAXferCplt()
1748 hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1756 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_DMAXferCplt()
1759 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_DMAXferCplt()
1770 hhash->State = HAL_HASH_STATE_ERROR; in HASH_DMAXferCplt()
1775 hhash->State = HAL_HASH_STATE_BUSY; in HASH_DMAXferCplt()
1792 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
1794 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAError()
1796 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
1799 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
1801 hhash->Status = HAL_ERROR; in HASH_DMAError()
1803 hhash->ErrorCallback(hhash); in HASH_DMAError()
1805 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
1808 hhash->Status = HAL_OK; in HASH_DMAError()
1824 static HAL_StatusTypeDef HASH_WriteData(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Siz… in HASH_WriteData() argument
1838 if ((hhash->SuspendRequest == HAL_HASH_SUSPEND) && (((buffercounter * 4U) + 4U) < Size)) in HASH_WriteData()
1843 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_WriteData()
1853 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData()
1857 … if ((hhash->Phase == HAL_HASH_PHASE_PROCESS) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2)) in HASH_WriteData()
1860 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1862 hhash->HashInCount = Size - ((buffercounter * 4U) + 4U); in HASH_WriteData()
1864 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HASH_WriteData()
1867 hhash->pHashKeyBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1869 hhash->HashKeyCount = Size - ((buffercounter * 4U) + 4U); in HASH_WriteData()
1874 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData()
1875 __HAL_UNLOCK(hhash); in HASH_WriteData()
1880 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData()
1891 if (hhash->Init.DataType == HASH_DATATYPE_16B) in HASH_WriteData()
1905 else if ((hhash->Init.DataType == HASH_DATATYPE_8B) in HASH_WriteData()
1906 || (hhash->Init.DataType == HASH_DATATYPE_1B)) /* byte swap or bit swap or */ in HASH_WriteData()
2017 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
2033 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
2035 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
2038 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2055 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
2057 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
2060 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2080 static HAL_StatusTypeDef HASH_IT(HASH_HandleTypeDef *hhash) in HASH_IT() argument
2082 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_IT()
2085 if (hhash->HashITCounter == 0U) in HASH_IT()
2091 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2094 else if (hhash->HashITCounter == 1U) in HASH_IT()
2099 hhash->HashITCounter = 2U; in HASH_IT()
2105 hhash->HashITCounter = 3U; in HASH_IT()
2112 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HASH_IT()
2117 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2119 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_IT()
2122 hhash->DgstCpltCallback(hhash); in HASH_IT()
2124 HAL_HASH_DgstCpltCallback(hhash); in HASH_IT()
2136 if ((hhash->HashInCount != 0U) && (hhash->SuspendRequest == HAL_HASH_SUSPEND)) in HASH_IT()
2142 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_IT()
2145 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_IT()
2152 if (HASH_Write_Block_Data(hhash) == HASH_DIGEST_CALCULATION_STARTED) in HASH_IT()
2157 hhash->InCpltCallback(hhash); in HASH_IT()
2159 HAL_HASH_InCpltCallback(hhash); in HASH_IT()
2162 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_IT()
2165 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2172 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_IT()
2173 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); /* Set NBLW for the input message */ in HASH_IT()
2174 hhash->HashInCount = hhash->HashBuffSize; /* Set the input data size (in bytes) */ in HASH_IT()
2175 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr; /* Set the input data address */ in HASH_IT()
2176hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2180 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_IT()
2183 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2190 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_IT()
2191 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); /* Set NBLW for the key */ in HASH_IT()
2192 hhash->HashInCount = hhash->Init.KeySize; /* Set the key size (in bytes) */ in HASH_IT()
2193 hhash->pHashInBuffPtr = hhash->Init.pKey; /* Set the key address */ in HASH_IT()
2194hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2221 static uint32_t HASH_Write_Block_Data(HASH_HandleTypeDef *hhash) in HASH_Write_Block_Data() argument
2229 if (hhash->HashInCount > 64U) in HASH_Write_Block_Data()
2231 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2241 if (hhash->HashITCounter == 2U) in HASH_Write_Block_Data()
2244 if (hhash->HashInCount >= 68U) in HASH_Write_Block_Data()
2249 hhash->HashInCount -= 68U; in HASH_Write_Block_Data()
2250 hhash->pHashInBuffPtr += 68U; in HASH_Write_Block_Data()
2255 hhash->HashInCount = 0U; in HASH_Write_Block_Data()
2263 hhash->HashInCount -= 64U; in HASH_Write_Block_Data()
2264 hhash->pHashInBuffPtr += 64U; in HASH_Write_Block_Data()
2273 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2275 inputcounter = hhash->HashInCount; in HASH_Write_Block_Data()
2286 if (hhash->Accumulation == 1U) in HASH_Write_Block_Data()
2292 hhash->Accumulation = 0U; in HASH_Write_Block_Data()
2294 hhash->State = HAL_HASH_STATE_READY; in HASH_Write_Block_Data()
2297 hhash->InCpltCallback(hhash); in HASH_Write_Block_Data()
2299 HAL_HASH_InCpltCallback(hhash); in HASH_Write_Block_Data()
2313 hhash->HashInCount = 0; in HASH_Write_Block_Data()
2326 static HAL_StatusTypeDef HMAC_Processing(HASH_HandleTypeDef *hhash, uint32_t Timeout) in HMAC_Processing() argument
2329 if ((hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_1) && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2330 && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_3)) in HMAC_Processing()
2333 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2336 __HAL_UNLOCK(hhash); in HMAC_Processing()
2343 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HMAC_Processing()
2347 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2350 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2351 if (hhash->Status != HAL_OK) in HMAC_Processing()
2353 return hhash->Status; in HMAC_Processing()
2357 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2360 __HAL_UNLOCK(hhash); in HMAC_Processing()
2370 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2376 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HMAC_Processing()
2385 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2389 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); in HMAC_Processing()
2392 hhash->Status = HASH_WriteData(hhash, hhash->pHashInBuffPtr, hhash->HashInCount); in HMAC_Processing()
2393 if (hhash->Status != HAL_OK) in HMAC_Processing()
2395 return hhash->Status; in HMAC_Processing()
2399 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2402 __HAL_UNLOCK(hhash); in HMAC_Processing()
2412 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2418 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HMAC_Processing()
2422 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HMAC_Processing()
2423 hhash->HashKeyCount = hhash->Init.KeySize; in HMAC_Processing()
2432 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HMAC_Processing()
2436 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2439 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2440 if (hhash->Status != HAL_OK) in HMAC_Processing()
2442 return hhash->Status; in HMAC_Processing()
2446 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2449 __HAL_UNLOCK(hhash); in HMAC_Processing()
2459 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HMAC_Processing()
2465 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HMAC_Processing()
2468 hhash->Phase = HAL_HASH_PHASE_READY; in HMAC_Processing()
2472 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2475 __HAL_UNLOCK(hhash); in HMAC_Processing()
2494 HAL_StatusTypeDef HASH_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t … in HASH_Start() argument
2499 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start()
2508 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2513 __HAL_LOCK(hhash); in HASH_Start()
2516 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start()
2519 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2533 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start()
2535 else if (hhash->Phase == HAL_HASH_PHASE_PROCESS) in HASH_Start()
2540 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2545 pInBuffer_tmp = hhash->pHashInBuffPtr; in HASH_Start()
2546 Size_tmp = hhash->HashInCount; in HASH_Start()
2559 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2564 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2567 __HAL_UNLOCK(hhash); in HASH_Start()
2575 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Start()
2576 if (hhash->Status != HAL_OK) in HASH_Start()
2578 return hhash->Status; in HASH_Start()
2582 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2588 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Start()
2597 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2600 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Start()
2605 __HAL_UNLOCK(hhash); in HASH_Start()
2631 HAL_StatusTypeDef HASH_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uin… in HASH_Accumulate() argument
2635 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate()
2649 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2654 __HAL_LOCK(hhash); in HASH_Accumulate()
2657 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2660 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2665 pInBuffer_tmp = hhash->pHashInBuffPtr; /* pInBuffer_tmp is set to the input data address */ in HASH_Accumulate()
2666 Size_tmp = hhash->HashInCount; /* Size_tmp contains the input data size in bytes */ in HASH_Accumulate()
2672 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2680 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate()
2687 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate()
2692 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Accumulate()
2693 if (hhash->Status != HAL_OK) in HASH_Accumulate()
2695 return hhash->Status; in HASH_Accumulate()
2699 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2702 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2706 __HAL_UNLOCK(hhash); in HASH_Accumulate()
2734 HAL_StatusTypeDef HASH_Accumulate_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, … in HASH_Accumulate_IT() argument
2736 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate_IT()
2752 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2757 __HAL_LOCK(hhash); in HASH_Accumulate_IT()
2760 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate_IT()
2763 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2768 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2771 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate_IT()
2775 hhash->HashITCounter = 1; in HASH_Accumulate_IT()
2779 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Accumulate_IT()
2783 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate_IT()
2802 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2805 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2812 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Accumulate_IT()
2814hhash->pHashInBuffPtr = (uint8_t *)inputaddr; /* Points at data which will be fed to the Per… in HASH_Accumulate_IT()
2824 hhash->Accumulation = 1U; in HASH_Accumulate_IT()
2827 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2856 HAL_StatusTypeDef HASH_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8… in HASH_Start_IT() argument
2859 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_IT()
2871 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_IT()
2876 __HAL_LOCK(hhash); in HASH_Start_IT()
2879 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_IT()
2882 hhash->HashITCounter = 1; in HASH_Start_IT()
2885 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_IT()
2894 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Start_IT()
2896hhash->pHashInBuffPtr = pInBuffer; /* Points at data which will be fed to the Peripheral at in HASH_Start_IT()
2903 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2911 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_IT()
2932 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2937 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2950 hhash->HashInCount = SizeVar; in HASH_Start_IT()
2951 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_Start_IT()
2954 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2957 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Start_IT()
2968 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2971 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2983 __HAL_UNLOCK(hhash); in HASH_Start_IT()
3014 HAL_StatusTypeDef HASH_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint… in HASH_Start_DMA() argument
3019 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_DMA()
3034 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HASH_PROCESSING(hhash))))) in HASH_Start_DMA()
3036 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_DMA()
3042 __HAL_LOCK(hhash); in HASH_Start_DMA()
3045 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Start_DMA()
3048 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3054 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_DMA()
3060 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_DMA()
3070 hhash->pHashInBuffPtr = pInBuffer; /* DMA transfer start address */ in HASH_Start_DMA()
3071 hhash->HashInCount = Size; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3078 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3083 inputaddr = (uint32_t)hhash->pHashInBuffPtr; /* DMA transfer start address */ in HASH_Start_DMA()
3084 inputSize = hhash->HashInCount; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3089 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_Start_DMA()
3091 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HASH_Start_DMA()
3094 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HASH_Start_DMA()
3097 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_Start_DMA()
3105 __HAL_UNLOCK(hhash); in HASH_Start_DMA()
3111 hhash->State = HAL_HASH_STATE_ERROR; in HASH_Start_DMA()
3130 HAL_StatusTypeDef HASH_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout) in HASH_Finish() argument
3133 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Finish()
3142 __HAL_LOCK(hhash); in HASH_Finish()
3145 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Finish()
3148 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Finish()
3157 hhash->State = HAL_HASH_STATE_READY; in HASH_Finish()
3160 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Finish()
3163 __HAL_UNLOCK(hhash); in HASH_Finish()
3191 HAL_StatusTypeDef HMAC_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t … in HMAC_Start() argument
3194 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start()
3200 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start()
3203 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start()
3208 __HAL_LOCK(hhash); in HMAC_Start()
3211 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start()
3214 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start()
3217 if (hhash->Init.KeySize > 64U) in HMAC_Start()
3228 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start()
3232 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start()
3233 hhash->pHashInBuffPtr = pInBuffer; /* Input data address, HMAC_Processing input in HMAC_Start()
3235 hhash->HashInCount = Size; /* Input data size, HMAC_Processing input in HMAC_Start()
3237hhash->HashBuffSize = Size; /* Store the input buffer size for the whole HMAC… in HMAC_Start()
3238hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address, HMAC_Processing input parameter f… in HMAC_Start()
3240hhash->HashKeyCount = hhash->Init.KeySize; /* Key size, HMAC_Processing input parameter for … in HMAC_Start()
3245 return HMAC_Processing(hhash, Timeout); in HMAC_Start()
3269 HAL_StatusTypeDef HMAC_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8… in HMAC_Start_IT() argument
3272 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_IT()
3278 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_IT()
3281 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3286 __HAL_LOCK(hhash); in HMAC_Start_IT()
3289 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_IT()
3292 hhash->HashITCounter = 1; in HMAC_Start_IT()
3295 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_IT()
3298 if (hhash->Init.KeySize > 64U) in HMAC_Start_IT()
3312 hhash->HashInCount = hhash->Init.KeySize; /* Key size */ in HMAC_Start_IT()
3313 hhash->pHashInBuffPtr = hhash->Init.pKey ; /* Key address */ in HMAC_Start_IT()
3317 hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address */ in HMAC_Start_IT()
3318 hhash->pHashMsgBuffPtr = pInBuffer; /* Input message address */ in HMAC_Start_IT()
3319 hhash->HashBuffSize = Size; /* Input message size (in bytes) */ in HMAC_Start_IT()
3320 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start_IT()
3323 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_IT()
3326 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_IT()
3328 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HMAC_Start_IT()
3333 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_IT()
3342 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3343 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3348 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3380 HAL_StatusTypeDef HMAC_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint… in HMAC_Start_DMA() argument
3385 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_DMA()
3388 assert_param(IS_HMAC_DMA_MULTIBUFFER_SIZE(hhash, Size)); in HMAC_Start_DMA()
3393 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_DMA()
3397 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HMAC_PROCESSING(hhash))))) in HMAC_Start_DMA()
3399 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_DMA()
3405 __HAL_LOCK(hhash); in HMAC_Start_DMA()
3408 if (hhash->State == HAL_HASH_STATE_READY) in HMAC_Start_DMA()
3411 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_DMA()
3414 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3417 if (hhash->Init.KeySize > 64U) in HMAC_Start_DMA()
3429hhash->HashInCount = hhash->Init.KeySize; /* Initial size for first DMA transfer (key size) … in HMAC_Start_DMA()
3430hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address … in HMAC_Start_DMA()
3431hhash->pHashInBuffPtr = hhash->Init.pKey ; /* First address passed to DMA (key address at Step 1)… in HMAC_Start_DMA()
3432hhash->pHashMsgBuffPtr = pInBuffer; /* Input data address … in HMAC_Start_DMA()
3433hhash->HashBuffSize = Size; /* input data size (in bytes) … in HMAC_Start_DMA()
3436 …inputaddr = (uint32_t)(hhash->Init.pKey); /* Address passed to DMA (start by entering Key messag… in HMAC_Start_DMA()
3437 inputSize = hhash->Init.KeySize; /* Size for first DMA transfer (in bytes) */ in HMAC_Start_DMA()
3440 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_DMA()
3443 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_DMA()
3446 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_DMA()
3452 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3455 hhash->HashInCount = Size; /* Input message address */ in HMAC_Start_DMA()
3456 hhash->pHashInBuffPtr = pInBuffer; /* Input message size in bytes */ in HMAC_Start_DMA()
3462 if (hhash->DigestCalculationDisable == RESET) in HMAC_Start_DMA()
3472 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3482 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3488 inputaddr = (uint32_t)(hhash->pHashInBuffPtr); /* Input message address */ in HMAC_Start_DMA()
3489 inputSize = hhash->HashInCount; /* Input message size in bytes */ in HMAC_Start_DMA()
3494 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HMAC_Start_DMA()
3496 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HMAC_Start_DMA()
3499 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HMAC_Start_DMA()
3502 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HMAC_Start_DMA()
3510 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3516 hhash->State = HAL_HASH_STATE_ERROR; in HMAC_Start_DMA()