Lines Matching refs:hhash
272 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag…
274 static HAL_StatusTypeDef HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, …
275 static HAL_StatusTypeDef HASH_IT(HASH_HandleTypeDef *hhash);
276 static uint32_t HASH_Write_Block_Data(HASH_HandleTypeDef *hhash);
277 static HAL_StatusTypeDef HMAC_Processing(HASH_HandleTypeDef *hhash, uint32_t Timeout);
320 HAL_StatusTypeDef HAL_HASH_Init(HASH_HandleTypeDef *hhash) in HAL_HASH_Init() argument
323 if (hhash == NULL) in HAL_HASH_Init()
329 assert_param(IS_HASH_DATATYPE(hhash->Init.DataType)); in HAL_HASH_Init()
332 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
335 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
338 …hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak (surcharged) input completion… in HAL_HASH_Init()
339 …hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak (surcharged) digest computati… in HAL_HASH_Init()
341 …hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak (surcharged) error callback */ in HAL_HASH_Init()
342 if (hhash->MspInitCallback == NULL) in HAL_HASH_Init()
344 hhash->MspInitCallback = HAL_HASH_MspInit; in HAL_HASH_Init()
348 hhash->MspInitCallback(hhash); in HAL_HASH_Init()
351 if (hhash->State == HAL_HASH_STATE_RESET) in HAL_HASH_Init()
354 hhash->Lock = HAL_UNLOCKED; in HAL_HASH_Init()
357 HAL_HASH_MspInit(hhash); in HAL_HASH_Init()
362 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_Init()
365 hhash->HashInCount = 0; in HAL_HASH_Init()
366 hhash->HashBuffSize = 0; in HAL_HASH_Init()
367 hhash->HashITCounter = 0; in HAL_HASH_Init()
368 hhash->NbWordsAlreadyPushed = 0; in HAL_HASH_Init()
370 hhash->DigestCalculationDisable = RESET; in HAL_HASH_Init()
372 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_Init()
374 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HAL_HASH_Init()
377 MODIFY_REG(HASH->CR, HASH_CR_DATATYPE, hhash->Init.DataType); in HAL_HASH_Init()
379 hhash->Status = HAL_OK; in HAL_HASH_Init()
382 hhash->State = HAL_HASH_STATE_READY; in HAL_HASH_Init()
385 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_Init()
396 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_DeInit() argument
399 if (hhash == NULL) in HAL_HASH_DeInit()
405 hhash->State = HAL_HASH_STATE_BUSY; in HAL_HASH_DeInit()
408 hhash->Phase = HAL_HASH_PHASE_READY; in HAL_HASH_DeInit()
411 hhash->HashInCount = 0; in HAL_HASH_DeInit()
412 hhash->HashBuffSize = 0; in HAL_HASH_DeInit()
413 hhash->HashITCounter = 0; in HAL_HASH_DeInit()
415 hhash->DigestCalculationDisable = RESET; in HAL_HASH_DeInit()
418 if (hhash->MspDeInitCallback == NULL) in HAL_HASH_DeInit()
420 hhash->MspDeInitCallback = HAL_HASH_MspDeInit; in HAL_HASH_DeInit()
424 hhash->MspDeInitCallback(hhash); in HAL_HASH_DeInit()
427 HAL_HASH_MspDeInit(hhash); in HAL_HASH_DeInit()
432 hhash->Status = HAL_OK; in HAL_HASH_DeInit()
435 hhash->State = HAL_HASH_STATE_RESET; in HAL_HASH_DeInit()
438 hhash->ErrorCode = HAL_HASH_ERROR_NONE; in HAL_HASH_DeInit()
441 hhash->Accumulation = 0U; in HAL_HASH_DeInit()
452 __weak void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspInit() argument
455 UNUSED(hhash); in HAL_HASH_MspInit()
467 __weak void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash) in HAL_HASH_MspDeInit() argument
470 UNUSED(hhash); in HAL_HASH_MspDeInit()
485 __weak void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_InCpltCallback() argument
488 UNUSED(hhash); in HAL_HASH_InCpltCallback()
502 __weak void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_DgstCpltCallback() argument
505 UNUSED(hhash); in HAL_HASH_DgstCpltCallback()
519 __weak void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash) in HAL_HASH_ErrorCallback() argument
522 UNUSED(hhash); in HAL_HASH_ErrorCallback()
544 HAL_StatusTypeDef HAL_HASH_RegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef C… in HAL_HASH_RegisterCallback() argument
552 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
556 __HAL_LOCK(hhash); in HAL_HASH_RegisterCallback()
558 if (HAL_HASH_STATE_READY == hhash->State) in HAL_HASH_RegisterCallback()
563 hhash->InCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
567 hhash->DgstCpltCallback = pCallback; in HAL_HASH_RegisterCallback()
571 hhash->ErrorCallback = pCallback; in HAL_HASH_RegisterCallback()
575 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
579 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
584 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
590 else if (HAL_HASH_STATE_RESET == hhash->State) in HAL_HASH_RegisterCallback()
595 hhash->MspInitCallback = pCallback; in HAL_HASH_RegisterCallback()
599 hhash->MspDeInitCallback = pCallback; in HAL_HASH_RegisterCallback()
604 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
613 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_RegisterCallback()
619 __HAL_UNLOCK(hhash); in HAL_HASH_RegisterCallback()
636 HAL_StatusTypeDef HAL_HASH_UnRegisterCallback(HASH_HandleTypeDef *hhash, HAL_HASH_CallbackIDTypeDef… in HAL_HASH_UnRegisterCallback() argument
641 __HAL_LOCK(hhash); in HAL_HASH_UnRegisterCallback()
643 if (HAL_HASH_STATE_READY == hhash->State) in HAL_HASH_UnRegisterCallback()
648 …hhash->InCpltCallback = HAL_HASH_InCpltCallback; /* Legacy weak (surcharged) input completion … in HAL_HASH_UnRegisterCallback()
652 …hhash->DgstCpltCallback = HAL_HASH_DgstCpltCallback; /* Legacy weak (surcharged) digest computation in HAL_HASH_UnRegisterCallback()
657 … hhash->ErrorCallback = HAL_HASH_ErrorCallback; /* Legacy weak (surcharged) error callback */ in HAL_HASH_UnRegisterCallback()
661 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak (surcharged) Msp Init */ in HAL_HASH_UnRegisterCallback()
665 … hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak (surcharged) Msp DeInit */ in HAL_HASH_UnRegisterCallback()
670 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
676 else if (HAL_HASH_STATE_RESET == hhash->State) in HAL_HASH_UnRegisterCallback()
681 hhash->MspInitCallback = HAL_HASH_MspInit; /* Legacy weak (surcharged) Msp Init */ in HAL_HASH_UnRegisterCallback()
685 … hhash->MspDeInitCallback = HAL_HASH_MspDeInit; /* Legacy weak (surcharged) Msp DeInit */ in HAL_HASH_UnRegisterCallback()
690 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
699 hhash->ErrorCode |= HAL_HASH_ERROR_INVALID_CALLBACK; in HAL_HASH_UnRegisterCallback()
705 __HAL_UNLOCK(hhash); in HAL_HASH_UnRegisterCallback()
754 HAL_StatusTypeDef HAL_HASH_MD5_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uin… in HAL_HASH_MD5_Start() argument
758 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start()
781 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_MD5_Accmlt() argument
783 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt()
796 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_MD5_Accmlt_End() argument
799 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End()
813 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HASH_SHA1_Start() argument
817 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start()
840 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, u… in HAL_HASH_SHA1_Accmlt() argument
842 return HASH_Accumulate(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt()
855 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffe… in HAL_HASH_SHA1_Accmlt_End() argument
858 return HASH_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_End()
903 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, … in HAL_HASH_MD5_Start_IT() argument
906 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start_IT()
927 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_MD5_Accmlt_IT() argument
929 return HASH_Accumulate_IT(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_IT()
941 HAL_StatusTypeDef HAL_HASH_MD5_Accmlt_End_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuf… in HAL_HASH_MD5_Accmlt_End_IT() argument
944 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Accmlt_End_IT()
957 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_SHA1_Start_IT() argument
960 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start_IT()
982 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_SHA1_Accmlt_IT() argument
984 return HASH_Accumulate_IT(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_IT()
996 HAL_StatusTypeDef HAL_HASH_SHA1_Accmlt_End_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBu… in HAL_HASH_SHA1_Accmlt_End_IT() argument
999 return HASH_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Accmlt_End_IT()
1011 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash) in HAL_HASH_IRQHandler() argument
1013 hhash->Status = HASH_IT(hhash); in HAL_HASH_IRQHandler()
1014 if (hhash->Status != HAL_OK) in HAL_HASH_IRQHandler()
1016 hhash->ErrorCode |= HAL_HASH_ERROR_IT; in HAL_HASH_IRQHandler()
1018 hhash->ErrorCallback(hhash); in HAL_HASH_IRQHandler()
1020 HAL_HASH_ErrorCallback(hhash); in HAL_HASH_IRQHandler()
1023 hhash->Status = HAL_OK; in HAL_HASH_IRQHandler()
1065 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HASH_MD5_Start_DMA() argument
1067 return HASH_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HASH_MD5_Start_DMA()
1080 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Time… in HAL_HASH_MD5_Finish() argument
1082 return HASH_Finish(hhash, pOutBuffer, Timeout); in HAL_HASH_MD5_Finish()
1095 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HASH_SHA1_Start_DMA() argument
1097 return HASH_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HASH_SHA1_Start_DMA()
1111 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Tim… in HAL_HASH_SHA1_Finish() argument
1113 return HASH_Finish(hhash, pOutBuffer, Timeout); in HAL_HASH_SHA1_Finish()
1152 HAL_StatusTypeDef HAL_HMAC_MD5_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uin… in HAL_HMAC_MD5_Start() argument
1156 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start()
1172 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, ui… in HAL_HMAC_SHA1_Start() argument
1176 return HMAC_Start(hhash, pInBuffer, Size, pOutBuffer, Timeout, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start()
1215 HAL_StatusTypeDef HAL_HMAC_MD5_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, … in HAL_HMAC_MD5_Start_IT() argument
1218 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_IT()
1233 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HMAC_SHA1_Start_IT() argument
1236 return HMAC_Start_IT(hhash, pInBuffer, Size, pOutBuffer, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_IT()
1280 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer,… in HAL_HMAC_MD5_Start_DMA() argument
1282 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_MD5); in HAL_HMAC_MD5_Start_DMA()
1299 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer… in HAL_HMAC_SHA1_Start_DMA() argument
1301 return HMAC_Start_DMA(hhash, pInBuffer, Size, HASH_ALGOSELECTION_SHA1); in HAL_HMAC_SHA1_Start_DMA()
1346 HAL_HASH_StateTypeDef HAL_HASH_GetState(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetState() argument
1348 return hhash->State; in HAL_HASH_GetState()
1359 HAL_StatusTypeDef HAL_HASH_GetStatus(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetStatus() argument
1361 return hhash->Status; in HAL_HASH_GetStatus()
1377 void HAL_HASH_ContextSaving(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_ContextSaving() argument
1384 UNUSED(hhash); in HAL_HASH_ContextSaving()
1418 void HAL_HASH_ContextRestoring(HASH_HandleTypeDef *hhash, uint8_t *pMemBuffer) in HAL_HASH_ContextRestoring() argument
1425 UNUSED(hhash); in HAL_HASH_ContextRestoring()
1461 void HAL_HASH_SwFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_SwFeed_ProcessSuspend() argument
1464 hhash->SuspendRequest = HAL_HASH_SUSPEND; in HAL_HASH_SwFeed_ProcessSuspend()
1476 HAL_StatusTypeDef HAL_HASH_DMAFeed_ProcessSuspend(HASH_HandleTypeDef *hhash) in HAL_HASH_DMAFeed_ProcessSuspend() argument
1482 if (hhash->State == HAL_HASH_STATE_READY) in HAL_HASH_DMAFeed_ProcessSuspend()
1490 tmp_remaining_DMATransferSize_inWords = ((DMA_Stream_TypeDef *)hhash->hdmain->Instance)->NDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1500 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1511 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, RESET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1521 if (HAL_DMA_Abort(hhash->hdmain) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1530 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HAL_HASH_DMAFeed_ProcessSuspend()
1542 tmp_remaining_DMATransferSize_inWords = ((DMA_Stream_TypeDef *)hhash->hdmain->Instance)->NDTR; in HAL_HASH_DMAFeed_ProcessSuspend()
1561 tmp_initial_DMATransferSize_inWords = (((hhash->HashInCount % 4U) != 0U) ? \ in HAL_HASH_DMAFeed_ProcessSuspend()
1562 … ((hhash->HashInCount + 3U) / 4U) : (hhash->HashInCount / 4U)); in HAL_HASH_DMAFeed_ProcessSuspend()
1568 tmp_words_already_pushed = hhash->NbWordsAlreadyPushed; in HAL_HASH_DMAFeed_ProcessSuspend()
1577 …hhash->pHashInBuffPtr += 4U * (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSiz… in HAL_HASH_DMAFeed_ProcessSuspend()
1580 hhash->HashInCount = 4U * tmp_remaining_DMATransferSize_inWords; in HAL_HASH_DMAFeed_ProcessSuspend()
1585 hhash->State = HAL_HASH_STATE_SUSPENDED; in HAL_HASH_DMAFeed_ProcessSuspend()
1597 uint32_t HAL_HASH_GetError(const HASH_HandleTypeDef *hhash) in HAL_HASH_GetError() argument
1600 return hhash->ErrorCode; in HAL_HASH_GetError()
1624 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAXferCplt() local
1629 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAXferCplt()
1640 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1644 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1646 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1657 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HASH_DMAXferCplt()
1662 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1668 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1670 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1675 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_DMAXferCplt()
1677 inputaddr = (uint32_t)hhash->pHashMsgBuffPtr; /* DMA transfer start address */ in HASH_DMAXferCplt()
1678 buffersize = hhash->HashBuffSize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1679 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_DMAXferCplt()
1682 hhash->HashInCount = hhash->HashBuffSize; /* Initial DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1683 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr ; /* DMA transfer start address */ in HASH_DMAXferCplt()
1685 … hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1689 if (hhash->DigestCalculationDisable != RESET) in HASH_DMAXferCplt()
1696 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAXferCplt()
1698 hhash->InCpltCallback(hhash); in HASH_DMAXferCplt()
1700 HAL_HASH_InCpltCallback(hhash); in HASH_DMAXferCplt()
1708 inputaddr = (uint32_t)hhash->Init.pKey; /* DMA transfer start address */ in HASH_DMAXferCplt()
1709 buffersize = hhash->Init.KeySize; /* DMA transfer size (in bytes) */ in HASH_DMAXferCplt()
1710 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_DMAXferCplt()
1712 …hhash->HashInCount = hhash->Init.KeySize; /* Initial size for second DMA transfer (input data)… in HASH_DMAXferCplt()
1713 …hhash->pHashInBuffPtr = hhash->Init.pKey ; /* address passed to DMA, now entering data message … in HASH_DMAXferCplt()
1715 hhash->NbWordsAlreadyPushed = 0U; /* Reset number of words already pushed */ in HASH_DMAXferCplt()
1723 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_DMAXferCplt()
1726 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_DMAXferCplt()
1737 hhash->State = HAL_HASH_STATE_ERROR; in HASH_DMAXferCplt()
1742 hhash->State = HAL_HASH_STATE_BUSY; in HASH_DMAXferCplt()
1759 HASH_HandleTypeDef *hhash = (HASH_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in HASH_DMAError() local
1761 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_DMAError()
1763 hhash->ErrorCode |= HAL_HASH_ERROR_DMA; in HASH_DMAError()
1766 hhash->State = HAL_HASH_STATE_READY; in HASH_DMAError()
1768 hhash->Status = HAL_ERROR; in HASH_DMAError()
1770 hhash->ErrorCallback(hhash); in HASH_DMAError()
1772 HAL_HASH_ErrorCallback(hhash); in HASH_DMAError()
1775 hhash->Status = HAL_OK; in HASH_DMAError()
1791 static HAL_StatusTypeDef HASH_WriteData(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, … in HASH_WriteData() argument
1805 if ((hhash->SuspendRequest == HAL_HASH_SUSPEND) && (((buffercounter * 4U) + 4U) < Size)) in HASH_WriteData()
1810 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_WriteData()
1820 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_WriteData()
1824 … if ((hhash->Phase == HAL_HASH_PHASE_PROCESS) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2)) in HASH_WriteData()
1827 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1829 hhash->HashInCount = Size - ((buffercounter * 4U) + 4U); in HASH_WriteData()
1831 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HASH_WriteData()
1834 hhash->pHashKeyBuffPtr = (uint8_t *)inputaddr; in HASH_WriteData()
1836 hhash->HashKeyCount = Size - ((buffercounter * 4U) + 4U); in HASH_WriteData()
1841 hhash->State = HAL_HASH_STATE_READY; in HASH_WriteData()
1842 __HAL_UNLOCK(hhash); in HASH_WriteData()
1847 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_WriteData()
1858 if (hhash->Init.DataType == HASH_DATATYPE_16B) in HASH_WriteData()
1872 else if ((hhash->Init.DataType == HASH_DATATYPE_8B) in HASH_WriteData()
1873 || (hhash->Init.DataType == HASH_DATATYPE_1B)) /* byte swap or bit swap or */ in HASH_WriteData()
1950 static HAL_StatusTypeDef HASH_WaitOnFlagUntilTimeout(HASH_HandleTypeDef *hhash, uint32_t Flag, Flag… in HASH_WaitOnFlagUntilTimeout() argument
1966 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
1968 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
1971 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
1988 hhash->State = HAL_HASH_STATE_READY; in HASH_WaitOnFlagUntilTimeout()
1990 hhash->Status = HAL_TIMEOUT; in HASH_WaitOnFlagUntilTimeout()
1993 __HAL_UNLOCK(hhash); in HASH_WaitOnFlagUntilTimeout()
2013 static HAL_StatusTypeDef HASH_IT(HASH_HandleTypeDef *hhash) in HASH_IT() argument
2015 if (hhash->State == HAL_HASH_STATE_BUSY) in HASH_IT()
2018 if (hhash->HashITCounter == 0U) in HASH_IT()
2024 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2027 else if (hhash->HashITCounter == 1U) in HASH_IT()
2032 hhash->HashITCounter = 2U; in HASH_IT()
2038 hhash->HashITCounter = 3U; in HASH_IT()
2045 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HASH_IT()
2050 hhash->State = HAL_HASH_STATE_READY; in HASH_IT()
2052 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_IT()
2055 hhash->DgstCpltCallback(hhash); in HASH_IT()
2057 HAL_HASH_DgstCpltCallback(hhash); in HASH_IT()
2069 if ((hhash->HashInCount != 0U) && (hhash->SuspendRequest == HAL_HASH_SUSPEND)) in HASH_IT()
2075 hhash->SuspendRequest = HAL_HASH_SUSPEND_NONE; in HASH_IT()
2078 hhash->State = HAL_HASH_STATE_SUSPENDED; in HASH_IT()
2085 if (HASH_Write_Block_Data(hhash) == HASH_DIGEST_CALCULATION_STARTED) in HASH_IT()
2090 hhash->InCpltCallback(hhash); in HASH_IT()
2092 HAL_HASH_InCpltCallback(hhash); in HASH_IT()
2095 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HASH_IT()
2098 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2105 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; /* Move phase from Step 1 to Step 2 */ in HASH_IT()
2106 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); /* Set NBLW for the input message */ in HASH_IT()
2107 hhash->HashInCount = hhash->HashBuffSize; /* Set the input data size (in bytes) */ in HASH_IT()
2108 hhash->pHashInBuffPtr = hhash->pHashMsgBuffPtr; /* Set the input data address */ in HASH_IT()
2109 … hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2113 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HASH_IT()
2116 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, HASH_TIMEOUTVALUE) != HAL_OK) in HASH_IT()
2123 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; /* Move phase from Step 2 to Step 3 */ in HASH_IT()
2124 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); /* Set NBLW for the key */ in HASH_IT()
2125 hhash->HashInCount = hhash->Init.KeySize; /* Set the key size (in bytes) */ in HASH_IT()
2126 hhash->pHashInBuffPtr = hhash->Init.pKey; /* Set the key address */ in HASH_IT()
2127 … hhash->HashITCounter = 1; /* Set ITCounter to 1 to indicate the start in HASH_IT()
2154 static uint32_t HASH_Write_Block_Data(HASH_HandleTypeDef *hhash) in HASH_Write_Block_Data() argument
2162 if (hhash->HashInCount > 64U) in HASH_Write_Block_Data()
2164 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2174 if (hhash->HashITCounter == 2U) in HASH_Write_Block_Data()
2177 if (hhash->HashInCount >= 68U) in HASH_Write_Block_Data()
2182 hhash->HashInCount -= 68U; in HASH_Write_Block_Data()
2183 hhash->pHashInBuffPtr += 68U; in HASH_Write_Block_Data()
2188 hhash->HashInCount = 0U; in HASH_Write_Block_Data()
2196 hhash->HashInCount -= 64U; in HASH_Write_Block_Data()
2197 hhash->pHashInBuffPtr += 64U; in HASH_Write_Block_Data()
2206 inputaddr = (uint32_t)hhash->pHashInBuffPtr; in HASH_Write_Block_Data()
2208 inputcounter = hhash->HashInCount; in HASH_Write_Block_Data()
2219 if (hhash->Accumulation == 1U) in HASH_Write_Block_Data()
2225 hhash->Accumulation = 0U; in HASH_Write_Block_Data()
2227 hhash->State = HAL_HASH_STATE_READY; in HASH_Write_Block_Data()
2230 hhash->InCpltCallback(hhash); in HASH_Write_Block_Data()
2232 HAL_HASH_InCpltCallback(hhash); in HASH_Write_Block_Data()
2246 hhash->HashInCount = 0; in HASH_Write_Block_Data()
2259 static HAL_StatusTypeDef HMAC_Processing(HASH_HandleTypeDef *hhash, uint32_t Timeout) in HMAC_Processing() argument
2262 if ((hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_1) && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2263 && (hhash->Phase != HAL_HASH_PHASE_HMAC_STEP_3)) in HMAC_Processing()
2266 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2269 __HAL_UNLOCK(hhash); in HMAC_Processing()
2276 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) in HMAC_Processing()
2280 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2283 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2284 if (hhash->Status != HAL_OK) in HMAC_Processing()
2286 return hhash->Status; in HMAC_Processing()
2290 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2293 __HAL_UNLOCK(hhash); in HMAC_Processing()
2303 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2309 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_2; in HMAC_Processing()
2318 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Processing()
2322 __HAL_HASH_SET_NBVALIDBITS(hhash->HashBuffSize); in HMAC_Processing()
2325 hhash->Status = HASH_WriteData(hhash, hhash->pHashInBuffPtr, hhash->HashInCount); in HMAC_Processing()
2326 if (hhash->Status != HAL_OK) in HMAC_Processing()
2328 return hhash->Status; in HMAC_Processing()
2332 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2335 __HAL_UNLOCK(hhash); in HMAC_Processing()
2345 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_BUSY, SET, Timeout) != HAL_OK) in HMAC_Processing()
2351 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_3; in HMAC_Processing()
2355 hhash->pHashKeyBuffPtr = hhash->Init.pKey; in HMAC_Processing()
2356 hhash->HashKeyCount = hhash->Init.KeySize; in HMAC_Processing()
2365 if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_3) in HMAC_Processing()
2369 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Processing()
2372 hhash->Status = HASH_WriteData(hhash, hhash->pHashKeyBuffPtr, hhash->HashKeyCount); in HMAC_Processing()
2373 if (hhash->Status != HAL_OK) in HMAC_Processing()
2375 return hhash->Status; in HMAC_Processing()
2379 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HMAC_Processing()
2382 __HAL_UNLOCK(hhash); in HMAC_Processing()
2392 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HMAC_Processing()
2398 HASH_GetDigest(hhash->pHashOutBuffPtr, HASH_DIGEST_LENGTH()); in HMAC_Processing()
2401 hhash->Phase = HAL_HASH_PHASE_READY; in HMAC_Processing()
2405 hhash->State = HAL_HASH_STATE_READY; in HMAC_Processing()
2408 __HAL_UNLOCK(hhash); in HMAC_Processing()
2427 HAL_StatusTypeDef HASH_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t Si… in HASH_Start() argument
2433 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start()
2442 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2447 __HAL_LOCK(hhash); in HASH_Start()
2450 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start()
2453 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2467 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start()
2469 else if (hhash->Phase == HAL_HASH_PHASE_PROCESS) in HASH_Start()
2474 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2479 pInBuffer_tmp = (const uint8_t *)hhash->pHashInBuffPtr; in HASH_Start()
2480 Size_tmp = hhash->HashInCount; in HASH_Start()
2493 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start()
2498 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2501 __HAL_UNLOCK(hhash); in HASH_Start()
2509 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Start()
2510 if (hhash->Status != HAL_OK) in HASH_Start()
2512 return hhash->Status; in HASH_Start()
2516 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Start()
2522 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Start()
2531 hhash->State = HAL_HASH_STATE_READY; in HASH_Start()
2534 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Start()
2539 __HAL_UNLOCK(hhash); in HASH_Start()
2565 HAL_StatusTypeDef HASH_Accumulate(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32… in HASH_Accumulate() argument
2570 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate()
2584 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2589 __HAL_LOCK(hhash); in HASH_Accumulate()
2592 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2595 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2600 …pInBuffer_tmp = (const uint8_t *)hhash->pHashInBuffPtr; /* pInBuffer_tmp is set to the input data… in HASH_Accumulate()
2601 Size_tmp = hhash->HashInCount; /* Size_tmp contains the input data size in bytes */ in HASH_Accumulate()
2607 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate()
2615 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate()
2622 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate()
2627 hhash->Status = HASH_WriteData(hhash, pInBuffer_tmp, Size_tmp); in HASH_Accumulate()
2628 if (hhash->Status != HAL_OK) in HASH_Accumulate()
2630 return hhash->Status; in HASH_Accumulate()
2634 if (hhash->State != HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate()
2637 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate()
2641 __HAL_UNLOCK(hhash); in HASH_Accumulate()
2669 HAL_StatusTypeDef HASH_Accumulate_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uin… in HASH_Accumulate_IT() argument
2672 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Accumulate_IT()
2688 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2693 __HAL_LOCK(hhash); in HASH_Accumulate_IT()
2696 if (hhash->State == HAL_HASH_STATE_SUSPENDED) in HASH_Accumulate_IT()
2699 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2704 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Accumulate_IT()
2707 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Accumulate_IT()
2711 hhash->HashITCounter = 1; in HASH_Accumulate_IT()
2715 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Accumulate_IT()
2719 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Accumulate_IT()
2738 hhash->State = HAL_HASH_STATE_READY; in HASH_Accumulate_IT()
2741 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2748 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Accumulate_IT()
2750 …hhash->pHashInBuffPtr = (uint8_t *)inputaddr; /* Points at data which will be fed to the Per… in HASH_Accumulate_IT()
2760 hhash->Accumulation = 1U; in HASH_Accumulate_IT()
2763 __HAL_UNLOCK(hhash); in HASH_Accumulate_IT()
2791 HAL_StatusTypeDef HASH_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t… in HASH_Start_IT() argument
2795 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_IT()
2807 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_IT()
2812 __HAL_LOCK(hhash); in HASH_Start_IT()
2815 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_IT()
2818 hhash->HashITCounter = 1; in HASH_Start_IT()
2821 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_IT()
2830 hhash->HashInCount = SizeVar; /* Counter used to keep track of number of data in HASH_Start_IT()
2832 … hhash->pHashInBuffPtr = pInBuffer; /* Points at data which will be fed to the Peripheral at in HASH_Start_IT()
2839 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2841 else if ((hhash->Phase == HAL_HASH_PHASE_PROCESS) && (SizeVar < 4U)) in HASH_Start_IT()
2847 hhash->HashInCount = SizeVar; in HASH_Start_IT()
2848 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_Start_IT()
2851 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2860 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_IT()
2881 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2886 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2899 hhash->HashInCount = SizeVar; in HASH_Start_IT()
2900 hhash->pHashInBuffPtr = (uint8_t *)inputaddr; in HASH_Start_IT()
2903 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2906 hhash->HashITCounter = 3; /* 'cruise-speed' reached during a previous buffer processing */ in HASH_Start_IT()
2917 hhash->pHashOutBuffPtr = pOutBuffer; /* Points at the computed digest */ in HASH_Start_IT()
2920 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2932 __HAL_UNLOCK(hhash); in HASH_Start_IT()
2957 HAL_StatusTypeDef HASH_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_… in HASH_Start_DMA() argument
2963 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HASH_Start_DMA()
2973 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HASH_PROCESSING(hhash))))) in HASH_Start_DMA()
2975 hhash->State = HAL_HASH_STATE_READY; in HASH_Start_DMA()
2981 __HAL_LOCK(hhash); in HASH_Start_DMA()
2984 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Start_DMA()
2987 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
2993 if (hhash->Phase == HAL_HASH_PHASE_READY) in HASH_Start_DMA()
2999 hhash->Phase = HAL_HASH_PHASE_PROCESS; in HASH_Start_DMA()
3009 hhash->pHashInBuffPtr = pInBuffer; /* DMA transfer start address */ in HASH_Start_DMA()
3010 hhash->HashInCount = Size; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3017 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Start_DMA()
3022 inputaddr = (uint32_t)hhash->pHashInBuffPtr; /* DMA transfer start address */ in HASH_Start_DMA()
3023 inputSize = hhash->HashInCount; /* DMA transfer size (in bytes) */ in HASH_Start_DMA()
3028 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HASH_Start_DMA()
3030 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HASH_Start_DMA()
3033 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HASH_Start_DMA()
3036 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HASH_Start_DMA()
3044 __HAL_UNLOCK(hhash); in HASH_Start_DMA()
3050 hhash->State = HAL_HASH_STATE_ERROR; in HASH_Start_DMA()
3069 HAL_StatusTypeDef HASH_Finish(HASH_HandleTypeDef *hhash, uint8_t *pOutBuffer, uint32_t Timeout) in HASH_Finish() argument
3072 if (hhash->State == HAL_HASH_STATE_READY) in HASH_Finish()
3081 __HAL_LOCK(hhash); in HASH_Finish()
3084 hhash->State = HAL_HASH_STATE_BUSY; in HASH_Finish()
3087 if (HASH_WaitOnFlagUntilTimeout(hhash, HASH_FLAG_DCIS, RESET, Timeout) != HAL_OK) in HASH_Finish()
3096 hhash->State = HAL_HASH_STATE_READY; in HASH_Finish()
3099 hhash->Phase = HAL_HASH_PHASE_READY; in HASH_Finish()
3102 __HAL_UNLOCK(hhash); in HASH_Finish()
3130 HAL_StatusTypeDef HMAC_Start(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t Si… in HMAC_Start() argument
3134 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start()
3140 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start()
3143 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start()
3148 __HAL_LOCK(hhash); in HMAC_Start()
3151 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start()
3154 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start()
3157 if (hhash->Init.KeySize > 64U) in HMAC_Start()
3168 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start()
3172 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start()
3173 hhash->pHashInBuffPtr = pInBuffer; /* Input data address, HMAC_Processing input in HMAC_Start()
3175 hhash->HashInCount = Size; /* Input data size, HMAC_Processing input in HMAC_Start()
3177 …hhash->HashBuffSize = Size; /* Store the input buffer size for the whole HMAC… in HMAC_Start()
3178 …hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address, HMAC_Processing input parameter f… in HMAC_Start()
3180 …hhash->HashKeyCount = hhash->Init.KeySize; /* Key size, HMAC_Processing input parameter for … in HMAC_Start()
3185 return HMAC_Processing(hhash, Timeout); in HMAC_Start()
3208 HAL_StatusTypeDef HMAC_Start_IT(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_t… in HMAC_Start_IT() argument
3212 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_IT()
3218 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_IT()
3221 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3226 __HAL_LOCK(hhash); in HMAC_Start_IT()
3229 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_IT()
3232 hhash->HashITCounter = 1; in HMAC_Start_IT()
3235 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_IT()
3238 if (hhash->Init.KeySize > 64U) in HMAC_Start_IT()
3252 hhash->HashInCount = hhash->Init.KeySize; /* Key size */ in HMAC_Start_IT()
3253 hhash->pHashInBuffPtr = hhash->Init.pKey ; /* Key address */ in HMAC_Start_IT()
3257 hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address */ in HMAC_Start_IT()
3258 hhash->pHashMsgBuffPtr = pInBuffer; /* Input message address */ in HMAC_Start_IT()
3259 hhash->HashBuffSize = Size; /* Input message size (in bytes) */ in HMAC_Start_IT()
3260 hhash->pHashOutBuffPtr = pOutBuffer; /* Output digest address */ in HMAC_Start_IT()
3263 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_IT()
3266 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_IT()
3268 …else if ((hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_1) || (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP… in HMAC_Start_IT()
3273 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_IT()
3282 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3283 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_IT()
3288 __HAL_UNLOCK(hhash); in HMAC_Start_IT()
3319 HAL_StatusTypeDef HMAC_Start_DMA(HASH_HandleTypeDef *hhash, const uint8_t *const pInBuffer, uint32_… in HMAC_Start_DMA() argument
3325 HAL_HASH_StateTypeDef State_tmp = hhash->State; in HMAC_Start_DMA()
3330 …if ((pInBuffer == NULL) || (Size == 0U) || (hhash->Init.pKey == NULL) || (hhash->Init.KeySize == 0… in HMAC_Start_DMA()
3334 ((hhash->Phase != HAL_HASH_PHASE_READY) && (!(IS_HMAC_PROCESSING(hhash))))) in HMAC_Start_DMA()
3336 hhash->State = HAL_HASH_STATE_READY; in HMAC_Start_DMA()
3342 __HAL_LOCK(hhash); in HMAC_Start_DMA()
3345 if (hhash->State == HAL_HASH_STATE_READY) in HMAC_Start_DMA()
3348 if (hhash->Phase == HAL_HASH_PHASE_READY) in HMAC_Start_DMA()
3351 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3353 if (hhash->Init.KeySize > 64U) in HMAC_Start_DMA()
3365 …hhash->HashInCount = hhash->Init.KeySize; /* Initial size for first DMA transfer (key size) … in HMAC_Start_DMA()
3366 …hhash->pHashKeyBuffPtr = hhash->Init.pKey; /* Key address … in HMAC_Start_DMA()
3367 …hhash->pHashInBuffPtr = hhash->Init.pKey ; /* First address passed to DMA (key address at Step 1)… in HMAC_Start_DMA()
3368 …hhash->pHashMsgBuffPtr = pInBuffer; /* Input data address … in HMAC_Start_DMA()
3369 …hhash->HashBuffSize = Size; /* input data size (in bytes) … in HMAC_Start_DMA()
3372 …inputaddr = (uint32_t)(hhash->Init.pKey); /* Address passed to DMA (start by entering Key messag… in HMAC_Start_DMA()
3373 inputSize = hhash->Init.KeySize; /* Size for first DMA transfer (in bytes) */ in HMAC_Start_DMA()
3376 __HAL_HASH_SET_NBVALIDBITS(hhash->Init.KeySize); in HMAC_Start_DMA()
3379 hhash->Phase = HAL_HASH_PHASE_HMAC_STEP_1; in HMAC_Start_DMA()
3382 else if (hhash->Phase == HAL_HASH_PHASE_HMAC_STEP_2) in HMAC_Start_DMA()
3388 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3391 hhash->HashInCount = Size; /* Input message address */ in HMAC_Start_DMA()
3392 hhash->pHashInBuffPtr = pInBuffer; /* Input message size in bytes */ in HMAC_Start_DMA()
3398 if (hhash->DigestCalculationDisable == RESET) in HMAC_Start_DMA()
3407 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3417 hhash->State = HAL_HASH_STATE_BUSY; in HMAC_Start_DMA()
3423 inputaddr = (uint32_t)(hhash->pHashInBuffPtr); /* Input message address */ in HMAC_Start_DMA()
3424 inputSize = hhash->HashInCount; /* Input message size in bytes */ in HMAC_Start_DMA()
3429 hhash->hdmain->XferCpltCallback = HASH_DMAXferCplt; in HMAC_Start_DMA()
3431 hhash->hdmain->XferErrorCallback = HASH_DMAError; in HMAC_Start_DMA()
3434 hhash->NbWordsAlreadyPushed = HASH_NBW_PUSHED(); in HMAC_Start_DMA()
3437 status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN, \ in HMAC_Start_DMA()
3445 __HAL_UNLOCK(hhash); in HMAC_Start_DMA()
3451 hhash->State = HAL_HASH_STATE_ERROR; in HMAC_Start_DMA()