Lines Matching refs:hcryp

336 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_…
341 static void CRYP_SetMDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32…
346 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint32_t KeySize);
347 static void CRYP_AES_IT(CRYP_HandleTypeDef *hcryp);
348 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
349 static void CRYP_GCMCCM_SetPayloadPhase_IT(CRYP_HandleTypeDef *hcryp);
350 static void CRYP_GCMCCM_SetHeaderPhase_IT(CRYP_HandleTypeDef *hcryp);
351 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase_DMA(CRYP_HandleTypeDef *hcryp);
352 static HAL_StatusTypeDef CRYP_AESGCM_Process_DMA(CRYP_HandleTypeDef *hcryp);
353 static HAL_StatusTypeDef CRYP_AESGCM_Process_IT(CRYP_HandleTypeDef *hcryp);
354 static HAL_StatusTypeDef CRYP_AESGCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
355 static HAL_StatusTypeDef CRYP_AESCCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
356 static HAL_StatusTypeDef CRYP_AESCCM_Process_IT(CRYP_HandleTypeDef *hcryp);
357 static HAL_StatusTypeDef CRYP_AESCCM_Process_DMA(CRYP_HandleTypeDef *hcryp);
359 static HAL_StatusTypeDef CRYP_AES_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
360 static HAL_StatusTypeDef CRYP_AES_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
361 static HAL_StatusTypeDef CRYP_AES_Decrypt_IT(CRYP_HandleTypeDef *hcryp);
362 static HAL_StatusTypeDef CRYP_AES_Encrypt_IT(CRYP_HandleTypeDef *hcryp);
363 static HAL_StatusTypeDef CRYP_AES_Decrypt_DMA(CRYP_HandleTypeDef *hcryp);
364 static void CRYP_TDES_IT(CRYP_HandleTypeDef *hcryp);
365 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
366 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
367 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
368 static HAL_StatusTypeDef CRYP_TDES_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
415 HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_Init() argument
418 if (hcryp == NULL) in HAL_CRYP_Init()
424 assert_param(IS_CRYP_KEYSIZE(hcryp->Init.KeySize)); in HAL_CRYP_Init()
425 assert_param(IS_CRYP_DATATYPE(hcryp->Init.DataType)); in HAL_CRYP_Init()
426 assert_param(IS_CRYP_ALGORITHM(hcryp->Init.Algorithm)); in HAL_CRYP_Init()
427 assert_param(IS_CRYP_INIT(hcryp->Init.KeyIVConfigSkip)); in HAL_CRYP_Init()
430 if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_Init()
433 hcryp->Lock = HAL_UNLOCKED; in HAL_CRYP_Init()
435 hcryp->InCpltCallback = HAL_CRYP_InCpltCallback; /* Legacy weak InCpltCallback */ in HAL_CRYP_Init()
436 hcryp->OutCpltCallback = HAL_CRYP_OutCpltCallback; /* Legacy weak OutCpltCallback */ in HAL_CRYP_Init()
437 hcryp->ErrorCallback = HAL_CRYP_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_CRYP_Init()
439 if (hcryp->MspInitCallback == NULL) in HAL_CRYP_Init()
441 hcryp->MspInitCallback = HAL_CRYP_MspInit; /* Legacy weak MspInit */ in HAL_CRYP_Init()
445 hcryp->MspInitCallback(hcryp); in HAL_CRYP_Init()
448 if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_Init()
451 hcryp->Lock = HAL_UNLOCKED; in HAL_CRYP_Init()
454 HAL_CRYP_MspInit(hcryp); in HAL_CRYP_Init()
459 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_ALGOMODE, in HAL_CRYP_Init()
460 hcryp->Init.DataType | hcryp->Init.KeySize | hcryp->Init.Algorithm); in HAL_CRYP_Init()
462 hcryp->ErrorCode = HAL_CRYP_ERROR_NONE; in HAL_CRYP_Init()
465 hcryp->KeyIVConfig = 0U; in HAL_CRYP_Init()
468 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Init()
471 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_Init()
483 HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_DeInit() argument
486 if (hcryp == NULL) in HAL_CRYP_DeInit()
492 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_DeInit()
495 hcryp->CrypInCount = 0; in HAL_CRYP_DeInit()
496 hcryp->CrypOutCount = 0; in HAL_CRYP_DeInit()
497 hcryp->CrypHeaderCount = 0; in HAL_CRYP_DeInit()
500 __HAL_CRYP_DISABLE(hcryp); in HAL_CRYP_DeInit()
503 if (hcryp->MspDeInitCallback == NULL) in HAL_CRYP_DeInit()
505 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; /* Legacy weak MspDeInit */ in HAL_CRYP_DeInit()
508 hcryp->MspDeInitCallback(hcryp); in HAL_CRYP_DeInit()
512 HAL_CRYP_MspDeInit(hcryp); in HAL_CRYP_DeInit()
516 hcryp->State = HAL_CRYP_STATE_RESET; in HAL_CRYP_DeInit()
519 __HAL_UNLOCK(hcryp); in HAL_CRYP_DeInit()
533 HAL_StatusTypeDef HAL_CRYP_SetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf) in HAL_CRYP_SetConfig() argument
536 if ((hcryp == NULL) || (pConf == NULL)) in HAL_CRYP_SetConfig()
546 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_SetConfig()
549 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_SetConfig()
552 __HAL_LOCK(hcryp); in HAL_CRYP_SetConfig()
555 hcryp->Init.DataType = pConf->DataType; in HAL_CRYP_SetConfig()
556 hcryp->Init.pKey = pConf->pKey; in HAL_CRYP_SetConfig()
557 hcryp->Init.Algorithm = pConf->Algorithm; in HAL_CRYP_SetConfig()
558 hcryp->Init.KeySize = pConf->KeySize; in HAL_CRYP_SetConfig()
559 hcryp->Init.pInitVect = pConf->pInitVect; in HAL_CRYP_SetConfig()
560 hcryp->Init.Header = pConf->Header; in HAL_CRYP_SetConfig()
561 hcryp->Init.HeaderSize = pConf->HeaderSize; in HAL_CRYP_SetConfig()
562 hcryp->Init.B0 = pConf->B0; in HAL_CRYP_SetConfig()
563 hcryp->Init.DataWidthUnit = pConf->DataWidthUnit; in HAL_CRYP_SetConfig()
566 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_ALGOMODE, in HAL_CRYP_SetConfig()
567 hcryp->Init.DataType | hcryp->Init.KeySize | hcryp->Init.Algorithm); in HAL_CRYP_SetConfig()
570 __HAL_UNLOCK(hcryp); in HAL_CRYP_SetConfig()
573 hcryp->ErrorCode = HAL_CRYP_ERROR_NONE; in HAL_CRYP_SetConfig()
576 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_SetConfig()
579 hcryp->Phase = CRYP_PHASE_READY; in HAL_CRYP_SetConfig()
587 __HAL_UNLOCK(hcryp); in HAL_CRYP_SetConfig()
590 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_SetConfig()
602 HAL_StatusTypeDef HAL_CRYP_GetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf) in HAL_CRYP_GetConfig() argument
605 if ((hcryp == NULL) || (pConf == NULL)) in HAL_CRYP_GetConfig()
610 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_GetConfig()
613 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_GetConfig()
616 __HAL_LOCK(hcryp); in HAL_CRYP_GetConfig()
619 pConf->DataType = hcryp->Init.DataType; in HAL_CRYP_GetConfig()
620 pConf->pKey = hcryp->Init.pKey; in HAL_CRYP_GetConfig()
621 pConf->Algorithm = hcryp->Init.Algorithm; in HAL_CRYP_GetConfig()
622 pConf->KeySize = hcryp->Init.KeySize ; in HAL_CRYP_GetConfig()
623 pConf->pInitVect = hcryp->Init.pInitVect; in HAL_CRYP_GetConfig()
624 pConf->Header = hcryp->Init.Header ; in HAL_CRYP_GetConfig()
625 pConf->HeaderSize = hcryp->Init.HeaderSize; in HAL_CRYP_GetConfig()
626 pConf->B0 = hcryp->Init.B0; in HAL_CRYP_GetConfig()
627 pConf->DataWidthUnit = hcryp->Init.DataWidthUnit; in HAL_CRYP_GetConfig()
630 __HAL_UNLOCK(hcryp); in HAL_CRYP_GetConfig()
633 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_GetConfig()
641 __HAL_UNLOCK(hcryp); in HAL_CRYP_GetConfig()
644 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_GetConfig()
654 __weak void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_MspInit() argument
657 UNUSED(hcryp); in HAL_CRYP_MspInit()
670 __weak void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_MspDeInit() argument
673 UNUSED(hcryp); in HAL_CRYP_MspDeInit()
695 HAL_StatusTypeDef HAL_CRYP_RegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef C… in HAL_CRYP_RegisterCallback() argument
703 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
708 __HAL_LOCK(hcryp); in HAL_CRYP_RegisterCallback()
710 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_RegisterCallback()
715 hcryp->InCpltCallback = pCallback; in HAL_CRYP_RegisterCallback()
719 hcryp->OutCpltCallback = pCallback; in HAL_CRYP_RegisterCallback()
723 hcryp->ErrorCallback = pCallback; in HAL_CRYP_RegisterCallback()
727 hcryp->MspInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
731 hcryp->MspDeInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
736 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
742 else if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_RegisterCallback()
747 hcryp->MspInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
751 hcryp->MspDeInitCallback = pCallback; in HAL_CRYP_RegisterCallback()
756 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
765 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_RegisterCallback()
771 __HAL_UNLOCK(hcryp); in HAL_CRYP_RegisterCallback()
789 HAL_StatusTypeDef HAL_CRYP_UnRegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef… in HAL_CRYP_UnRegisterCallback() argument
794 __HAL_LOCK(hcryp); in HAL_CRYP_UnRegisterCallback()
796 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_UnRegisterCallback()
801 hcryp->InCpltCallback = HAL_CRYP_InCpltCallback; /* Legacy weak InCpltCallback */ in HAL_CRYP_UnRegisterCallback()
805hcryp->OutCpltCallback = HAL_CRYP_OutCpltCallback; /* Legacy weak OutCpltCallback */ in HAL_CRYP_UnRegisterCallback()
809hcryp->ErrorCallback = HAL_CRYP_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_CRYP_UnRegisterCallback()
813 hcryp->MspInitCallback = HAL_CRYP_MspInit; in HAL_CRYP_UnRegisterCallback()
817 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; in HAL_CRYP_UnRegisterCallback()
822 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_UnRegisterCallback()
828 else if (hcryp->State == HAL_CRYP_STATE_RESET) in HAL_CRYP_UnRegisterCallback()
833 hcryp->MspInitCallback = HAL_CRYP_MspInit; in HAL_CRYP_UnRegisterCallback()
837 hcryp->MspDeInitCallback = HAL_CRYP_MspDeInit; in HAL_CRYP_UnRegisterCallback()
842 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK; in HAL_CRYP_UnRegisterCallback()
851 hcryp->ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;; in HAL_CRYP_UnRegisterCallback()
857 __HAL_UNLOCK(hcryp); in HAL_CRYP_UnRegisterCallback()
907 HAL_StatusTypeDef HAL_CRYP_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint3… in HAL_CRYP_Encrypt() argument
913 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt()
916 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt()
919 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt()
922 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt()
923 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt()
924 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt()
925 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt()
928 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt()
930 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt()
934 hcryp->Size = Size; in HAL_CRYP_Encrypt()
938 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt()
941 algo = hcryp->Instance->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt()
951 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in HAL_CRYP_Encrypt()
952 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in HAL_CRYP_Encrypt()
953 if ((hcryp->Init.Algorithm == CRYP_TDES_ECB) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Encrypt()
955 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in HAL_CRYP_Encrypt()
956 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in HAL_CRYP_Encrypt()
957 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in HAL_CRYP_Encrypt()
958 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in HAL_CRYP_Encrypt()
962 if ((hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Encrypt()
964 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt()
965 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in HAL_CRYP_Encrypt()
969 HAL_CRYP_FIFO_FLUSH(hcryp); in HAL_CRYP_Encrypt()
972 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Encrypt()
975 status = CRYP_TDES_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
983 status = CRYP_AES_Encrypt(hcryp, Timeout); in HAL_CRYP_Encrypt()
989 status = CRYP_AESGCM_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
995 status = CRYP_AESCCM_Process(hcryp, Timeout); in HAL_CRYP_Encrypt()
999 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt()
1007 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Encrypt()
1010 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt()
1016 __HAL_UNLOCK(hcryp); in HAL_CRYP_Encrypt()
1019 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt()
1037 HAL_StatusTypeDef HAL_CRYP_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint3… in HAL_CRYP_Decrypt() argument
1043 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt()
1046 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt()
1049 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt()
1052 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt()
1053 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt()
1054 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt()
1055 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt()
1058 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt()
1060 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt()
1064 hcryp->Size = Size; in HAL_CRYP_Decrypt()
1068 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt()
1071 algo = hcryp->Instance->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt()
1081 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in HAL_CRYP_Decrypt()
1082 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in HAL_CRYP_Decrypt()
1083 if ((hcryp->Init.Algorithm == CRYP_TDES_ECB) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Decrypt()
1085 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in HAL_CRYP_Decrypt()
1086 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in HAL_CRYP_Decrypt()
1087 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in HAL_CRYP_Decrypt()
1088 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in HAL_CRYP_Decrypt()
1092 if ((hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Decrypt()
1094 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Decrypt()
1095 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in HAL_CRYP_Decrypt()
1099 HAL_CRYP_FIFO_FLUSH(hcryp); in HAL_CRYP_Decrypt()
1102 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Decrypt()
1105 status = CRYP_TDES_Process(hcryp, Timeout); in HAL_CRYP_Decrypt()
1114 status = CRYP_AES_Decrypt(hcryp, Timeout); in HAL_CRYP_Decrypt()
1120 status = CRYP_AESGCM_Process(hcryp, Timeout) ; in HAL_CRYP_Decrypt()
1126 status = CRYP_AESCCM_Process(hcryp, Timeout); in HAL_CRYP_Decrypt()
1130 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt()
1138 hcryp->State = HAL_CRYP_STATE_READY; in HAL_CRYP_Decrypt()
1141 __HAL_UNLOCK(hcryp); in HAL_CRYP_Decrypt()
1147 __HAL_UNLOCK(hcryp); in HAL_CRYP_Decrypt()
1150 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt()
1167 HAL_StatusTypeDef HAL_CRYP_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, ui… in HAL_CRYP_Encrypt_IT() argument
1172 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt_IT()
1175 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt_IT()
1178 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt_IT()
1181 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt_IT()
1182 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt_IT()
1183 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt_IT()
1184 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt_IT()
1187 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt_IT()
1189 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt_IT()
1193 hcryp->Size = Size; in HAL_CRYP_Encrypt_IT()
1197 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt_IT()
1200 algo = (hcryp->Instance->CR & CRYP_CR_ALGOMODE); in HAL_CRYP_Encrypt_IT()
1210 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in HAL_CRYP_Encrypt_IT()
1211 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in HAL_CRYP_Encrypt_IT()
1212 if ((hcryp->Init.Algorithm == CRYP_TDES_ECB) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Encrypt_IT()
1214 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in HAL_CRYP_Encrypt_IT()
1215 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in HAL_CRYP_Encrypt_IT()
1216 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in HAL_CRYP_Encrypt_IT()
1217 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in HAL_CRYP_Encrypt_IT()
1220 if ((hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Encrypt_IT()
1222 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_IT()
1223 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in HAL_CRYP_Encrypt_IT()
1227 HAL_CRYP_FIFO_FLUSH(hcryp); in HAL_CRYP_Encrypt_IT()
1230 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Encrypt_IT()
1233 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in HAL_CRYP_Encrypt_IT()
1236 __HAL_CRYP_ENABLE(hcryp); in HAL_CRYP_Encrypt_IT()
1245 status = CRYP_AES_Encrypt_IT(hcryp); in HAL_CRYP_Encrypt_IT()
1250 status = CRYP_AESGCM_Process_IT(hcryp) ; in HAL_CRYP_Encrypt_IT()
1255 status = CRYP_AESCCM_Process_IT(hcryp); in HAL_CRYP_Encrypt_IT()
1259 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt_IT()
1267 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt_IT()
1284 HAL_StatusTypeDef HAL_CRYP_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, ui… in HAL_CRYP_Decrypt_IT() argument
1289 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt_IT()
1292 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt_IT()
1295 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt_IT()
1298 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt_IT()
1299 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt_IT()
1300 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt_IT()
1301 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt_IT()
1304 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt_IT()
1306 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt_IT()
1310 hcryp->Size = Size; in HAL_CRYP_Decrypt_IT()
1314 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt_IT()
1317 algo = hcryp->Instance->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt_IT()
1327 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in HAL_CRYP_Decrypt_IT()
1328 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in HAL_CRYP_Decrypt_IT()
1329 if ((hcryp->Init.Algorithm == CRYP_TDES_ECB) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Decrypt_IT()
1331 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in HAL_CRYP_Decrypt_IT()
1332 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in HAL_CRYP_Decrypt_IT()
1333 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in HAL_CRYP_Decrypt_IT()
1334 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in HAL_CRYP_Decrypt_IT()
1338 if ((hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Decrypt_IT()
1340 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Decrypt_IT()
1341 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in HAL_CRYP_Decrypt_IT()
1344 HAL_CRYP_FIFO_FLUSH(hcryp); in HAL_CRYP_Decrypt_IT()
1347 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Decrypt_IT()
1350 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in HAL_CRYP_Decrypt_IT()
1353 __HAL_CRYP_ENABLE(hcryp); in HAL_CRYP_Decrypt_IT()
1362 status = CRYP_AES_Decrypt_IT(hcryp); in HAL_CRYP_Decrypt_IT()
1368 status = CRYP_AESGCM_Process_IT(hcryp) ; in HAL_CRYP_Decrypt_IT()
1374 status = CRYP_AESCCM_Process_IT(hcryp); in HAL_CRYP_Decrypt_IT()
1378 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt_IT()
1386 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt_IT()
1403 HAL_StatusTypeDef HAL_CRYP_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, u… in HAL_CRYP_Encrypt_DMA() argument
1409 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Encrypt_DMA()
1412 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Encrypt_DMA()
1415 __HAL_LOCK(hcryp); in HAL_CRYP_Encrypt_DMA()
1418 hcryp->CrypInCount = 0U; in HAL_CRYP_Encrypt_DMA()
1419 hcryp->CrypOutCount = 0U; in HAL_CRYP_Encrypt_DMA()
1420 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Encrypt_DMA()
1421 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Encrypt_DMA()
1424 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Encrypt_DMA()
1426 hcryp->Size = Size * 4U; in HAL_CRYP_Encrypt_DMA()
1430 hcryp->Size = Size; in HAL_CRYP_Encrypt_DMA()
1434 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT); in HAL_CRYP_Encrypt_DMA()
1437 algo = hcryp->Instance->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Encrypt_DMA()
1447 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in HAL_CRYP_Encrypt_DMA()
1448 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in HAL_CRYP_Encrypt_DMA()
1449 if ((hcryp->Init.Algorithm == CRYP_TDES_ECB) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Encrypt_DMA()
1451 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in HAL_CRYP_Encrypt_DMA()
1452 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in HAL_CRYP_Encrypt_DMA()
1453 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in HAL_CRYP_Encrypt_DMA()
1454 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in HAL_CRYP_Encrypt_DMA()
1458 if ((hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Encrypt_DMA()
1460 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_DMA()
1461 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in HAL_CRYP_Encrypt_DMA()
1465 HAL_CRYP_FIFO_FLUSH(hcryp); in HAL_CRYP_Encrypt_DMA()
1468 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Encrypt_DMA()
1471 if (hcryp->hdmain != NULL) in HAL_CRYP_Encrypt_DMA()
1473 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp->… in HAL_CRYP_Encrypt_DMA()
1476 else if (hcryp->hmdmain != NULL) in HAL_CRYP_Encrypt_DMA()
1478 …CRYP_SetMDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp in HAL_CRYP_Encrypt_DMA()
1488 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in HAL_CRYP_Encrypt_DMA()
1490 if (hcryp->KeyIVConfig == 1U) in HAL_CRYP_Encrypt_DMA()
1501 hcryp->KeyIVConfig = 1U; in HAL_CRYP_Encrypt_DMA()
1508 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in HAL_CRYP_Encrypt_DMA()
1511 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in HAL_CRYP_Encrypt_DMA()
1513 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Encrypt_DMA()
1514 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in HAL_CRYP_Encrypt_DMA()
1515 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in HAL_CRYP_Encrypt_DMA()
1516 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in HAL_CRYP_Encrypt_DMA()
1521 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Encrypt_DMA()
1524 if (hcryp->hdmain != NULL) in HAL_CRYP_Encrypt_DMA()
1526 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp->… in HAL_CRYP_Encrypt_DMA()
1529 else if (hcryp->hmdmain != NULL) in HAL_CRYP_Encrypt_DMA()
1531 …CRYP_SetMDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp in HAL_CRYP_Encrypt_DMA()
1539 status = CRYP_AESGCM_Process_DMA(hcryp) ; in HAL_CRYP_Encrypt_DMA()
1545 status = CRYP_AESCCM_Process_DMA(hcryp); in HAL_CRYP_Encrypt_DMA()
1549 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Encrypt_DMA()
1557 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Encrypt_DMA()
1574 HAL_StatusTypeDef HAL_CRYP_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, u… in HAL_CRYP_Decrypt_DMA() argument
1579 if (hcryp->State == HAL_CRYP_STATE_READY) in HAL_CRYP_Decrypt_DMA()
1582 hcryp->State = HAL_CRYP_STATE_BUSY; in HAL_CRYP_Decrypt_DMA()
1585 __HAL_LOCK(hcryp); in HAL_CRYP_Decrypt_DMA()
1588 hcryp->CrypInCount = 0U; in HAL_CRYP_Decrypt_DMA()
1589 hcryp->CrypOutCount = 0U; in HAL_CRYP_Decrypt_DMA()
1590 hcryp->pCrypInBuffPtr = Input; in HAL_CRYP_Decrypt_DMA()
1591 hcryp->pCrypOutBuffPtr = Output; in HAL_CRYP_Decrypt_DMA()
1594 if (hcryp->Init.DataWidthUnit == CRYP_DATAWIDTHUNIT_WORD) in HAL_CRYP_Decrypt_DMA()
1596 hcryp->Size = Size * 4U; in HAL_CRYP_Decrypt_DMA()
1600 hcryp->Size = Size; in HAL_CRYP_Decrypt_DMA()
1604 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT); in HAL_CRYP_Decrypt_DMA()
1607 algo = hcryp->Instance->CR & CRYP_CR_ALGOMODE; in HAL_CRYP_Decrypt_DMA()
1617 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in HAL_CRYP_Decrypt_DMA()
1618 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in HAL_CRYP_Decrypt_DMA()
1619 if ((hcryp->Init.Algorithm == CRYP_TDES_ECB) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Decrypt_DMA()
1621 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in HAL_CRYP_Decrypt_DMA()
1622 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in HAL_CRYP_Decrypt_DMA()
1623 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in HAL_CRYP_Decrypt_DMA()
1624 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in HAL_CRYP_Decrypt_DMA()
1628 if ((hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->Init.Algorithm == CRYP_TDES_CBC)) in HAL_CRYP_Decrypt_DMA()
1630 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in HAL_CRYP_Decrypt_DMA()
1631 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in HAL_CRYP_Decrypt_DMA()
1635 HAL_CRYP_FIFO_FLUSH(hcryp); in HAL_CRYP_Decrypt_DMA()
1638 hcryp->Phase = CRYP_PHASE_PROCESS; in HAL_CRYP_Decrypt_DMA()
1641 if (hcryp->hdmain != NULL) in HAL_CRYP_Decrypt_DMA()
1643 …CRYP_SetDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (hcryp->Size/4), (uint32_t)(hcryp->pC… in HAL_CRYP_Decrypt_DMA()
1646 else if (hcryp->hmdmain != NULL) in HAL_CRYP_Decrypt_DMA()
1648 …CRYP_SetMDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp in HAL_CRYP_Decrypt_DMA()
1658 status = CRYP_AES_Decrypt_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
1664 status = CRYP_AESGCM_Process_DMA(hcryp) ; in HAL_CRYP_Decrypt_DMA()
1671 status = CRYP_AESCCM_Process_DMA(hcryp); in HAL_CRYP_Decrypt_DMA()
1675 hcryp->ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED; in HAL_CRYP_Decrypt_DMA()
1683 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in HAL_CRYP_Decrypt_DMA()
1719 void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_IRQHandler() argument
1721 uint32_t itstatus = hcryp->Instance->MISR; in HAL_CRYP_IRQHandler()
1725 …if ((hcryp->Init.Algorithm == CRYP_DES_ECB) || (hcryp->Init.Algorithm == CRYP_DES_CBC) || (hcryp->… in HAL_CRYP_IRQHandler()
1727 CRYP_TDES_IT(hcryp); /* DES or TDES*/ in HAL_CRYP_IRQHandler()
1729 …else if ((hcryp->Init.Algorithm == CRYP_AES_ECB) || (hcryp->Init.Algorithm == CRYP_AES_CBC) || (hc… in HAL_CRYP_IRQHandler()
1731 CRYP_AES_IT(hcryp); /*AES*/ in HAL_CRYP_IRQHandler()
1734 …else if ((hcryp->Init.Algorithm == CRYP_AES_GCM) || (hcryp->Init.Algorithm == CRYP_CR_ALGOMODE_AES… in HAL_CRYP_IRQHandler()
1737 if ((hcryp->Instance->CR & CRYP_PHASE_HEADER) == CRYP_PHASE_HEADER) in HAL_CRYP_IRQHandler()
1739 CRYP_GCMCCM_SetHeaderPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
1743 CRYP_GCMCCM_SetPayloadPhase_IT(hcryp); in HAL_CRYP_IRQHandler()
1759 uint32_t HAL_CRYP_GetError(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_GetError() argument
1761 return hcryp->ErrorCode; in HAL_CRYP_GetError()
1770 HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_GetState() argument
1772 return hcryp->State; in HAL_CRYP_GetState()
1781 __weak void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_InCpltCallback() argument
1784 UNUSED(hcryp); in HAL_CRYP_InCpltCallback()
1797 __weak void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_OutCpltCallback() argument
1800 UNUSED(hcryp); in HAL_CRYP_OutCpltCallback()
1813 __weak void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp) in HAL_CRYP_ErrorCallback() argument
1816 UNUSED(hcryp); in HAL_CRYP_ErrorCallback()
1838 static HAL_StatusTypeDef CRYP_TDES_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_TDES_Process() argument
1846 __HAL_CRYP_ENABLE(hcryp); in CRYP_TDES_Process()
1848 outcount = hcryp->CrypOutCount; in CRYP_TDES_Process()
1851 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_TDES_Process()
1854 incount = hcryp->CrypInCount; in CRYP_TDES_Process()
1856 if (((hcryp->Instance->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->Size / 4U))) in CRYP_TDES_Process()
1859 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_TDES_Process()
1860 hcryp->CrypInCount++; in CRYP_TDES_Process()
1861 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_TDES_Process()
1862 hcryp->CrypInCount++; in CRYP_TDES_Process()
1866 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_TDES_Process()
1869 __HAL_CRYP_DISABLE(hcryp); in CRYP_TDES_Process()
1872 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_TDES_Process()
1873 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_TDES_Process()
1876 __HAL_UNLOCK(hcryp); in CRYP_TDES_Process()
1879 hcryp->ErrorCallback(hcryp); in CRYP_TDES_Process()
1882 HAL_CRYP_ErrorCallback(hcryp); in CRYP_TDES_Process()
1887 outcount = hcryp->CrypOutCount; in CRYP_TDES_Process()
1889 if (((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->Size / 4U))) in CRYP_TDES_Process()
1892 temp = hcryp->Instance->DOUT; in CRYP_TDES_Process()
1893 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_TDES_Process()
1894 hcryp->CrypOutCount++; in CRYP_TDES_Process()
1895 temp = hcryp->Instance->DOUT; in CRYP_TDES_Process()
1896 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_TDES_Process()
1897 hcryp->CrypOutCount++; in CRYP_TDES_Process()
1900 outcount = hcryp->CrypOutCount; in CRYP_TDES_Process()
1903 __HAL_CRYP_DISABLE(hcryp); in CRYP_TDES_Process()
1905 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_TDES_Process()
1919 static void CRYP_TDES_IT(CRYP_HandleTypeDef *hcryp) in CRYP_TDES_IT() argument
1923 if (hcryp->State == HAL_CRYP_STATE_BUSY) in CRYP_TDES_IT()
1925 if (__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI) != 0x0U) in CRYP_TDES_IT()
1927 if(__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_INRIS) != 0x0U) in CRYP_TDES_IT()
1930 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_TDES_IT()
1931 hcryp->CrypInCount++; in CRYP_TDES_IT()
1932 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_TDES_IT()
1933 hcryp->CrypInCount++; in CRYP_TDES_IT()
1935 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_TDES_IT()
1938 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_TDES_IT()
1943 hcryp->InCpltCallback(hcryp); in CRYP_TDES_IT()
1946 HAL_CRYP_InCpltCallback(hcryp); in CRYP_TDES_IT()
1952 if (__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI) != 0x0U) in CRYP_TDES_IT()
1954 if(__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_OUTRIS) != 0x0U) in CRYP_TDES_IT()
1957 temp = hcryp->Instance->DOUT; in CRYP_TDES_IT()
1958 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_TDES_IT()
1959 hcryp->CrypOutCount++; in CRYP_TDES_IT()
1960 temp = hcryp->Instance->DOUT; in CRYP_TDES_IT()
1961 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_TDES_IT()
1962 hcryp->CrypOutCount++; in CRYP_TDES_IT()
1963 if (hcryp->CrypOutCount == (hcryp->Size / 4U)) in CRYP_TDES_IT()
1966 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_TDES_IT()
1969 __HAL_CRYP_DISABLE(hcryp); in CRYP_TDES_IT()
1972 __HAL_UNLOCK(hcryp); in CRYP_TDES_IT()
1975 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_TDES_IT()
1980 hcryp->OutCpltCallback(hcryp); in CRYP_TDES_IT()
1983 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_TDES_IT()
1993 __HAL_UNLOCK(hcryp); in CRYP_TDES_IT()
1995 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in CRYP_TDES_IT()
1998 hcryp->ErrorCallback(hcryp); in CRYP_TDES_IT()
2001 HAL_CRYP_ErrorCallback(hcryp); in CRYP_TDES_IT()
2012 static HAL_StatusTypeDef CRYP_AES_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_Encrypt() argument
2017 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Encrypt()
2019 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Encrypt()
2030 hcryp->KeyIVConfig = 1U; in CRYP_AES_Encrypt()
2037 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Encrypt()
2039 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Encrypt()
2042 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt()
2043 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt()
2044 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt()
2045 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt()
2050 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Encrypt()
2053 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Encrypt()
2055 outcount = hcryp->CrypOutCount; in CRYP_AES_Encrypt()
2057 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_Encrypt()
2060 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AES_Encrypt()
2062 outcount = hcryp->CrypOutCount; in CRYP_AES_Encrypt()
2066 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Encrypt()
2069 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt()
2081 static HAL_StatusTypeDef CRYP_AES_Encrypt_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Encrypt_IT() argument
2085 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Encrypt_IT()
2087 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Encrypt_IT()
2098 hcryp->KeyIVConfig = 1U; in CRYP_AES_Encrypt_IT()
2105 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Encrypt_IT()
2107 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Encrypt_IT()
2110 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Encrypt_IT()
2111 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1U); in CRYP_AES_Encrypt_IT()
2112 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2U); in CRYP_AES_Encrypt_IT()
2113 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3U); in CRYP_AES_Encrypt_IT()
2118 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Encrypt_IT()
2120 if (hcryp->Size != 0U) in CRYP_AES_Encrypt_IT()
2123 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_Encrypt_IT()
2126 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Encrypt_IT()
2131 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Encrypt_IT()
2134 __HAL_UNLOCK(hcryp); in CRYP_AES_Encrypt_IT()
2147 static HAL_StatusTypeDef CRYP_AES_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_Decrypt() argument
2152 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt()
2154 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt()
2165 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt()
2172 if (hcryp->Init.Algorithm != CRYP_AES_CTR) /*ECB or CBC*/ in CRYP_AES_Decrypt()
2175 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGOMODE, CRYP_CR_ALGOMODE_AES_KEY); in CRYP_AES_Decrypt()
2178 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2181 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2184 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_Decrypt()
2187 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2190 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt()
2191 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2194 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt()
2198 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt()
2203 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt()
2207 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt()
2210 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt()
2211 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AES_Decrypt()
2212 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AES_Decrypt()
2213 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AES_Decrypt()
2218 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt()
2221 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt()
2224 outcount = hcryp->CrypOutCount; in CRYP_AES_Decrypt()
2226 while ((hcryp->CrypInCount < (hcryp->Size / 4U)) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_Decrypt()
2229 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AES_Decrypt()
2231 outcount = hcryp->CrypOutCount; in CRYP_AES_Decrypt()
2235 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt()
2238 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt()
2249 static HAL_StatusTypeDef CRYP_AES_Decrypt_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Decrypt_IT() argument
2254 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt_IT()
2256 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt_IT()
2267 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt_IT()
2274 if (hcryp->Init.Algorithm != CRYP_AES_CTR) in CRYP_AES_Decrypt_IT()
2277 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGOMODE, CRYP_CR_ALGOMODE_AES_KEY); in CRYP_AES_Decrypt_IT()
2280 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2283 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
2293 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_IT()
2294 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
2297 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
2300 } while (HAL_IS_BIT_SET(hcryp->Instance->SR, CRYP_FLAG_BUSY)); in CRYP_AES_Decrypt_IT()
2303 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt_IT()
2308 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_IT()
2312 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt_IT()
2315 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_IT()
2316 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AES_Decrypt_IT()
2317 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AES_Decrypt_IT()
2318 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AES_Decrypt_IT()
2323 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt_IT()
2324 if (hcryp->Size != 0U) in CRYP_AES_Decrypt_IT()
2327 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_AES_Decrypt_IT()
2330 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_IT()
2335 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_IT()
2338 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_IT()
2349 static HAL_StatusTypeDef CRYP_AES_Decrypt_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AES_Decrypt_DMA() argument
2354 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AES_Decrypt_DMA()
2356 if (hcryp->KeyIVConfig == 1U) in CRYP_AES_Decrypt_DMA()
2367 hcryp->KeyIVConfig = 1U; in CRYP_AES_Decrypt_DMA()
2374 if (hcryp->Init.Algorithm != CRYP_AES_CTR) in CRYP_AES_Decrypt_DMA()
2377 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGOMODE, CRYP_CR_ALGOMODE_AES_KEY); in CRYP_AES_Decrypt_DMA()
2380 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
2383 __HAL_CRYP_ENABLE(hcryp); in CRYP_AES_Decrypt_DMA()
2393 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_Decrypt_DMA()
2396 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_Decrypt_DMA()
2397 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
2400 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
2403 } while (HAL_IS_BIT_SET(hcryp->Instance->SR, CRYP_FLAG_BUSY)); in CRYP_AES_Decrypt_DMA()
2406 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_ALGOMODE, hcryp->Init.Algorithm); in CRYP_AES_Decrypt_DMA()
2411 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AES_Decrypt_DMA()
2414 if (hcryp->Init.Algorithm != CRYP_AES_ECB) in CRYP_AES_Decrypt_DMA()
2417 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AES_Decrypt_DMA()
2418 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AES_Decrypt_DMA()
2419 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AES_Decrypt_DMA()
2420 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AES_Decrypt_DMA()
2425 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AES_Decrypt_DMA()
2427 if (hcryp->Size != 0U) in CRYP_AES_Decrypt_DMA()
2430 if (hcryp->hdmain != NULL) in CRYP_AES_Decrypt_DMA()
2432 …CRYP_SetDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp-… in CRYP_AES_Decrypt_DMA()
2435 else if (hcryp->hmdmain != NULL) in CRYP_AES_Decrypt_DMA()
2437 …CRYP_SetMDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (hcryp->Size / 4U), (uint32_t)(hcryp in CRYP_AES_Decrypt_DMA()
2444 __HAL_UNLOCK(hcryp); in CRYP_AES_Decrypt_DMA()
2447 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_Decrypt_DMA()
2462 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAInCplt() local
2466 hcryp->Instance->DMACR &= (uint32_t)(~CRYP_DMACR_DIEN); in CRYP_DMAInCplt()
2471 hcryp->InCpltCallback(hcryp); in CRYP_DMAInCplt()
2474 HAL_CRYP_InCpltCallback(hcryp); in CRYP_DMAInCplt()
2490 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAOutCplt() local
2494 hcryp->Instance->DMACR &= (uint32_t)(~CRYP_DMACR_DOEN); in CRYP_DMAOutCplt()
2497 if (((hcryp->Size) % 16U) != 0U) in CRYP_DMAOutCplt()
2500 hcryp->CrypInCount = (hcryp->Size / 16U) * 4U ; in CRYP_DMAOutCplt()
2501 hcryp->CrypOutCount = hcryp->CrypInCount; in CRYP_DMAOutCplt()
2504 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_DMAOutCplt()
2506 temp_cr_algodir = hcryp->Instance->CR & CRYP_CR_ALGODIR; in CRYP_DMAOutCplt()
2507 …if (((temp_cr_algodir == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_DMAOutCplt()
2508 … ((temp_cr_algodir == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_DMAOutCplt()
2511 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
2514 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_DMAOutCplt()
2517 __HAL_CRYP_ENABLE(hcryp); in CRYP_DMAOutCplt()
2532 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_DMAOutCplt()
2533 hcryp->CrypInCount++; in CRYP_DMAOutCplt()
2538 hcryp->Instance->DIN = 0U; in CRYP_DMAOutCplt()
2549 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
2552 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_DMAOutCplt()
2553 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAOutCplt()
2556 __HAL_UNLOCK(hcryp); in CRYP_DMAOutCplt()
2559 hcryp->ErrorCallback(hcryp); in CRYP_DMAOutCplt()
2562 HAL_CRYP_ErrorCallback(hcryp); in CRYP_DMAOutCplt()
2565 } while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_OFNE)); in CRYP_DMAOutCplt()
2571 temp = hcryp->Instance->DOUT; in CRYP_DMAOutCplt()
2573 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp; in CRYP_DMAOutCplt()
2574 hcryp->CrypOutCount++; in CRYP_DMAOutCplt()
2578 if ((hcryp->Init.Algorithm & CRYP_AES_GCM) != CRYP_AES_GCM) in CRYP_DMAOutCplt()
2581 __HAL_CRYP_DISABLE(hcryp); in CRYP_DMAOutCplt()
2585 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAOutCplt()
2588 __HAL_UNLOCK(hcryp); in CRYP_DMAOutCplt()
2593 hcryp->OutCpltCallback(hcryp); in CRYP_DMAOutCplt()
2596 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_DMAOutCplt()
2607 CRYP_HandleTypeDef *hcryp = (CRYP_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in CRYP_DMAError() local
2610 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_DMAError()
2613 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_DMAError()
2618 hcryp->ErrorCallback(hcryp); in CRYP_DMAError()
2621 HAL_CRYP_ErrorCallback(hcryp); in CRYP_DMAError()
2632 CRYP_HandleTypeDef* hcryp = (CRYP_HandleTypeDef*)((MDMA_HandleTypeDef*)hmdma)->Parent; in CRYP_MDMAInCplt() local
2636 hcryp->Instance->DMACR &= (uint32_t)(~CRYP_DMACR_DIEN); in CRYP_MDMAInCplt()
2641 hcryp->InCpltCallback(hcryp); in CRYP_MDMAInCplt()
2644 HAL_CRYP_InCpltCallback(hcryp); in CRYP_MDMAInCplt()
2660 CRYP_HandleTypeDef* hcryp = (CRYP_HandleTypeDef*)((MDMA_HandleTypeDef*)hmdma)->Parent; in CRYP_MDMAOutCplt() local
2663 hcryp->Instance->DMACR &= (uint32_t)(~CRYP_DMACR_DOEN); in CRYP_MDMAOutCplt()
2666 if (((hcryp->Size) % 16U) != 0U) in CRYP_MDMAOutCplt()
2669 hcryp->CrypInCount = (hcryp->Size / 16U) * 4U ; in CRYP_MDMAOutCplt()
2670 hcryp->CrypOutCount = hcryp->CrypInCount; in CRYP_MDMAOutCplt()
2673 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_MDMAOutCplt()
2676 temp_cr_algodir = hcryp->Instance->CR & CRYP_CR_ALGODIR; in CRYP_MDMAOutCplt()
2677 … if(((temp_cr_algodir == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_MDMAOutCplt()
2678 ((temp_cr_algodir == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_MDMAOutCplt()
2681 __HAL_CRYP_DISABLE(hcryp); in CRYP_MDMAOutCplt()
2684 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_MDMAOutCplt()
2687 __HAL_CRYP_ENABLE(hcryp); in CRYP_MDMAOutCplt()
2702 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount ); in CRYP_MDMAOutCplt()
2703 hcryp->CrypInCount++; in CRYP_MDMAOutCplt()
2708 hcryp->Instance->DIN = 0U; in CRYP_MDMAOutCplt()
2719 __HAL_CRYP_DISABLE(hcryp); in CRYP_MDMAOutCplt()
2722 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_MDMAOutCplt()
2723 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_MDMAOutCplt()
2726 __HAL_UNLOCK(hcryp); in CRYP_MDMAOutCplt()
2729 hcryp->ErrorCallback(hcryp); in CRYP_MDMAOutCplt()
2732 HAL_CRYP_ErrorCallback(hcryp); in CRYP_MDMAOutCplt()
2735 } while(HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_OFNE)); in CRYP_MDMAOutCplt()
2741 temp = hcryp->Instance->DOUT; in CRYP_MDMAOutCplt()
2743 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount))= temp; in CRYP_MDMAOutCplt()
2744 hcryp->CrypOutCount++; in CRYP_MDMAOutCplt()
2748 if((hcryp->Init.Algorithm & CRYP_AES_GCM) != CRYP_AES_GCM) in CRYP_MDMAOutCplt()
2751 __HAL_CRYP_DISABLE(hcryp); in CRYP_MDMAOutCplt()
2755 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_MDMAOutCplt()
2758 __HAL_UNLOCK(hcryp); in CRYP_MDMAOutCplt()
2763 hcryp->OutCpltCallback(hcryp); in CRYP_MDMAOutCplt()
2766 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_MDMAOutCplt()
2777 CRYP_HandleTypeDef* hcryp = (CRYP_HandleTypeDef*)((MDMA_HandleTypeDef*)hmdma)->Parent; in CRYP_MDMAError() local
2780 hcryp->State= HAL_CRYP_STATE_READY; in CRYP_MDMAError()
2783 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_MDMAError()
2788 hcryp->ErrorCallback(hcryp); in CRYP_MDMAError()
2791 HAL_CRYP_ErrorCallback(hcryp); in CRYP_MDMAError()
2805 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_… in CRYP_SetDMAConfig() argument
2808 hcryp->hdmain->XferCpltCallback = CRYP_DMAInCplt; in CRYP_SetDMAConfig()
2811 hcryp->hdmain->XferErrorCallback = CRYP_DMAError; in CRYP_SetDMAConfig()
2814 hcryp->hdmaout->XferCpltCallback = CRYP_DMAOutCplt; in CRYP_SetDMAConfig()
2817 hcryp->hdmaout->XferErrorCallback = CRYP_DMAError; in CRYP_SetDMAConfig()
2820 __HAL_CRYP_ENABLE(hcryp); in CRYP_SetDMAConfig()
2823 if (HAL_DMA_Start_IT(hcryp->hdmain, inputaddr, (uint32_t)&hcryp->Instance->DIN, Size) != HAL_OK) in CRYP_SetDMAConfig()
2826 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetDMAConfig()
2831 hcryp->ErrorCallback(hcryp); in CRYP_SetDMAConfig()
2834 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetDMAConfig()
2839 …if (HAL_DMA_Start_IT(hcryp->hdmaout, (uint32_t)&hcryp->Instance->DOUT, outputaddr, Size) != HAL_OK) in CRYP_SetDMAConfig()
2842 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetDMAConfig()
2847 hcryp->ErrorCallback(hcryp); in CRYP_SetDMAConfig()
2850 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetDMAConfig()
2854 hcryp->Instance->DMACR = CRYP_DMACR_DOEN | CRYP_DMACR_DIEN; in CRYP_SetDMAConfig()
2866 static void CRYP_SetMDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32… in CRYP_SetMDMAConfig() argument
2869 hcryp->hmdmain->XferCpltCallback = CRYP_MDMAInCplt; in CRYP_SetMDMAConfig()
2872 hcryp->hmdmain->XferErrorCallback = CRYP_MDMAError; in CRYP_SetMDMAConfig()
2875 hcryp->hmdmaout->XferCpltCallback = CRYP_MDMAOutCplt; in CRYP_SetMDMAConfig()
2878 hcryp->hmdmaout->XferErrorCallback = CRYP_MDMAError; in CRYP_SetMDMAConfig()
2881 __HAL_CRYP_ENABLE(hcryp); in CRYP_SetMDMAConfig()
2884 …if (HAL_MDMA_Start_IT(hcryp->hmdmain, inputaddr, (uint32_t)&hcryp->Instance->DIN, (Size * 4U), 1U)… in CRYP_SetMDMAConfig()
2887 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetMDMAConfig()
2892 hcryp->ErrorCallback(hcryp); in CRYP_SetMDMAConfig()
2895 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetMDMAConfig()
2900 …if (HAL_MDMA_Start_IT(hcryp->hmdmaout, (uint32_t)&hcryp->Instance->DOUT, outputaddr, Size * 4U, 1U… in CRYP_SetMDMAConfig()
2903 hcryp->ErrorCode |= HAL_CRYP_ERROR_DMA; in CRYP_SetMDMAConfig()
2908 hcryp->ErrorCallback(hcryp); in CRYP_SetMDMAConfig()
2911 HAL_CRYP_ErrorCallback(hcryp); in CRYP_SetMDMAConfig()
2915 hcryp->Instance->DMACR = CRYP_DMACR_DOEN | CRYP_DMACR_DIEN; in CRYP_SetMDMAConfig()
2926 static void CRYP_AES_ProcessData(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AES_ProcessData() argument
2935 incount = hcryp->CrypInCount; in CRYP_AES_ProcessData()
2937 if (((hcryp->Instance->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < ((hcryp->Size) / 4U))) in CRYP_AES_ProcessData()
2940 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_ProcessData()
2941 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
2942 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_ProcessData()
2943 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
2944 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_ProcessData()
2945 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
2946 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_ProcessData()
2947 hcryp->CrypInCount++; in CRYP_AES_ProcessData()
2951 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AES_ProcessData()
2954 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_ProcessData()
2957 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AES_ProcessData()
2958 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_ProcessData()
2961 __HAL_UNLOCK(hcryp); in CRYP_AES_ProcessData()
2964 hcryp->ErrorCallback(hcryp); in CRYP_AES_ProcessData()
2967 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_ProcessData()
2971 outcount = hcryp->CrypOutCount; in CRYP_AES_ProcessData()
2973 if (((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < ((hcryp->Size) / 4U))) in CRYP_AES_ProcessData()
2978 temp[i] = hcryp->Instance->DOUT; in CRYP_AES_ProcessData()
2981 while(((hcryp->CrypOutCount < ((hcryp->Size)/4U))) && (i<4U)) in CRYP_AES_ProcessData()
2983 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_ProcessData()
2984 hcryp->CrypOutCount++; in CRYP_AES_ProcessData()
2998 static void CRYP_AES_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AES_IT() argument
3005 if (hcryp->State == HAL_CRYP_STATE_BUSY) in CRYP_AES_IT()
3008 incount = hcryp->CrypInCount; in CRYP_AES_IT()
3010 if (((hcryp->Instance->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->Size / 4U))) in CRYP_AES_IT()
3013 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_IT()
3014 hcryp->CrypInCount++; in CRYP_AES_IT()
3015 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_IT()
3016 hcryp->CrypInCount++; in CRYP_AES_IT()
3017 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_IT()
3018 hcryp->CrypInCount++; in CRYP_AES_IT()
3019 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AES_IT()
3020 hcryp->CrypInCount++; in CRYP_AES_IT()
3021 if (hcryp->CrypInCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3024 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AES_IT()
3029 hcryp->InCpltCallback(hcryp); in CRYP_AES_IT()
3032 HAL_CRYP_InCpltCallback(hcryp); in CRYP_AES_IT()
3038 outcount = hcryp->CrypOutCount; in CRYP_AES_IT()
3040 if (((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->Size / 4U))) in CRYP_AES_IT()
3045 temp[i] = hcryp->Instance->DOUT; in CRYP_AES_IT()
3048 while(((hcryp->CrypOutCount < ((hcryp->Size)/4U))) && (i<4U)) in CRYP_AES_IT()
3050 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_AES_IT()
3051 hcryp->CrypOutCount++; in CRYP_AES_IT()
3054 if (hcryp->CrypOutCount == (hcryp->Size / 4U)) in CRYP_AES_IT()
3057 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_AES_IT()
3060 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AES_IT()
3063 __HAL_CRYP_DISABLE(hcryp); in CRYP_AES_IT()
3066 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3071 hcryp->OutCpltCallback(hcryp); in CRYP_AES_IT()
3074 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_AES_IT()
3082 __HAL_UNLOCK(hcryp); in CRYP_AES_IT()
3084 hcryp->ErrorCode |= HAL_CRYP_ERROR_BUSY; in CRYP_AES_IT()
3087 hcryp->ErrorCallback(hcryp); in CRYP_AES_IT()
3090 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AES_IT()
3102 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint32_t KeySize) in CRYP_SetKey() argument
3107 hcryp->Instance->K0LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
3108 hcryp->Instance->K0RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
3109 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
3110 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
3111 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 4); in CRYP_SetKey()
3112 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 5); in CRYP_SetKey()
3113 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 6); in CRYP_SetKey()
3114 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 7); in CRYP_SetKey()
3117 hcryp->Instance->K1LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
3118 hcryp->Instance->K1RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
3119 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
3120 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
3121 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 4); in CRYP_SetKey()
3122 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 5); in CRYP_SetKey()
3125 hcryp->Instance->K2LR = *(uint32_t *)(hcryp->Init.pKey); in CRYP_SetKey()
3126 hcryp->Instance->K2RR = *(uint32_t *)(hcryp->Init.pKey + 1); in CRYP_SetKey()
3127 hcryp->Instance->K3LR = *(uint32_t *)(hcryp->Init.pKey + 2); in CRYP_SetKey()
3128 hcryp->Instance->K3RR = *(uint32_t *)(hcryp->Init.pKey + 3); in CRYP_SetKey()
3143 static HAL_StatusTypeDef CRYP_AESGCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AESGCM_Process() argument
3146 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U; in CRYP_AESGCM_Process()
3154 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process()
3156 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process()
3161 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process()
3168 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process()
3169 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process()
3174 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process()
3180 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process()
3184 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process()
3187 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process()
3190 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process()
3191 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process()
3192 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process()
3193 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process()
3196 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
3202 while ((hcryp->Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESGCM_Process()
3210 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
3213 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
3214 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
3217 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
3225 if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
3233 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process()
3236 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
3238 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESGCM_Process()
3241 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESGCM_Process()
3244 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
3247 if ((hcryp->Size % 16U) != 0U) in CRYP_AESGCM_Process()
3256 outcount = hcryp->CrypOutCount; in CRYP_AESGCM_Process()
3259 while ((hcryp->CrypInCount < wordsize) && (outcount < wordsize)) in CRYP_AESGCM_Process()
3262 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AESGCM_Process()
3265 outcount = hcryp->CrypOutCount; in CRYP_AESGCM_Process()
3273 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
3276 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
3277 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
3280 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
3286 if ((hcryp->Size % 16U) != 0U) in CRYP_AESGCM_Process()
3289 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_AESGCM_Process()
3292 if ((hcryp->Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT) in CRYP_AESGCM_Process()
3295 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
3298 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESGCM_Process()
3301 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process()
3316 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AESGCM_Process()
3317 hcryp->CrypInCount++; in CRYP_AESGCM_Process()
3323 hcryp->Instance->DIN = 0U; in CRYP_AESGCM_Process()
3328 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESGCM_Process()
3331 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process()
3334 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process()
3335 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process()
3338 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process()
3341 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process()
3344 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process()
3349 if ((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_AESGCM_Process()
3354 temp[index] = hcryp->Instance->DOUT; in CRYP_AESGCM_Process()
3358 *(uint32_t *)(hcryp->pCrypOutBuffPtr + (hcryp->CrypOutCount)) = temp[index]; in CRYP_AESGCM_Process()
3359 hcryp->CrypOutCount++; in CRYP_AESGCM_Process()
3374 static HAL_StatusTypeDef CRYP_AESGCM_Process_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AESGCM_Process_IT() argument
3379 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process_IT()
3381 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process_IT()
3386 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process_IT()
3393 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process_IT()
3394 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process_IT()
3399 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process_IT()
3406 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process_IT()
3410 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process_IT()
3413 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_IT()
3416 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_IT()
3417 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_IT()
3418 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_IT()
3419 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_IT()
3422 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
3432 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_IT()
3435 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_IT()
3436 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_IT()
3439 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_IT()
3442 } while ((hcryp->Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN); in CRYP_AESGCM_Process_IT()
3447 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESGCM_Process_IT()
3450 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AESGCM_Process_IT()
3453 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_IT()
3466 static HAL_StatusTypeDef CRYP_AESGCM_Process_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AESGCM_Process_DMA() argument
3469 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U ; in CRYP_AESGCM_Process_DMA()
3476 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESGCM_Process_DMA()
3478 if (hcryp->KeyIVConfig == 1U) in CRYP_AESGCM_Process_DMA()
3483 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESGCM_Process_DMA()
3490 hcryp->KeyIVConfig = 1U; in CRYP_AESGCM_Process_DMA()
3491 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESGCM_Process_DMA()
3496 hcryp->SizesSum = hcryp->Size; in CRYP_AESGCM_Process_DMA()
3502 hcryp->CrypHeaderCount = 0U; in CRYP_AESGCM_Process_DMA()
3506 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESGCM_Process_DMA()
3509 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESGCM_Process_DMA()
3512 hcryp->Instance->IV0LR = *(uint32_t *)(hcryp->Init.pInitVect); in CRYP_AESGCM_Process_DMA()
3513 hcryp->Instance->IV0RR = *(uint32_t *)(hcryp->Init.pInitVect + 1); in CRYP_AESGCM_Process_DMA()
3514 hcryp->Instance->IV1LR = *(uint32_t *)(hcryp->Init.pInitVect + 2); in CRYP_AESGCM_Process_DMA()
3515 hcryp->Instance->IV1RR = *(uint32_t *)(hcryp->Init.pInitVect + 3); in CRYP_AESGCM_Process_DMA()
3518 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
3528 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
3531 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
3532 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
3535 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
3538 } while ((hcryp->Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN); in CRYP_AESGCM_Process_DMA()
3542 if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK) in CRYP_AESGCM_Process_DMA()
3550 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESGCM_Process_DMA()
3553 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
3556 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESGCM_Process_DMA()
3559 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESGCM_Process_DMA()
3563 if (hcryp->Size == 0U) in CRYP_AESGCM_Process_DMA()
3566 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
3569 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
3571 else if (hcryp->Size >= 16U) in CRYP_AESGCM_Process_DMA()
3580 if (hcryp->hdmain != NULL) in CRYP_AESGCM_Process_DMA()
3581 …CRYP_SetDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (uint16_t)wordsize, (uint32_t)(hcryp-… in CRYP_AESGCM_Process_DMA()
3583 else if (hcryp->hmdmain != NULL) in CRYP_AESGCM_Process_DMA()
3584 …CRYP_SetMDMAConfig(hcryp, (uint32_t)( hcryp->pCrypInBuffPtr), (uint16_t)wordsize, (uint32_t)(hcryp in CRYP_AESGCM_Process_DMA()
3590 npblb = 16U - (uint32_t)hcryp->Size; in CRYP_AESGCM_Process_DMA()
3593 if ((hcryp->Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT) in CRYP_AESGCM_Process_DMA()
3596 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESGCM_Process_DMA()
3599 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESGCM_Process_DMA()
3614 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AESGCM_Process_DMA()
3615 hcryp->CrypInCount++; in CRYP_AESGCM_Process_DMA()
3621 hcryp->Instance->DIN = 0U; in CRYP_AESGCM_Process_DMA()
3633 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESGCM_Process_DMA()
3636 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESGCM_Process_DMA()
3637 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
3640 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
3643 hcryp->ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
3646 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESGCM_Process_DMA()
3649 } while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_OFNE)); in CRYP_AESGCM_Process_DMA()
3655 temp[index] = hcryp->Instance->DOUT; in CRYP_AESGCM_Process_DMA()
3659 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESGCM_Process_DMA()
3660 hcryp->CrypOutCount++; in CRYP_AESGCM_Process_DMA()
3664 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESGCM_Process_DMA()
3667 __HAL_UNLOCK(hcryp); in CRYP_AESGCM_Process_DMA()
3682 static HAL_StatusTypeDef CRYP_AESCCM_Process(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_AESCCM_Process() argument
3685 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U; in CRYP_AESCCM_Process()
3693 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process()
3695 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process()
3700 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process()
3707 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process()
3708 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process()
3713 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process()
3719 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process()
3723 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process()
3726 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process()
3729 hcryp->Instance->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process()
3730 hcryp->Instance->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process()
3731 hcryp->Instance->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process()
3732 hcryp->Instance->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR1_2; in CRYP_AESCCM_Process()
3735 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
3737 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process()
3738 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process()
3739 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process()
3740 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process()
3745 while ((hcryp->Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN) in CRYP_AESCCM_Process()
3753 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
3756 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
3757 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
3760 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
3770 if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
3777 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process()
3780 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
3783 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESCCM_Process()
3786 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESCCM_Process()
3789 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
3793 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
3802 outcount = hcryp->CrypOutCount; in CRYP_AESCCM_Process()
3805 while ((hcryp->CrypInCount < wordsize) && (outcount < wordsize)) in CRYP_AESCCM_Process()
3808 CRYP_AES_ProcessData(hcryp, Timeout); in CRYP_AESCCM_Process()
3811 outcount = hcryp->CrypOutCount; in CRYP_AESCCM_Process()
3819 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
3822 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
3823 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
3826 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
3832 if ((hcryp->Size % 16U) != 0U) in CRYP_AESCCM_Process()
3835 npblb = ((((uint32_t)(hcryp->Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_AESCCM_Process()
3837 if ((hcryp->Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_DECRYPT) in CRYP_AESCCM_Process()
3840 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
3843 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process()
3846 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process()
3862 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AESCCM_Process()
3863 hcryp->CrypInCount++; in CRYP_AESCCM_Process()
3869 hcryp->Instance->DIN = 0U; in CRYP_AESCCM_Process()
3874 if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK) in CRYP_AESCCM_Process()
3877 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process()
3880 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process()
3881 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process()
3884 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process()
3887 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process()
3890 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process()
3895 if ((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_AESCCM_Process()
3900 temp[index] = hcryp->Instance->DOUT; in CRYP_AESCCM_Process()
3904 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process()
3905 hcryp->CrypOutCount++; in CRYP_AESCCM_Process()
3920 static HAL_StatusTypeDef CRYP_AESCCM_Process_IT(CRYP_HandleTypeDef *hcryp) in CRYP_AESCCM_Process_IT() argument
3925 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process_IT()
3927 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process_IT()
3932 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process_IT()
3939 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process_IT()
3940 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process_IT()
3945 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process_IT()
3952 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process_IT()
3956 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process_IT()
3959 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_IT()
3962 hcryp->Instance->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process_IT()
3963 hcryp->Instance->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process_IT()
3964 hcryp->Instance->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process_IT()
3965 hcryp->Instance->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR1_2; in CRYP_AESCCM_Process_IT()
3968 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
3971 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_IT()
3972 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process_IT()
3973 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process_IT()
3974 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process_IT()
3984 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_IT()
3987 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_IT()
3988 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_IT()
3991 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_IT()
3994 } while ((hcryp->Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN); in CRYP_AESCCM_Process_IT()
3997 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_AESCCM_Process_IT()
4000 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI); in CRYP_AESCCM_Process_IT()
4003 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_IT()
4014 static HAL_StatusTypeDef CRYP_AESCCM_Process_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_AESCCM_Process_DMA() argument
4017 uint32_t wordsize = (uint32_t)(hcryp->Size) / 4U ; in CRYP_AESCCM_Process_DMA()
4024 if (hcryp->Init.KeyIVConfigSkip == CRYP_KEYIVCONFIG_ONCE) in CRYP_AESCCM_Process_DMA()
4026 if (hcryp->KeyIVConfig == 1U) in CRYP_AESCCM_Process_DMA()
4031 hcryp->SizesSum += hcryp->Size; /* Compute message total payload length */ in CRYP_AESCCM_Process_DMA()
4038 hcryp->KeyIVConfig = 1U; in CRYP_AESCCM_Process_DMA()
4039 hcryp->SizesSum = hcryp->Size; /* Merely store payload length */ in CRYP_AESCCM_Process_DMA()
4044 hcryp->SizesSum = hcryp->Size; in CRYP_AESCCM_Process_DMA()
4050 hcryp->CrypHeaderCount = 0U; in CRYP_AESCCM_Process_DMA()
4054 CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT); in CRYP_AESCCM_Process_DMA()
4057 CRYP_SetKey(hcryp, hcryp->Init.KeySize); in CRYP_AESCCM_Process_DMA()
4060 hcryp->Instance->IV0LR = (hcryp->Init.B0[0]) & CRYP_CCM_CTR1_0; in CRYP_AESCCM_Process_DMA()
4061 hcryp->Instance->IV0RR = hcryp->Init.B0[1]; in CRYP_AESCCM_Process_DMA()
4062 hcryp->Instance->IV1LR = hcryp->Init.B0[2]; in CRYP_AESCCM_Process_DMA()
4063 hcryp->Instance->IV1RR = (hcryp->Init.B0[3] & CRYP_CCM_CTR1_1) | CRYP_CCM_CTR1_2; in CRYP_AESCCM_Process_DMA()
4066 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
4069 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0); in CRYP_AESCCM_Process_DMA()
4070 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 1); in CRYP_AESCCM_Process_DMA()
4071 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 2); in CRYP_AESCCM_Process_DMA()
4072 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.B0 + 3); in CRYP_AESCCM_Process_DMA()
4082 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
4085 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
4086 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
4089 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
4092 } while ((hcryp->Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN); in CRYP_AESCCM_Process_DMA()
4096 if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK) in CRYP_AESCCM_Process_DMA()
4104 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_AESCCM_Process_DMA()
4107 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
4110 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, 0U); in CRYP_AESCCM_Process_DMA()
4113 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_AESCCM_Process_DMA()
4116 if (hcryp->Size == 0U) in CRYP_AESCCM_Process_DMA()
4119 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
4122 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
4124 else if (hcryp->Size >= 16U) in CRYP_AESCCM_Process_DMA()
4131 if (hcryp->hdmain != NULL) in CRYP_AESCCM_Process_DMA()
4132 …CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (uint16_t)wordsize, (uint32_t)(hcryp->… in CRYP_AESCCM_Process_DMA()
4134 else if (hcryp->hmdmain != NULL) in CRYP_AESCCM_Process_DMA()
4135 …CRYP_SetMDMAConfig(hcryp, (uint32_t)(hcryp->pCrypInBuffPtr), (uint16_t)wordsize, (uint32_t)(hcryp-… in CRYP_AESCCM_Process_DMA()
4141 npblb = 16U - (uint32_t)(hcryp->Size); in CRYP_AESCCM_Process_DMA()
4144 if ((hcryp->Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_DECRYPT) in CRYP_AESCCM_Process_DMA()
4147 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_AESCCM_Process_DMA()
4150 __HAL_CRYP_ENABLE(hcryp); in CRYP_AESCCM_Process_DMA()
4165 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_AESCCM_Process_DMA()
4166 hcryp->CrypInCount++; in CRYP_AESCCM_Process_DMA()
4172 hcryp->Instance->DIN = 0U; in CRYP_AESCCM_Process_DMA()
4184 __HAL_CRYP_DISABLE(hcryp); in CRYP_AESCCM_Process_DMA()
4187 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_AESCCM_Process_DMA()
4188 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
4191 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
4194 hcryp->ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
4197 HAL_CRYP_ErrorCallback(hcryp); in CRYP_AESCCM_Process_DMA()
4200 } while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_OFNE)); in CRYP_AESCCM_Process_DMA()
4206 temp[index] = hcryp->Instance->DOUT; in CRYP_AESCCM_Process_DMA()
4210 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[index]; in CRYP_AESCCM_Process_DMA()
4211 hcryp->CrypOutCount++; in CRYP_AESCCM_Process_DMA()
4215 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_AESCCM_Process_DMA()
4218 __HAL_UNLOCK(hcryp); in CRYP_AESCCM_Process_DMA()
4231 static void CRYP_GCMCCM_SetPayloadPhase_IT(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetPayloadPhase_IT() argument
4243 if ((hcryp->Size / 4U) < hcryp->CrypInCount) in CRYP_GCMCCM_SetPayloadPhase_IT()
4248 if (hcryp->Size == 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4251 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
4254 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4257 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
4260 else if ((((hcryp->Size / 4U) - (hcryp->CrypInCount)) >= 4U) && in CRYP_GCMCCM_SetPayloadPhase_IT()
4263 if ((hcryp->Instance->IMSCR & CRYP_IMSCR_INIM)!= 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4266 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_GCMCCM_SetPayloadPhase_IT()
4267 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4268 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_GCMCCM_SetPayloadPhase_IT()
4269 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4270 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_GCMCCM_SetPayloadPhase_IT()
4271 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4272 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_GCMCCM_SetPayloadPhase_IT()
4273 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4274 if (((hcryp->Size / 4U) == hcryp->CrypInCount) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
4277 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
4281 hcryp->InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4284 HAL_CRYP_InCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4288 if (hcryp->CrypOutCount < (hcryp->Size / 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
4290 if ((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4295 temp[i] = hcryp->Instance->DOUT; in CRYP_GCMCCM_SetPayloadPhase_IT()
4298 while(((hcryp->CrypOutCount < ((hcryp->Size)/4U))) && (i<4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
4300 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
4301 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4304 if (((hcryp->Size / 4U) == hcryp->CrypOutCount) && ((hcryp->Size % 16U) == 0U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
4307 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI); in CRYP_GCMCCM_SetPayloadPhase_IT()
4310 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
4313 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4316 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4321 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4324 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4331 else if ((hcryp->Size % 16U) != 0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4334 if ((hcryp->Instance->IMSCR & CRYP_IMSCR_INIM)!= 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4337 npblb = ((((uint32_t)hcryp->Size / 16U) + 1U) * 16U) - (uint32_t)(hcryp->Size); in CRYP_GCMCCM_SetPayloadPhase_IT()
4340 temp_cr_algodir = hcryp->Instance->CR & CRYP_CR_ALGODIR; in CRYP_GCMCCM_SetPayloadPhase_IT()
4342 …if (((temp_cr_algodir == CRYP_OPERATINGMODE_ENCRYPT) && (hcryp->Init.Algorithm == CRYP_AES_GCM)) || in CRYP_GCMCCM_SetPayloadPhase_IT()
4343 … ((temp_cr_algodir == CRYP_OPERATINGMODE_DECRYPT) && (hcryp->Init.Algorithm == CRYP_AES_CCM))) in CRYP_GCMCCM_SetPayloadPhase_IT()
4346 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4349 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, npblb << 20); in CRYP_GCMCCM_SetPayloadPhase_IT()
4352 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4368 hcryp->Instance->DIN = *(uint32_t *)(hcryp->pCrypInBuffPtr + hcryp->CrypInCount); in CRYP_GCMCCM_SetPayloadPhase_IT()
4369 hcryp->CrypInCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4374 hcryp->Instance->DIN = 0U; in CRYP_GCMCCM_SetPayloadPhase_IT()
4379 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
4383 if ((hcryp->Instance->SR & CRYP_FLAG_OFNE) != 0x0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4387 temp[i] = hcryp->Instance->DOUT; in CRYP_GCMCCM_SetPayloadPhase_IT()
4389 if (( (hcryp->Size)/4U)==0U) in CRYP_GCMCCM_SetPayloadPhase_IT()
4391 for (i = 0U; (uint16_t)i<((hcryp->Size)%4U); i++) in CRYP_GCMCCM_SetPayloadPhase_IT()
4393 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
4394 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4398 while(((hcryp->CrypOutCount < ((hcryp->Size)/4U))) && (i<4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
4400 *(uint32_t *)(hcryp->pCrypOutBuffPtr + hcryp->CrypOutCount) = temp[i]; in CRYP_GCMCCM_SetPayloadPhase_IT()
4401 hcryp->CrypOutCount++; in CRYP_GCMCCM_SetPayloadPhase_IT()
4407 if (hcryp->CrypOutCount >= ((hcryp->Size) / 4U)) in CRYP_GCMCCM_SetPayloadPhase_IT()
4410 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI | CRYP_IT_INI); in CRYP_GCMCCM_SetPayloadPhase_IT()
4413 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetPayloadPhase_IT()
4416 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4421 hcryp->OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4424 HAL_CRYP_OutCpltCallback(hcryp); in CRYP_GCMCCM_SetPayloadPhase_IT()
4442 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_GCMCCM_SetHeaderPhase() argument
4448 if ((hcryp->Init.HeaderSize != 0U)) in CRYP_GCMCCM_SetHeaderPhase()
4451 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase()
4454 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4456 if ((hcryp->Init.HeaderSize % 4U) == 0U) in CRYP_GCMCCM_SetHeaderPhase()
4459 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase()
4461 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4462 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4463 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4464 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4465 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4466 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4467 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4468 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4471 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
4474 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4477 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
4478 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
4481 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4489 …for (loopcounter = 0U; (loopcounter < ((hcryp->Init.HeaderSize) - (hcryp->Init.HeaderSize % 4U)));… in CRYP_GCMCCM_SetHeaderPhase()
4491 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4492 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4493 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4494 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4495 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4496 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4497 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4498 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4501 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
4504 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4507 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
4508 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
4511 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4516 for (loopcounter = 0U; (loopcounter < (hcryp->Init.HeaderSize % 4U)); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase()
4518 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase()
4519 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase()
4524 hcryp->Instance->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase()
4528 if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
4531 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4534 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
4535 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
4538 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4543 if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK) in CRYP_GCMCCM_SetHeaderPhase()
4546 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4549 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase()
4550 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase()
4553 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase()
4567 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase_DMA(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetHeaderPhase_DMA() argument
4573 if ((hcryp->Init.HeaderSize != 0U)) in CRYP_GCMCCM_SetHeaderPhase_DMA()
4576 CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4579 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4581 if ((hcryp->Init.HeaderSize % 4U) == 0U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
4584 for (loopcounter = 0U; (loopcounter < hcryp->Init.HeaderSize); loopcounter += 4U) in CRYP_GCMCCM_SetHeaderPhase_DMA()
4586 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4587 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4588 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4589 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4590 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4591 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4592 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4593 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4603 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4606 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4607 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4610 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4613 } while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_IFEM)); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4619 …for (loopcounter = 0U; (loopcounter < ((hcryp->Init.HeaderSize) - (hcryp->Init.HeaderSize % 4U)));… in CRYP_GCMCCM_SetHeaderPhase_DMA()
4621 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4622 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4623 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4624 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4625 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4626 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4627 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4628 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4638 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4641 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4642 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4645 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4648 } while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_IFEM)); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4651 for (loopcounter = 0U; (loopcounter < (hcryp->Init.HeaderSize % 4U)); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase_DMA()
4653 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4654 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4659 hcryp->Instance->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4670 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4672 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4673 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4675 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4678 } while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_IFEM)); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4688 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4690 hcryp->ErrorCode |= HAL_CRYP_ERROR_TIMEOUT; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4691 hcryp->State = HAL_CRYP_STATE_READY; in CRYP_GCMCCM_SetHeaderPhase_DMA()
4693 __HAL_UNLOCK(hcryp); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4696 } while (HAL_IS_BIT_SET(hcryp->Instance->SR, CRYP_FLAG_BUSY)); in CRYP_GCMCCM_SetHeaderPhase_DMA()
4709 static void CRYP_GCMCCM_SetHeaderPhase_IT(CRYP_HandleTypeDef *hcryp) in CRYP_GCMCCM_SetHeaderPhase_IT() argument
4715 if (hcryp->Init.HeaderSize == hcryp->CrypHeaderCount) in CRYP_GCMCCM_SetHeaderPhase_IT()
4718 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI); in CRYP_GCMCCM_SetHeaderPhase_IT()
4721 __HAL_CRYP_DISABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
4724 MODIFY_REG(hcryp->Instance->CR, CRYP_CR_NPBLB, 0U); in CRYP_GCMCCM_SetHeaderPhase_IT()
4727 hcryp->Phase = CRYP_PHASE_PROCESS; in CRYP_GCMCCM_SetHeaderPhase_IT()
4730 CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD); in CRYP_GCMCCM_SetHeaderPhase_IT()
4733 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI); in CRYP_GCMCCM_SetHeaderPhase_IT()
4736 __HAL_CRYP_ENABLE(hcryp); in CRYP_GCMCCM_SetHeaderPhase_IT()
4738 else if (((hcryp->Init.HeaderSize) - (hcryp->CrypHeaderCount)) >= 4U) in CRYP_GCMCCM_SetHeaderPhase_IT()
4742 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
4743 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
4744 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
4745 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
4746 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
4747 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
4748 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
4749 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
4754 for (loopcounter = 0U; loopcounter < (hcryp->Init.HeaderSize % 4U); loopcounter++) in CRYP_GCMCCM_SetHeaderPhase_IT()
4756 hcryp->Instance->DIN = *(uint32_t *)(hcryp->Init.Header + hcryp->CrypHeaderCount); in CRYP_GCMCCM_SetHeaderPhase_IT()
4757 hcryp->CrypHeaderCount++ ; in CRYP_GCMCCM_SetHeaderPhase_IT()
4762 hcryp->Instance->DIN = 0x0U; in CRYP_GCMCCM_SetHeaderPhase_IT()
4775 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnIFEMFlag() argument
4782 while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_IFEM)) in CRYP_WaitOnIFEMFlag()
4802 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnBUSYFlag() argument
4809 while (HAL_IS_BIT_SET(hcryp->Instance->SR, CRYP_FLAG_BUSY)) in CRYP_WaitOnBUSYFlag()
4831 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(const CRYP_HandleTypeDef *hcryp, uint32_t Timeout) in CRYP_WaitOnOFNEFlag() argument
4838 while (HAL_IS_BIT_CLR(hcryp->Instance->SR, CRYP_FLAG_OFNE)) in CRYP_WaitOnOFNEFlag()