Lines Matching refs:hcryp
369 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_…
373 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint32_t KeySize);
374 static void CRYP_AES_IT(CRYP_HandleTypeDef *hcryp);
375 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
376 static void CRYP_GCMCCM_SetPayloadPhase_IT(CRYP_HandleTypeDef *hcryp);
377 static void CRYP_GCMCCM_SetHeaderPhase_IT(CRYP_HandleTypeDef *hcryp);
378 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase_DMA(CRYP_HandleTypeDef *hcryp);
379 static HAL_StatusTypeDef CRYP_AESGCM_Process_DMA(CRYP_HandleTypeDef *hcryp);
380 static HAL_StatusTypeDef CRYP_AESGCM_Process_IT(CRYP_HandleTypeDef *hcryp);
381 static HAL_StatusTypeDef CRYP_AESGCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
382 static HAL_StatusTypeDef CRYP_AESCCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
383 static HAL_StatusTypeDef CRYP_AESCCM_Process_IT(CRYP_HandleTypeDef *hcryp);
384 static HAL_StatusTypeDef CRYP_AESCCM_Process_DMA(CRYP_HandleTypeDef *hcryp);
386 static HAL_StatusTypeDef CRYP_AES_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
387 static HAL_StatusTypeDef CRYP_AES_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
388 static HAL_StatusTypeDef CRYP_AES_Decrypt_IT(CRYP_HandleTypeDef *hcryp);
389 static HAL_StatusTypeDef CRYP_AES_Encrypt_IT(CRYP_HandleTypeDef *hcryp);
390 static HAL_StatusTypeDef CRYP_AES_Decrypt_DMA(CRYP_HandleTypeDef *hcryp);
392 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
393 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
395 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
397 static HAL_StatusTypeDef CRYP_WaitOnCCFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
400 static void CRYP_Read_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output);
401 static void CRYP_Write_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input);
403 static void CRYP_Read_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output, uint32_t Al…
405 static void CRYP_Write_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint32_t Al…
406 static void CRYP_PhaseProcessingResume(CRYP_HandleTypeDef *hcryp);
454 HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Init() argument
457 if (hcryp == NULL) in HAL_CRYP_Init()
463 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
470 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
479 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
481 assert_param(IS_CRYP_KEYSIZE(hcryp->Init.KeySize)); in HAL_CRYP_Init()
482 assert_param(IS_CRYP_ALGORITHM(hcryp->Init.Algorithm)); in HAL_CRYP_Init()
483 assert_param(IS_CRYP_KEYMODE(hcryp->Init.KeyMode)); in HAL_CRYP_Init()
484 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_BYTE) in HAL_CRYP_Init()
491 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
493 assert_param(IS_SAES_KEYSIZE(hcryp->Init.KeySize)); in HAL_CRYP_Init()
494 assert_param(IS_SAES_ALGORITHM(hcryp->Init.Algorithm)); in HAL_CRYP_Init()
495 assert_param(IS_SAES_KEYMODE(hcryp->Init.KeyMode)); in HAL_CRYP_Init()
496 assert_param(IS_SAES_KEYPROT(hcryp->Init.KeyProtection)); in HAL_CRYP_Init()
497 assert_param(IS_SAES_KEYSEL(hcryp->Init.KeySelect)); in HAL_CRYP_Init()
500 assert_param(IS_CRYP_DATATYPE(hcryp->Init.DataType)); in HAL_CRYP_Init()
501 assert_param(IS_CRYP_INIT(hcryp->Init.KeyIVConfigSkip)); in HAL_CRYP_Init()
505 if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_Init()
508 hcryp->Lock = HAL_UNLOCKED; in HAL_CRYP_Init()
510 hcryp->InCpltCallback = HAL_CRYP_InCpltCallback; /* Legacy InCpltCallback */ in HAL_CRYP_Init()
511 hcryp->OutCpltCallback = HAL_CRYP_OutCpltCallback; /* Legacy OutCpltCallback */ in HAL_CRYP_Init()
512 hcryp->ErrorCallback = HAL_CRYP_ErrorCallback; /* Legacy ErrorCallback */ in HAL_CRYP_Init()
514 if (hcryp->MspInitCallback == NULL) in HAL_CRYP_Init()
516 hcryp->MspInitCallback = HAL_CRYP_MspInit; /* Legacy MspInit */ in HAL_CRYP_Init()
520 hcryp->MspInitCallback(hcryp); in HAL_CRYP_Init()
523 if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_Init()
526 hcryp->Lock = HAL_UNLOCKED; in HAL_CRYP_Init()
529 HAL_CRYP_MspInit(hcryp); in HAL_CRYP_Init()
535 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
537 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, in HAL_CRYP_Init()
539 … hcryp->Init.KeyMode | hcryp->Init.DataType | hcryp->Init.KeySize | hcryp->Init.Algorithm); in HAL_CRYP_Init()
543 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
546 SAES_IP_RESET(hcryp); in HAL_CRYP_Init()
549 if (CRYP_WaitOnBUSYFlag(hcryp, CRYP_GENERAL_TIMEOUT) != HAL_OK) in HAL_CRYP_Init()
552 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Init()
555 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in HAL_CRYP_Init()
556 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Init()
559 __HAL_UNLOCK(hcryp); in HAL_CRYP_Init()
563 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, in HAL_CRYP_Init()
565 hcryp->Init.KeySelect | hcryp->Init.KeyMode | hcryp->Init.KeyProtection | \ in HAL_CRYP_Init()
566 SAES_CONV_DATATYPE(hcryp->Init.DataType) | SAES_CONV_KEYSIZE(hcryp->Init.KeySize) | \ in HAL_CRYP_Init()
567 CRYP_SAES_AlgoConversion(hcryp->Init.Algorithm, ALGOMODE_CRYP_TO_CHMOD_SAES)); in HAL_CRYP_Init()
572 hcryp->Version = HAL_GetREVID(); in HAL_CRYP_Init()
575 hcryp->ErrorCode = HAL_CRYP_ERROR_NONE; in HAL_CRYP_Init()
578 hcryp->KeyIVConfig = 0U; in HAL_CRYP_Init()
581 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Init()
584 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_Init()
596 HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_DeInit() argument
599 if (hcryp == NULL) in HAL_CRYP_DeInit()
605 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_DeInit()
612 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_DeInit()
619 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_DeInit()
622 hcryp->CrypInCount = 0; in HAL_CRYP_DeInit()
623 hcryp->CrypOutCount = 0; in HAL_CRYP_DeInit()
624 hcryp->CrypHeaderCount = 0; in HAL_CRYP_DeInit()
627 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DeInit()
630 if (hcryp->MspDeInitCallback == NULL) in HAL_CRYP_DeInit()
632 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; /* Legacy MspDeInit */ in HAL_CRYP_DeInit()
635 hcryp->MspDeInitCallback(hcryp); in HAL_CRYP_DeInit()
639 HAL_CRYP_MspDeInit(hcryp); in HAL_CRYP_DeInit()
643 hcryp->State = HAL_CRYP_STATE_RESET; in HAL_CRYP_DeInit()
646 __HAL_UNLOCK(hcryp); in HAL_CRYP_DeInit()
660 HAL_StatusTypeDef HAL_CRYP_SetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf) in HAL_CRYP_SetConfig() argument
663 if ((hcryp == NULL) || (pConf == NULL)) in HAL_CRYP_SetConfig()
671 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
683 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
688 assert_param(IS_SAES_KEYPROT(hcryp->Init.KeyProtection)); in HAL_CRYP_SetConfig()
697 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_SetConfig()
700 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_SetConfig()
703 __HAL_LOCK(hcryp); in HAL_CRYP_SetConfig()
706 hcryp->Init.DataType = pConf->DataType; in HAL_CRYP_SetConfig()
707 hcryp->Init.pKey = pConf->pKey; in HAL_CRYP_SetConfig()
708 hcryp->Init.Algorithm = pConf->Algorithm; in HAL_CRYP_SetConfig()
709 hcryp->Init.KeySize = pConf->KeySize; in HAL_CRYP_SetConfig()
710 hcryp->Init.pInitVect = pConf->pInitVect; in HAL_CRYP_SetConfig()
711 hcryp->Init.Header = pConf->Header; in HAL_CRYP_SetConfig()
712 hcryp->Init.HeaderSize = pConf->HeaderSize; in HAL_CRYP_SetConfig()
713 hcryp->Init.B0 = pConf->B0; in HAL_CRYP_SetConfig()
714 hcryp->Init.DataWidthUnit = pConf->DataWidthUnit; in HAL_CRYP_SetConfig()
715 hcryp->Init.HeaderWidthUnit = pConf->HeaderWidthUnit; in HAL_CRYP_SetConfig()
716 hcryp->Init.KeyMode = pConf->KeyMode; in HAL_CRYP_SetConfig()
717 hcryp->Init.KeyIVConfigSkip = pConf->KeyIVConfigSkip; in HAL_CRYP_SetConfig()
718 hcryp->Init.KeySelect = pConf->KeySelect; in HAL_CRYP_SetConfig()
719 hcryp->Init.KeyProtection = pConf->KeyProtection; in HAL_CRYP_SetConfig()
723 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
725 …MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_A… in HAL_CRYP_SetConfig()
726 hcryp->Init.DataType | hcryp->Init.KeySize | hcryp->Init.Algorithm); in HAL_CRYP_SetConfig()
730 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
733 …if ((hcryp->Init.KeySelect != CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_WRAPPED)) in HAL_CRYP_SetConfig()
736 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_WRAPPED); in HAL_CRYP_SetConfig()
739 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, \ in HAL_CRYP_SetConfig()
741 hcryp->Init.KeySelect | hcryp->Init.KeyMode | hcryp->Init.KeyProtection | \ in HAL_CRYP_SetConfig()
742 … SAES_CONV_DATATYPE(hcryp->Init.DataType) | SAES_CONV_KEYSIZE(hcryp->Init.KeySize) | \ in HAL_CRYP_SetConfig()
743 CRYP_SAES_AlgoConversion(hcryp->Init.Algorithm, ALGOMODE_CRYP_TO_CHMOD_SAES)); in HAL_CRYP_SetConfig()
748 __HAL_UNLOCK(hcryp); in HAL_CRYP_SetConfig()
751 hcryp->ErrorCode = HAL_CRYP_ERROR_NONE; in HAL_CRYP_SetConfig()
754 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_SetConfig()
757 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_SetConfig()
765 __HAL_UNLOCK(hcryp); in HAL_CRYP_SetConfig()
768 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_SetConfig()
780 HAL_StatusTypeDef HAL_CRYP_GetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf) in HAL_CRYP_GetConfig() argument
783 if ((hcryp == NULL) || (pConf == NULL)) in HAL_CRYP_GetConfig()
788 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_GetConfig()
791 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_GetConfig()
794 __HAL_LOCK(hcryp); in HAL_CRYP_GetConfig()
797 pConf->DataType = hcryp->Init.DataType; in HAL_CRYP_GetConfig()
798 pConf->pKey = hcryp->Init.pKey; in HAL_CRYP_GetConfig()
799 pConf->Algorithm = hcryp->Init.Algorithm; in HAL_CRYP_GetConfig()
800 pConf->KeySize = hcryp->Init.KeySize ; in HAL_CRYP_GetConfig()
801 pConf->pInitVect = hcryp->Init.pInitVect; in HAL_CRYP_GetConfig()
802 pConf->Header = hcryp->Init.Header ; in HAL_CRYP_GetConfig()
803 pConf->HeaderSize = hcryp->Init.HeaderSize; in HAL_CRYP_GetConfig()
804 pConf->B0 = hcryp->Init.B0; in HAL_CRYP_GetConfig()
805 pConf->DataWidthUnit = hcryp->Init.DataWidthUnit; in HAL_CRYP_GetConfig()
806 pConf->HeaderWidthUnit = hcryp->Init.HeaderWidthUnit; in HAL_CRYP_GetConfig()
807 pConf->KeyMode = hcryp->Init.KeyMode; in HAL_CRYP_GetConfig()
808 pConf->KeySelect = hcryp->Init.KeySelect; in HAL_CRYP_GetConfig()
809 hcryp->Init.KeyProtection = pConf->KeyProtection; in HAL_CRYP_GetConfig()
810 pConf->KeyIVConfigSkip = hcryp->Init.KeyIVConfigSkip; in HAL_CRYP_GetConfig()
813 __HAL_UNLOCK(hcryp); in HAL_CRYP_GetConfig()
816 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_GetConfig()
824 __HAL_UNLOCK(hcryp); in HAL_CRYP_GetConfig()
827 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_GetConfig()
837 __weak void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_MspInit() argument
840 UNUSED(hcryp); in HAL_CRYP_MspInit()
853 __weak void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_MspDeInit() argument
856 UNUSED(hcryp); in HAL_CRYP_MspDeInit()
878 HAL_StatusTypeDef HAL_CRYP_RegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef C… in HAL_CRYP_RegisterCallback() argument
886 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
891 __HAL_LOCK(hcryp); in HAL_CRYP_RegisterCallback()
893 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_RegisterCallback()
898 hcryp->InCpltCallback = pCallback; in HAL_CRYP_RegisterCallback()
902 hcryp->OutCpltCallback = pCallback; in HAL_CRYP_RegisterCallback()
906 hcryp->ErrorCallback = pCallback; in HAL_CRYP_RegisterCallback()
910 hcryp->MspInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
914 hcryp->MspDeInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
919 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
925 else if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_RegisterCallback()
930 hcryp->MspInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
934 hcryp->MspDeInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
939 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
948 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
954 __HAL_UNLOCK(hcryp); in HAL_CRYP_RegisterCallback()
972 HAL_StatusTypeDef HAL_CRYP_UnRegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef… in HAL_CRYP_UnRegisterCallback() argument
977 __HAL_LOCK(hcryp); in HAL_CRYP_UnRegisterCallback()
979 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_UnRegisterCallback()
984 hcryp->InCpltCallback = HAL_CRYP_InCpltCallback; /* Legacy InCpltCallback */ in HAL_CRYP_UnRegisterCallback()
988 hcryp->OutCpltCallback = HAL_CRYP_OutCpltCallback; /* Legacy OutCpltCallback */ in HAL_CRYP_UnRegisterCallback()
992 hcryp->ErrorCallback = HAL_CRYP_ErrorCallback; /* Legacy ErrorCallback */ in HAL_CRYP_UnRegisterCallback()
996 hcryp->MspInitCallback = HAL_CRYP_MspInit; in HAL_CRYP_UnRegisterCallback()
1000 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; in HAL_CRYP_UnRegisterCallback()
1005 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_UnRegisterCallback()
1011 else if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_UnRegisterCallback()
1016 hcryp->MspInitCallback = HAL_CRYP_MspInit; in HAL_CRYP_UnRegisterCallback()
1020 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; in HAL_CRYP_UnRegisterCallback()
1025 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_UnRegisterCallback()
1034 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;; in HAL_CRYP_UnRegisterCallback()
1040 __HAL_UNLOCK(hcryp); in HAL_CRYP_UnRegisterCallback()
1059 void HAL_CRYP_ProcessSuspend(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_ProcessSuspend() argument
1062 hcryp->SuspendRequest = HAL_CRYP_SUSPEND; in HAL_CRYP_ProcessSuspend()
1076 HAL_StatusTypeDef HAL_CRYP_DMAProcessSuspend(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_DMAProcessSuspend() argument
1085 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_DMAProcessSuspend()
1089 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (~CRYP_DMACR_DIEN); in HAL_CRYP_DMAProcessSuspend()
1093 …while (((((CRYP_TypeDef *)(hcryp->Instance))->SR) & (CRYP_SR_IFEM | CRYP_SR_OFNE | CRYP_SR_BUSY)) … in HAL_CRYP_DMAProcessSuspend()
1100 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (~CRYP_DMACR_DOEN); in HAL_CRYP_DMAProcessSuspend()
1103 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DMAProcessSuspend()
1107 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_DMAProcessSuspend()
1110 (((SAES_TypeDef *)(hcryp->Instance)))->CR &= (~SAES_CR_DMAINEN); in HAL_CRYP_DMAProcessSuspend()
1113 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in HAL_CRYP_DMAProcessSuspend()
1116 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DMAProcessSuspend()
1119 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in HAL_CRYP_DMAProcessSuspend()
1120 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_DMAProcessSuspend()
1123 __HAL_UNLOCK(hcryp); in HAL_CRYP_DMAProcessSuspend()
1126 hcryp->ErrorCallback(hcryp); in HAL_CRYP_DMAProcessSuspend()
1129 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_DMAProcessSuspend()
1134 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (~SAES_CR_DMAOUTEN); in HAL_CRYP_DMAProcessSuspend()
1137 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in HAL_CRYP_DMAProcessSuspend()
1144 …tmp_remaining_DMATransferSize_inWords = ((((DMA_Channel_TypeDef *)hcryp->hdmain->Instance)->CBR1) … in HAL_CRYP_DMAProcessSuspend()
1146 …tmp_remaining_DMATransferSize_inWords += ((((DMA_Channel_TypeDef *)hcryp->hdmain->Instance)->CSR) … in HAL_CRYP_DMAProcessSuspend()
1155 if (HAL_DMA_Abort(hcryp->hdmain) != HAL_OK) in HAL_CRYP_DMAProcessSuspend()
1159 if (HAL_DMA_Abort(hcryp->hdmaout) != HAL_OK) in HAL_CRYP_DMAProcessSuspend()
1166 tmp_initial_DMATransferSize_inWords = ((uint32_t) hcryp->Size / 4U); in HAL_CRYP_DMAProcessSuspend()
1170 …hcryp->pCrypInBuffPtr += (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSize_inW… in HAL_CRYP_DMAProcessSuspend()
1171 …hcryp->pCrypOutBuffPtr += (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSize_inW… in HAL_CRYP_DMAProcessSuspend()
1174 hcryp->CrypInCount = (uint16_t)tmp_remaining_DMATransferSize_inWords; in HAL_CRYP_DMAProcessSuspend()
1175 hcryp->CrypOutCount = (uint16_t)tmp_remaining_DMATransferSize_inWords; in HAL_CRYP_DMAProcessSuspend()
1176 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in HAL_CRYP_DMAProcessSuspend()
1191 HAL_StatusTypeDef HAL_CRYP_Suspend(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Suspend() argument
1198 tmp_SAES_CR_DMAIN_bit = (((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_DMAINEN); in HAL_CRYP_Suspend()
1199 if ((((((CRYP_TypeDef *)(hcryp->Instance))->DMACR & CRYP_DMACR_DIEN) == CRYP_DMACR_DIEN) \ in HAL_CRYP_Suspend()
1200 && (IS_CRYP_INSTANCE(hcryp->Instance))) || \ in HAL_CRYP_Suspend()
1201 ((tmp_SAES_CR_DMAIN_bit == SAES_CR_DMAINEN) && (IS_SAES_INSTANCE(hcryp->Instance)))) in HAL_CRYP_Suspend()
1203 if (HAL_CRYP_DMAProcessSuspend(hcryp) != HAL_OK) in HAL_CRYP_Suspend()
1207 hcryp->SuspendedProcessing = DMA_SUSPENDED; in HAL_CRYP_Suspend()
1211 HAL_CRYP_ProcessSuspend(hcryp); in HAL_CRYP_Suspend()
1212 hcryp->SuspendedProcessing = IT_SUSPENDED; in HAL_CRYP_Suspend()
1217 state = HAL_CRYP_GetState(hcryp); in HAL_CRYP_Suspend()
1221 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in HAL_CRYP_Suspend()
1223 if (HAL_CRYP_GetState(hcryp) == HAL_CRYP_STATE_READY) in HAL_CRYP_Suspend()
1230 if ((hcryp->Init.Algorithm == CRYP_AES_CBC) || \ in HAL_CRYP_Suspend()
1231 (hcryp->Init.Algorithm == CRYP_AES_CTR) || \ in HAL_CRYP_Suspend()
1232 (hcryp->Init.Algorithm == CRYP_AES_GCM) || \ in HAL_CRYP_Suspend()
1233 (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_Suspend()
1236 CRYP_Read_IVRegisters(hcryp, hcryp->IV_saved); in HAL_CRYP_Suspend()
1240 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Suspend()
1243 hcryp->CR_saved = ((CRYP_TypeDef *)(hcryp->Instance))->CR; in HAL_CRYP_Suspend()
1246 if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_Suspend()
1248 CRYP_Read_ContextSwapRegisters(hcryp, hcryp->SUSPxR_saved, hcryp->Init.Algorithm); in HAL_CRYP_Suspend()
1253 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Suspend()
1256 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Suspend()
1259 ((SAES_TypeDef *)(hcryp->Instance))->KEYR7 = 0x0U; in HAL_CRYP_Suspend()
1260 ((SAES_TypeDef *)(hcryp->Instance))->KEYR6 = 0x0U; in HAL_CRYP_Suspend()
1261 ((SAES_TypeDef *)(hcryp->Instance))->KEYR5 = 0x0U; in HAL_CRYP_Suspend()
1262 ((SAES_TypeDef *)(hcryp->Instance))->KEYR4 = 0x0U; in HAL_CRYP_Suspend()
1263 ((SAES_TypeDef *)(hcryp->Instance))->KEYR3 = 0x0U; in HAL_CRYP_Suspend()
1264 ((SAES_TypeDef *)(hcryp->Instance))->KEYR2 = 0x0U; in HAL_CRYP_Suspend()
1265 ((SAES_TypeDef *)(hcryp->Instance))->KEYR1 = 0x0U; in HAL_CRYP_Suspend()
1266 ((SAES_TypeDef *)(hcryp->Instance))->KEYR0 = 0x0U; in HAL_CRYP_Suspend()
1269 hcryp->CR_saved = ((SAES_TypeDef *)(hcryp->Instance))->CR; in HAL_CRYP_Suspend()
1274 hcryp->Init_saved = hcryp->Init; in HAL_CRYP_Suspend()
1275 hcryp->pCrypInBuffPtr_saved = hcryp->pCrypInBuffPtr; in HAL_CRYP_Suspend()
1276 hcryp->pCrypOutBuffPtr_saved = hcryp->pCrypOutBuffPtr; in HAL_CRYP_Suspend()
1277 hcryp->CrypInCount_saved = hcryp->CrypInCount; in HAL_CRYP_Suspend()
1278 hcryp->CrypOutCount_saved = hcryp->CrypOutCount; in HAL_CRYP_Suspend()
1279 hcryp->Phase_saved = hcryp->Phase; in HAL_CRYP_Suspend()
1280 hcryp->State_saved = hcryp->State; in HAL_CRYP_Suspend()
1281 hcryp->Size_saved = ((hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) ? \ in HAL_CRYP_Suspend()
1282 (hcryp->Size / 4U) : hcryp->Size); in HAL_CRYP_Suspend()
1283 hcryp->SizesSum_saved = hcryp->SizesSum; in HAL_CRYP_Suspend()
1284 hcryp->CrypHeaderCount_saved = hcryp->CrypHeaderCount; in HAL_CRYP_Suspend()
1285 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in HAL_CRYP_Suspend()
1299 HAL_StatusTypeDef HAL_CRYP_Resume(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Resume() argument
1302 if (hcryp == NULL) in HAL_CRYP_Resume()
1307 if (hcryp->State_saved != HAL_CRYP_STATE_SUSPENDED) in HAL_CRYP_Resume()
1315 hcryp->Init = hcryp->Init_saved; in HAL_CRYP_Resume()
1316 hcryp->State = hcryp->State_saved; in HAL_CRYP_Resume()
1317 hcryp->Phase = hcryp->Phase_saved; in HAL_CRYP_Resume()
1318 hcryp->CrypHeaderCount = hcryp->CrypHeaderCount_saved; in HAL_CRYP_Resume()
1321 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in HAL_CRYP_Resume()
1323 hcryp->Init.pInitVect = hcryp->IV_saved; in HAL_CRYP_Resume()
1326 __HAL_CRYP_RESET_HANDLE_STATE(hcryp); in HAL_CRYP_Resume()
1328 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Resume()
1330 ((CRYP_TypeDef *)(hcryp->Instance))->CR |= CRYP_CR_IPRST; in HAL_CRYP_Resume()
1331 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= (~CRYP_CR_IPRST); in HAL_CRYP_Resume()
1335 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Resume()
1337 ((SAES_TypeDef *)(hcryp->Instance))->CR |= SAES_CR_IPRST; in HAL_CRYP_Resume()
1338 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (~SAES_CR_IPRST); in HAL_CRYP_Resume()
1343 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Resume()
1345 if ((hcryp->Init.Algorithm == CRYP_AES_ECB) || \ in HAL_CRYP_Resume()
1346 (hcryp->Init.Algorithm == CRYP_AES_CBC) || \ in HAL_CRYP_Resume()
1347 (hcryp->Init.Algorithm == CRYP_AES_CTR)) in HAL_CRYP_Resume()
1349 (void) HAL_CRYP_Init(hcryp); in HAL_CRYP_Resume()
1356 ((CRYP_TypeDef *)(hcryp->Instance))->CR = hcryp->CR_saved; in HAL_CRYP_Resume()
1359 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in HAL_CRYP_Resume()
1362 CRYP_Write_ContextSwapRegisters(hcryp, hcryp->SUSPxR_saved, hcryp->Init.Algorithm); in HAL_CRYP_Resume()
1365 CRYP_Write_IVRegisters(hcryp, hcryp->IV_saved); in HAL_CRYP_Resume()
1369 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Resume()
1372 if (hcryp->SuspendedProcessing == DMA_SUSPENDED) in HAL_CRYP_Resume()
1374 if (((IS_CRYP_INSTANCE(hcryp->Instance)) && \ in HAL_CRYP_Resume()
1375 (READ_BIT(hcryp->CR_saved, CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT)) || \ in HAL_CRYP_Resume()
1376 ((IS_SAES_INSTANCE(hcryp->Instance)) && \ in HAL_CRYP_Resume()
1377 (READ_BIT(hcryp->CR_saved, SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT))) in HAL_CRYP_Resume()
1379 … if (HAL_CRYP_Encrypt_DMA(hcryp, hcryp->pCrypInBuffPtr_saved, (uint16_t) hcryp->CrypInCount_saved, in HAL_CRYP_Resume()
1380 hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1387 … if (HAL_CRYP_Decrypt_DMA(hcryp, hcryp->pCrypInBuffPtr_saved, (uint16_t) hcryp->CrypInCount_saved, in HAL_CRYP_Resume()
1388 hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1397 hcryp->ResumingFlag = 1U; in HAL_CRYP_Resume()
1399 if (((IS_CRYP_INSTANCE(hcryp->Instance)) && in HAL_CRYP_Resume()
1400 (READ_BIT(hcryp->CR_saved, CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT)) || \ in HAL_CRYP_Resume()
1401 ((IS_SAES_INSTANCE(hcryp->Instance)) && \ in HAL_CRYP_Resume()
1402 (READ_BIT(hcryp->CR_saved, SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT))) in HAL_CRYP_Resume()
1404 if (HAL_CRYP_Encrypt_IT(hcryp, hcryp->pCrypInBuffPtr_saved, in HAL_CRYP_Resume()
1405 hcryp->Size_saved, hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1412 if (HAL_CRYP_Decrypt_IT(hcryp, hcryp->pCrypInBuffPtr_saved, in HAL_CRYP_Resume()
1413 hcryp->Size_saved, hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1466 HAL_StatusTypeDef HAL_CRYP_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint3… in HAL_CRYP_Encrypt() argument
1472 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt()
1475 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt()
1478 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt()
1481 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt()
1482 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt()
1483 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt()
1484 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt()
1487 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt()
1489 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt()
1493 hcryp->Size = Size; in HAL_CRYP_Encrypt()
1498 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt()
1500 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt()
1503 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt()
1507 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt()
1509 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_ENCRYPT); in HAL_CRYP_Encrypt()
1512 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Encrypt()
1524 status = CRYP_AES_Encrypt(hcryp, Timeout); in HAL_CRYP_Encrypt()
1530 status = CRYP_AESGCM_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
1536 status = CRYP_AESCCM_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
1540 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt()
1548 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Encrypt()
1551 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt()
1557 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt()
1560 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt()
1578 HAL_StatusTypeDef HAL_CRYP_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint3… in HAL_CRYP_Decrypt() argument
1584 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt()
1587 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt()
1590 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt()
1593 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt()
1594 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt()
1595 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt()
1596 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt()
1599 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt()
1601 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt()
1605 hcryp->Size = Size; in HAL_CRYP_Decrypt()
1610 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt()
1612 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt()
1615 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt()
1619 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt()
1621 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in HAL_CRYP_Decrypt()
1624 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Decrypt()
1636 status = CRYP_AES_Decrypt(hcryp, Timeout); in HAL_CRYP_Decrypt()
1642 status = CRYP_AESGCM_Process(hcryp, Timeout) ; in HAL_CRYP_Decrypt()
1648 status = CRYP_AESCCM_Process(hcryp, Timeout); in HAL_CRYP_Decrypt()
1652 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt()
1660 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Decrypt()
1663 __HAL_UNLOCK(hcryp); in HAL_CRYP_Decrypt()
1669 __HAL_UNLOCK(hcryp); in HAL_CRYP_Decrypt()
1672 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt()
1689 HAL_StatusTypeDef HAL_CRYP_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, ui… in HAL_CRYP_Encrypt_IT() argument
1694 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt_IT()
1697 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt_IT()
1700 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt_IT()
1704 if (hcryp->ResumingFlag == 1U) in HAL_CRYP_Encrypt_IT()
1706 hcryp->ResumingFlag = 0U; in HAL_CRYP_Encrypt_IT()
1707 hcryp->CrypInCount = (uint16_t) hcryp->CrypInCount_saved; in HAL_CRYP_Encrypt_IT()
1708 hcryp->CrypOutCount = (uint16_t) hcryp->CrypOutCount_saved; in HAL_CRYP_Encrypt_IT()
1713 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt_IT()
1714 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt_IT()
1717 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt_IT()
1718 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt_IT()
1721 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt_IT()
1723 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt_IT()
1727 hcryp->Size = Size; in HAL_CRYP_Encrypt_IT()
1732 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_IT()
1734 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt_IT()
1737 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt_IT()
1741 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_IT()
1743 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_ENCRYPT); in HAL_CRYP_Encrypt_IT()
1746 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Encrypt_IT()
1757 status = CRYP_AES_Encrypt_IT(hcryp); in HAL_CRYP_Encrypt_IT()
1762 status = CRYP_AESGCM_Process_IT(hcryp) ; in HAL_CRYP_Encrypt_IT()
1767 status = CRYP_AESCCM_Process_IT(hcryp); in HAL_CRYP_Encrypt_IT()
1771 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt_IT()
1779 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt_IT()
1796 HAL_StatusTypeDef HAL_CRYP_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, ui… in HAL_CRYP_Decrypt_IT() argument
1801 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt_IT()
1804 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt_IT()
1807 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt_IT()
1811 if (hcryp->ResumingFlag == 1U) in HAL_CRYP_Decrypt_IT()
1813 hcryp->ResumingFlag = 0U; in HAL_CRYP_Decrypt_IT()
1814 hcryp->CrypInCount = (uint16_t) hcryp->CrypInCount_saved; in HAL_CRYP_Decrypt_IT()
1815 hcryp->CrypOutCount = (uint16_t) hcryp->CrypOutCount_saved; in HAL_CRYP_Decrypt_IT()
1820 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt_IT()
1821 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt_IT()
1823 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt_IT()
1824 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt_IT()
1827 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt_IT()
1829 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt_IT()
1833 hcryp->Size = Size; in HAL_CRYP_Decrypt_IT()
1838 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_IT()
1840 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt_IT()
1843 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt_IT()
1847 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_IT()
1849 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in HAL_CRYP_Decrypt_IT()
1852 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Decrypt_IT()
1864 status = CRYP_AES_Decrypt_IT(hcryp); in HAL_CRYP_Decrypt_IT()
1870 status = CRYP_AESGCM_Process_IT(hcryp) ; in HAL_CRYP_Decrypt_IT()
1876 status = CRYP_AESCCM_Process_IT(hcryp); in HAL_CRYP_Decrypt_IT()
1880 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt_IT()
1888 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt_IT()
1905 HAL_StatusTypeDef HAL_CRYP_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, u… in HAL_CRYP_Encrypt_DMA() argument
1912 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt_DMA()
1915 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt_DMA()
1918 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt_DMA()
1921 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt_DMA()
1922 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt_DMA()
1923 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt_DMA()
1924 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt_DMA()
1927 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt_DMA()
1929 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt_DMA()
1933 hcryp->Size = Size; in HAL_CRYP_Encrypt_DMA()
1938 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
1940 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt_DMA()
1943 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt_DMA()
1947 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
1949 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_ENCRYPT); in HAL_CRYP_Encrypt_DMA()
1952 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Encrypt_DMA()
1963 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in HAL_CRYP_Encrypt_DMA()
1965 if (hcryp->KeyIVConfig == 1U) in HAL_CRYP_Encrypt_DMA()
1976 hcryp->KeyIVConfig = 1U; in HAL_CRYP_Encrypt_DMA()
1983 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in HAL_CRYP_Encrypt_DMA()
1985 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in HAL_CRYP_Encrypt_DMA()
1991 while (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEYVALID) == 0x0U) in HAL_CRYP_Encrypt_DMA()
1997 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Encrypt_DMA()
2000 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in HAL_CRYP_Encrypt_DMA()
2001 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Encrypt_DMA()
2004 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt_DMA()
2010 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in HAL_CRYP_Encrypt_DMA()
2013 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
2015 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_DMA()
2016 … ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in HAL_CRYP_Encrypt_DMA()
2017 … ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in HAL_CRYP_Encrypt_DMA()
2018 … ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in HAL_CRYP_Encrypt_DMA()
2022 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
2024 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_DMA()
2025 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in HAL_CRYP_Encrypt_DMA()
2026 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in HAL_CRYP_Encrypt_DMA()
2027 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in HAL_CRYP_Encrypt_DMA()
2035 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Encrypt_DMA()
2038 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), hcryp->Size, (uint32_t)(hcryp->pCrypOu… in HAL_CRYP_Encrypt_DMA()
2044 status = CRYP_AESGCM_Process_DMA(hcryp); in HAL_CRYP_Encrypt_DMA()
2050 status = CRYP_AESCCM_Process_DMA(hcryp); in HAL_CRYP_Encrypt_DMA()
2054 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt_DMA()
2062 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt_DMA()
2079 HAL_StatusTypeDef HAL_CRYP_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, u… in HAL_CRYP_Decrypt_DMA() argument
2084 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt_DMA()
2087 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt_DMA()
2090 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt_DMA()
2093 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt_DMA()
2094 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt_DMA()
2095 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt_DMA()
2096 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt_DMA()
2099 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt_DMA()
2101 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt_DMA()
2105 hcryp->Size = Size; in HAL_CRYP_Decrypt_DMA()
2110 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_DMA()
2112 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt_DMA()
2115 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt_DMA()
2119 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_DMA()
2121 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in HAL_CRYP_Decrypt_DMA()
2124 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Decrypt_DMA()
2136 status = CRYP_AES_Decrypt_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
2142 status = CRYP_AESGCM_Process_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
2149 status = CRYP_AESCCM_Process_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
2153 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt_DMA()
2161 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt_DMA()
2197 void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_IRQHandler() argument
2200 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_IRQHandler()
2202 uint32_t itstatus = ((CRYP_TypeDef *)(hcryp->Instance))->MISR; in HAL_CRYP_IRQHandler()
2206 if ((hcryp->Init.Algorithm == CRYP_AES_ECB) || (hcryp->Init.Algorithm == CRYP_AES_CBC) in HAL_CRYP_IRQHandler()
2207 || (hcryp->Init.Algorithm == CRYP_AES_CTR)) in HAL_CRYP_IRQHandler()
2209 CRYP_AES_IT(hcryp); /*AES*/ in HAL_CRYP_IRQHandler()
2212 else if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_IRQHandler()
2215 if ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_PHASE_HEADER) == CRYP_PHASE_HEADER) in HAL_CRYP_IRQHandler()
2217 CRYP_GCMCCM_SetHeaderPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2221 CRYP_GCMCCM_SetPayloadPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2232 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_IRQHandler()
2235 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_RWEIE) != RESET) in HAL_CRYP_IRQHandler()
2238 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_WRERR) != RESET) in HAL_CRYP_IRQHandler()
2240 hcryp->ErrorCode |= HAL_CRYP_ERROR_WRITE; in HAL_CRYP_IRQHandler()
2241 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_RWEIF); in HAL_CRYP_IRQHandler()
2244 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_RDERR) != RESET) in HAL_CRYP_IRQHandler()
2246 hcryp->ErrorCode |= HAL_CRYP_ERROR_READ; in HAL_CRYP_IRQHandler()
2247 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_RWEIF); in HAL_CRYP_IRQHandler()
2250 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_IRQHandler()
2253 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_KEIE) != RESET) in HAL_CRYP_IRQHandler()
2255 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEIF) != RESET) in HAL_CRYP_IRQHandler()
2257 hcryp->ErrorCode |= HAL_CRYP_ERROR_KEY; in HAL_CRYP_IRQHandler()
2258 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_KEIF); in HAL_CRYP_IRQHandler()
2260 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_IRQHandler()
2264 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_RNGEIE) != RESET) in HAL_CRYP_IRQHandler()
2266 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_RNGEIF) != RESET) in HAL_CRYP_IRQHandler()
2268 hcryp->ErrorCode |= HAL_CRYP_ERROR_RNG; in HAL_CRYP_IRQHandler()
2270 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_IRQHandler()
2271 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_RNGEIF); in HAL_CRYP_IRQHandler()
2274 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_CCF) != RESET) in HAL_CRYP_IRQHandler()
2276 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_CCFIE) != RESET) in HAL_CRYP_IRQHandler()
2279 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in HAL_CRYP_IRQHandler()
2281 if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_IRQHandler()
2284 if ((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_PHASE_HEADER) == SAES_PHASE_HEADER) in HAL_CRYP_IRQHandler()
2286 CRYP_GCMCCM_SetHeaderPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2290 CRYP_GCMCCM_SetPayloadPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2295 CRYP_AES_IT(hcryp); in HAL_CRYP_IRQHandler()
2309 uint32_t HAL_CRYP_GetError(const CRYP_HandleTypeDef *hcryp) in HAL_CRYP_GetError() argument
2311 return hcryp->ErrorCode; in HAL_CRYP_GetError()
2320 HAL_CRYP_STATETypeDef HAL_CRYP_GetState(const CRYP_HandleTypeDef *hcryp) in HAL_CRYP_GetState() argument
2322 return hcryp->State; in HAL_CRYP_GetState()
2331 __weak void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_InCpltCallback() argument
2334 UNUSED(hcryp); in HAL_CRYP_InCpltCallback()
2347 __weak void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_OutCpltCallback() argument
2350 UNUSED(hcryp); in HAL_CRYP_OutCpltCallback()
2363 __weak void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_ErrorCallback() argument
2366 UNUSED(hcryp); in HAL_CRYP_ErrorCallback()
2388 static HAL_StatusTypeDef CRYP_AES_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_Encrypt() argument
2394 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Encrypt()
2396 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Encrypt()
2407 hcryp->KeyIVConfig = 1U; in CRYP_AES_Encrypt()
2414 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Encrypt()
2416 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Encrypt()
2422 while (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEYVALID) == 0x0U) in CRYP_AES_Encrypt()
2430 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt()
2433 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Encrypt()
2434 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt()
2437 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt()
2444 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt()
2446 if (hcryp->Init.KeyMode == CRYP_KEYMODE_SHARED) in CRYP_AES_Encrypt()
2450 CLEAR_BIT(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_KMOD); in CRYP_AES_Encrypt()
2455 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Encrypt()
2459 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt()
2461 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt()
2462 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt()
2463 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt()
2464 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt()
2468 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt()
2470 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt()
2471 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt()
2472 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt()
2473 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt()
2480 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Encrypt()
2483 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Encrypt()
2485 outcount = hcryp->CrypOutCount; in CRYP_AES_Encrypt()
2487 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_Encrypt()
2490 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AES_Encrypt()
2492 outcount = hcryp->CrypOutCount; in CRYP_AES_Encrypt()
2496 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt()
2499 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt()
2511 static HAL_StatusTypeDef CRYP_AES_Encrypt_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Encrypt_IT() argument
2516 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Encrypt_IT()
2518 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Encrypt_IT()
2529 hcryp->KeyIVConfig = 1U; in CRYP_AES_Encrypt_IT()
2536 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Encrypt_IT()
2538 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Encrypt_IT()
2544 while (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEYVALID) == 0x0U) in CRYP_AES_Encrypt_IT()
2550 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt_IT()
2553 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Encrypt_IT()
2554 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt_IT()
2557 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt_IT()
2563 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2565 if (hcryp->Init.KeyMode == CRYP_KEYMODE_SHARED) in CRYP_AES_Encrypt_IT()
2569 CLEAR_BIT(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_KMOD); in CRYP_AES_Encrypt_IT()
2574 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Encrypt_IT()
2578 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2580 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt_IT()
2581 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt_IT()
2582 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt_IT()
2583 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt_IT()
2587 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2589 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt_IT()
2590 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt_IT()
2591 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt_IT()
2592 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt_IT()
2599 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Encrypt_IT()
2601 if (hcryp->Size != 0U) in CRYP_AES_Encrypt_IT()
2604 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Encrypt_IT()
2607 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2610 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2611 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2612 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2613 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2614 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2615 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2616 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2617 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2623 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2625 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_Encrypt_IT()
2629 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2631 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE | CRYP_IT_RNGEIE); in CRYP_AES_Encrypt_IT()
2638 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt_IT()
2641 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt_IT()
2654 static HAL_StatusTypeDef CRYP_AES_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_Decrypt() argument
2659 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt()
2661 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt()
2672 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt()
2679 if (hcryp->Init.Algorithm != CRYP_AES_CTR) /*ECB or CBC*/ in CRYP_AES_Decrypt()
2682 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2685 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, CRYP_AES_KEY); in CRYP_AES_Decrypt()
2688 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt()
2690 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt()
2692 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2697 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2700 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt()
2703 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2706 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt()
2707 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2710 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt()
2714 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt()
2718 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2723 …if (((((SAES_TypeDef *)(hcryp->Instance))->CR) & (CRYP_KEYMODE_WRAPPED | CRYP_KEYMODE_SHARED)) != … in CRYP_AES_Decrypt()
2725 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_NORMAL); in CRYP_AES_Decrypt()
2728 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_KEY_DERIVATION); in CRYP_AES_Decrypt()
2731 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Decrypt()
2733 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt()
2735 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2740 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2743 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt()
2746 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2749 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt()
2750 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2753 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt()
2757 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_Decrypt()
2761 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in CRYP_AES_Decrypt()
2768 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2771 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt()
2773 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt()
2775 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2779 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt()
2785 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2788 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2794 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt()
2798 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2800 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt()
2801 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt()
2802 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt()
2803 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt()
2807 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2809 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt()
2810 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt()
2811 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt()
2812 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt()
2819 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt()
2822 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2825 outcount = hcryp->CrypOutCount; in CRYP_AES_Decrypt()
2827 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_Decrypt()
2830 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AES_Decrypt()
2832 outcount = hcryp->CrypOutCount; in CRYP_AES_Decrypt()
2836 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2839 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2850 static HAL_StatusTypeDef CRYP_AES_Decrypt_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Decrypt_IT() argument
2855 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt_IT()
2857 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt_IT()
2868 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt_IT()
2875 if (hcryp->Init.Algorithm != CRYP_AES_CTR) in CRYP_AES_Decrypt_IT()
2878 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2881 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, CRYP_AES_KEY); in CRYP_AES_Decrypt_IT()
2884 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_IT()
2886 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_IT()
2888 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2892 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_IT()
2897 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
2900 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_IT()
2903 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_IT()
2906 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_IT()
2907 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
2910 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
2915 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt_IT()
2919 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2924 …if (((((SAES_TypeDef *)(hcryp->Instance))->CR) & (CRYP_KEYMODE_WRAPPED | CRYP_KEYMODE_SHARED)) != … in CRYP_AES_Decrypt_IT()
2926 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_NORMAL); in CRYP_AES_Decrypt_IT()
2929 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_KEY_DERIVATION); in CRYP_AES_Decrypt_IT()
2932 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Decrypt_IT()
2934 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_IT()
2936 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2941 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
2944 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_IT()
2947 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_IT()
2950 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_IT()
2951 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
2954 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
2958 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_Decrypt_IT()
2962 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in CRYP_AES_Decrypt_IT()
2969 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2972 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_IT()
2974 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_IT()
2976 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2980 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_IT()
2986 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2989 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2995 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt_IT()
2999 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3001 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_IT()
3002 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_IT()
3003 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_IT()
3004 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_IT()
3008 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3010 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_IT()
3011 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_IT()
3012 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_IT()
3013 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_IT()
3020 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt_IT()
3021 if (hcryp->Size != 0U) in CRYP_AES_Decrypt_IT()
3024 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
3027 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3030 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3031 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3032 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3033 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3034 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3035 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3036 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3037 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3043 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3045 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_Decrypt_IT()
3049 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3051 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE | CRYP_IT_RNGEIE); in CRYP_AES_Decrypt_IT()
3058 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
3061 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
3073 static HAL_StatusTypeDef CRYP_AES_Decrypt_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Decrypt_DMA() argument
3078 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt_DMA()
3080 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt_DMA()
3091 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt_DMA()
3097 if (hcryp->Init.Algorithm != CRYP_AES_CTR) /*ECB or CBC*/ in CRYP_AES_Decrypt_DMA()
3101 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3104 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, CRYP_AES_KEY); in CRYP_AES_Decrypt_DMA()
3107 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_DMA()
3109 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_DMA()
3111 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3115 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_DMA()
3120 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3123 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_DMA()
3126 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3129 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_DMA()
3130 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
3133 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
3137 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt_DMA()
3141 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3146 …if (((((SAES_TypeDef *)(hcryp->Instance))->CR) & (CRYP_KEYMODE_WRAPPED | CRYP_KEYMODE_SHARED)) != … in CRYP_AES_Decrypt_DMA()
3148 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_NORMAL); in CRYP_AES_Decrypt_DMA()
3151 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_KEY_DERIVATION); in CRYP_AES_Decrypt_DMA()
3154 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Decrypt_DMA()
3156 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_DMA()
3158 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3163 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3166 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_DMA()
3169 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3172 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_DMA()
3173 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
3176 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
3180 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_Decrypt_DMA()
3184 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in CRYP_AES_Decrypt_DMA()
3192 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3195 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_DMA()
3197 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_DMA()
3199 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3203 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_DMA()
3209 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3212 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3217 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt_DMA()
3221 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3223 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_DMA()
3224 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_DMA()
3225 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_DMA()
3226 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_DMA()
3230 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3232 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_DMA()
3233 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_DMA()
3234 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_DMA()
3235 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_DMA()
3242 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt_DMA()
3244 if (hcryp->Size != 0U) in CRYP_AES_Decrypt_DMA()
3247 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), hcryp->Size, (uint32_t)(hcryp->pCrypOu… in CRYP_AES_Decrypt_DMA()
3252 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
3255 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
3269 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAInCplt() local
3272 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_DMAInCplt()
3276 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (uint32_t)(~CRYP_DMACR_DIEN); in CRYP_DMAInCplt()
3280 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_DMAInCplt()
3284 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (uint32_t)(~SAES_CR_DMAINEN); in CRYP_DMAInCplt()
3291 hcryp->InCpltCallback(hcryp); in CRYP_DMAInCplt()
3294 HAL_CRYP_InCpltCallback(hcryp); in CRYP_DMAInCplt()
3312 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAOutCplt() local
3317 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3319 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (uint32_t)(~CRYP_DMACR_DOEN); in CRYP_DMAOutCplt()
3323 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3325 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (uint32_t)(~SAES_CR_DMAOUTEN); in CRYP_DMAOutCplt()
3329 CLEAR_BIT(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_DMAOUTEN); in CRYP_DMAOutCplt()
3336 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3338 if (((hcryp->Size) % 16U) != 0U) in CRYP_DMAOutCplt()
3341 hcryp->CrypInCount = (hcryp->Size / 16U) * 4U; in CRYP_DMAOutCplt()
3342 hcryp->CrypOutCount = hcryp->CrypInCount; in CRYP_DMAOutCplt()
3345 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_DMAOutCplt()
3348 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_DMAOutCplt()
3349 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_DMAOutCplt()
3350 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_DMAOutCplt()
3353 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
3356 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_DMAOutCplt()
3359 __HAL_CRYP_ENABLE(hcryp); in CRYP_DMAOutCplt()
3374 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_DMAOutCplt()
3375 hcryp->CrypInCount++; in CRYP_DMAOutCplt()
3380 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_DMAOutCplt()
3391 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
3394 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_DMAOutCplt()
3395 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAOutCplt()
3398 __HAL_UNLOCK(hcryp); in CRYP_DMAOutCplt()
3401 hcryp->ErrorCallback(hcryp); in CRYP_DMAOutCplt()
3404 HAL_CRYP_ErrorCallback(hcryp); in CRYP_DMAOutCplt()
3407 } while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_OFNE)); in CRYP_DMAOutCplt()
3414 temp = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_DMAOutCplt()
3416 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_DMAOutCplt()
3417 hcryp->CrypOutCount++; in CRYP_DMAOutCplt()
3423 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3427 if (((hcryp->Size) % 16U) != 0U) in CRYP_DMAOutCplt()
3430 hcryp->CrypInCount = (hcryp->Size / 16U) * 4U; in CRYP_DMAOutCplt()
3431 hcryp->CrypOutCount = hcryp->CrypInCount; in CRYP_DMAOutCplt()
3434 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - ((uint32_t)hcryp->Size); in CRYP_DMAOutCplt()
3436 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_DMAOutCplt()
3437 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_DMAOutCplt()
3438 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_DMAOutCplt()
3441 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_DMAOutCplt()
3457 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_DMAOutCplt()
3458 hcryp->CrypInCount++; in CRYP_DMAOutCplt()
3463 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_DMAOutCplt()
3468 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_DMAOutCplt()
3475 temp = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_DMAOutCplt()
3479 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (count < 4U)) in CRYP_DMAOutCplt()
3481 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp; in CRYP_DMAOutCplt()
3482 hcryp->CrypOutCount++; in CRYP_DMAOutCplt()
3489 if (((hcryp->Init.Algorithm & CRYP_AES_GCM) != CRYP_AES_GCM) in CRYP_DMAOutCplt()
3490 && ((hcryp->Init.Algorithm & CRYP_AES_CCM) != CRYP_AES_CCM)) in CRYP_DMAOutCplt()
3493 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
3497 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAOutCplt()
3500 __HAL_UNLOCK(hcryp); in CRYP_DMAOutCplt()
3505 hcryp->OutCpltCallback(hcryp); in CRYP_DMAOutCplt()
3508 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_DMAOutCplt()
3519 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAError() local
3522 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAError()
3525 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_DMAError()
3530 hcryp->ErrorCallback(hcryp); in CRYP_DMAError()
3533 HAL_CRYP_ErrorCallback(hcryp); in CRYP_DMAError()
3546 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_… in CRYP_SetDMAConfig() argument
3553 hcryp->hdmain->XferCpltCallback = CRYP_DMAInCplt; in CRYP_SetDMAConfig()
3556 hcryp->hdmain->XferErrorCallback = CRYP_DMAError; in CRYP_SetDMAConfig()
3559 hcryp->hdmaout->XferCpltCallback = CRYP_DMAOutCplt; in CRYP_SetDMAConfig()
3562 hcryp->hdmaout->XferErrorCallback = CRYP_DMAError; in CRYP_SetDMAConfig()
3565 __HAL_CRYP_ENABLE(hcryp); in CRYP_SetDMAConfig()
3568 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3570 peripheral_in_address = (uint32_t) &((CRYP_TypeDef *)(hcryp->Instance))->DIN; in CRYP_SetDMAConfig()
3571 peripheral_out_address = (uint32_t) &((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_SetDMAConfig()
3575 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3577 peripheral_in_address = (uint32_t) &((SAES_TypeDef *)(hcryp->Instance))->DINR; in CRYP_SetDMAConfig()
3578 peripheral_out_address = (uint32_t) &((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_SetDMAConfig()
3583 if ((hcryp->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in CRYP_SetDMAConfig()
3585 if ((hcryp->hdmain->LinkedListQueue != NULL) && (hcryp->hdmain->LinkedListQueue->Head != NULL)) in CRYP_SetDMAConfig()
3588 hcryp->hdmain->LinkedListQueue->Head->\ in CRYP_SetDMAConfig()
3590 hcryp->hdmain->LinkedListQueue->Head->\ in CRYP_SetDMAConfig()
3592 hcryp->hdmain->LinkedListQueue->Head->\ in CRYP_SetDMAConfig()
3595 status = HAL_DMAEx_List_Start_IT(hcryp->hdmain); in CRYP_SetDMAConfig()
3605 status = HAL_DMA_Start_IT(hcryp->hdmain, inputaddr, peripheral_in_address, Size); in CRYP_SetDMAConfig()
3611 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetDMAConfig()
3616 hcryp->ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3619 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3624 if ((hcryp->hdmaout->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in CRYP_SetDMAConfig()
3626 … if ((hcryp->hdmaout->LinkedListQueue != NULL) && (hcryp->hdmaout->LinkedListQueue->Head != NULL)) in CRYP_SetDMAConfig()
3629 hcryp->hdmaout->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = \ in CRYP_SetDMAConfig()
3631 hcryp->hdmaout->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = \ in CRYP_SetDMAConfig()
3633 hcryp->hdmaout->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = \ in CRYP_SetDMAConfig()
3636 status = HAL_DMAEx_List_Start_IT(hcryp->hdmaout); in CRYP_SetDMAConfig()
3646 status = HAL_DMA_Start_IT(hcryp->hdmaout, peripheral_out_address, outputaddr, Size); in CRYP_SetDMAConfig()
3652 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetDMAConfig()
3657 hcryp->ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3660 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3666 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3668 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR = (CRYP_DMACR_DOEN | CRYP_DMACR_DIEN); in CRYP_SetDMAConfig()
3672 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3674 ((SAES_TypeDef *)(hcryp->Instance))->CR |= (SAES_CR_DMAINEN | SAES_CR_DMAOUTEN); in CRYP_SetDMAConfig()
3686 static void CRYP_AES_ProcessData(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_ProcessData() argument
3697 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_ProcessData()
3700 incount = hcryp->CrypInCount; in CRYP_AES_ProcessData()
3702 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < ((hcryp->Si… in CRYP_AES_ProcessData()
3705 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3706 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3707 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3708 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3709 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3710 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3711 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3712 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3716 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_ProcessData()
3719 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_ProcessData()
3722 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_ProcessData()
3723 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_ProcessData()
3726 __HAL_UNLOCK(hcryp); in CRYP_AES_ProcessData()
3729 hcryp->ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3732 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3736 outcount = hcryp->CrypOutCount; in CRYP_AES_ProcessData()
3738 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < ((hcryp->S… in CRYP_AES_ProcessData()
3744 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AES_ProcessData()
3747 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_AES_ProcessData()
3749 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_ProcessData()
3750 hcryp->CrypOutCount++; in CRYP_AES_ProcessData()
3757 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_ProcessData()
3760 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3761 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3762 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3763 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3764 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3765 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3766 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3767 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3770 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_ProcessData()
3773 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_ProcessData()
3776 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_ProcessData()
3777 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_ProcessData()
3780 __HAL_UNLOCK(hcryp); in CRYP_AES_ProcessData()
3783 hcryp->ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3786 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3791 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_ProcessData()
3797 temp[i] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AES_ProcessData()
3800 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (i < 4U)) in CRYP_AES_ProcessData()
3802 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_ProcessData()
3803 hcryp->CrypOutCount++; in CRYP_AES_ProcessData()
3818 static void CRYP_AES_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_IT() argument
3827 if (hcryp->State == HAL_CRYP_STATE_BUSY) in CRYP_AES_IT()
3830 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_IT()
3835 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_AES_IT()
3839 while (((((CRYP_TypeDef *)(hcryp->Instance))->SR) & (CRYP_SR_IFEM | CRYP_SR_OFNE | \ in CRYP_AES_IT()
3846 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_IT()
3849 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3852 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_AES_IT()
3855 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_AES_IT()
3858 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3864 incount = hcryp->CrypInCount; in CRYP_AES_IT()
3866 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->Siz… in CRYP_AES_IT()
3869 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3870 hcryp->CrypInCount++; in CRYP_AES_IT()
3871 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3872 hcryp->CrypInCount++; in CRYP_AES_IT()
3873 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3874 hcryp->CrypInCount++; in CRYP_AES_IT()
3875 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3876 hcryp->CrypInCount++; in CRYP_AES_IT()
3877 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3880 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AES_IT()
3885 hcryp->InCpltCallback(hcryp); in CRYP_AES_IT()
3888 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AES_IT()
3894 outcount = hcryp->CrypOutCount; in CRYP_AES_IT()
3896 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->Si… in CRYP_AES_IT()
3902 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AES_IT()
3905 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_AES_IT()
3907 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_IT()
3908 hcryp->CrypOutCount++; in CRYP_AES_IT()
3911 if (hcryp->CrypOutCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3914 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_AES_IT()
3917 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_IT()
3920 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3923 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3928 hcryp->OutCpltCallback(hcryp); in CRYP_AES_IT()
3931 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_AES_IT()
3939 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_IT()
3945 temp[i] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AES_IT()
3948 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (i < 4U)) in CRYP_AES_IT()
3950 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_IT()
3951 hcryp->CrypOutCount++; in CRYP_AES_IT()
3954 if (hcryp->CrypOutCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3957 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AES_IT()
3960 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_IT()
3963 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3964 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3969 hcryp->OutCpltCallback(hcryp); in CRYP_AES_IT()
3972 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_AES_IT()
3980 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_AES_IT()
3983 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_IT()
3986 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_AES_IT()
3989 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AES_IT()
3992 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_AES_IT()
3995 hcryp->Phase = CRYP_PHASE_PAYLOAD_SUSPENDED; in CRYP_AES_IT()
3997 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
4003 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
4004 hcryp->CrypInCount++; in CRYP_AES_IT()
4005 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
4006 hcryp->CrypInCount++; in CRYP_AES_IT()
4007 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
4008 hcryp->CrypInCount++; in CRYP_AES_IT()
4009 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
4010 hcryp->CrypInCount++; in CRYP_AES_IT()
4012 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
4017 hcryp->InCpltCallback(hcryp); in CRYP_AES_IT()
4020 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AES_IT()
4031 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
4033 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in CRYP_AES_IT()
4036 hcryp->ErrorCallback(hcryp); in CRYP_AES_IT()
4039 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_IT()
4051 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint32_t KeySize) in CRYP_SetKey() argument
4054 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_SetKey()
4059 ((CRYP_TypeDef *)(hcryp->Instance))->K0LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4060 ((CRYP_TypeDef *)(hcryp->Instance))->K0RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
4061 ((CRYP_TypeDef *)(hcryp->Instance))->K1LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
4062 ((CRYP_TypeDef *)(hcryp->Instance))->K1RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
4063 ((CRYP_TypeDef *)(hcryp->Instance))->K2LR = *(uint32_t *)(hcryp->Init.pKey + 4); in CRYP_SetKey()
4064 ((CRYP_TypeDef *)(hcryp->Instance))->K2RR = *(uint32_t *)(hcryp->Init.pKey + 5); in CRYP_SetKey()
4065 ((CRYP_TypeDef *)(hcryp->Instance))->K3LR = *(uint32_t *)(hcryp->Init.pKey + 6); in CRYP_SetKey()
4066 ((CRYP_TypeDef *)(hcryp->Instance))->K3RR = *(uint32_t *)(hcryp->Init.pKey + 7); in CRYP_SetKey()
4070 ((CRYP_TypeDef *)(hcryp->Instance))->K1LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4071 ((CRYP_TypeDef *)(hcryp->Instance))->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
4072 ((CRYP_TypeDef *)(hcryp->Instance))->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
4073 ((CRYP_TypeDef *)(hcryp->Instance))->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
4074 ((CRYP_TypeDef *)(hcryp->Instance))->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in CRYP_SetKey()
4075 ((CRYP_TypeDef *)(hcryp->Instance))->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in CRYP_SetKey()
4079 ((CRYP_TypeDef *)(hcryp->Instance))->K2LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4080 ((CRYP_TypeDef *)(hcryp->Instance))->K2RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
4081 ((CRYP_TypeDef *)(hcryp->Instance))->K3LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
4082 ((CRYP_TypeDef *)(hcryp->Instance))->K3RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
4091 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_SetKey()
4093 if (hcryp->Init.pKey != NULL) in CRYP_SetKey()
4098 ((SAES_TypeDef *)(hcryp->Instance))->KEYR7 = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4099 ((SAES_TypeDef *)(hcryp->Instance))->KEYR6 = *(uint32_t *)(hcryp->Init.pKey + 1U); in CRYP_SetKey()
4100 ((SAES_TypeDef *)(hcryp->Instance))->KEYR5 = *(uint32_t *)(hcryp->Init.pKey + 2U); in CRYP_SetKey()
4101 ((SAES_TypeDef *)(hcryp->Instance))->KEYR4 = *(uint32_t *)(hcryp->Init.pKey + 3U); in CRYP_SetKey()
4102 ((SAES_TypeDef *)(hcryp->Instance))->KEYR3 = *(uint32_t *)(hcryp->Init.pKey + 4U); in CRYP_SetKey()
4103 ((SAES_TypeDef *)(hcryp->Instance))->KEYR2 = *(uint32_t *)(hcryp->Init.pKey + 5U); in CRYP_SetKey()
4104 ((SAES_TypeDef *)(hcryp->Instance))->KEYR1 = *(uint32_t *)(hcryp->Init.pKey + 6U); in CRYP_SetKey()
4105 ((SAES_TypeDef *)(hcryp->Instance))->KEYR0 = *(uint32_t *)(hcryp->Init.pKey + 7U); in CRYP_SetKey()
4108 ((SAES_TypeDef *)(hcryp->Instance))->KEYR3 = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4109 ((SAES_TypeDef *)(hcryp->Instance))->KEYR2 = *(uint32_t *)(hcryp->Init.pKey + 1U); in CRYP_SetKey()
4110 ((SAES_TypeDef *)(hcryp->Instance))->KEYR1 = *(uint32_t *)(hcryp->Init.pKey + 2U); in CRYP_SetKey()
4111 ((SAES_TypeDef *)(hcryp->Instance))->KEYR0 = *(uint32_t *)(hcryp->Init.pKey + 3U); in CRYP_SetKey()
4129 static HAL_StatusTypeDef CRYP_AESGCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AESGCM_Process() argument
4132 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U; in CRYP_AESGCM_Process()
4141 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process()
4143 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process()
4148 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process()
4155 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process()
4156 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process()
4161 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process()
4167 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process()
4171 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4173 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process()
4176 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESGCM_Process()
4178 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESGCM_Process()
4180 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process()
4184 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process()
4189 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process()
4190 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process()
4191 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process()
4192 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process()
4195 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4201 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process()
4209 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4212 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4213 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4216 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4224 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4226 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESGCM_Process()
4229 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESGCM_Process()
4232 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process()
4236 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process()
4237 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process()
4238 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process()
4239 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process()
4242 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4245 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4248 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4251 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4252 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4255 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4259 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process()
4265 if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4273 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process()
4277 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4280 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4283 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESGCM_Process()
4286 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESGCM_Process()
4289 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4293 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4296 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESGCM_Process()
4299 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process()
4305 if ((hcryp->Size % 16U) != 0U) in CRYP_AESGCM_Process()
4315 outcount = hcryp->CrypOutCount; in CRYP_AESGCM_Process()
4317 while ((hcryp->CrypInCount < wordsize) && (outcount < wordsize)) in CRYP_AESGCM_Process()
4320 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AESGCM_Process()
4323 outcount = hcryp->CrypOutCount; in CRYP_AESGCM_Process()
4331 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4334 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4335 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4338 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4344 if ((hcryp->Size % 16U) != 0U) in CRYP_AESGCM_Process()
4347 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_AESGCM_Process()
4351 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4353 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESGCM_Process()
4357 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4360 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process()
4363 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4368 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4370 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESGCM_Process()
4374 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process()
4389 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4394 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESGCM_Process()
4395 hcryp->CrypInCount++; in CRYP_AESGCM_Process()
4401 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESGCM_Process()
4406 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4409 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4412 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4413 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4416 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4419 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4422 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4427 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_AESGCM_Process()
4433 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESGCM_Process()
4439 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4442 hcryp->ErrorCode |= HAL_CRYP_ERROR_READ; in CRYP_AESGCM_Process()
4443 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4446 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4452 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4457 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process()
4458 hcryp->CrypInCount++; in CRYP_AESGCM_Process()
4463 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESGCM_Process()
4467 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4471 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4474 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4479 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process()
4486 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESGCM_Process()
4492 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp[index]; in CRYP_AESGCM_Process()
4493 hcryp->CrypOutCount++; in CRYP_AESGCM_Process()
4507 static HAL_StatusTypeDef CRYP_AESGCM_Process_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AESGCM_Process_IT() argument
4528 …if ((hcryp->Phase == CRYP_PHASE_HEADER_SUSPENDED) || (hcryp->Phase == CRYP_PHASE_PAYLOAD_SUSPENDED… in CRYP_AESGCM_Process_IT()
4530 CRYP_PhaseProcessingResume(hcryp); in CRYP_AESGCM_Process_IT()
4538 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_AESGCM_Process_IT()
4540 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_AESGCM_Process_IT()
4544 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_AESGCM_Process_IT()
4548 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process_IT()
4550 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process_IT()
4555 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process_IT()
4562 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process_IT()
4563 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process_IT()
4568 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process_IT()
4575 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process_IT()
4579 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4581 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process_IT()
4584 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESGCM_Process_IT()
4586 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESGCM_Process_IT()
4588 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_IT()
4592 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process_IT()
4596 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_IT()
4597 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_IT()
4598 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_IT()
4599 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_IT()
4602 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4607 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process_IT()
4613 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
4616 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
4617 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4620 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4627 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4629 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESGCM_Process_IT()
4632 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESGCM_Process_IT()
4635 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_IT()
4639 ((SAES_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process_IT()
4643 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_IT()
4644 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_IT()
4645 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_IT()
4646 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_IT()
4649 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4659 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
4662 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
4663 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4664 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4667 } while (HAL_IS_BIT_CLR(((SAES_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_KEYVALID)); in CRYP_AESGCM_Process_IT()
4677 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
4680 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
4681 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4682 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4685 } while (HAL_IS_BIT_CLR(((SAES_TypeDef *)(hcryp->Instance))->SR, SAES_SR_CCF)); in CRYP_AESGCM_Process_IT()
4688 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process_IT()
4696 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4698 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
4702 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4704 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
4707 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4712 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process_IT()
4715 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_GCMPH, SAES_PHASE_PAYLOAD); in CRYP_AESGCM_Process_IT()
4718 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process_IT()
4721 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_IT()
4724 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4727 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4728 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4730 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_IT()
4732 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4733 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4734 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4735 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4736 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4737 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4738 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4739 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4740 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_AESGCM_Process_IT()
4745 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4748 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4753 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4763 npblb = 16U - ((uint32_t)hcryp->Size); in CRYP_AESGCM_Process_IT()
4765 … if ((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT) in CRYP_AESGCM_Process_IT()
4768 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process_IT()
4784 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4785 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4790 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4796 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4799 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4803 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4813 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4814 hcryp->CrypHeaderCount++ ; in CRYP_AESGCM_Process_IT()
4822 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4824 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4830 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_AESGCM_Process_IT()
4831 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_AESGCM_Process_IT()
4832 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_AESGCM_Process_IT()
4834 hcryp->CrypHeaderCount++ ; in CRYP_AESGCM_Process_IT()
4838 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4840 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4846 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4849 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4856 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4857 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4858 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4859 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4860 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4861 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4862 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4863 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4873 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4876 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4879 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process_IT()
4882 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_IT()
4885 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4888 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4889 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4891 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_IT()
4893 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4894 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4895 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4896 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4897 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4898 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4899 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4900 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4901 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AESGCM_Process_IT()
4906 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4909 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4920 npblb = 16U - ((uint32_t)hcryp->Size); in CRYP_AESGCM_Process_IT()
4922 if ((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT) in CRYP_AESGCM_Process_IT()
4925 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process_IT()
4941 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4942 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4947 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4956 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4958 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
4961 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AESGCM_Process_IT()
4964 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4978 static HAL_StatusTypeDef CRYP_AESGCM_Process_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AESGCM_Process_DMA() argument
4983 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U ; in CRYP_AESGCM_Process_DMA()
4995 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process_DMA()
4997 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process_DMA()
5002 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process_DMA()
5009 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process_DMA()
5010 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process_DMA()
5015 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process_DMA()
5021 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process_DMA()
5025 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5027 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process_DMA()
5030 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESGCM_Process_DMA()
5032 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESGCM_Process_DMA()
5034 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_DMA()
5038 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process_DMA()
5043 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_DMA()
5044 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_DMA()
5045 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_DMA()
5046 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_DMA()
5049 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5054 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process_DMA()
5060 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5063 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5064 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5067 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5073 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5075 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESGCM_Process_DMA()
5078 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_DMA()
5081 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_DMA()
5082 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_DMA()
5083 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_DMA()
5084 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_DMA()
5087 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5090 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process_DMA()
5093 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5096 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5097 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5100 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5104 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process_DMA()
5109 if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK) in CRYP_AESGCM_Process_DMA()
5117 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process_DMA()
5121 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5124 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5126 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESGCM_Process_DMA()
5129 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESGCM_Process_DMA()
5132 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5136 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5138 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESGCM_Process_DMA()
5141 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process_DMA()
5147 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_DMA()
5150 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5153 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5155 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_DMA()
5161 CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (uint16_t)wordsize * 4U, in CRYP_AESGCM_Process_DMA()
5162 (uint32_t)(hcryp->pCrypOutBuffPtr)); in CRYP_AESGCM_Process_DMA()
5167 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESGCM_Process_DMA()
5171 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5173 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESGCM_Process_DMA()
5178 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESGCM_Process_DMA()
5182 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5197 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESGCM_Process_DMA()
5198 hcryp->CrypInCount++; in CRYP_AESGCM_Process_DMA()
5204 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESGCM_Process_DMA()
5216 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5219 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5220 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5223 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5226 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5229 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5232 } while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_OFNE)); in CRYP_AESGCM_Process_DMA()
5239 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESGCM_Process_DMA()
5244 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5247 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESGCM_Process_DMA()
5248 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_AESGCM_Process_DMA()
5249 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_AESGCM_Process_DMA()
5252 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_AESGCM_Process_DMA()
5268 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_DMA()
5269 hcryp->CrypInCount++; in CRYP_AESGCM_Process_DMA()
5275 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESGCM_Process_DMA()
5280 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process_DMA()
5283 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5286 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5287 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5290 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5293 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5296 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5300 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process_DMA()
5307 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESGCM_Process_DMA()
5314 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESGCM_Process_DMA()
5315 hcryp->CrypOutCount++; in CRYP_AESGCM_Process_DMA()
5319 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5322 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5337 static HAL_StatusTypeDef CRYP_AESCCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AESCCM_Process() argument
5340 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U; in CRYP_AESCCM_Process()
5349 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process()
5351 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process()
5356 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process()
5363 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process()
5364 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process()
5369 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process()
5375 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process()
5379 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5381 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process()
5384 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESCCM_Process()
5386 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESCCM_Process()
5388 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process()
5392 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESCCM_Process()
5396 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process()
5397 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process()
5398 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process()
5399 …((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR… in CRYP_AESCCM_Process()
5402 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5405 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process()
5406 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process()
5407 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process()
5408 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process()
5414 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process()
5422 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5425 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5426 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5429 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5437 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5439 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESCCM_Process()
5442 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESCCM_Process()
5445 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process()
5449 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process()
5450 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.B0 + 1U); in CRYP_AESCCM_Process()
5451 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.B0 + 2U); in CRYP_AESCCM_Process()
5452 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.B0 + 3U); in CRYP_AESCCM_Process()
5455 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5458 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5461 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5464 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5465 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5468 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5472 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process()
5480 if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5487 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process()
5491 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5494 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5497 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESCCM_Process()
5500 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESCCM_Process()
5503 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5507 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5510 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESCCM_Process()
5513 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESCCM_Process()
5519 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
5528 outcount = hcryp->CrypOutCount; in CRYP_AESCCM_Process()
5530 while ((hcryp->CrypInCount < wordsize) && (outcount < wordsize)) in CRYP_AESCCM_Process()
5533 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AESCCM_Process()
5536 outcount = hcryp->CrypOutCount; in CRYP_AESCCM_Process()
5544 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5547 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5548 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5551 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5558 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5560 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
5563 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_AESCCM_Process()
5565 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESCCM_Process()
5569 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5572 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process()
5575 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5591 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESCCM_Process()
5592 hcryp->CrypInCount++; in CRYP_AESCCM_Process()
5598 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESCCM_Process()
5603 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5606 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5609 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5610 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5613 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5616 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5619 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5624 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_AESCCM_Process()
5630 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESCCM_Process()
5634 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process()
5635 hcryp->CrypOutCount++; in CRYP_AESCCM_Process()
5642 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5645 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
5648 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - ((uint32_t)hcryp->Size); in CRYP_AESCCM_Process()
5650 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process()
5654 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process()
5669 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process()
5670 hcryp->CrypInCount++; in CRYP_AESCCM_Process()
5676 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESCCM_Process()
5680 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5683 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5686 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5687 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5690 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5693 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5696 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5700 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process()
5706 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESCCM_Process()
5710 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process()
5711 hcryp->CrypOutCount++; in CRYP_AESCCM_Process()
5717 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5720 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5723 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5724 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5727 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5741 static HAL_StatusTypeDef CRYP_AESCCM_Process_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AESCCM_Process_IT() argument
5762 …if ((hcryp->Phase == CRYP_PHASE_HEADER_SUSPENDED) || (hcryp->Phase == CRYP_PHASE_PAYLOAD_SUSPENDED… in CRYP_AESCCM_Process_IT()
5764 CRYP_PhaseProcessingResume(hcryp); in CRYP_AESCCM_Process_IT()
5769 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process_IT()
5771 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process_IT()
5776 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process_IT()
5783 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process_IT()
5784 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process_IT()
5789 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process_IT()
5796 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process_IT()
5800 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5802 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process_IT()
5805 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESCCM_Process_IT()
5807 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESCCM_Process_IT()
5809 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_IT()
5813 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESCCM_Process_IT()
5818 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process_IT()
5819 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process_IT()
5820 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process_IT()
5821 …((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR1… in CRYP_AESCCM_Process_IT()
5824 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5827 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_IT()
5828 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process_IT()
5829 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process_IT()
5830 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process_IT()
5836 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process_IT()
5842 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_IT()
5845 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_IT()
5846 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
5849 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
5856 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5858 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESCCM_Process_IT()
5861 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESCCM_Process_IT()
5864 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_IT()
5868 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_IT()
5869 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.B0 + 1U); in CRYP_AESCCM_Process_IT()
5870 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.B0 + 2U); in CRYP_AESCCM_Process_IT()
5871 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.B0 + 3U); in CRYP_AESCCM_Process_IT()
5874 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5877 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process_IT()
5880 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_IT()
5883 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_IT()
5884 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
5887 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
5891 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process_IT()
5899 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5901 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESCCM_Process_IT()
5904 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AESCCM_Process_IT()
5907 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5911 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5914 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_AESCCM_Process_IT()
5917 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESCCM_Process_IT()
5920 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5922 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_AESCCM_Process_IT()
5926 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process_IT()
5929 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESCCM_Process_IT()
5932 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESCCM_Process_IT()
5934 if (hcryp->Init.Algorithm == CRYP_AES_CCM) in CRYP_AESCCM_Process_IT()
5937 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
5940 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_IT()
5943 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESCCM_Process_IT()
5946 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
5947 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
5949 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_IT()
5951 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5952 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5953 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5954 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5955 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5956 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5957 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5958 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5960 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_AESCCM_Process_IT()
5965 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
5968 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
5975 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESCCM_Process_IT()
5977 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process_IT()
5978 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_AESCCM_Process_IT()
5979 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_AESCCM_Process_IT()
5982 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESCCM_Process_IT()
5998 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5999 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6004 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6010 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6013 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6023 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6024 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6032 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6039 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_AESCCM_Process_IT()
6040 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_AESCCM_Process_IT()
6041 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_AESCCM_Process_IT()
6042 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6047 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6054 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6057 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6064 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6065 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6066 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6067 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6068 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6069 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6070 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6071 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6081 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_IT()
6084 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESCCM_Process_IT()
6087 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
6088 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
6090 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_IT()
6092 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6093 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6094 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6095 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6096 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6097 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6098 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6099 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6101 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_AESCCM_Process_IT()
6106 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6109 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6116 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESCCM_Process_IT()
6118 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process_IT()
6119 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_AESCCM_Process_IT()
6120 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_AESCCM_Process_IT()
6123 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESCCM_Process_IT()
6139 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6140 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6145 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6151 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6154 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6170 static HAL_StatusTypeDef CRYP_AESCCM_Process_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AESCCM_Process_DMA() argument
6172 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U ; in CRYP_AESCCM_Process_DMA()
6183 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process_DMA()
6185 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process_DMA()
6190 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process_DMA()
6197 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process_DMA()
6198 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process_DMA()
6203 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process_DMA()
6209 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process_DMA()
6213 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6215 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process_DMA()
6218 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESCCM_Process_DMA()
6220 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESCCM_Process_DMA()
6222 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_DMA()
6226 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESCCM_Process_DMA()
6230 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process_DMA()
6231 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process_DMA()
6232 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process_DMA()
6233 …((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR… in CRYP_AESCCM_Process_DMA()
6236 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6239 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_DMA()
6240 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process_DMA()
6241 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process_DMA()
6242 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process_DMA()
6248 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process_DMA()
6254 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6257 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6258 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6261 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6268 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6270 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESCCM_Process_DMA()
6273 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESCCM_Process_DMA()
6276 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_DMA()
6280 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_DMA()
6281 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.B0 + 1U); in CRYP_AESCCM_Process_DMA()
6282 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.B0 + 2U); in CRYP_AESCCM_Process_DMA()
6283 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.B0 + 3U); in CRYP_AESCCM_Process_DMA()
6286 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6289 if (CRYP_WaitOnCCFlag(hcryp, CRYP_TIMEOUT_GCMCCMINITPHASE) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6292 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6295 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6296 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6299 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6303 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process_DMA()
6309 if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6317 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process_DMA()
6321 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6324 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6326 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESCCM_Process_DMA()
6329 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESCCM_Process_DMA()
6332 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6336 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6338 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESCCM_Process_DMA()
6341 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESCCM_Process_DMA()
6346 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_DMA()
6349 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6352 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6354 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_DMA()
6358 CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (uint16_t) wordsize * 4U, in CRYP_AESCCM_Process_DMA()
6359 (uint32_t)(hcryp->pCrypOutBuffPtr)); in CRYP_AESCCM_Process_DMA()
6364 npblb = 16U - (uint32_t)(hcryp->Size); in CRYP_AESCCM_Process_DMA()
6368 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6370 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESCCM_Process_DMA()
6375 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process_DMA()
6379 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6394 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESCCM_Process_DMA()
6395 hcryp->CrypInCount++; in CRYP_AESCCM_Process_DMA()
6401 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESCCM_Process_DMA()
6406 if (CRYP_WaitOnOFNEFlag(hcryp, CRYP_TIMEOUT_GCMCCMINITPHASE) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6409 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6412 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6413 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6416 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6419 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6422 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6431 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESCCM_Process_DMA()
6436 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6438 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process_DMA()
6443 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process_DMA()
6459 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_DMA()
6460 hcryp->CrypInCount++; in CRYP_AESCCM_Process_DMA()
6466 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESCCM_Process_DMA()
6470 if (CRYP_WaitOnCCFlag(hcryp, CRYP_TIMEOUT_GCMCCMINITPHASE) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6473 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6476 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6477 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6480 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6483 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6486 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6490 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process_DMA()
6497 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESCCM_Process_DMA()
6504 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process_DMA()
6505 hcryp->CrypOutCount++; in CRYP_AESCCM_Process_DMA()
6509 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6512 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6525 static void CRYP_GCMCCM_SetPayloadPhase_IT(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetPayloadPhase_IT() argument
6539 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6541 if ((hcryp->Size / 4U) < hcryp->CrypInCount) in CRYP_GCMCCM_SetPayloadPhase_IT()
6546 if (hcryp->Size == 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6549 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6552 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6555 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6558 else if ((((hcryp->Size / 4U) - (hcryp->CrypInCount)) >= 4U) && in CRYP_GCMCCM_SetPayloadPhase_IT()
6561 if ((((CRYP_TypeDef *)(hcryp->Instance))->IMSCR & CRYP_IMSCR_INIM) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6567 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_GCMCCM_SetPayloadPhase_IT()
6571 while (((((CRYP_TypeDef *)(hcryp->Instance))->SR) & (CRYP_SR_IFEM | CRYP_SR_OFNE | \ in CRYP_GCMCCM_SetPayloadPhase_IT()
6578 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6581 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6584 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_GCMCCM_SetPayloadPhase_IT()
6587 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6590 hcryp->Phase = CRYP_PHASE_PAYLOAD_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6593 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6599 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6600 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6601 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6602 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6603 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6604 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6605 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6606 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6607 if (((hcryp->Size / 4U) == hcryp->CrypInCount) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6610 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6614 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6617 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6621 if (hcryp->CrypOutCount < (hcryp->Size / 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6623 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6629 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_GCMCCM_SetPayloadPhase_IT()
6632 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6634 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6635 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6638 if (((hcryp->Size / 4U) == hcryp->CrypOutCount) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6641 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6644 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6647 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6650 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6655 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6658 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6666 else if ((hcryp->Size % 16U) != 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6669 if ((((CRYP_TypeDef *)(hcryp->Instance))->IMSCR & CRYP_IMSCR_INIM) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6672 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_GCMCCM_SetPayloadPhase_IT()
6674 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_GCMCCM_SetPayloadPhase_IT()
6675 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetPayloadPhase_IT()
6676 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6679 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6682 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_GCMCCM_SetPayloadPhase_IT()
6685 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6702 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6703 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6708 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_GCMCCM_SetPayloadPhase_IT()
6713 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6717 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6721 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_GCMCCM_SetPayloadPhase_IT()
6723 if (((hcryp->Size) / 4U) == 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6725 for (i = 0U; (uint16_t)i < ((hcryp->Size) % 4U); i++) in CRYP_GCMCCM_SetPayloadPhase_IT()
6727 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6728 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6732 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6734 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6735 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6741 if (hcryp->CrypOutCount >= ((hcryp->Size) / 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6744 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI | CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6747 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6750 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6755 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6758 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6769 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6778 temp[i] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_GCMCCM_SetPayloadPhase_IT()
6781 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (i < 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6783 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6784 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6787 incount = hcryp->CrypInCount; in CRYP_GCMCCM_SetPayloadPhase_IT()
6788 outcount = hcryp->CrypOutCount; in CRYP_GCMCCM_SetPayloadPhase_IT()
6789 if ((outcount >= ((uint32_t)(hcryp->Size) / 4U)) && ((incount * 4U) >= (uint32_t)(hcryp->Size))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6793 if (!((hcryp->Init.Algorithm == CRYP_AES_CCM) && (hcryp->KeyIVConfig == 1U))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6796 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetPayloadPhase_IT()
6800 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6801 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6806 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6809 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6813 else if (((hcryp->Size / 4U) - (hcryp->CrypInCount)) >= 4U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6819 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_GCMCCM_SetPayloadPhase_IT()
6822 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetPayloadPhase_IT()
6825 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_GCMCCM_SetPayloadPhase_IT()
6827 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetPayloadPhase_IT()
6829 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6831 hcryp->Phase = CRYP_PHASE_PAYLOAD_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6832 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6838 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6839 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6840 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6841 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6842 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6843 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6844 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6845 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6846 if ((hcryp->CrypInCount == hcryp->Size) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6851 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6854 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6862 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - ((uint32_t)hcryp->Size); in CRYP_GCMCCM_SetPayloadPhase_IT()
6864 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_GCMCCM_SetPayloadPhase_IT()
6865 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetPayloadPhase_IT()
6866 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6869 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_GCMCCM_SetPayloadPhase_IT()
6885 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6886 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6891 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetPayloadPhase_IT()
6907 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_GCMCCM_SetHeaderPhase() argument
6923 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase()
6925 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase()
6927 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6929 if ((hcryp->Init.HeaderSize % 4U) == 0U) in CRYP_GCMCCM_SetHeaderPhase()
6932 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase()
6934 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6935 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6936 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6937 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6938 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6939 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6940 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6941 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6944 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
6947 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6950 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
6951 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
6954 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6962 … for (loopcounter = 0U; (loopcounter < ((hcryp->Init.HeaderSize) - (hcryp->Init.HeaderSize % 4U))); in CRYP_GCMCCM_SetHeaderPhase()
6965 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6966 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6967 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6968 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6969 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6970 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6971 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6972 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6975 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
6978 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6981 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
6982 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
6985 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6990 for (loopcounter = 0U; (loopcounter < (hcryp->Init.HeaderSize % 4U)); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase()
6992 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6993 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6998 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
7002 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7005 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7008 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7009 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7012 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7019 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase()
7021 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_GCMCCM_SetHeaderPhase()
7023 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_GCMCCM_SetHeaderPhase()
7027 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_GCMCCM_SetHeaderPhase()
7031 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase()
7034 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7041 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7042 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7043 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7044 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7045 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7046 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7047 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7048 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7051 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7054 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7057 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7058 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7061 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7065 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase()
7073 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7074 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7075 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7076 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7077 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7078 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7079 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7080 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7083 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7086 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7089 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7090 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7093 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7097 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase()
7102 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7103 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7111 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
7118 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
7119 tmp &= mask[(SAES_CONV_DATATYPE(hcryp->Init.DataType) * 2U) + (headersize_in_bytes % 4U)]; in CRYP_GCMCCM_SetHeaderPhase()
7120 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_GCMCCM_SetHeaderPhase()
7126 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
7132 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7135 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7138 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7139 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7142 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7146 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase()
7151 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7154 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7157 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7158 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7161 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7175 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetHeaderPhase_DMA() argument
7189 if ((hcryp->Init.HeaderSize != 0U)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7193 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7195 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7197 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7199 if ((hcryp->Init.HeaderSize % 4U) == 0U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7202 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7204 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7205 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7206 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7207 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7208 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7209 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7210 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7211 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7214 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7217 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7220 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7221 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7224 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7232 … for (loopcounter = 0U; (loopcounter < ((hcryp->Init.HeaderSize) - (hcryp->Init.HeaderSize % 4U))); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7235 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7236 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7237 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7238 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7239 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7240 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7241 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7242 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7245 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7248 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7251 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7252 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7255 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7260 for (loopcounter = 0U; (loopcounter < (hcryp->Init.HeaderSize % 4U)); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7262 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7263 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7268 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7273 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7276 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7279 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7280 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7283 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7290 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7292 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7294 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7298 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7301 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7304 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7309 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7311 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7312 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7313 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7314 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7315 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7316 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7317 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7318 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7321 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7324 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7327 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7328 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7331 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7341 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7342 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7343 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7344 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7345 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7346 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7347 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7348 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7351 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7354 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7357 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7358 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7361 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7368 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7369 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7377 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7384 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7385 tmp &= mask[(SAES_CONV_DATATYPE(hcryp->Init.DataType) * 2U) + (headersize_in_bytes % 4U)]; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7386 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7391 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7397 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7400 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7403 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7404 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7407 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7415 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7418 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7421 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7422 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7425 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7440 static void CRYP_GCMCCM_SetHeaderPhase_IT(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetHeaderPhase_IT() argument
7457 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7459 if (hcryp->Init.HeaderSize == hcryp->CrypHeaderCount) in CRYP_GCMCCM_SetHeaderPhase_IT()
7462 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetHeaderPhase_IT()
7465 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7468 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_GCMCCM_SetHeaderPhase_IT()
7471 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_GCMCCM_SetHeaderPhase_IT()
7474 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_GCMCCM_SetHeaderPhase_IT()
7477 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetHeaderPhase_IT()
7480 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7482 else if (((hcryp->Init.HeaderSize) - (hcryp->CrypHeaderCount)) >= 4U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7486 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7487 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7488 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7489 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7490 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7491 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7492 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7493 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7498 for (loopcounter = 0U; loopcounter < (hcryp->Init.HeaderSize % 4U); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase_IT()
7500 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7501 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7506 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7513 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7515 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_GCMCCM_SetHeaderPhase_IT()
7517 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7521 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_GCMCCM_SetHeaderPhase_IT()
7526 if (headersize_in_bytes <= ((uint32_t)(hcryp->CrypHeaderCount) * 4U)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7529 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_GCMCCM_SetHeaderPhase_IT()
7531 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_GCMPH, SAES_PHASE_PAYLOAD); in CRYP_GCMCCM_SetHeaderPhase_IT()
7533 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_GCMCCM_SetHeaderPhase_IT()
7535 if (hcryp->Init.Algorithm == CRYP_AES_CCM) in CRYP_GCMCCM_SetHeaderPhase_IT()
7538 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7541 if (hcryp->Size == 0U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7544 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetHeaderPhase_IT()
7547 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_IT()
7548 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7550 else if (hcryp->Size >= 16U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7552 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7553 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7554 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7555 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7556 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7557 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7558 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7559 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7561 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7566 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7569 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7576 npblb = 16U - ((uint32_t)hcryp->Size); in CRYP_GCMCCM_SetHeaderPhase_IT()
7577 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_GCMCCM_SetHeaderPhase_IT()
7578 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetHeaderPhase_IT()
7579 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetHeaderPhase_IT()
7582 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_GCMCCM_SetHeaderPhase_IT()
7598 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7599 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7604 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7610 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7613 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7617 else if (((headersize_in_bytes / 4U) - (hcryp->CrypHeaderCount)) >= 4U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7623 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_GCMCCM_SetHeaderPhase_IT()
7626 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase_IT()
7629 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_GCMCCM_SetHeaderPhase_IT()
7631 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetHeaderPhase_IT()
7633 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_GCMCCM_SetHeaderPhase_IT()
7635 hcryp->Phase = CRYP_PHASE_HEADER_SUSPENDED; in CRYP_GCMCCM_SetHeaderPhase_IT()
7636 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7642 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7643 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7644 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7645 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7646 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7647 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7648 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7649 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7656 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7657 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7665 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7667 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7673 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
7674 tmp &= mask[(SAES_CONV_DATATYPE(hcryp->Init.DataType) * 2U) + (headersize_in_bytes % 4U)]; in CRYP_GCMCCM_SetHeaderPhase_IT()
7675 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_GCMCCM_SetHeaderPhase_IT()
7677 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7681 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7683 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7699 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnIFEMFlag() argument
7706 while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_IFEM)) in CRYP_WaitOnIFEMFlag()
7728 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnBUSYFlag() argument
7737 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_WaitOnBUSYFlag()
7743 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_WaitOnBUSYFlag()
7748 while (HAL_IS_BIT_SET(((CRYP_TypeDef *)(hcryp->Instance))->SR, flag_busy)) in CRYP_WaitOnBUSYFlag()
7770 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnOFNEFlag() argument
7777 while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_OFNE)) in CRYP_WaitOnOFNEFlag()
7800 static HAL_StatusTypeDef CRYP_WaitOnCCFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnCCFlag() argument
7807 while (HAL_IS_BIT_CLR(((SAES_TypeDef *)(hcryp->Instance))->SR, SAES_SR_CCF)) in CRYP_WaitOnCCFlag()
7832 static void CRYP_Read_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output) in CRYP_Read_IVRegisters() argument
7837 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_Read_IVRegisters()
7839 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR; in CRYP_Read_IVRegisters()
7841 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR; in CRYP_Read_IVRegisters()
7843 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR; in CRYP_Read_IVRegisters()
7845 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR; in CRYP_Read_IVRegisters()
7849 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_Read_IVRegisters()
7851 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR3; in CRYP_Read_IVRegisters()
7853 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR2; in CRYP_Read_IVRegisters()
7855 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR1; in CRYP_Read_IVRegisters()
7857 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR0; in CRYP_Read_IVRegisters()
7873 static void CRYP_Write_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input) in CRYP_Write_IVRegisters() argument
7877 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_Write_IVRegisters()
7879 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7881 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7883 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7885 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7889 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_Write_IVRegisters()
7891 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7893 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7895 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7897 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7914 static void CRYP_Read_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output, uint32_t Al… in CRYP_Read_ContextSwapRegisters() argument
7917 uint32_t inputaddr = (uint32_t)(&((CRYP_TypeDef *)(hcryp->Instance))->CSGCMCCM0R); in CRYP_Read_ContextSwapRegisters()
7948 static void CRYP_Write_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint32_t Al… in CRYP_Write_ContextSwapRegisters() argument
7951 uint32_t outputaddr = (uint32_t)(&((CRYP_TypeDef *)(hcryp->Instance))->CSGCMCCM0R); in CRYP_Write_ContextSwapRegisters()
7977 static void CRYP_PhaseProcessingResume(CRYP_HandleTypeDef *hcryp) in CRYP_PhaseProcessingResume() argument
7980 if (hcryp->Phase == CRYP_PHASE_HEADER_SUSPENDED) in CRYP_PhaseProcessingResume()
7983 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_PhaseProcessingResume()
7987 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
7989 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_PhaseProcessingResume()
7993 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
7995 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_PhaseProcessingResume()
8000 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_PhaseProcessingResume()
8003 __HAL_CRYP_ENABLE(hcryp); in CRYP_PhaseProcessingResume()
8010 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_PhaseProcessingResume()
8014 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
8016 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_PhaseProcessingResume()
8020 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
8022 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_PhaseProcessingResume()
8027 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_PhaseProcessingResume()
8030 __HAL_CRYP_ENABLE(hcryp); in CRYP_PhaseProcessingResume()