Lines Matching refs:hcryp
360 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_…
364 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint32_t KeySize);
365 static void CRYP_AES_IT(CRYP_HandleTypeDef *hcryp);
366 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
367 static void CRYP_GCMCCM_SetPayloadPhase_IT(CRYP_HandleTypeDef *hcryp);
368 static void CRYP_GCMCCM_SetHeaderPhase_IT(CRYP_HandleTypeDef *hcryp);
369 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase_DMA(CRYP_HandleTypeDef *hcryp);
370 static HAL_StatusTypeDef CRYP_AESGCM_Process_DMA(CRYP_HandleTypeDef *hcryp);
371 static HAL_StatusTypeDef CRYP_AESGCM_Process_IT(CRYP_HandleTypeDef *hcryp);
372 static HAL_StatusTypeDef CRYP_AESGCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
373 static HAL_StatusTypeDef CRYP_AESCCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
374 static HAL_StatusTypeDef CRYP_AESCCM_Process_IT(CRYP_HandleTypeDef *hcryp);
375 static HAL_StatusTypeDef CRYP_AESCCM_Process_DMA(CRYP_HandleTypeDef *hcryp);
377 static HAL_StatusTypeDef CRYP_AES_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
378 static HAL_StatusTypeDef CRYP_AES_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
379 static HAL_StatusTypeDef CRYP_AES_Decrypt_IT(CRYP_HandleTypeDef *hcryp);
380 static HAL_StatusTypeDef CRYP_AES_Encrypt_IT(CRYP_HandleTypeDef *hcryp);
381 static HAL_StatusTypeDef CRYP_AES_Decrypt_DMA(CRYP_HandleTypeDef *hcryp);
383 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
384 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
386 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
388 static HAL_StatusTypeDef CRYP_WaitOnCCFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
391 static void CRYP_Read_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output);
392 static void CRYP_Write_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input);
394 static void CRYP_Read_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output, uint32_t Al…
396 static void CRYP_Write_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint32_t Al…
397 static void CRYP_PhaseProcessingResume(CRYP_HandleTypeDef *hcryp);
445 HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Init() argument
448 if (hcryp == NULL) in HAL_CRYP_Init()
454 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
461 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
470 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
472 assert_param(IS_CRYP_KEYSIZE(hcryp->Init.KeySize)); in HAL_CRYP_Init()
473 assert_param(IS_CRYP_ALGORITHM(hcryp->Init.Algorithm)); in HAL_CRYP_Init()
474 assert_param(IS_CRYP_KEYMODE(hcryp->Init.KeyMode)); in HAL_CRYP_Init()
475 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_BYTE) in HAL_CRYP_Init()
482 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
484 assert_param(IS_SAES_KEYSIZE(hcryp->Init.KeySize)); in HAL_CRYP_Init()
485 assert_param(IS_SAES_ALGORITHM(hcryp->Init.Algorithm)); in HAL_CRYP_Init()
486 assert_param(IS_SAES_KEYMODE(hcryp->Init.KeyMode)); in HAL_CRYP_Init()
487 assert_param(IS_SAES_KEYSEL(hcryp->Init.KeySelect)); in HAL_CRYP_Init()
490 assert_param(IS_CRYP_DATATYPE(hcryp->Init.DataType)); in HAL_CRYP_Init()
491 assert_param(IS_CRYP_INIT(hcryp->Init.KeyIVConfigSkip)); in HAL_CRYP_Init()
495 if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_Init()
498 hcryp->Lock = HAL_UNLOCKED; in HAL_CRYP_Init()
500 hcryp->InCpltCallback = HAL_CRYP_InCpltCallback; /* Legacy InCpltCallback */ in HAL_CRYP_Init()
501 hcryp->OutCpltCallback = HAL_CRYP_OutCpltCallback; /* Legacy OutCpltCallback */ in HAL_CRYP_Init()
502 hcryp->ErrorCallback = HAL_CRYP_ErrorCallback; /* Legacy ErrorCallback */ in HAL_CRYP_Init()
504 if (hcryp->MspInitCallback == NULL) in HAL_CRYP_Init()
506 hcryp->MspInitCallback = HAL_CRYP_MspInit; /* Legacy MspInit */ in HAL_CRYP_Init()
510 hcryp->MspInitCallback(hcryp); in HAL_CRYP_Init()
513 if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_Init()
516 hcryp->Lock = HAL_UNLOCKED; in HAL_CRYP_Init()
519 HAL_CRYP_MspInit(hcryp); in HAL_CRYP_Init()
525 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
527 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, in HAL_CRYP_Init()
529 … hcryp->Init.KeyMode | hcryp->Init.DataType | hcryp->Init.KeySize | hcryp->Init.Algorithm); in HAL_CRYP_Init()
533 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Init()
536 if (CRYP_WaitOnBUSYFlag(hcryp, CRYP_GENERAL_TIMEOUT) != HAL_OK) in HAL_CRYP_Init()
539 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Init()
542 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in HAL_CRYP_Init()
543 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Init()
546 __HAL_UNLOCK(hcryp); in HAL_CRYP_Init()
550 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, in HAL_CRYP_Init()
552 … hcryp->Init.KeySelect | hcryp->Init.KeyMode | SAES_CONV_DATATYPE(hcryp->Init.DataType) | \ in HAL_CRYP_Init()
553 … SAES_CONV_KEYSIZE(hcryp->Init.KeySize) | CRYP_SAES_AlgoConversion(hcryp->Init.Algorithm, in HAL_CRYP_Init()
559 hcryp->Version = HAL_GetREVID(); in HAL_CRYP_Init()
562 hcryp->ErrorCode = HAL_CRYP_ERROR_NONE; in HAL_CRYP_Init()
565 hcryp->KeyIVConfig = 0U; in HAL_CRYP_Init()
568 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Init()
571 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_Init()
583 HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_DeInit() argument
586 if (hcryp == NULL) in HAL_CRYP_DeInit()
592 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_DeInit()
599 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_DeInit()
606 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_DeInit()
609 hcryp->CrypInCount = 0; in HAL_CRYP_DeInit()
610 hcryp->CrypOutCount = 0; in HAL_CRYP_DeInit()
611 hcryp->CrypHeaderCount = 0; in HAL_CRYP_DeInit()
614 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DeInit()
617 if (hcryp->MspDeInitCallback == NULL) in HAL_CRYP_DeInit()
619 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; /* Legacy MspDeInit */ in HAL_CRYP_DeInit()
622 hcryp->MspDeInitCallback(hcryp); in HAL_CRYP_DeInit()
626 HAL_CRYP_MspDeInit(hcryp); in HAL_CRYP_DeInit()
630 hcryp->State = HAL_CRYP_STATE_RESET; in HAL_CRYP_DeInit()
633 __HAL_UNLOCK(hcryp); in HAL_CRYP_DeInit()
647 HAL_StatusTypeDef HAL_CRYP_SetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf) in HAL_CRYP_SetConfig() argument
650 if ((hcryp == NULL) || (pConf == NULL)) in HAL_CRYP_SetConfig()
658 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
670 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
683 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_SetConfig()
686 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_SetConfig()
689 __HAL_LOCK(hcryp); in HAL_CRYP_SetConfig()
692 hcryp->Init.DataType = pConf->DataType; in HAL_CRYP_SetConfig()
693 hcryp->Init.pKey = pConf->pKey; in HAL_CRYP_SetConfig()
694 hcryp->Init.Algorithm = pConf->Algorithm; in HAL_CRYP_SetConfig()
695 hcryp->Init.KeySize = pConf->KeySize; in HAL_CRYP_SetConfig()
696 hcryp->Init.pInitVect = pConf->pInitVect; in HAL_CRYP_SetConfig()
697 hcryp->Init.Header = pConf->Header; in HAL_CRYP_SetConfig()
698 hcryp->Init.HeaderSize = pConf->HeaderSize; in HAL_CRYP_SetConfig()
699 hcryp->Init.B0 = pConf->B0; in HAL_CRYP_SetConfig()
700 hcryp->Init.DataWidthUnit = pConf->DataWidthUnit; in HAL_CRYP_SetConfig()
701 hcryp->Init.HeaderWidthUnit = pConf->HeaderWidthUnit; in HAL_CRYP_SetConfig()
702 hcryp->Init.KeyMode = pConf->KeyMode; in HAL_CRYP_SetConfig()
703 hcryp->Init.KeyIVConfigSkip = pConf->KeyIVConfigSkip; in HAL_CRYP_SetConfig()
704 hcryp->Init.KeySelect = pConf->KeySelect; in HAL_CRYP_SetConfig()
708 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
710 …MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_A… in HAL_CRYP_SetConfig()
711 hcryp->Init.DataType | hcryp->Init.KeySize | hcryp->Init.Algorithm); in HAL_CRYP_SetConfig()
715 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_SetConfig()
718 …if ((hcryp->Init.KeySelect != CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_WRAPPED)) in HAL_CRYP_SetConfig()
721 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_WRAPPED); in HAL_CRYP_SetConfig()
724 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, \ in HAL_CRYP_SetConfig()
726 … hcryp->Init.KeySelect | hcryp->Init.KeyMode | SAES_CONV_DATATYPE(hcryp->Init.DataType) | \ in HAL_CRYP_SetConfig()
727 … SAES_CONV_KEYSIZE(hcryp->Init.KeySize) | CRYP_SAES_AlgoConversion(hcryp->Init.Algorithm, in HAL_CRYP_SetConfig()
733 __HAL_UNLOCK(hcryp); in HAL_CRYP_SetConfig()
736 hcryp->ErrorCode = HAL_CRYP_ERROR_NONE; in HAL_CRYP_SetConfig()
739 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_SetConfig()
742 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_SetConfig()
750 __HAL_UNLOCK(hcryp); in HAL_CRYP_SetConfig()
753 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_SetConfig()
765 HAL_StatusTypeDef HAL_CRYP_GetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf) in HAL_CRYP_GetConfig() argument
768 if ((hcryp == NULL) || (pConf == NULL)) in HAL_CRYP_GetConfig()
773 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_GetConfig()
776 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_GetConfig()
779 __HAL_LOCK(hcryp); in HAL_CRYP_GetConfig()
782 pConf->DataType = hcryp->Init.DataType; in HAL_CRYP_GetConfig()
783 pConf->pKey = hcryp->Init.pKey; in HAL_CRYP_GetConfig()
784 pConf->Algorithm = hcryp->Init.Algorithm; in HAL_CRYP_GetConfig()
785 pConf->KeySize = hcryp->Init.KeySize ; in HAL_CRYP_GetConfig()
786 pConf->pInitVect = hcryp->Init.pInitVect; in HAL_CRYP_GetConfig()
787 pConf->Header = hcryp->Init.Header ; in HAL_CRYP_GetConfig()
788 pConf->HeaderSize = hcryp->Init.HeaderSize; in HAL_CRYP_GetConfig()
789 pConf->B0 = hcryp->Init.B0; in HAL_CRYP_GetConfig()
790 pConf->DataWidthUnit = hcryp->Init.DataWidthUnit; in HAL_CRYP_GetConfig()
791 pConf->HeaderWidthUnit = hcryp->Init.HeaderWidthUnit; in HAL_CRYP_GetConfig()
792 pConf->KeyMode = hcryp->Init.KeyMode; in HAL_CRYP_GetConfig()
793 pConf->KeySelect = hcryp->Init.KeySelect; in HAL_CRYP_GetConfig()
794 pConf->KeyIVConfigSkip = hcryp->Init.KeyIVConfigSkip; in HAL_CRYP_GetConfig()
797 __HAL_UNLOCK(hcryp); in HAL_CRYP_GetConfig()
800 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_GetConfig()
808 __HAL_UNLOCK(hcryp); in HAL_CRYP_GetConfig()
811 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_GetConfig()
821 __weak void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_MspInit() argument
824 UNUSED(hcryp); in HAL_CRYP_MspInit()
837 __weak void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_MspDeInit() argument
840 UNUSED(hcryp); in HAL_CRYP_MspDeInit()
862 HAL_StatusTypeDef HAL_CRYP_RegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef C… in HAL_CRYP_RegisterCallback() argument
870 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
875 __HAL_LOCK(hcryp); in HAL_CRYP_RegisterCallback()
877 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_RegisterCallback()
882 hcryp->InCpltCallback = pCallback; in HAL_CRYP_RegisterCallback()
886 hcryp->OutCpltCallback = pCallback; in HAL_CRYP_RegisterCallback()
890 hcryp->ErrorCallback = pCallback; in HAL_CRYP_RegisterCallback()
894 hcryp->MspInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
898 hcryp->MspDeInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
903 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
909 else if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_RegisterCallback()
914 hcryp->MspInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
918 hcryp->MspDeInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
923 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
932 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
938 __HAL_UNLOCK(hcryp); in HAL_CRYP_RegisterCallback()
956 HAL_StatusTypeDef HAL_CRYP_UnRegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef… in HAL_CRYP_UnRegisterCallback() argument
961 __HAL_LOCK(hcryp); in HAL_CRYP_UnRegisterCallback()
963 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_UnRegisterCallback()
968 hcryp->InCpltCallback = HAL_CRYP_InCpltCallback; /* Legacy InCpltCallback */ in HAL_CRYP_UnRegisterCallback()
972 hcryp->OutCpltCallback = HAL_CRYP_OutCpltCallback; /* Legacy OutCpltCallback */ in HAL_CRYP_UnRegisterCallback()
976 hcryp->ErrorCallback = HAL_CRYP_ErrorCallback; /* Legacy ErrorCallback */ in HAL_CRYP_UnRegisterCallback()
980 hcryp->MspInitCallback = HAL_CRYP_MspInit; in HAL_CRYP_UnRegisterCallback()
984 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; in HAL_CRYP_UnRegisterCallback()
989 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_UnRegisterCallback()
995 else if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_UnRegisterCallback()
1000 hcryp->MspInitCallback = HAL_CRYP_MspInit; in HAL_CRYP_UnRegisterCallback()
1004 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; in HAL_CRYP_UnRegisterCallback()
1009 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_UnRegisterCallback()
1018 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;; in HAL_CRYP_UnRegisterCallback()
1024 __HAL_UNLOCK(hcryp); in HAL_CRYP_UnRegisterCallback()
1043 void HAL_CRYP_ProcessSuspend(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_ProcessSuspend() argument
1046 hcryp->SuspendRequest = HAL_CRYP_SUSPEND; in HAL_CRYP_ProcessSuspend()
1060 HAL_StatusTypeDef HAL_CRYP_DMAProcessSuspend(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_DMAProcessSuspend() argument
1069 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_DMAProcessSuspend()
1073 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (~CRYP_DMACR_DIEN); in HAL_CRYP_DMAProcessSuspend()
1077 …while (((((CRYP_TypeDef *)(hcryp->Instance))->SR) & (CRYP_SR_IFEM | CRYP_SR_OFNE | CRYP_SR_BUSY)) … in HAL_CRYP_DMAProcessSuspend()
1084 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (~CRYP_DMACR_DOEN); in HAL_CRYP_DMAProcessSuspend()
1087 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DMAProcessSuspend()
1091 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_DMAProcessSuspend()
1094 (((SAES_TypeDef *)(hcryp->Instance)))->CR &= (~SAES_CR_DMAINEN); in HAL_CRYP_DMAProcessSuspend()
1097 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in HAL_CRYP_DMAProcessSuspend()
1100 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DMAProcessSuspend()
1103 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in HAL_CRYP_DMAProcessSuspend()
1104 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_DMAProcessSuspend()
1107 __HAL_UNLOCK(hcryp); in HAL_CRYP_DMAProcessSuspend()
1110 hcryp->ErrorCallback(hcryp); in HAL_CRYP_DMAProcessSuspend()
1113 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_DMAProcessSuspend()
1118 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (~SAES_CR_DMAOUTEN); in HAL_CRYP_DMAProcessSuspend()
1121 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in HAL_CRYP_DMAProcessSuspend()
1128 …tmp_remaining_DMATransferSize_inWords = ((((DMA_Channel_TypeDef *)hcryp->hdmain->Instance)->CBR1) … in HAL_CRYP_DMAProcessSuspend()
1130 …tmp_remaining_DMATransferSize_inWords += ((((DMA_Channel_TypeDef *)hcryp->hdmain->Instance)->CSR) … in HAL_CRYP_DMAProcessSuspend()
1139 if (HAL_DMA_Abort(hcryp->hdmain) != HAL_OK) in HAL_CRYP_DMAProcessSuspend()
1143 if (HAL_DMA_Abort(hcryp->hdmaout) != HAL_OK) in HAL_CRYP_DMAProcessSuspend()
1150 tmp_initial_DMATransferSize_inWords = ((uint32_t) hcryp->Size / 4U); in HAL_CRYP_DMAProcessSuspend()
1154 …hcryp->pCrypInBuffPtr += (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSize_inW… in HAL_CRYP_DMAProcessSuspend()
1155 …hcryp->pCrypOutBuffPtr += (tmp_initial_DMATransferSize_inWords - tmp_remaining_DMATransferSize_inW… in HAL_CRYP_DMAProcessSuspend()
1158 hcryp->CrypInCount = (uint16_t)tmp_remaining_DMATransferSize_inWords; in HAL_CRYP_DMAProcessSuspend()
1159 hcryp->CrypOutCount = (uint16_t)tmp_remaining_DMATransferSize_inWords; in HAL_CRYP_DMAProcessSuspend()
1160 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in HAL_CRYP_DMAProcessSuspend()
1175 HAL_StatusTypeDef HAL_CRYP_Suspend(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Suspend() argument
1182 tmp_SAES_CR_DMAIN_bit = (((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_DMAINEN); in HAL_CRYP_Suspend()
1183 if ((((((CRYP_TypeDef *)(hcryp->Instance))->DMACR & CRYP_DMACR_DIEN) == CRYP_DMACR_DIEN) \ in HAL_CRYP_Suspend()
1184 && (IS_CRYP_INSTANCE(hcryp->Instance))) || \ in HAL_CRYP_Suspend()
1185 ((tmp_SAES_CR_DMAIN_bit == SAES_CR_DMAINEN) && (IS_SAES_INSTANCE(hcryp->Instance)))) in HAL_CRYP_Suspend()
1187 if (HAL_CRYP_DMAProcessSuspend(hcryp) != HAL_OK) in HAL_CRYP_Suspend()
1191 hcryp->SuspendedProcessing = DMA_SUSPENDED; in HAL_CRYP_Suspend()
1195 HAL_CRYP_ProcessSuspend(hcryp); in HAL_CRYP_Suspend()
1196 hcryp->SuspendedProcessing = IT_SUSPENDED; in HAL_CRYP_Suspend()
1201 state = HAL_CRYP_GetState(hcryp); in HAL_CRYP_Suspend()
1205 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in HAL_CRYP_Suspend()
1207 if (HAL_CRYP_GetState(hcryp) == HAL_CRYP_STATE_READY) in HAL_CRYP_Suspend()
1214 if ((hcryp->Init.Algorithm == CRYP_AES_CBC) || \ in HAL_CRYP_Suspend()
1215 (hcryp->Init.Algorithm == CRYP_AES_CTR) || \ in HAL_CRYP_Suspend()
1216 (hcryp->Init.Algorithm == CRYP_AES_GCM) || \ in HAL_CRYP_Suspend()
1217 (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_Suspend()
1220 CRYP_Read_IVRegisters(hcryp, hcryp->IV_saved); in HAL_CRYP_Suspend()
1224 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Suspend()
1227 hcryp->CR_saved = ((CRYP_TypeDef *)(hcryp->Instance))->CR; in HAL_CRYP_Suspend()
1230 if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_Suspend()
1232 CRYP_Read_ContextSwapRegisters(hcryp, hcryp->SUSPxR_saved, hcryp->Init.Algorithm); in HAL_CRYP_Suspend()
1237 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Suspend()
1240 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Suspend()
1243 ((SAES_TypeDef *)(hcryp->Instance))->KEYR7 = 0x0U; in HAL_CRYP_Suspend()
1244 ((SAES_TypeDef *)(hcryp->Instance))->KEYR6 = 0x0U; in HAL_CRYP_Suspend()
1245 ((SAES_TypeDef *)(hcryp->Instance))->KEYR5 = 0x0U; in HAL_CRYP_Suspend()
1246 ((SAES_TypeDef *)(hcryp->Instance))->KEYR4 = 0x0U; in HAL_CRYP_Suspend()
1247 ((SAES_TypeDef *)(hcryp->Instance))->KEYR3 = 0x0U; in HAL_CRYP_Suspend()
1248 ((SAES_TypeDef *)(hcryp->Instance))->KEYR2 = 0x0U; in HAL_CRYP_Suspend()
1249 ((SAES_TypeDef *)(hcryp->Instance))->KEYR1 = 0x0U; in HAL_CRYP_Suspend()
1250 ((SAES_TypeDef *)(hcryp->Instance))->KEYR0 = 0x0U; in HAL_CRYP_Suspend()
1253 hcryp->CR_saved = ((SAES_TypeDef *)(hcryp->Instance))->CR; in HAL_CRYP_Suspend()
1258 hcryp->Init_saved = hcryp->Init; in HAL_CRYP_Suspend()
1259 hcryp->pCrypInBuffPtr_saved = hcryp->pCrypInBuffPtr; in HAL_CRYP_Suspend()
1260 hcryp->pCrypOutBuffPtr_saved = hcryp->pCrypOutBuffPtr; in HAL_CRYP_Suspend()
1261 hcryp->CrypInCount_saved = hcryp->CrypInCount; in HAL_CRYP_Suspend()
1262 hcryp->CrypOutCount_saved = hcryp->CrypOutCount; in HAL_CRYP_Suspend()
1263 hcryp->Phase_saved = hcryp->Phase; in HAL_CRYP_Suspend()
1264 hcryp->State_saved = hcryp->State; in HAL_CRYP_Suspend()
1265 hcryp->Size_saved = ((hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) ? \ in HAL_CRYP_Suspend()
1266 (hcryp->Size / 4U) : hcryp->Size); in HAL_CRYP_Suspend()
1267 hcryp->SizesSum_saved = hcryp->SizesSum; in HAL_CRYP_Suspend()
1268 hcryp->CrypHeaderCount_saved = hcryp->CrypHeaderCount; in HAL_CRYP_Suspend()
1269 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in HAL_CRYP_Suspend()
1283 HAL_StatusTypeDef HAL_CRYP_Resume(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Resume() argument
1286 if (hcryp == NULL) in HAL_CRYP_Resume()
1291 if (hcryp->State_saved != HAL_CRYP_STATE_SUSPENDED) in HAL_CRYP_Resume()
1299 hcryp->Init = hcryp->Init_saved; in HAL_CRYP_Resume()
1300 hcryp->State = hcryp->State_saved; in HAL_CRYP_Resume()
1301 hcryp->Phase = hcryp->Phase_saved; in HAL_CRYP_Resume()
1302 hcryp->CrypHeaderCount = hcryp->CrypHeaderCount_saved; in HAL_CRYP_Resume()
1305 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in HAL_CRYP_Resume()
1307 hcryp->Init.pInitVect = hcryp->IV_saved; in HAL_CRYP_Resume()
1310 __HAL_CRYP_RESET_HANDLE_STATE(hcryp); in HAL_CRYP_Resume()
1312 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Resume()
1314 ((CRYP_TypeDef *)(hcryp->Instance))->CR |= CRYP_CR_IPRST; in HAL_CRYP_Resume()
1315 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= (~CRYP_CR_IPRST); in HAL_CRYP_Resume()
1319 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Resume()
1321 ((SAES_TypeDef *)(hcryp->Instance))->CR |= SAES_CR_IPRST; in HAL_CRYP_Resume()
1322 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (~SAES_CR_IPRST); in HAL_CRYP_Resume()
1327 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Resume()
1329 if ((hcryp->Init.Algorithm == CRYP_AES_ECB) || \ in HAL_CRYP_Resume()
1330 (hcryp->Init.Algorithm == CRYP_AES_CBC) || \ in HAL_CRYP_Resume()
1331 (hcryp->Init.Algorithm == CRYP_AES_CTR)) in HAL_CRYP_Resume()
1333 (void) HAL_CRYP_Init(hcryp); in HAL_CRYP_Resume()
1340 ((CRYP_TypeDef *)(hcryp->Instance))->CR = hcryp->CR_saved; in HAL_CRYP_Resume()
1343 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in HAL_CRYP_Resume()
1346 CRYP_Write_ContextSwapRegisters(hcryp, hcryp->SUSPxR_saved, hcryp->Init.Algorithm); in HAL_CRYP_Resume()
1349 CRYP_Write_IVRegisters(hcryp, hcryp->IV_saved); in HAL_CRYP_Resume()
1353 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Resume()
1356 if (hcryp->SuspendedProcessing == DMA_SUSPENDED) in HAL_CRYP_Resume()
1358 if (((IS_CRYP_INSTANCE(hcryp->Instance)) && \ in HAL_CRYP_Resume()
1359 (READ_BIT(hcryp->CR_saved, CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT)) || \ in HAL_CRYP_Resume()
1360 ((IS_SAES_INSTANCE(hcryp->Instance)) && \ in HAL_CRYP_Resume()
1361 (READ_BIT(hcryp->CR_saved, SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT))) in HAL_CRYP_Resume()
1363 … if (HAL_CRYP_Encrypt_DMA(hcryp, hcryp->pCrypInBuffPtr_saved, (uint16_t) hcryp->CrypInCount_saved, in HAL_CRYP_Resume()
1364 hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1371 … if (HAL_CRYP_Decrypt_DMA(hcryp, hcryp->pCrypInBuffPtr_saved, (uint16_t) hcryp->CrypInCount_saved, in HAL_CRYP_Resume()
1372 hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1381 hcryp->ResumingFlag = 1U; in HAL_CRYP_Resume()
1383 if (((IS_CRYP_INSTANCE(hcryp->Instance)) && in HAL_CRYP_Resume()
1384 (READ_BIT(hcryp->CR_saved, CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT)) || \ in HAL_CRYP_Resume()
1385 ((IS_SAES_INSTANCE(hcryp->Instance)) && \ in HAL_CRYP_Resume()
1386 (READ_BIT(hcryp->CR_saved, SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT))) in HAL_CRYP_Resume()
1388 if (HAL_CRYP_Encrypt_IT(hcryp, hcryp->pCrypInBuffPtr_saved, in HAL_CRYP_Resume()
1389 hcryp->Size_saved, hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1396 if (HAL_CRYP_Decrypt_IT(hcryp, hcryp->pCrypInBuffPtr_saved, in HAL_CRYP_Resume()
1397 hcryp->Size_saved, hcryp->pCrypOutBuffPtr_saved) != HAL_OK) in HAL_CRYP_Resume()
1450 HAL_StatusTypeDef HAL_CRYP_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint3… in HAL_CRYP_Encrypt() argument
1456 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt()
1459 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt()
1462 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt()
1465 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt()
1466 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt()
1467 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt()
1468 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt()
1471 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt()
1473 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt()
1477 hcryp->Size = Size; in HAL_CRYP_Encrypt()
1482 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt()
1484 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt()
1487 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt()
1491 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt()
1493 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_ENCRYPT); in HAL_CRYP_Encrypt()
1496 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Encrypt()
1508 status = CRYP_AES_Encrypt(hcryp, Timeout); in HAL_CRYP_Encrypt()
1514 status = CRYP_AESGCM_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
1520 status = CRYP_AESCCM_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
1524 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt()
1532 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Encrypt()
1535 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt()
1541 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt()
1544 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt()
1562 HAL_StatusTypeDef HAL_CRYP_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint3… in HAL_CRYP_Decrypt() argument
1568 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt()
1571 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt()
1574 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt()
1577 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt()
1578 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt()
1579 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt()
1580 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt()
1583 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt()
1585 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt()
1589 hcryp->Size = Size; in HAL_CRYP_Decrypt()
1594 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt()
1596 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt()
1599 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt()
1603 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt()
1605 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in HAL_CRYP_Decrypt()
1608 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Decrypt()
1620 status = CRYP_AES_Decrypt(hcryp, Timeout); in HAL_CRYP_Decrypt()
1626 status = CRYP_AESGCM_Process(hcryp, Timeout) ; in HAL_CRYP_Decrypt()
1632 status = CRYP_AESCCM_Process(hcryp, Timeout); in HAL_CRYP_Decrypt()
1636 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt()
1644 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Decrypt()
1647 __HAL_UNLOCK(hcryp); in HAL_CRYP_Decrypt()
1653 __HAL_UNLOCK(hcryp); in HAL_CRYP_Decrypt()
1656 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt()
1673 HAL_StatusTypeDef HAL_CRYP_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, ui… in HAL_CRYP_Encrypt_IT() argument
1678 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt_IT()
1681 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt_IT()
1684 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt_IT()
1688 if (hcryp->ResumingFlag == 1U) in HAL_CRYP_Encrypt_IT()
1690 hcryp->ResumingFlag = 0U; in HAL_CRYP_Encrypt_IT()
1691 hcryp->CrypInCount = (uint16_t) hcryp->CrypInCount_saved; in HAL_CRYP_Encrypt_IT()
1692 hcryp->CrypOutCount = (uint16_t) hcryp->CrypOutCount_saved; in HAL_CRYP_Encrypt_IT()
1697 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt_IT()
1698 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt_IT()
1701 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt_IT()
1702 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt_IT()
1705 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt_IT()
1707 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt_IT()
1711 hcryp->Size = Size; in HAL_CRYP_Encrypt_IT()
1716 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_IT()
1718 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt_IT()
1721 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt_IT()
1725 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_IT()
1727 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_ENCRYPT); in HAL_CRYP_Encrypt_IT()
1730 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Encrypt_IT()
1741 status = CRYP_AES_Encrypt_IT(hcryp); in HAL_CRYP_Encrypt_IT()
1746 status = CRYP_AESGCM_Process_IT(hcryp) ; in HAL_CRYP_Encrypt_IT()
1751 status = CRYP_AESCCM_Process_IT(hcryp); in HAL_CRYP_Encrypt_IT()
1755 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt_IT()
1763 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt_IT()
1780 HAL_StatusTypeDef HAL_CRYP_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, ui… in HAL_CRYP_Decrypt_IT() argument
1785 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt_IT()
1788 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt_IT()
1791 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt_IT()
1795 if (hcryp->ResumingFlag == 1U) in HAL_CRYP_Decrypt_IT()
1797 hcryp->ResumingFlag = 0U; in HAL_CRYP_Decrypt_IT()
1798 hcryp->CrypInCount = (uint16_t) hcryp->CrypInCount_saved; in HAL_CRYP_Decrypt_IT()
1799 hcryp->CrypOutCount = (uint16_t) hcryp->CrypOutCount_saved; in HAL_CRYP_Decrypt_IT()
1804 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt_IT()
1805 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt_IT()
1807 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt_IT()
1808 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt_IT()
1811 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt_IT()
1813 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt_IT()
1817 hcryp->Size = Size; in HAL_CRYP_Decrypt_IT()
1822 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_IT()
1824 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt_IT()
1827 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt_IT()
1831 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_IT()
1833 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in HAL_CRYP_Decrypt_IT()
1836 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Decrypt_IT()
1848 status = CRYP_AES_Decrypt_IT(hcryp); in HAL_CRYP_Decrypt_IT()
1854 status = CRYP_AESGCM_Process_IT(hcryp) ; in HAL_CRYP_Decrypt_IT()
1860 status = CRYP_AESCCM_Process_IT(hcryp); in HAL_CRYP_Decrypt_IT()
1864 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt_IT()
1872 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt_IT()
1889 HAL_StatusTypeDef HAL_CRYP_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, u… in HAL_CRYP_Encrypt_DMA() argument
1896 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt_DMA()
1899 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt_DMA()
1902 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt_DMA()
1905 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt_DMA()
1906 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt_DMA()
1907 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt_DMA()
1908 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt_DMA()
1911 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt_DMA()
1913 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt_DMA()
1917 hcryp->Size = Size; in HAL_CRYP_Encrypt_DMA()
1922 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
1924 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt_DMA()
1927 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt_DMA()
1931 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
1933 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_ENCRYPT); in HAL_CRYP_Encrypt_DMA()
1936 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Encrypt_DMA()
1947 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in HAL_CRYP_Encrypt_DMA()
1949 if (hcryp->KeyIVConfig == 1U) in HAL_CRYP_Encrypt_DMA()
1960 hcryp->KeyIVConfig = 1U; in HAL_CRYP_Encrypt_DMA()
1967 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in HAL_CRYP_Encrypt_DMA()
1969 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in HAL_CRYP_Encrypt_DMA()
1975 while (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEYVALID) == 0x0U) in HAL_CRYP_Encrypt_DMA()
1981 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_Encrypt_DMA()
1984 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in HAL_CRYP_Encrypt_DMA()
1985 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Encrypt_DMA()
1988 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt_DMA()
1994 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in HAL_CRYP_Encrypt_DMA()
1997 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
1999 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_DMA()
2000 … ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in HAL_CRYP_Encrypt_DMA()
2001 … ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in HAL_CRYP_Encrypt_DMA()
2002 … ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in HAL_CRYP_Encrypt_DMA()
2006 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Encrypt_DMA()
2008 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_DMA()
2009 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in HAL_CRYP_Encrypt_DMA()
2010 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in HAL_CRYP_Encrypt_DMA()
2011 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in HAL_CRYP_Encrypt_DMA()
2019 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Encrypt_DMA()
2022 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), hcryp->Size, (uint32_t)(hcryp->pCrypOu… in HAL_CRYP_Encrypt_DMA()
2028 status = CRYP_AESGCM_Process_DMA(hcryp); in HAL_CRYP_Encrypt_DMA()
2034 status = CRYP_AESCCM_Process_DMA(hcryp); in HAL_CRYP_Encrypt_DMA()
2038 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt_DMA()
2046 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt_DMA()
2063 HAL_StatusTypeDef HAL_CRYP_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, u… in HAL_CRYP_Decrypt_DMA() argument
2068 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt_DMA()
2071 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt_DMA()
2074 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt_DMA()
2077 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt_DMA()
2078 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt_DMA()
2079 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt_DMA()
2080 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt_DMA()
2083 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt_DMA()
2085 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt_DMA()
2089 hcryp->Size = Size; in HAL_CRYP_Decrypt_DMA()
2094 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_DMA()
2096 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt_DMA()
2099 algo = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt_DMA()
2103 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_Decrypt_DMA()
2105 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in HAL_CRYP_Decrypt_DMA()
2108 algo = CRYP_SAES_AlgoConversion((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_CHMOD), in HAL_CRYP_Decrypt_DMA()
2120 status = CRYP_AES_Decrypt_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
2126 status = CRYP_AESGCM_Process_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
2133 status = CRYP_AESCCM_Process_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
2137 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt_DMA()
2145 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt_DMA()
2181 void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_IRQHandler() argument
2184 if (IS_CRYP_INSTANCE(hcryp->Instance)) in HAL_CRYP_IRQHandler()
2186 uint32_t itstatus = ((CRYP_TypeDef *)(hcryp->Instance))->MISR; in HAL_CRYP_IRQHandler()
2190 if ((hcryp->Init.Algorithm == CRYP_AES_ECB) || (hcryp->Init.Algorithm == CRYP_AES_CBC) in HAL_CRYP_IRQHandler()
2191 || (hcryp->Init.Algorithm == CRYP_AES_CTR)) in HAL_CRYP_IRQHandler()
2193 CRYP_AES_IT(hcryp); /*AES*/ in HAL_CRYP_IRQHandler()
2196 else if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_IRQHandler()
2199 if ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_PHASE_HEADER) == CRYP_PHASE_HEADER) in HAL_CRYP_IRQHandler()
2201 CRYP_GCMCCM_SetHeaderPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2205 CRYP_GCMCCM_SetPayloadPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2216 if (IS_SAES_INSTANCE(hcryp->Instance)) in HAL_CRYP_IRQHandler()
2219 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_RWEIE) != RESET) in HAL_CRYP_IRQHandler()
2222 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_WRERR) != RESET) in HAL_CRYP_IRQHandler()
2224 hcryp->ErrorCode |= HAL_CRYP_ERROR_WRITE; in HAL_CRYP_IRQHandler()
2225 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_RWEIF); in HAL_CRYP_IRQHandler()
2228 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_RDERR) != RESET) in HAL_CRYP_IRQHandler()
2230 hcryp->ErrorCode |= HAL_CRYP_ERROR_READ; in HAL_CRYP_IRQHandler()
2231 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_RWEIF); in HAL_CRYP_IRQHandler()
2234 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_IRQHandler()
2237 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_KEIE) != RESET) in HAL_CRYP_IRQHandler()
2239 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEIF) != RESET) in HAL_CRYP_IRQHandler()
2241 hcryp->ErrorCode |= HAL_CRYP_ERROR_KEY; in HAL_CRYP_IRQHandler()
2242 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_KEIF); in HAL_CRYP_IRQHandler()
2244 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_IRQHandler()
2248 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_RNGEIE) != RESET) in HAL_CRYP_IRQHandler()
2250 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_RNGEIF) != RESET) in HAL_CRYP_IRQHandler()
2252 hcryp->ErrorCode |= HAL_CRYP_ERROR_RNG; in HAL_CRYP_IRQHandler()
2254 HAL_CRYP_ErrorCallback(hcryp); in HAL_CRYP_IRQHandler()
2255 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_RNGEIF); in HAL_CRYP_IRQHandler()
2258 if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_CCF) != RESET) in HAL_CRYP_IRQHandler()
2260 if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_CCFIE) != RESET) in HAL_CRYP_IRQHandler()
2263 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in HAL_CRYP_IRQHandler()
2265 if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_AES_CCM)) in HAL_CRYP_IRQHandler()
2268 if ((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_PHASE_HEADER) == SAES_PHASE_HEADER) in HAL_CRYP_IRQHandler()
2270 CRYP_GCMCCM_SetHeaderPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2274 CRYP_GCMCCM_SetPayloadPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
2279 CRYP_AES_IT(hcryp); in HAL_CRYP_IRQHandler()
2293 uint32_t HAL_CRYP_GetError(const CRYP_HandleTypeDef *hcryp) in HAL_CRYP_GetError() argument
2295 return hcryp->ErrorCode; in HAL_CRYP_GetError()
2304 HAL_CRYP_STATETypeDef HAL_CRYP_GetState(const CRYP_HandleTypeDef *hcryp) in HAL_CRYP_GetState() argument
2306 return hcryp->State; in HAL_CRYP_GetState()
2315 __weak void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_InCpltCallback() argument
2318 UNUSED(hcryp); in HAL_CRYP_InCpltCallback()
2331 __weak void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_OutCpltCallback() argument
2334 UNUSED(hcryp); in HAL_CRYP_OutCpltCallback()
2347 __weak void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_ErrorCallback() argument
2350 UNUSED(hcryp); in HAL_CRYP_ErrorCallback()
2372 static HAL_StatusTypeDef CRYP_AES_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_Encrypt() argument
2378 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Encrypt()
2380 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Encrypt()
2391 hcryp->KeyIVConfig = 1U; in CRYP_AES_Encrypt()
2398 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Encrypt()
2400 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Encrypt()
2406 while (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEYVALID) == 0x0U) in CRYP_AES_Encrypt()
2414 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt()
2417 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Encrypt()
2418 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt()
2421 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt()
2428 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt()
2430 if (hcryp->Init.KeyMode == CRYP_KEYMODE_SHARED) in CRYP_AES_Encrypt()
2434 CLEAR_BIT(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_KMOD); in CRYP_AES_Encrypt()
2439 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Encrypt()
2443 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt()
2445 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt()
2446 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt()
2447 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt()
2448 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt()
2452 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt()
2454 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt()
2455 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt()
2456 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt()
2457 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt()
2464 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Encrypt()
2467 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Encrypt()
2469 outcount = hcryp->CrypOutCount; in CRYP_AES_Encrypt()
2471 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_Encrypt()
2474 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AES_Encrypt()
2476 outcount = hcryp->CrypOutCount; in CRYP_AES_Encrypt()
2480 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt()
2483 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt()
2495 static HAL_StatusTypeDef CRYP_AES_Encrypt_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Encrypt_IT() argument
2500 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Encrypt_IT()
2502 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Encrypt_IT()
2513 hcryp->KeyIVConfig = 1U; in CRYP_AES_Encrypt_IT()
2520 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Encrypt_IT()
2522 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Encrypt_IT()
2528 while (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_KEYVALID) == 0x0U) in CRYP_AES_Encrypt_IT()
2534 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt_IT()
2537 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Encrypt_IT()
2538 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt_IT()
2541 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt_IT()
2547 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2549 if (hcryp->Init.KeyMode == CRYP_KEYMODE_SHARED) in CRYP_AES_Encrypt_IT()
2553 CLEAR_BIT(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_KMOD); in CRYP_AES_Encrypt_IT()
2558 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Encrypt_IT()
2562 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2564 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt_IT()
2565 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt_IT()
2566 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt_IT()
2567 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt_IT()
2571 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2573 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt_IT()
2574 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt_IT()
2575 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt_IT()
2576 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt_IT()
2583 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Encrypt_IT()
2585 if (hcryp->Size != 0U) in CRYP_AES_Encrypt_IT()
2588 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Encrypt_IT()
2591 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2594 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2595 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2596 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2597 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2598 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2599 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2600 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Encrypt_IT()
2601 hcryp->CrypInCount++; in CRYP_AES_Encrypt_IT()
2607 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2609 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_Encrypt_IT()
2613 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Encrypt_IT()
2615 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE | CRYP_IT_RNGEIE); in CRYP_AES_Encrypt_IT()
2622 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt_IT()
2625 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt_IT()
2638 static HAL_StatusTypeDef CRYP_AES_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_Decrypt() argument
2643 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt()
2645 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt()
2656 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt()
2663 if (hcryp->Init.Algorithm != CRYP_AES_CTR) /*ECB or CBC*/ in CRYP_AES_Decrypt()
2666 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2669 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, CRYP_AES_KEY); in CRYP_AES_Decrypt()
2672 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt()
2674 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt()
2676 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2681 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2684 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt()
2687 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2690 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt()
2691 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2694 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt()
2698 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt()
2702 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2707 …if (((((SAES_TypeDef *)(hcryp->Instance))->CR) & (CRYP_KEYMODE_WRAPPED | CRYP_KEYMODE_SHARED)) != … in CRYP_AES_Decrypt()
2709 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_NORMAL); in CRYP_AES_Decrypt()
2712 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_KEY_DERIVATION); in CRYP_AES_Decrypt()
2715 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Decrypt()
2717 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt()
2719 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2724 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2727 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt()
2730 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2733 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt()
2734 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2737 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt()
2741 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_Decrypt()
2745 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in CRYP_AES_Decrypt()
2752 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2755 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt()
2757 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt()
2759 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2763 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt()
2769 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2772 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2778 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt()
2782 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2784 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt()
2785 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt()
2786 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt()
2787 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt()
2791 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt()
2793 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt()
2794 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt()
2795 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt()
2796 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt()
2803 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt()
2806 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2809 outcount = hcryp->CrypOutCount; in CRYP_AES_Decrypt()
2811 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_Decrypt()
2814 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AES_Decrypt()
2816 outcount = hcryp->CrypOutCount; in CRYP_AES_Decrypt()
2820 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2823 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2834 static HAL_StatusTypeDef CRYP_AES_Decrypt_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Decrypt_IT() argument
2839 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt_IT()
2841 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt_IT()
2852 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt_IT()
2859 if (hcryp->Init.Algorithm != CRYP_AES_CTR) in CRYP_AES_Decrypt_IT()
2862 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2865 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, CRYP_AES_KEY); in CRYP_AES_Decrypt_IT()
2868 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_IT()
2870 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_IT()
2872 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2876 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_IT()
2881 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
2884 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_IT()
2887 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_IT()
2890 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_IT()
2891 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
2894 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
2899 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt_IT()
2903 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2908 …if (((((SAES_TypeDef *)(hcryp->Instance))->CR) & (CRYP_KEYMODE_WRAPPED | CRYP_KEYMODE_SHARED)) != … in CRYP_AES_Decrypt_IT()
2910 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_NORMAL); in CRYP_AES_Decrypt_IT()
2913 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_KEY_DERIVATION); in CRYP_AES_Decrypt_IT()
2916 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Decrypt_IT()
2918 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_IT()
2920 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2925 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
2928 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_IT()
2931 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_IT()
2934 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_IT()
2935 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
2938 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
2942 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_Decrypt_IT()
2946 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in CRYP_AES_Decrypt_IT()
2953 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2956 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_IT()
2958 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_IT()
2960 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2964 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_IT()
2970 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2973 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2979 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt_IT()
2983 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2985 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_IT()
2986 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_IT()
2987 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_IT()
2988 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_IT()
2992 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
2994 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_IT()
2995 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_IT()
2996 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_IT()
2997 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_IT()
3004 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt_IT()
3005 if (hcryp->Size != 0U) in CRYP_AES_Decrypt_IT()
3008 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
3011 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3014 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3015 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3016 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3017 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3018 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3019 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3020 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_Decrypt_IT()
3021 hcryp->CrypInCount++; in CRYP_AES_Decrypt_IT()
3027 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3029 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_Decrypt_IT()
3033 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_IT()
3035 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE | CRYP_IT_RNGEIE); in CRYP_AES_Decrypt_IT()
3042 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
3045 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
3057 static HAL_StatusTypeDef CRYP_AES_Decrypt_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Decrypt_DMA() argument
3062 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt_DMA()
3064 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt_DMA()
3075 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt_DMA()
3081 if (hcryp->Init.Algorithm != CRYP_AES_CTR) /*ECB or CBC*/ in CRYP_AES_Decrypt_DMA()
3085 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3088 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, CRYP_AES_KEY); in CRYP_AES_Decrypt_DMA()
3091 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_DMA()
3093 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_DMA()
3095 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3099 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_DMA()
3104 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3107 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_DMA()
3110 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3113 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_DMA()
3114 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
3117 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
3121 … MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt_DMA()
3125 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3130 …if (((((SAES_TypeDef *)(hcryp->Instance))->CR) & (CRYP_KEYMODE_WRAPPED | CRYP_KEYMODE_SHARED)) != … in CRYP_AES_Decrypt_DMA()
3132 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_KMOD, CRYP_KEYMODE_NORMAL); in CRYP_AES_Decrypt_DMA()
3135 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_KEY_DERIVATION); in CRYP_AES_Decrypt_DMA()
3138 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AES_Decrypt_DMA()
3140 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_DMA()
3142 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3147 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3150 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt_DMA()
3153 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_DMA()
3156 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_DMA()
3157 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
3160 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
3164 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_Decrypt_DMA()
3168 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_MODE, CRYP_MODE_DECRYPT); in CRYP_AES_Decrypt_DMA()
3176 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3179 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AES_Decrypt_DMA()
3181 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AES_Decrypt_DMA()
3183 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3187 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AES_Decrypt_DMA()
3193 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3196 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
3201 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt_DMA()
3205 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3207 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_DMA()
3208 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_DMA()
3209 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_DMA()
3210 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_DMA()
3214 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_Decrypt_DMA()
3216 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_DMA()
3217 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Decrypt_DMA()
3218 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Decrypt_DMA()
3219 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Decrypt_DMA()
3226 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt_DMA()
3228 if (hcryp->Size != 0U) in CRYP_AES_Decrypt_DMA()
3231 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), hcryp->Size, (uint32_t)(hcryp->pCrypOu… in CRYP_AES_Decrypt_DMA()
3236 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
3239 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
3253 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAInCplt() local
3256 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_DMAInCplt()
3260 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (uint32_t)(~CRYP_DMACR_DIEN); in CRYP_DMAInCplt()
3264 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_DMAInCplt()
3268 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (uint32_t)(~SAES_CR_DMAINEN); in CRYP_DMAInCplt()
3275 hcryp->InCpltCallback(hcryp); in CRYP_DMAInCplt()
3278 HAL_CRYP_InCpltCallback(hcryp); in CRYP_DMAInCplt()
3296 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAOutCplt() local
3301 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3303 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR &= (uint32_t)(~CRYP_DMACR_DOEN); in CRYP_DMAOutCplt()
3307 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3309 ((SAES_TypeDef *)(hcryp->Instance))->CR &= (uint32_t)(~SAES_CR_DMAOUTEN); in CRYP_DMAOutCplt()
3313 CLEAR_BIT(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_DMAOUTEN); in CRYP_DMAOutCplt()
3320 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3322 if (((hcryp->Size) % 16U) != 0U) in CRYP_DMAOutCplt()
3325 hcryp->CrypInCount = (hcryp->Size / 16U) * 4U; in CRYP_DMAOutCplt()
3326 hcryp->CrypOutCount = hcryp->CrypInCount; in CRYP_DMAOutCplt()
3329 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_DMAOutCplt()
3332 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_DMAOutCplt()
3333 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_DMAOutCplt()
3334 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_DMAOutCplt()
3337 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
3340 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_DMAOutCplt()
3343 __HAL_CRYP_ENABLE(hcryp); in CRYP_DMAOutCplt()
3358 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_DMAOutCplt()
3359 hcryp->CrypInCount++; in CRYP_DMAOutCplt()
3364 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_DMAOutCplt()
3375 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
3378 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_DMAOutCplt()
3379 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAOutCplt()
3382 __HAL_UNLOCK(hcryp); in CRYP_DMAOutCplt()
3385 hcryp->ErrorCallback(hcryp); in CRYP_DMAOutCplt()
3388 HAL_CRYP_ErrorCallback(hcryp); in CRYP_DMAOutCplt()
3391 } while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_OFNE)); in CRYP_DMAOutCplt()
3398 temp = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_DMAOutCplt()
3400 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_DMAOutCplt()
3401 hcryp->CrypOutCount++; in CRYP_DMAOutCplt()
3407 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_DMAOutCplt()
3411 if (((hcryp->Size) % 16U) != 0U) in CRYP_DMAOutCplt()
3414 hcryp->CrypInCount = (hcryp->Size / 16U) * 4U; in CRYP_DMAOutCplt()
3415 hcryp->CrypOutCount = hcryp->CrypInCount; in CRYP_DMAOutCplt()
3418 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - ((uint32_t)hcryp->Size); in CRYP_DMAOutCplt()
3420 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_DMAOutCplt()
3421 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_DMAOutCplt()
3422 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_DMAOutCplt()
3425 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_DMAOutCplt()
3441 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_DMAOutCplt()
3442 hcryp->CrypInCount++; in CRYP_DMAOutCplt()
3447 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_DMAOutCplt()
3452 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_DMAOutCplt()
3459 temp = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_DMAOutCplt()
3463 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (count < 4U)) in CRYP_DMAOutCplt()
3465 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp; in CRYP_DMAOutCplt()
3466 hcryp->CrypOutCount++; in CRYP_DMAOutCplt()
3473 if (((hcryp->Init.Algorithm & CRYP_AES_GCM) != CRYP_AES_GCM) in CRYP_DMAOutCplt()
3474 && ((hcryp->Init.Algorithm & CRYP_AES_CCM) != CRYP_AES_CCM)) in CRYP_DMAOutCplt()
3477 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
3481 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAOutCplt()
3484 __HAL_UNLOCK(hcryp); in CRYP_DMAOutCplt()
3489 hcryp->OutCpltCallback(hcryp); in CRYP_DMAOutCplt()
3492 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_DMAOutCplt()
3503 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAError() local
3506 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAError()
3509 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_DMAError()
3514 hcryp->ErrorCallback(hcryp); in CRYP_DMAError()
3517 HAL_CRYP_ErrorCallback(hcryp); in CRYP_DMAError()
3530 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_… in CRYP_SetDMAConfig() argument
3537 hcryp->hdmain->XferCpltCallback = CRYP_DMAInCplt; in CRYP_SetDMAConfig()
3540 hcryp->hdmain->XferErrorCallback = CRYP_DMAError; in CRYP_SetDMAConfig()
3543 hcryp->hdmaout->XferCpltCallback = CRYP_DMAOutCplt; in CRYP_SetDMAConfig()
3546 hcryp->hdmaout->XferErrorCallback = CRYP_DMAError; in CRYP_SetDMAConfig()
3549 __HAL_CRYP_ENABLE(hcryp); in CRYP_SetDMAConfig()
3552 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3554 peripheral_in_address = (uint32_t) &((CRYP_TypeDef *)(hcryp->Instance))->DIN; in CRYP_SetDMAConfig()
3555 peripheral_out_address = (uint32_t) &((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_SetDMAConfig()
3559 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3561 peripheral_in_address = (uint32_t) &((SAES_TypeDef *)(hcryp->Instance))->DINR; in CRYP_SetDMAConfig()
3562 peripheral_out_address = (uint32_t) &((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_SetDMAConfig()
3567 if ((hcryp->hdmain->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in CRYP_SetDMAConfig()
3569 if ((hcryp->hdmain->LinkedListQueue != NULL) && (hcryp->hdmain->LinkedListQueue->Head != NULL)) in CRYP_SetDMAConfig()
3572 hcryp->hdmain->LinkedListQueue->Head->\ in CRYP_SetDMAConfig()
3574 hcryp->hdmain->LinkedListQueue->Head->\ in CRYP_SetDMAConfig()
3576 hcryp->hdmain->LinkedListQueue->Head->\ in CRYP_SetDMAConfig()
3579 status = HAL_DMAEx_List_Start_IT(hcryp->hdmain); in CRYP_SetDMAConfig()
3589 status = HAL_DMA_Start_IT(hcryp->hdmain, inputaddr, peripheral_in_address, Size); in CRYP_SetDMAConfig()
3595 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetDMAConfig()
3600 hcryp->ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3603 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3608 if ((hcryp->hdmaout->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in CRYP_SetDMAConfig()
3610 … if ((hcryp->hdmaout->LinkedListQueue != NULL) && (hcryp->hdmaout->LinkedListQueue->Head != NULL)) in CRYP_SetDMAConfig()
3613 hcryp->hdmaout->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = \ in CRYP_SetDMAConfig()
3615 hcryp->hdmaout->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = \ in CRYP_SetDMAConfig()
3617 hcryp->hdmaout->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = \ in CRYP_SetDMAConfig()
3620 status = HAL_DMAEx_List_Start_IT(hcryp->hdmaout); in CRYP_SetDMAConfig()
3630 status = HAL_DMA_Start_IT(hcryp->hdmaout, peripheral_out_address, outputaddr, Size); in CRYP_SetDMAConfig()
3636 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetDMAConfig()
3641 hcryp->ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3644 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetDMAConfig()
3650 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3652 ((CRYP_TypeDef *)(hcryp->Instance))->DMACR = (CRYP_DMACR_DOEN | CRYP_DMACR_DIEN); in CRYP_SetDMAConfig()
3656 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_SetDMAConfig()
3658 ((SAES_TypeDef *)(hcryp->Instance))->CR |= (SAES_CR_DMAINEN | SAES_CR_DMAOUTEN); in CRYP_SetDMAConfig()
3670 static void CRYP_AES_ProcessData(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_ProcessData() argument
3681 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_ProcessData()
3684 incount = hcryp->CrypInCount; in CRYP_AES_ProcessData()
3686 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < ((hcryp->Si… in CRYP_AES_ProcessData()
3689 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3690 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3691 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3692 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3693 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3694 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3695 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_ProcessData()
3696 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3700 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_ProcessData()
3703 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_ProcessData()
3706 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_ProcessData()
3707 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_ProcessData()
3710 __HAL_UNLOCK(hcryp); in CRYP_AES_ProcessData()
3713 hcryp->ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3716 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3720 outcount = hcryp->CrypOutCount; in CRYP_AES_ProcessData()
3722 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < ((hcryp->S… in CRYP_AES_ProcessData()
3728 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AES_ProcessData()
3731 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_AES_ProcessData()
3733 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_ProcessData()
3734 hcryp->CrypOutCount++; in CRYP_AES_ProcessData()
3741 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_ProcessData()
3744 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3745 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3746 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3747 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3748 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3749 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3750 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_ProcessData()
3751 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
3754 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_ProcessData()
3757 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_ProcessData()
3760 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_ProcessData()
3761 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_ProcessData()
3764 __HAL_UNLOCK(hcryp); in CRYP_AES_ProcessData()
3767 hcryp->ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3770 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_ProcessData()
3775 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_ProcessData()
3781 temp[i] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AES_ProcessData()
3784 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (i < 4U)) in CRYP_AES_ProcessData()
3786 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_ProcessData()
3787 hcryp->CrypOutCount++; in CRYP_AES_ProcessData()
3802 static void CRYP_AES_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_IT() argument
3811 if (hcryp->State == HAL_CRYP_STATE_BUSY) in CRYP_AES_IT()
3814 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AES_IT()
3819 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_AES_IT()
3823 while (((((CRYP_TypeDef *)(hcryp->Instance))->SR) & (CRYP_SR_IFEM | CRYP_SR_OFNE | \ in CRYP_AES_IT()
3830 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_IT()
3833 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3836 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_AES_IT()
3839 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_AES_IT()
3842 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3848 incount = hcryp->CrypInCount; in CRYP_AES_IT()
3850 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->Siz… in CRYP_AES_IT()
3853 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3854 hcryp->CrypInCount++; in CRYP_AES_IT()
3855 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3856 hcryp->CrypInCount++; in CRYP_AES_IT()
3857 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3858 hcryp->CrypInCount++; in CRYP_AES_IT()
3859 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AES_IT()
3860 hcryp->CrypInCount++; in CRYP_AES_IT()
3861 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3864 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AES_IT()
3869 hcryp->InCpltCallback(hcryp); in CRYP_AES_IT()
3872 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AES_IT()
3878 outcount = hcryp->CrypOutCount; in CRYP_AES_IT()
3880 …if (((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->Si… in CRYP_AES_IT()
3886 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AES_IT()
3889 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_AES_IT()
3891 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_IT()
3892 hcryp->CrypOutCount++; in CRYP_AES_IT()
3895 if (hcryp->CrypOutCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3898 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_AES_IT()
3901 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_IT()
3904 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3907 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3912 hcryp->OutCpltCallback(hcryp); in CRYP_AES_IT()
3915 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_AES_IT()
3923 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AES_IT()
3929 temp[i] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AES_IT()
3932 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (i < 4U)) in CRYP_AES_IT()
3934 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_IT()
3935 hcryp->CrypOutCount++; in CRYP_AES_IT()
3938 if (hcryp->CrypOutCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3941 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AES_IT()
3944 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_IT()
3947 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3948 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3953 hcryp->OutCpltCallback(hcryp); in CRYP_AES_IT()
3956 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_AES_IT()
3964 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_AES_IT()
3967 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AES_IT()
3970 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_AES_IT()
3973 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AES_IT()
3976 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_AES_IT()
3979 hcryp->Phase = CRYP_PHASE_PAYLOAD_SUSPENDED; in CRYP_AES_IT()
3981 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3987 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
3988 hcryp->CrypInCount++; in CRYP_AES_IT()
3989 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
3990 hcryp->CrypInCount++; in CRYP_AES_IT()
3991 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
3992 hcryp->CrypInCount++; in CRYP_AES_IT()
3993 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AES_IT()
3994 hcryp->CrypInCount++; in CRYP_AES_IT()
3996 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
4001 hcryp->InCpltCallback(hcryp); in CRYP_AES_IT()
4004 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AES_IT()
4015 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
4017 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in CRYP_AES_IT()
4020 hcryp->ErrorCallback(hcryp); in CRYP_AES_IT()
4023 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_IT()
4035 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint32_t KeySize) in CRYP_SetKey() argument
4038 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_SetKey()
4043 ((CRYP_TypeDef *)(hcryp->Instance))->K0LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4044 ((CRYP_TypeDef *)(hcryp->Instance))->K0RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
4045 ((CRYP_TypeDef *)(hcryp->Instance))->K1LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
4046 ((CRYP_TypeDef *)(hcryp->Instance))->K1RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
4047 ((CRYP_TypeDef *)(hcryp->Instance))->K2LR = *(uint32_t *)(hcryp->Init.pKey + 4); in CRYP_SetKey()
4048 ((CRYP_TypeDef *)(hcryp->Instance))->K2RR = *(uint32_t *)(hcryp->Init.pKey + 5); in CRYP_SetKey()
4049 ((CRYP_TypeDef *)(hcryp->Instance))->K3LR = *(uint32_t *)(hcryp->Init.pKey + 6); in CRYP_SetKey()
4050 ((CRYP_TypeDef *)(hcryp->Instance))->K3RR = *(uint32_t *)(hcryp->Init.pKey + 7); in CRYP_SetKey()
4054 ((CRYP_TypeDef *)(hcryp->Instance))->K1LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4055 ((CRYP_TypeDef *)(hcryp->Instance))->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
4056 ((CRYP_TypeDef *)(hcryp->Instance))->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
4057 ((CRYP_TypeDef *)(hcryp->Instance))->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
4058 ((CRYP_TypeDef *)(hcryp->Instance))->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in CRYP_SetKey()
4059 ((CRYP_TypeDef *)(hcryp->Instance))->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in CRYP_SetKey()
4063 ((CRYP_TypeDef *)(hcryp->Instance))->K2LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4064 ((CRYP_TypeDef *)(hcryp->Instance))->K2RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
4065 ((CRYP_TypeDef *)(hcryp->Instance))->K3LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
4066 ((CRYP_TypeDef *)(hcryp->Instance))->K3RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
4075 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_SetKey()
4077 if (hcryp->Init.pKey != NULL) in CRYP_SetKey()
4082 ((SAES_TypeDef *)(hcryp->Instance))->KEYR7 = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4083 ((SAES_TypeDef *)(hcryp->Instance))->KEYR6 = *(uint32_t *)(hcryp->Init.pKey + 1U); in CRYP_SetKey()
4084 ((SAES_TypeDef *)(hcryp->Instance))->KEYR5 = *(uint32_t *)(hcryp->Init.pKey + 2U); in CRYP_SetKey()
4085 ((SAES_TypeDef *)(hcryp->Instance))->KEYR4 = *(uint32_t *)(hcryp->Init.pKey + 3U); in CRYP_SetKey()
4086 ((SAES_TypeDef *)(hcryp->Instance))->KEYR3 = *(uint32_t *)(hcryp->Init.pKey + 4U); in CRYP_SetKey()
4087 ((SAES_TypeDef *)(hcryp->Instance))->KEYR2 = *(uint32_t *)(hcryp->Init.pKey + 5U); in CRYP_SetKey()
4088 ((SAES_TypeDef *)(hcryp->Instance))->KEYR1 = *(uint32_t *)(hcryp->Init.pKey + 6U); in CRYP_SetKey()
4089 ((SAES_TypeDef *)(hcryp->Instance))->KEYR0 = *(uint32_t *)(hcryp->Init.pKey + 7U); in CRYP_SetKey()
4092 ((SAES_TypeDef *)(hcryp->Instance))->KEYR3 = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
4093 ((SAES_TypeDef *)(hcryp->Instance))->KEYR2 = *(uint32_t *)(hcryp->Init.pKey + 1U); in CRYP_SetKey()
4094 ((SAES_TypeDef *)(hcryp->Instance))->KEYR1 = *(uint32_t *)(hcryp->Init.pKey + 2U); in CRYP_SetKey()
4095 ((SAES_TypeDef *)(hcryp->Instance))->KEYR0 = *(uint32_t *)(hcryp->Init.pKey + 3U); in CRYP_SetKey()
4113 static HAL_StatusTypeDef CRYP_AESGCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AESGCM_Process() argument
4116 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U; in CRYP_AESGCM_Process()
4125 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process()
4127 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process()
4132 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process()
4139 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process()
4140 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process()
4145 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process()
4151 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process()
4155 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4157 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process()
4160 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESGCM_Process()
4162 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESGCM_Process()
4164 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process()
4168 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process()
4173 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process()
4174 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process()
4175 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process()
4176 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process()
4179 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4185 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process()
4193 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4196 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4197 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4200 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4208 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4210 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESGCM_Process()
4213 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESGCM_Process()
4216 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process()
4220 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process()
4221 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process()
4222 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process()
4223 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process()
4226 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4229 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4232 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4235 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4236 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4239 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4243 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process()
4249 if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4257 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process()
4261 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4264 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4267 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESGCM_Process()
4270 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESGCM_Process()
4273 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4277 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4280 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESGCM_Process()
4283 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process()
4289 if ((hcryp->Size % 16U) != 0U) in CRYP_AESGCM_Process()
4299 outcount = hcryp->CrypOutCount; in CRYP_AESGCM_Process()
4301 while ((hcryp->CrypInCount < wordsize) && (outcount < wordsize)) in CRYP_AESGCM_Process()
4304 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AESGCM_Process()
4307 outcount = hcryp->CrypOutCount; in CRYP_AESGCM_Process()
4315 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4318 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4319 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4322 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4328 if ((hcryp->Size % 16U) != 0U) in CRYP_AESGCM_Process()
4331 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_AESGCM_Process()
4335 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4337 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESGCM_Process()
4341 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4344 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process()
4347 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
4352 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4354 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESGCM_Process()
4358 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process()
4373 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4378 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESGCM_Process()
4379 hcryp->CrypInCount++; in CRYP_AESGCM_Process()
4385 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESGCM_Process()
4390 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4393 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4396 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
4397 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4400 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4403 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4406 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4411 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_AESGCM_Process()
4417 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESGCM_Process()
4423 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
4426 hcryp->ErrorCode |= HAL_CRYP_ERROR_READ; in CRYP_AESGCM_Process()
4427 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
4430 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
4436 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process()
4441 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process()
4442 hcryp->CrypInCount++; in CRYP_AESGCM_Process()
4447 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESGCM_Process()
4451 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
4455 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4458 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process()
4463 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process()
4470 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESGCM_Process()
4476 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp[index]; in CRYP_AESGCM_Process()
4477 hcryp->CrypOutCount++; in CRYP_AESGCM_Process()
4491 static HAL_StatusTypeDef CRYP_AESGCM_Process_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AESGCM_Process_IT() argument
4512 …if ((hcryp->Phase == CRYP_PHASE_HEADER_SUSPENDED) || (hcryp->Phase == CRYP_PHASE_PAYLOAD_SUSPENDED… in CRYP_AESGCM_Process_IT()
4514 CRYP_PhaseProcessingResume(hcryp); in CRYP_AESGCM_Process_IT()
4522 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_AESGCM_Process_IT()
4524 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_AESGCM_Process_IT()
4528 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_AESGCM_Process_IT()
4532 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process_IT()
4534 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process_IT()
4539 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process_IT()
4546 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process_IT()
4547 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process_IT()
4552 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process_IT()
4559 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process_IT()
4563 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4565 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process_IT()
4568 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESGCM_Process_IT()
4570 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESGCM_Process_IT()
4572 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_IT()
4576 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process_IT()
4580 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_IT()
4581 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_IT()
4582 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_IT()
4583 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_IT()
4586 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4591 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process_IT()
4597 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
4600 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
4601 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4604 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4611 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4613 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESGCM_Process_IT()
4616 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESGCM_Process_IT()
4619 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_IT()
4623 ((SAES_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process_IT()
4627 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_IT()
4628 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_IT()
4629 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_IT()
4630 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_IT()
4633 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4643 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
4646 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
4647 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4648 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4651 } while (HAL_IS_BIT_CLR(((SAES_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_KEYVALID)); in CRYP_AESGCM_Process_IT()
4661 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
4664 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
4665 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4666 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4669 } while (HAL_IS_BIT_CLR(((SAES_TypeDef *)(hcryp->Instance))->SR, SAES_SR_CCF)); in CRYP_AESGCM_Process_IT()
4672 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process_IT()
4680 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4682 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
4686 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4688 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
4691 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4694 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4699 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process_IT()
4702 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_GCMPH, SAES_PHASE_PAYLOAD); in CRYP_AESGCM_Process_IT()
4705 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process_IT()
4708 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_IT()
4711 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4714 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4715 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4717 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_IT()
4719 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4720 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4721 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4722 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4723 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4724 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4725 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4726 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4727 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_AESGCM_Process_IT()
4732 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4735 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4747 npblb = 16U - ((uint32_t)hcryp->Size); in CRYP_AESGCM_Process_IT()
4749 … if ((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT) in CRYP_AESGCM_Process_IT()
4752 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process_IT()
4768 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4769 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4774 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4780 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4783 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4794 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4795 hcryp->CrypHeaderCount++ ; in CRYP_AESGCM_Process_IT()
4803 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4805 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4811 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_AESGCM_Process_IT()
4812 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_AESGCM_Process_IT()
4813 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_AESGCM_Process_IT()
4815 hcryp->CrypHeaderCount++ ; in CRYP_AESGCM_Process_IT()
4819 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4821 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4827 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4830 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4837 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4838 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4839 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4840 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4841 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4842 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4843 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESGCM_Process_IT()
4844 hcryp->CrypHeaderCount++; in CRYP_AESGCM_Process_IT()
4854 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4857 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4860 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process_IT()
4863 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_IT()
4866 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESGCM_Process_IT()
4869 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
4870 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
4872 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_IT()
4874 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4875 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4876 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4877 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4878 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4879 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4880 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_AESGCM_Process_IT()
4881 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4882 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AESGCM_Process_IT()
4887 hcryp->InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4890 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESGCM_Process_IT()
4901 npblb = 16U - ((uint32_t)hcryp->Size); in CRYP_AESGCM_Process_IT()
4903 if ((((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT) in CRYP_AESGCM_Process_IT()
4906 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESGCM_Process_IT()
4922 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_IT()
4923 hcryp->CrypInCount++; in CRYP_AESGCM_Process_IT()
4928 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESGCM_Process_IT()
4937 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_IT()
4939 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
4942 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AESGCM_Process_IT()
4945 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
4959 static HAL_StatusTypeDef CRYP_AESGCM_Process_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AESGCM_Process_DMA() argument
4964 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U ; in CRYP_AESGCM_Process_DMA()
4976 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process_DMA()
4978 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process_DMA()
4983 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process_DMA()
4990 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process_DMA()
4991 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process_DMA()
4996 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process_DMA()
5002 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process_DMA()
5006 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5008 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process_DMA()
5011 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESGCM_Process_DMA()
5013 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESGCM_Process_DMA()
5015 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_DMA()
5019 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESGCM_Process_DMA()
5024 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_DMA()
5025 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_DMA()
5026 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_DMA()
5027 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_DMA()
5030 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5035 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process_DMA()
5041 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5044 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5045 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5048 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5054 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5056 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESGCM_Process_DMA()
5059 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_DMA()
5062 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_DMA()
5063 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_DMA()
5064 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_DMA()
5065 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_DMA()
5068 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5071 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process_DMA()
5074 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5077 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5078 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5081 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5085 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process_DMA()
5090 if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK) in CRYP_AESGCM_Process_DMA()
5098 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process_DMA()
5102 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5105 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5107 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESGCM_Process_DMA()
5110 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESGCM_Process_DMA()
5113 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5117 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5119 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESGCM_Process_DMA()
5122 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESGCM_Process_DMA()
5128 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_DMA()
5131 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5134 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5136 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_DMA()
5142 CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (uint16_t)wordsize * 4U, in CRYP_AESGCM_Process_DMA()
5143 (uint32_t)(hcryp->pCrypOutBuffPtr)); in CRYP_AESGCM_Process_DMA()
5148 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESGCM_Process_DMA()
5152 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5154 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESGCM_Process_DMA()
5159 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESGCM_Process_DMA()
5163 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5178 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESGCM_Process_DMA()
5179 hcryp->CrypInCount++; in CRYP_AESGCM_Process_DMA()
5185 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESGCM_Process_DMA()
5197 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5200 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5201 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5204 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5207 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5210 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5213 } while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_OFNE)); in CRYP_AESGCM_Process_DMA()
5220 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESGCM_Process_DMA()
5225 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESGCM_Process_DMA()
5228 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESGCM_Process_DMA()
5229 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_AESGCM_Process_DMA()
5230 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_AESGCM_Process_DMA()
5233 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_AESGCM_Process_DMA()
5249 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESGCM_Process_DMA()
5250 hcryp->CrypInCount++; in CRYP_AESGCM_Process_DMA()
5256 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESGCM_Process_DMA()
5261 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process_DMA()
5264 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
5267 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
5268 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5271 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5274 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5277 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
5281 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESGCM_Process_DMA()
5288 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESGCM_Process_DMA()
5295 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESGCM_Process_DMA()
5296 hcryp->CrypOutCount++; in CRYP_AESGCM_Process_DMA()
5300 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
5303 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
5318 static HAL_StatusTypeDef CRYP_AESCCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AESCCM_Process() argument
5321 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U; in CRYP_AESCCM_Process()
5330 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process()
5332 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process()
5337 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process()
5344 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process()
5345 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process()
5350 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process()
5356 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process()
5360 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5362 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process()
5365 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESCCM_Process()
5367 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESCCM_Process()
5369 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process()
5373 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESCCM_Process()
5377 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process()
5378 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process()
5379 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process()
5380 …((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR… in CRYP_AESCCM_Process()
5383 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5386 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process()
5387 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process()
5388 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process()
5389 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process()
5395 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process()
5403 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5406 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5407 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5410 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5418 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5420 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESCCM_Process()
5423 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESCCM_Process()
5426 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process()
5430 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process()
5431 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.B0 + 1U); in CRYP_AESCCM_Process()
5432 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.B0 + 2U); in CRYP_AESCCM_Process()
5433 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.B0 + 3U); in CRYP_AESCCM_Process()
5436 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5439 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5442 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5445 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5446 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5449 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5453 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process()
5461 if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5468 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process()
5472 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5475 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5478 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESCCM_Process()
5481 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESCCM_Process()
5484 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5488 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5491 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESCCM_Process()
5494 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESCCM_Process()
5500 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
5509 outcount = hcryp->CrypOutCount; in CRYP_AESCCM_Process()
5511 while ((hcryp->CrypInCount < wordsize) && (outcount < wordsize)) in CRYP_AESCCM_Process()
5514 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AESCCM_Process()
5517 outcount = hcryp->CrypOutCount; in CRYP_AESCCM_Process()
5525 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5528 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5529 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5532 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5539 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5541 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
5544 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_AESCCM_Process()
5546 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESCCM_Process()
5550 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5553 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process()
5556 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
5572 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESCCM_Process()
5573 hcryp->CrypInCount++; in CRYP_AESCCM_Process()
5579 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESCCM_Process()
5584 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5587 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5590 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5591 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5594 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5597 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5600 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5605 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_AESCCM_Process()
5611 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESCCM_Process()
5615 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process()
5616 hcryp->CrypOutCount++; in CRYP_AESCCM_Process()
5623 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process()
5626 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
5629 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - ((uint32_t)hcryp->Size); in CRYP_AESCCM_Process()
5631 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process()
5635 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process()
5650 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process()
5651 hcryp->CrypInCount++; in CRYP_AESCCM_Process()
5657 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESCCM_Process()
5661 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5664 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5667 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5668 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5671 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5674 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5677 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process()
5681 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process()
5687 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESCCM_Process()
5691 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process()
5692 hcryp->CrypOutCount++; in CRYP_AESCCM_Process()
5698 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
5701 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
5704 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
5705 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
5708 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
5722 static HAL_StatusTypeDef CRYP_AESCCM_Process_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AESCCM_Process_IT() argument
5743 …if ((hcryp->Phase == CRYP_PHASE_HEADER_SUSPENDED) || (hcryp->Phase == CRYP_PHASE_PAYLOAD_SUSPENDED… in CRYP_AESCCM_Process_IT()
5745 CRYP_PhaseProcessingResume(hcryp); in CRYP_AESCCM_Process_IT()
5750 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process_IT()
5752 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process_IT()
5757 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process_IT()
5764 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process_IT()
5765 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process_IT()
5770 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process_IT()
5777 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process_IT()
5781 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5783 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process_IT()
5786 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESCCM_Process_IT()
5788 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESCCM_Process_IT()
5790 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_IT()
5794 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESCCM_Process_IT()
5799 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process_IT()
5800 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process_IT()
5801 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process_IT()
5802 …((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR1… in CRYP_AESCCM_Process_IT()
5805 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5808 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_IT()
5809 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process_IT()
5810 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process_IT()
5811 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process_IT()
5817 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process_IT()
5823 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_IT()
5826 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_IT()
5827 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
5830 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
5837 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5839 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESCCM_Process_IT()
5842 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESCCM_Process_IT()
5845 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_IT()
5849 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_IT()
5850 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.B0 + 1U); in CRYP_AESCCM_Process_IT()
5851 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.B0 + 2U); in CRYP_AESCCM_Process_IT()
5852 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.B0 + 3U); in CRYP_AESCCM_Process_IT()
5855 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5858 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process_IT()
5861 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_IT()
5864 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_IT()
5865 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
5868 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
5872 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process_IT()
5880 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5882 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESCCM_Process_IT()
5885 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AESCCM_Process_IT()
5888 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5892 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_IT()
5895 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_AESCCM_Process_IT()
5898 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESCCM_Process_IT()
5901 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
5903 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_AESCCM_Process_IT()
5907 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process_IT()
5910 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESCCM_Process_IT()
5913 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESCCM_Process_IT()
5915 if (hcryp->Init.Algorithm == CRYP_AES_CCM) in CRYP_AESCCM_Process_IT()
5918 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
5921 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_IT()
5924 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESCCM_Process_IT()
5927 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
5928 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
5930 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_IT()
5932 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5933 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5934 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5935 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5936 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5937 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5938 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5939 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5941 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_AESCCM_Process_IT()
5946 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
5949 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
5956 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESCCM_Process_IT()
5958 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process_IT()
5959 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_AESCCM_Process_IT()
5960 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_AESCCM_Process_IT()
5963 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESCCM_Process_IT()
5979 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
5980 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
5985 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
5991 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
5994 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6004 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6005 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6013 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6020 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_AESCCM_Process_IT()
6021 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_AESCCM_Process_IT()
6022 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_AESCCM_Process_IT()
6023 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6028 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6035 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6038 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6045 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6046 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6047 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6048 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6049 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6050 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6051 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_AESCCM_Process_IT()
6052 hcryp->CrypHeaderCount++; in CRYP_AESCCM_Process_IT()
6062 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_IT()
6065 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_AESCCM_Process_IT()
6068 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
6069 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
6071 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_IT()
6073 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6074 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6075 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6076 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6077 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6078 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6079 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6080 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6082 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_AESCCM_Process_IT()
6087 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6090 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6097 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESCCM_Process_IT()
6099 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process_IT()
6100 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_AESCCM_Process_IT()
6101 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_AESCCM_Process_IT()
6104 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_AESCCM_Process_IT()
6120 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_IT()
6121 hcryp->CrypInCount++; in CRYP_AESCCM_Process_IT()
6126 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_AESCCM_Process_IT()
6132 hcryp->InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6135 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AESCCM_Process_IT()
6151 static HAL_StatusTypeDef CRYP_AESCCM_Process_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AESCCM_Process_DMA() argument
6153 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U ; in CRYP_AESCCM_Process_DMA()
6164 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process_DMA()
6166 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process_DMA()
6171 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process_DMA()
6178 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process_DMA()
6179 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process_DMA()
6184 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process_DMA()
6190 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process_DMA()
6194 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6196 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process_DMA()
6199 if (hcryp->Init.KeyIVConfigSkip != CRYP_KEYNOCONFIG) in CRYP_AESCCM_Process_DMA()
6201 if (hcryp->Init.KeyMode != CRYP_KEYMODE_SHARED) in CRYP_AESCCM_Process_DMA()
6203 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_DMA()
6207 ((CRYP_TypeDef *)(hcryp->Instance))->CR &= ~CRYP_KEYMODE_SHARED; in CRYP_AESCCM_Process_DMA()
6211 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process_DMA()
6212 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process_DMA()
6213 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process_DMA()
6214 …((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR… in CRYP_AESCCM_Process_DMA()
6217 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6220 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_DMA()
6221 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process_DMA()
6222 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process_DMA()
6223 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process_DMA()
6229 while ((((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process_DMA()
6235 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6238 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6239 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6242 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6249 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6251 SAES_SET_PHASE(hcryp, SAES_PHASE_INIT); in CRYP_AESCCM_Process_DMA()
6254 … if ((hcryp->Init.KeySelect == CRYP_KEYSEL_NORMAL) && (hcryp->Init.KeyMode == CRYP_KEYMODE_NORMAL)) in CRYP_AESCCM_Process_DMA()
6257 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_DMA()
6261 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_DMA()
6262 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(hcryp->Init.B0 + 1U); in CRYP_AESCCM_Process_DMA()
6263 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(hcryp->Init.B0 + 2U); in CRYP_AESCCM_Process_DMA()
6264 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(hcryp->Init.B0 + 3U); in CRYP_AESCCM_Process_DMA()
6267 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6270 if (CRYP_WaitOnCCFlag(hcryp, CRYP_TIMEOUT_GCMCCMINITPHASE) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6273 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6276 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6277 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6280 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6284 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process_DMA()
6290 if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6298 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process_DMA()
6302 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6305 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6307 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESCCM_Process_DMA()
6310 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESCCM_Process_DMA()
6313 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6317 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6319 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_AESCCM_Process_DMA()
6322 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_AESCCM_Process_DMA()
6327 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_DMA()
6330 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6333 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6335 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_DMA()
6339 CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (uint16_t) wordsize * 4U, in CRYP_AESCCM_Process_DMA()
6340 (uint32_t)(hcryp->pCrypOutBuffPtr)); in CRYP_AESCCM_Process_DMA()
6345 npblb = 16U - (uint32_t)(hcryp->Size); in CRYP_AESCCM_Process_DMA()
6349 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6351 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_AESCCM_Process_DMA()
6356 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process_DMA()
6360 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6375 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_AESCCM_Process_DMA()
6376 hcryp->CrypInCount++; in CRYP_AESCCM_Process_DMA()
6382 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_AESCCM_Process_DMA()
6387 if (CRYP_WaitOnOFNEFlag(hcryp, CRYP_TIMEOUT_GCMCCMINITPHASE) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6390 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6393 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6394 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6397 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6400 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6403 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6412 temp[index] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_AESCCM_Process_DMA()
6417 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_AESCCM_Process_DMA()
6419 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_AESCCM_Process_DMA()
6424 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process_DMA()
6440 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_AESCCM_Process_DMA()
6441 hcryp->CrypInCount++; in CRYP_AESCCM_Process_DMA()
6447 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0U; in CRYP_AESCCM_Process_DMA()
6451 if (CRYP_WaitOnCCFlag(hcryp, CRYP_TIMEOUT_GCMCCMINITPHASE) != HAL_OK) in CRYP_AESCCM_Process_DMA()
6454 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
6457 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
6458 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6461 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6464 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6467 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
6471 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_AESCCM_Process_DMA()
6478 temp[index] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_AESCCM_Process_DMA()
6485 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process_DMA()
6486 hcryp->CrypOutCount++; in CRYP_AESCCM_Process_DMA()
6490 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
6493 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
6506 static void CRYP_GCMCCM_SetPayloadPhase_IT(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetPayloadPhase_IT() argument
6520 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6522 if ((hcryp->Size / 4U) < hcryp->CrypInCount) in CRYP_GCMCCM_SetPayloadPhase_IT()
6527 if (hcryp->Size == 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6530 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6533 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6536 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6539 else if ((((hcryp->Size / 4U) - (hcryp->CrypInCount)) >= 4U) && in CRYP_GCMCCM_SetPayloadPhase_IT()
6542 if ((((CRYP_TypeDef *)(hcryp->Instance))->IMSCR & CRYP_IMSCR_INIM) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6548 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_GCMCCM_SetPayloadPhase_IT()
6552 while (((((CRYP_TypeDef *)(hcryp->Instance))->SR) & (CRYP_SR_IFEM | CRYP_SR_OFNE | \ in CRYP_GCMCCM_SetPayloadPhase_IT()
6559 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6562 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6565 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_GCMCCM_SetPayloadPhase_IT()
6568 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6571 hcryp->Phase = CRYP_PHASE_PAYLOAD_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6574 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6580 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6581 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6582 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6583 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6584 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6585 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6586 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6587 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6588 if (((hcryp->Size / 4U) == hcryp->CrypInCount) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6591 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6595 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6598 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6602 if (hcryp->CrypOutCount < (hcryp->Size / 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6604 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6610 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_GCMCCM_SetPayloadPhase_IT()
6613 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6615 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6616 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6619 if (((hcryp->Size / 4U) == hcryp->CrypOutCount) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6622 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6625 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6628 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6631 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6636 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6639 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6647 else if ((hcryp->Size % 16U) != 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6650 if ((((CRYP_TypeDef *)(hcryp->Instance))->IMSCR & CRYP_IMSCR_INIM) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6653 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_GCMCCM_SetPayloadPhase_IT()
6655 mode = ((CRYP_TypeDef *)(hcryp->Instance))->CR & CRYP_CR_ALGODIR; in CRYP_GCMCCM_SetPayloadPhase_IT()
6656 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetPayloadPhase_IT()
6657 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6660 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6663 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_GCMCCM_SetPayloadPhase_IT()
6666 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6683 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCoun… in CRYP_GCMCCM_SetPayloadPhase_IT()
6684 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6689 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0U; in CRYP_GCMCCM_SetPayloadPhase_IT()
6694 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6698 if ((((CRYP_TypeDef *)(hcryp->Instance))->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6702 temp[i] = ((CRYP_TypeDef *)(hcryp->Instance))->DOUT; in CRYP_GCMCCM_SetPayloadPhase_IT()
6704 if (((hcryp->Size) / 4U) == 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6706 for (i = 0U; (uint16_t)i < ((hcryp->Size) % 4U); i++) in CRYP_GCMCCM_SetPayloadPhase_IT()
6708 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6709 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6713 while (((hcryp->CrypOutCount < ((hcryp->Size) / 4U))) && (i < 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6715 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6716 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6722 if (hcryp->CrypOutCount >= ((hcryp->Size) / 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6725 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI | CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
6728 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6731 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6736 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6739 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6750 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6759 temp[i] = ((SAES_TypeDef *)(hcryp->Instance))->DOUTR; in CRYP_GCMCCM_SetPayloadPhase_IT()
6762 while ((hcryp->CrypOutCount < ((hcryp->Size + 3U) / 4U)) && (i < 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6764 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
6765 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6768 incount = hcryp->CrypInCount; in CRYP_GCMCCM_SetPayloadPhase_IT()
6769 outcount = hcryp->CrypOutCount; in CRYP_GCMCCM_SetPayloadPhase_IT()
6770 if ((outcount >= ((uint32_t)(hcryp->Size) / 4U)) && ((incount * 4U) >= (uint32_t)(hcryp->Size))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6774 if (!((hcryp->Init.Algorithm == CRYP_AES_CCM) && (hcryp->KeyIVConfig == 1U))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6777 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetPayloadPhase_IT()
6781 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
6782 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6787 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6790 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6794 else if (((hcryp->Size / 4U) - (hcryp->CrypInCount)) >= 4U) in CRYP_GCMCCM_SetPayloadPhase_IT()
6800 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_GCMCCM_SetPayloadPhase_IT()
6803 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetPayloadPhase_IT()
6806 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_GCMCCM_SetPayloadPhase_IT()
6808 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetPayloadPhase_IT()
6810 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6812 hcryp->Phase = CRYP_PHASE_PAYLOAD_SUSPENDED; in CRYP_GCMCCM_SetPayloadPhase_IT()
6813 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6819 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6820 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6821 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6822 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6823 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6824 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6825 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6826 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6827 if ((hcryp->CrypInCount == hcryp->Size) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) in CRYP_GCMCCM_SetPayloadPhase_IT()
6832 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6835 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
6843 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - ((uint32_t)hcryp->Size); in CRYP_GCMCCM_SetPayloadPhase_IT()
6845 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_GCMCCM_SetPayloadPhase_IT()
6846 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetPayloadPhase_IT()
6847 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetPayloadPhase_IT()
6850 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20); in CRYP_GCMCCM_SetPayloadPhase_IT()
6866 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetPayloadPhase_IT()
6867 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
6872 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetPayloadPhase_IT()
6888 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_GCMCCM_SetHeaderPhase() argument
6904 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase()
6906 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase()
6908 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6910 if ((hcryp->Init.HeaderSize % 4U) == 0U) in CRYP_GCMCCM_SetHeaderPhase()
6913 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase()
6915 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6916 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6917 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6918 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6919 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6920 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6921 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6922 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6925 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
6928 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6931 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
6932 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
6935 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6943 … for (loopcounter = 0U; (loopcounter < ((hcryp->Init.HeaderSize) - (hcryp->Init.HeaderSize % 4U))); in CRYP_GCMCCM_SetHeaderPhase()
6946 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6947 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6948 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6949 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6950 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6951 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6952 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6953 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6956 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
6959 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6962 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
6963 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
6966 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6971 for (loopcounter = 0U; (loopcounter < (hcryp->Init.HeaderSize % 4U)); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase()
6973 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase()
6974 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
6979 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
6983 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
6986 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
6989 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
6990 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
6993 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7000 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase()
7002 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_GCMCCM_SetHeaderPhase()
7004 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_GCMCCM_SetHeaderPhase()
7008 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_GCMCCM_SetHeaderPhase()
7012 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase()
7015 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7022 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7023 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7024 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7025 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7026 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7027 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7028 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7029 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7032 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7035 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7038 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7039 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7042 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7046 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase()
7054 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7055 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7056 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7057 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7058 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7059 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7060 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7061 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7064 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7067 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7070 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7071 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7074 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7078 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase()
7083 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase()
7084 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
7092 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
7099 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
7100 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_GCMCCM_SetHeaderPhase()
7101 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_GCMCCM_SetHeaderPhase()
7107 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
7113 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
7116 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7119 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
7120 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
7123 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
7127 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase()
7132 if (CRYP_WaitOnBUSYFlag(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()
7156 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetHeaderPhase_DMA() argument
7170 if ((hcryp->Init.HeaderSize != 0U)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7174 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7176 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7178 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7180 if ((hcryp->Init.HeaderSize % 4U) == 0U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7183 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7185 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7186 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7187 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7188 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7189 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7190 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7191 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7192 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7195 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7198 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7201 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7202 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7205 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7213 … for (loopcounter = 0U; (loopcounter < ((hcryp->Init.HeaderSize) - (hcryp->Init.HeaderSize % 4U))); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7216 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7217 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7218 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7219 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7220 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7221 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7222 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7223 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7226 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7229 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7232 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7233 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7236 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7241 for (loopcounter = 0U; (loopcounter < (hcryp->Init.HeaderSize % 4U)); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7243 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7244 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7249 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7254 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7257 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7260 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7261 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7264 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7271 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7273 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7275 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7279 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7282 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7285 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7290 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7292 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7293 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7294 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7295 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7296 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7297 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7298 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7299 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7302 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7305 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7308 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7309 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7312 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7322 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7323 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7324 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7325 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7326 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7327 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7328 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7329 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7332 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7335 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7338 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7339 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7342 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7349 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_DMA()
7350 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7358 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7365 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7366 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7367 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7372 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7378 if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7381 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7384 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7385 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7388 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7396 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase_DMA()
7399 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7402 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7403 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
7406 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
7421 static void CRYP_GCMCCM_SetHeaderPhase_IT(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetHeaderPhase_IT() argument
7438 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7440 if (hcryp->Init.HeaderSize == hcryp->CrypHeaderCount) in CRYP_GCMCCM_SetHeaderPhase_IT()
7443 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetHeaderPhase_IT()
7446 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7449 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, CRYP_CR_NPBLB, 0U); in CRYP_GCMCCM_SetHeaderPhase_IT()
7452 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_GCMCCM_SetHeaderPhase_IT()
7455 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_GCMCCM_SetHeaderPhase_IT()
7458 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetHeaderPhase_IT()
7461 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7463 else if (((hcryp->Init.HeaderSize) - (hcryp->CrypHeaderCount)) >= 4U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7467 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7468 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7469 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7470 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7471 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7472 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7473 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7474 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7479 for (loopcounter = 0U; loopcounter < (hcryp->Init.HeaderSize % 4U); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase_IT()
7481 …((CRYP_TypeDef *)(hcryp->Instance))->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7482 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7487 ((CRYP_TypeDef *)(hcryp->Instance))->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7494 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7496 if (hcryp->Init.HeaderWidthUnit == CRYP_HEADERWIDTHUNIT_WORD) in CRYP_GCMCCM_SetHeaderPhase_IT()
7498 headersize_in_bytes = hcryp->Init.HeaderSize * 4U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7502 headersize_in_bytes = hcryp->Init.HeaderSize; in CRYP_GCMCCM_SetHeaderPhase_IT()
7507 if (headersize_in_bytes <= ((uint32_t)(hcryp->CrypHeaderCount) * 4U)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7510 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_GCMCCM_SetHeaderPhase_IT()
7512 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_GCMPH, SAES_PHASE_PAYLOAD); in CRYP_GCMCCM_SetHeaderPhase_IT()
7514 MODIFY_REG(((SAES_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, 0U); in CRYP_GCMCCM_SetHeaderPhase_IT()
7516 if (hcryp->Init.Algorithm == CRYP_AES_CCM) in CRYP_GCMCCM_SetHeaderPhase_IT()
7519 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7522 if (hcryp->Size == 0U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7525 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetHeaderPhase_IT()
7528 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_IT()
7529 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7531 else if (hcryp->Size >= 16U) in CRYP_GCMCCM_SetHeaderPhase_IT()
7533 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7534 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7535 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7536 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7537 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7538 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7539 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7540 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7542 if ((hcryp->CrypInCount == (hcryp->Size / 4U)) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7547 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7550 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7557 npblb = 16U - ((uint32_t)hcryp->Size); in CRYP_GCMCCM_SetHeaderPhase_IT()
7558 mode = CRYP_CONV_ALGODIR(((SAES_TypeDef *)(hcryp->Instance))->CR & SAES_CR_MODE); in CRYP_GCMCCM_SetHeaderPhase_IT()
7559 if (((mode == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetHeaderPhase_IT()
7560 ((mode == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetHeaderPhase_IT()
7563 MODIFY_REG(((CRYP_TypeDef *)(hcryp->Instance))->CR, SAES_CR_NPBLB, npblb << 20U); in CRYP_GCMCCM_SetHeaderPhase_IT()
7579 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCou… in CRYP_GCMCCM_SetHeaderPhase_IT()
7580 hcryp->CrypInCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7585 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7591 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7594 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7598 else if ((((headersize_in_bytes / 4U) - (hcryp->CrypHeaderCount)) >= 4U)) in CRYP_GCMCCM_SetHeaderPhase_IT()
7604 if (hcryp->SuspendRequest == HAL_CRYP_SUSPEND) in CRYP_GCMCCM_SetHeaderPhase_IT()
7607 __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CLEAR_CCF); in CRYP_GCMCCM_SetHeaderPhase_IT()
7610 hcryp->SuspendRequest = HAL_CRYP_SUSPEND_NONE; in CRYP_GCMCCM_SetHeaderPhase_IT()
7612 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_RWEIE | CRYP_IT_KEIE); in CRYP_GCMCCM_SetHeaderPhase_IT()
7614 hcryp->State = HAL_CRYP_STATE_SUSPENDED; in CRYP_GCMCCM_SetHeaderPhase_IT()
7616 hcryp->Phase = CRYP_PHASE_HEADER_SUSPENDED; in CRYP_GCMCCM_SetHeaderPhase_IT()
7617 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
7623 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7624 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7625 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7626 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7627 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7628 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7629 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderC… in CRYP_GCMCCM_SetHeaderPhase_IT()
7630 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7637 …((SAES_TypeDef *)(hcryp->Instance))->DINR = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCo… in CRYP_GCMCCM_SetHeaderPhase_IT()
7638 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
7646 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7648 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7654 tmp = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
7655 tmp &= mask[(hcryp->Init.DataType * 2U) + (headersize_in_bytes % 4U)]; in CRYP_GCMCCM_SetHeaderPhase_IT()
7656 ((SAES_TypeDef *)(hcryp->Instance))->DINR = tmp; in CRYP_GCMCCM_SetHeaderPhase_IT()
7658 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7662 ((SAES_TypeDef *)(hcryp->Instance))->DINR = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
7664 hcryp->CrypHeaderCount++; in CRYP_GCMCCM_SetHeaderPhase_IT()
7680 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnIFEMFlag() argument
7687 while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_IFEM)) in CRYP_WaitOnIFEMFlag()
7709 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnBUSYFlag() argument
7718 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_WaitOnBUSYFlag()
7724 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_WaitOnBUSYFlag()
7729 while (HAL_IS_BIT_SET(((CRYP_TypeDef *)(hcryp->Instance))->SR, flag_busy)) in CRYP_WaitOnBUSYFlag()
7751 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnOFNEFlag() argument
7758 while (HAL_IS_BIT_CLR(((CRYP_TypeDef *)(hcryp->Instance))->SR, CRYP_FLAG_OFNE)) in CRYP_WaitOnOFNEFlag()
7781 static HAL_StatusTypeDef CRYP_WaitOnCCFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnCCFlag() argument
7788 while (HAL_IS_BIT_CLR(((SAES_TypeDef *)(hcryp->Instance))->SR, SAES_SR_CCF)) in CRYP_WaitOnCCFlag()
7813 static void CRYP_Read_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output) in CRYP_Read_IVRegisters() argument
7818 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_Read_IVRegisters()
7820 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR; in CRYP_Read_IVRegisters()
7822 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR; in CRYP_Read_IVRegisters()
7824 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR; in CRYP_Read_IVRegisters()
7826 *(uint32_t *)(outputaddr) = ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR; in CRYP_Read_IVRegisters()
7830 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_Read_IVRegisters()
7832 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR3; in CRYP_Read_IVRegisters()
7834 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR2; in CRYP_Read_IVRegisters()
7836 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR1; in CRYP_Read_IVRegisters()
7838 *(uint32_t *)(outputaddr) = ((SAES_TypeDef *)(hcryp->Instance))->IVR0; in CRYP_Read_IVRegisters()
7854 static void CRYP_Write_IVRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input) in CRYP_Write_IVRegisters() argument
7858 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_Write_IVRegisters()
7860 ((CRYP_TypeDef *)(hcryp->Instance))->IV0LR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7862 ((CRYP_TypeDef *)(hcryp->Instance))->IV0RR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7864 ((CRYP_TypeDef *)(hcryp->Instance))->IV1LR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7866 ((CRYP_TypeDef *)(hcryp->Instance))->IV1RR = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7870 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_Write_IVRegisters()
7872 ((SAES_TypeDef *)(hcryp->Instance))->IVR3 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7874 ((SAES_TypeDef *)(hcryp->Instance))->IVR2 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7876 ((SAES_TypeDef *)(hcryp->Instance))->IVR1 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7878 ((SAES_TypeDef *)(hcryp->Instance))->IVR0 = *(uint32_t *)(ivaddr); in CRYP_Write_IVRegisters()
7895 static void CRYP_Read_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Output, uint32_t Al… in CRYP_Read_ContextSwapRegisters() argument
7898 uint32_t inputaddr = (uint32_t)(&((CRYP_TypeDef *)(hcryp->Instance))->CSGCMCCM0R); in CRYP_Read_ContextSwapRegisters()
7929 static void CRYP_Write_ContextSwapRegisters(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint32_t Al… in CRYP_Write_ContextSwapRegisters() argument
7932 uint32_t outputaddr = (uint32_t)(&((CRYP_TypeDef *)(hcryp->Instance))->CSGCMCCM0R); in CRYP_Write_ContextSwapRegisters()
7958 static void CRYP_PhaseProcessingResume(CRYP_HandleTypeDef *hcryp) in CRYP_PhaseProcessingResume() argument
7961 if (hcryp->Phase == CRYP_PHASE_HEADER_SUSPENDED) in CRYP_PhaseProcessingResume()
7964 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_PhaseProcessingResume()
7968 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
7970 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_PhaseProcessingResume()
7974 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
7976 SAES_SET_PHASE(hcryp, SAES_PHASE_HEADER); in CRYP_PhaseProcessingResume()
7981 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_PhaseProcessingResume()
7984 __HAL_CRYP_ENABLE(hcryp); in CRYP_PhaseProcessingResume()
7991 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_PhaseProcessingResume()
7995 if (IS_CRYP_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
7997 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_PhaseProcessingResume()
8001 if (IS_SAES_INSTANCE(hcryp->Instance)) in CRYP_PhaseProcessingResume()
8003 SAES_SET_PHASE(hcryp, SAES_PHASE_PAYLOAD); in CRYP_PhaseProcessingResume()
8008 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_PhaseProcessingResume()
8011 __HAL_CRYP_ENABLE(hcryp); in CRYP_PhaseProcessingResume()