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, const uint8_t *const pInBuffer, …
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, const uint8_t *const pInBuffer, uin… in HAL_HASH_MD5_Start() argument
771 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start()
794 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_MD5_Accmlt() argument
796 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt()
809 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_MD5_Accmlt_End() argument
812 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End()
826 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… 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, const uint8_t *const pInBuffer, u… 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, const uint8_t *const pInBuffe… 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, const uint8_t *const pInBuffer, … 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, const uint8_t *const pInBuffer,… 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, const uint8_t *const pInBuf… 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, const uint8_t *const pInBuffer,… 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, const uint8_t *const pInBuffer… 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, const uint8_t *const pInBu… 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, const uint8_t *const pInBuffer,… 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, const uint8_t *const pInBuffer… 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, const uint8_t *const pInBuffer, uin… in HAL_HMAC_MD5_Start() argument
1173 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start()
1189 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HMAC_SHA1_Start() argument
1193 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start()
1232 HAL_StatusTypeDef HAL_HMAC_MD5_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, … in HAL_HMAC_MD5_Start_IT() argument
1235 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_IT()
1250 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HMAC_SHA1_Start_IT() argument
1253 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_IT()
1303 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HMAC_MD5_Start_DMA() argument
1305 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_DMA()
1328 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HMAC_SHA1_Start_DMA() argument
1330 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_DMA()
1375 HAL_HASH_StateTypeDef HAL_HASH_GetState(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
1377 return hhash->State; in HAL_HASH_GetState()
1388 HAL_StatusTypeDef HAL_HASH_GetStatus(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetStatus() argument
1390 return hhash->Status; in HAL_HASH_GetStatus()
1406 void HAL_HASH_ContextSaving(const HASH_HandleTypeDef *hhash, const uint8_t *pMemBuffer) in HAL_HASH_ContextSaving() argument
1413 UNUSED(hhash); in HAL_HASH_ContextSaving()
1447 void HAL_HASH_ContextRestoring(HASH_HandleTypeDef *hhash, const uint8_t *pMemBuffer) in HAL_HASH_ContextRestoring() argument
1454 UNUSED(hhash); in HAL_HASH_ContextRestoring()
1490 void HAL_HASH_SwFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_SwFeed_ProcessSuspend() argument
1493 hhash->SuspendRequest = HAL_HASH_SUSPEND; in HAL_HASH_SwFeed_ProcessSuspend()
1505 HAL_StatusTypeDef HAL_HASH_DMAFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_DMAFeed_ProcessSuspend() argument
1511 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_DMAFeed_ProcessSuspend()
1519 tmp_remaining_DMATransferSize_inWords = ((DMA_Stream_TypeDef *)hhash->hdmain->Instance)->NDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1529 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1540 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, RESET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1550 if (HAL_DMA_Abort(hhash->hdmain) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1559 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1571 tmp_remaining_DMATransferSize_inWords = ((DMA_Stream_TypeDef *)hhash->hdmain->Instance)->NDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1590 tmp_initial_DMATransferSize_inWords = (((hhash->HashInCount % 4U) != 0U) ? \ in HAL_HASH_DMAFeed_ProcessSuspend()
1591 … ((hhash->HashInCount + 3U) / 4U) : (hhash->HashInCount / 4U)); in HAL_HASH_DMAFeed_ProcessSuspend()
1597 tmp_words_already_pushed = hhash->NbWordsAlreadyPushed; in HAL_HASH_DMAFeed_ProcessSuspend()
1606hhash->pHashInBuffPtr += 4U * (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSiz… in HAL_HASH_DMAFeed_ProcessSuspend()
1609 hhash->HashInCount = 4U * tmp_remaining_DMATransferSize_inWords; in HAL_HASH_DMAFeed_ProcessSuspend()
1614 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_DMAFeed_ProcessSuspend()
1626 uint32_t HAL_HASH_GetError(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
1629 return hhash->ErrorCode; in HAL_HASH_GetError()
1653 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
1658 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAXferCplt()
1669 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1673 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1675 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1686 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HASH_DMAXferCplt()
1691 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1697 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1699 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1704 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_DMAXferCplt()
1706 inputaddr = (uint32_t)hhash->pHashMsgBuffPtr; /* DMA transfer start address */ in HASH_DMAXferCplt()
1707 buffersize = hhash->HashBuffSize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1708 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_DMAXferCplt()
1711 hhash->HashInCount = hhash->HashBuffSize; /* Initial DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1712 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr ; /* DMA transfer start address */ in HASH_DMAXferCplt()
1714hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1716 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1725 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1732 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1734 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1736 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1744 inputaddr = (uint32_t)hhash->Init.pKey; /* DMA transfer start address */ in HASH_DMAXferCplt()
1745 buffersize = hhash->Init.KeySize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1746 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_DMAXferCplt()
1748hhash->HashInCount = hhash->Init.KeySize; /* Initial size for second DMA transfer (input data)… in HASH_DMAXferCplt()
1749hhash->pHashInBuffPtr = hhash->Init.pKey ; /* address passed to DMA, now entering data message … in HASH_DMAXferCplt()
1751 hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1759 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_DMAXferCplt()
1762 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_DMAXferCplt()
1773 hhash->State = HAL_HASH_STATE_ERROR; in HASH_DMAXferCplt()
1778 hhash->State = HAL_HASH_STATE_BUSY; in HASH_DMAXferCplt()
1795 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
1797 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAError()
1799 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
1802 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
1804 hhash->Status = HAL_ERROR; in HASH_DMAError()
1806 hhash->ErrorCallback(hhash); in HASH_DMAError()
1808 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
1811 hhash->Status = HAL_OK; in HASH_DMAError()
1827 static HAL_StatusTypeDef HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, … in HASH_WriteData() argument
1841 if ((hhash->SuspendRequest == HAL_HASH_SUSPEND) && (((buffercounter * 4U) + 4U) < Size)) in HASH_WriteData()
1846 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_WriteData()
1856 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData()
1860 … if ((hhash->Phase == HAL_HASH_PHASE_PROCESS) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2)) in HASH_WriteData()
1863 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1865 hhash->HashInCount = Size - ((buffercounter * 4U) + 4U); in HASH_WriteData()
1867 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HASH_WriteData()
1870 hhash->pHashKeyBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1872 hhash->HashKeyCount = Size - ((buffercounter * 4U) + 4U); in HASH_WriteData()
1877 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData()
1878 __HAL_UNLOCK(hhash); in HASH_WriteData()
1883 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData()
1894 if (hhash->Init.DataType == HASH_DATATYPE_16B) in HASH_WriteData()
1908 else if ((hhash->Init.DataType == HASH_DATATYPE_8B) in HASH_WriteData()
1909 || (hhash->Init.DataType == HASH_DATATYPE_1B)) /* byte swap or bit swap or */ in HASH_WriteData()
2018 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
2034 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
2036 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
2039 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2056 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
2058 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
2061 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2081 static HAL_StatusTypeDef HASH_IT(HASH_HandleTypeDef *hhash) in HASH_IT() argument
2083 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_IT()
2086 if (hhash->HashITCounter == 0U) in HASH_IT()
2092 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2095 else if (hhash->HashITCounter == 1U) in HASH_IT()
2100 hhash->HashITCounter = 2U; in HASH_IT()
2106 hhash->HashITCounter = 3U; in HASH_IT()
2113 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HASH_IT()
2118 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2120 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_IT()
2123 hhash->DgstCpltCallback(hhash); in HASH_IT()
2125 HAL_HASH_DgstCpltCallback(hhash); in HASH_IT()
2137 if ((hhash->HashInCount != 0U) && (hhash->SuspendRequest == HAL_HASH_SUSPEND)) in HASH_IT()
2143 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_IT()
2146 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_IT()
2153 if (HASH_Write_Block_Data(hhash) == HASH_DIGEST_CALCULATION_STARTED) in HASH_IT()
2158 hhash->InCpltCallback(hhash); in HASH_IT()
2160 HAL_HASH_InCpltCallback(hhash); in HASH_IT()
2163 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_IT()
2166 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2173 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_IT()
2174 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); /* Set NBLW for the input message */ in HASH_IT()
2175 hhash->HashInCount = hhash->HashBuffSize; /* Set the input data size (in bytes) */ in HASH_IT()
2176 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr; /* Set the input data address */ in HASH_IT()
2177hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2181 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_IT()
2184 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2191 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_IT()
2192 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); /* Set NBLW for the key */ in HASH_IT()
2193 hhash->HashInCount = hhash->Init.KeySize; /* Set the key size (in bytes) */ in HASH_IT()
2194 hhash->pHashInBuffPtr = hhash->Init.pKey; /* Set the key address */ in HASH_IT()
2195hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2222 static uint32_t HASH_Write_Block_Data(HASH_HandleTypeDef *hhash) in HASH_Write_Block_Data() argument
2230 if (hhash->HashInCount > 64U) in HASH_Write_Block_Data()
2232 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2242 if (hhash->HashITCounter == 2U) in HASH_Write_Block_Data()
2245 if (hhash->HashInCount >= 68U) in HASH_Write_Block_Data()
2250 hhash->HashInCount -= 68U; in HASH_Write_Block_Data()
2251 hhash->pHashInBuffPtr += 68U; in HASH_Write_Block_Data()
2256 hhash->HashInCount = 0U; in HASH_Write_Block_Data()
2264 hhash->HashInCount -= 64U; in HASH_Write_Block_Data()
2265 hhash->pHashInBuffPtr += 64U; in HASH_Write_Block_Data()
2274 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2276 inputcounter = hhash->HashInCount; in HASH_Write_Block_Data()
2287 if (hhash->Accumulation == 1U) in HASH_Write_Block_Data()
2293 hhash->Accumulation = 0U; in HASH_Write_Block_Data()
2295 hhash->State = HAL_HASH_STATE_READY; in HASH_Write_Block_Data()
2298 hhash->InCpltCallback(hhash); in HASH_Write_Block_Data()
2300 HAL_HASH_InCpltCallback(hhash); in HASH_Write_Block_Data()
2314 hhash->HashInCount = 0; in HASH_Write_Block_Data()
2327 static HAL_StatusTypeDef HMAC_Processing(HASH_HandleTypeDef *hhash, uint32_t Timeout) in HMAC_Processing() argument
2330 if ((hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_1) && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2331 && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_3)) in HMAC_Processing()
2334 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2337 __HAL_UNLOCK(hhash); in HMAC_Processing()
2344 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HMAC_Processing()
2348 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2351 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2352 if (hhash->Status != HAL_OK) in HMAC_Processing()
2354 return hhash->Status; in HMAC_Processing()
2358 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2361 __HAL_UNLOCK(hhash); in HMAC_Processing()
2371 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2377 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HMAC_Processing()
2386 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2390 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); in HMAC_Processing()
2393 hhash->Status = HASH_WriteData(hhash, hhash->pHashInBuffPtr, hhash->HashInCount); in HMAC_Processing()
2394 if (hhash->Status != HAL_OK) in HMAC_Processing()
2396 return hhash->Status; in HMAC_Processing()
2400 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2403 __HAL_UNLOCK(hhash); in HMAC_Processing()
2413 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2419 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HMAC_Processing()
2423 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HMAC_Processing()
2424 hhash->HashKeyCount = hhash->Init.KeySize; in HMAC_Processing()
2433 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HMAC_Processing()
2437 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2440 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2441 if (hhash->Status != HAL_OK) in HMAC_Processing()
2443 return hhash->Status; in HMAC_Processing()
2447 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2450 __HAL_UNLOCK(hhash); in HMAC_Processing()
2460 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HMAC_Processing()
2466 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HMAC_Processing()
2469 hhash->Phase = HAL_HASH_PHASE_READY; in HMAC_Processing()
2473 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2476 __HAL_UNLOCK(hhash); in HMAC_Processing()
2495 HAL_StatusTypeDef HASH_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t Si… in HASH_Start() argument
2501 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start()
2510 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2515 __HAL_LOCK(hhash); in HASH_Start()
2518 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start()
2521 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2535 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start()
2537 else if (hhash->Phase == HAL_HASH_PHASE_PROCESS) in HASH_Start()
2542 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2547 pInBuffer_tmp = (const uint8_t *)hhash->pHashInBuffPtr; in HASH_Start()
2548 Size_tmp = hhash->HashInCount; in HASH_Start()
2561 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2566 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2569 __HAL_UNLOCK(hhash); in HASH_Start()
2577 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Start()
2578 if (hhash->Status != HAL_OK) in HASH_Start()
2580 return hhash->Status; in HASH_Start()
2584 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2590 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Start()
2599 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2602 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Start()
2607 __HAL_UNLOCK(hhash); in HASH_Start()
2633 HAL_StatusTypeDef HASH_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32… in HASH_Accumulate() argument
2638 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate()
2652 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2657 __HAL_LOCK(hhash); in HASH_Accumulate()
2660 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2663 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2668 …pInBuffer_tmp = (const uint8_t *)hhash->pHashInBuffPtr; /* pInBuffer_tmp is set to the input data… in HASH_Accumulate()
2669 Size_tmp = hhash->HashInCount; /* Size_tmp contains the input data size in bytes */ in HASH_Accumulate()
2675 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2683 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate()
2690 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate()
2695 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Accumulate()
2696 if (hhash->Status != HAL_OK) in HASH_Accumulate()
2698 return hhash->Status; in HASH_Accumulate()
2702 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2705 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2709 __HAL_UNLOCK(hhash); in HASH_Accumulate()
2737 HAL_StatusTypeDef HASH_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uin… in HASH_Accumulate_IT() argument
2740 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate_IT()
2756 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2761 __HAL_LOCK(hhash); in HASH_Accumulate_IT()
2764 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate_IT()
2767 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2772 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2775 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate_IT()
2779 hhash->HashITCounter = 1; in HASH_Accumulate_IT()
2783 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Accumulate_IT()
2787 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate_IT()
2806 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2809 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2816 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Accumulate_IT()
2818hhash->pHashInBuffPtr = (uint8_t *)inputaddr; /* Points at data which will be fed to the Per… in HASH_Accumulate_IT()
2828 hhash->Accumulation = 1U; in HASH_Accumulate_IT()
2831 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2859 HAL_StatusTypeDef HASH_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t… in HASH_Start_IT() argument
2863 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_IT()
2875 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_IT()
2880 __HAL_LOCK(hhash); in HASH_Start_IT()
2883 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_IT()
2886 hhash->HashITCounter = 1; in HASH_Start_IT()
2889 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_IT()
2898 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Start_IT()
2900hhash->pHashInBuffPtr = pInBuffer; /* Points at data which will be fed to the Peripheral at in HASH_Start_IT()
2907 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2909 else if ((hhash->Phase == HAL_HASH_PHASE_PROCESS) && (SizeVar < 4U)) in HASH_Start_IT()
2915 hhash->HashInCount = SizeVar; in HASH_Start_IT()
2916 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_Start_IT()
2919 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2928 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_IT()
2949 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2954 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2967 hhash->HashInCount = SizeVar; in HASH_Start_IT()
2968 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_Start_IT()
2971 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2974 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Start_IT()
2985 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2988 __HAL_UNLOCK(hhash); in HASH_Start_IT()
3000 __HAL_UNLOCK(hhash); in HASH_Start_IT()
3031 HAL_StatusTypeDef HASH_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_… in HASH_Start_DMA() argument
3037 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_DMA()
3052 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HASH_PROCESSING(hhash))))) in HASH_Start_DMA()
3054 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_DMA()
3060 __HAL_LOCK(hhash); in HASH_Start_DMA()
3063 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Start_DMA()
3066 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3072 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_DMA()
3078 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_DMA()
3088 hhash->pHashInBuffPtr = pInBuffer; /* DMA transfer start address */ in HASH_Start_DMA()
3089 hhash->HashInCount = Size; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3096 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3101 inputaddr = (uint32_t)hhash->pHashInBuffPtr; /* DMA transfer start address */ in HASH_Start_DMA()
3102 inputSize = hhash->HashInCount; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3107 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_Start_DMA()
3109 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HASH_Start_DMA()
3112 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HASH_Start_DMA()
3115 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_Start_DMA()
3123 __HAL_UNLOCK(hhash); in HASH_Start_DMA()
3129 hhash->State = HAL_HASH_STATE_ERROR; in HASH_Start_DMA()
3148 HAL_StatusTypeDef HASH_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout) in HASH_Finish() argument
3151 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Finish()
3160 __HAL_LOCK(hhash); in HASH_Finish()
3163 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Finish()
3166 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Finish()
3175 hhash->State = HAL_HASH_STATE_READY; in HASH_Finish()
3178 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Finish()
3181 __HAL_UNLOCK(hhash); in HASH_Finish()
3209 HAL_StatusTypeDef HMAC_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t Si… in HMAC_Start() argument
3213 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start()
3219 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start()
3222 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start()
3227 __HAL_LOCK(hhash); in HMAC_Start()
3230 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start()
3233 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start()
3236 if (hhash->Init.KeySize > 64U) in HMAC_Start()
3247 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start()
3251 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start()
3252 hhash->pHashInBuffPtr = pInBuffer; /* Input data address, HMAC_Processing input in HMAC_Start()
3254 hhash->HashInCount = Size; /* Input data size, HMAC_Processing input in HMAC_Start()
3256hhash->HashBuffSize = Size; /* Store the input buffer size for the whole HMAC… in HMAC_Start()
3257hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address, HMAC_Processing input parameter f… in HMAC_Start()
3259hhash->HashKeyCount = hhash->Init.KeySize; /* Key size, HMAC_Processing input parameter for … in HMAC_Start()
3264 return HMAC_Processing(hhash, Timeout); in HMAC_Start()
3287 HAL_StatusTypeDef HMAC_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t… in HMAC_Start_IT() argument
3291 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_IT()
3297 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_IT()
3300 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3305 __HAL_LOCK(hhash); in HMAC_Start_IT()
3308 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_IT()
3311 hhash->HashITCounter = 1; in HMAC_Start_IT()
3314 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_IT()
3317 if (hhash->Init.KeySize > 64U) in HMAC_Start_IT()
3331 hhash->HashInCount = hhash->Init.KeySize; /* Key size */ in HMAC_Start_IT()
3332 hhash->pHashInBuffPtr = hhash->Init.pKey ; /* Key address */ in HMAC_Start_IT()
3336 hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address */ in HMAC_Start_IT()
3337 hhash->pHashMsgBuffPtr = pInBuffer; /* Input message address */ in HMAC_Start_IT()
3338 hhash->HashBuffSize = Size; /* Input message size (in bytes) */ in HMAC_Start_IT()
3339 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start_IT()
3342 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_IT()
3345 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_IT()
3347 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HMAC_Start_IT()
3352 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_IT()
3361 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3362 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3367 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3398 HAL_StatusTypeDef HMAC_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_… in HMAC_Start_DMA() argument
3404 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_DMA()
3407 assert_param(IS_HMAC_DMA_MULTIBUFFER_SIZE(hhash, Size)); in HMAC_Start_DMA()
3412 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_DMA()
3416 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HMAC_PROCESSING(hhash))))) in HMAC_Start_DMA()
3418 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_DMA()
3424 __HAL_LOCK(hhash); in HMAC_Start_DMA()
3427 if (hhash->State == HAL_HASH_STATE_READY) in HMAC_Start_DMA()
3430 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_DMA()
3433 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3436 if (hhash->Init.KeySize > 64U) in HMAC_Start_DMA()
3448hhash->HashInCount = hhash->Init.KeySize; /* Initial size for first DMA transfer (key size) … in HMAC_Start_DMA()
3449hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address … in HMAC_Start_DMA()
3450hhash->pHashInBuffPtr = hhash->Init.pKey ; /* First address passed to DMA (key address at Step 1)… in HMAC_Start_DMA()
3451hhash->pHashMsgBuffPtr = pInBuffer; /* Input data address … in HMAC_Start_DMA()
3452hhash->HashBuffSize = Size; /* input data size (in bytes) … in HMAC_Start_DMA()
3455 …inputaddr = (uint32_t)(hhash->Init.pKey); /* Address passed to DMA (start by entering Key messag… in HMAC_Start_DMA()
3456 inputSize = hhash->Init.KeySize; /* Size for first DMA transfer (in bytes) */ in HMAC_Start_DMA()
3459 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_DMA()
3462 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_DMA()
3465 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_DMA()
3471 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3474 hhash->HashInCount = Size; /* Input message address */ in HMAC_Start_DMA()
3475 hhash->pHashInBuffPtr = pInBuffer; /* Input message size in bytes */ in HMAC_Start_DMA()
3481 if (hhash->DigestCalculationDisable == RESET) in HMAC_Start_DMA()
3491 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3501 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3507 inputaddr = (uint32_t)(hhash->pHashInBuffPtr); /* Input message address */ in HMAC_Start_DMA()
3508 inputSize = hhash->HashInCount; /* Input message size in bytes */ in HMAC_Start_DMA()
3513 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HMAC_Start_DMA()
3515 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HMAC_Start_DMA()
3518 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HMAC_Start_DMA()
3521 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HMAC_Start_DMA()
3529 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3535 hhash->State = HAL_HASH_STATE_ERROR; in HMAC_Start_DMA()