264 #if defined (AES)  || defined (CRYP) 
  272 #ifdef HAL_CRYP_MODULE_ENABLED 
  279 #define CRYP_TIMEOUT_KEYPREPARATION      82U          
  280 #define CRYP_TIMEOUT_GCMCCMINITPHASE     299U         
  281 #define CRYP_TIMEOUT_GCMCCMHEADERPHASE   290U         
  283 #define  CRYP_PHASE_READY                0x00000001U  
  284 #define  CRYP_PHASE_PROCESS              0x00000002U  
  287 #define CRYP_OPERATINGMODE_ENCRYPT                   0x00000000U      
  288 #define CRYP_OPERATINGMODE_KEYDERIVATION             AES_CR_MODE_0    
  289 #define CRYP_OPERATINGMODE_DECRYPT                   AES_CR_MODE_1    
  290 #define CRYP_OPERATINGMODE_KEYDERIVATION_DECRYPT     AES_CR_MODE      
  291 #define CRYP_PHASE_INIT                              0x00000000U         
  292 #define CRYP_PHASE_HEADER                            AES_CR_GCMPH_0      
  293 #define CRYP_PHASE_PAYLOAD                           AES_CR_GCMPH_1      
  294 #define CRYP_PHASE_FINAL                             AES_CR_GCMPH        
  296 #define CRYP_PHASE_INIT                              0x00000000U              
  297 #define CRYP_PHASE_HEADER                            CRYP_CR_GCM_CCMPH_0      
  298 #define CRYP_PHASE_PAYLOAD                           CRYP_CR_GCM_CCMPH_1      
  299 #define CRYP_PHASE_FINAL                             CRYP_CR_GCM_CCMPH        
  300 #define CRYP_OPERATINGMODE_ENCRYPT                   0x00000000U              
  301 #define CRYP_OPERATINGMODE_DECRYPT                   CRYP_CR_ALGODIR          
  305 #define CRYP_CCM_CTR1_0                  0x07FFFFFFU 
  306 #define CRYP_CCM_CTR1_1                  0xFFFFFF00U 
  307 #define CRYP_CCM_CTR1_2                  0x00000001U 
  322 #define CRYP_SET_PHASE(__HANDLE__, __PHASE__)  do{(__HANDLE__)->Instance->CR &= (uint32_t)(~CRYP_CR_GCM_CCMPH);\ 
  323                                                         (__HANDLE__)->Instance->CR |= (uint32_t)(__PHASE__);\ 
  326 #define HAL_CRYP_FIFO_FLUSH(__HANDLE__) ((__HANDLE__)->Instance->CR |=  CRYP_CR_FFLUSH) 
  329 #define CRYP_SET_PHASE(__HANDLE__, __PHASE__)  do{(__HANDLE__)->Instance->CR &= (uint32_t)(~AES_CR_GCMPH);\ 
  330                                                         (__HANDLE__)->Instance->CR |= (uint32_t)(__PHASE__);\ 
  346 static void CRYP_SetDMAConfig(
CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_t outputaddr);
 
  352 #if defined (CRYP_CR_ALGOMODE_AES_GCM)|| defined (AES) 
  353 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  360 static HAL_StatusTypeDef CRYP_AESGCM_Process(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  361 static HAL_StatusTypeDef CRYP_AESCCM_Process(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  366 static HAL_StatusTypeDef CRYP_AES_Encrypt(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  367 static HAL_StatusTypeDef CRYP_AES_Decrypt(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  373 #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
  374 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  376 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  377 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  378 static HAL_StatusTypeDef CRYP_TDES_Process(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  380 static HAL_StatusTypeDef CRYP_WaitOnCCFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout);
 
  439   assert_param(IS_CRYP_KEYSIZE(hcryp->
Init.
KeySize));
 
  444 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
  448     hcryp->
Lock = HAL_UNLOCKED;
 
  466     hcryp->
Lock = HAL_UNLOCKED;
 
  476   MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_ALGOMODE,
 
  481   MODIFY_REG(hcryp->
Instance->CR, AES_CR_DATATYPE | AES_CR_KEYSIZE | AES_CR_CHMOD,
 
  493   hcryp->
Phase = CRYP_PHASE_READY;
 
  514   hcryp->
Phase = CRYP_PHASE_READY;
 
  522   __HAL_CRYP_DISABLE(hcryp);
 
  524 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
  561   if ((hcryp == NULL) || (pConf == NULL))
 
  567   assert_param(IS_CRYP_KEYSIZE(pConf->
KeySize));
 
  568   assert_param(IS_CRYP_DATATYPE(pConf->
DataType));
 
  569   assert_param(IS_CRYP_ALGORITHM(pConf->
Algorithm));
 
  595     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_ALGOMODE,
 
  599     MODIFY_REG(hcryp->
Instance->CR, AES_CR_DATATYPE | AES_CR_KEYSIZE | AES_CR_CHMOD,
 
  603     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_ERR_CLEAR);
 
  617     hcryp->
Phase = CRYP_PHASE_READY;
 
  643   if ((hcryp == NULL) || (pConf == NULL))
 
  720 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
  738   HAL_StatusTypeDef status = HAL_OK;
 
  740   if (pCallback == NULL)
 
  743     hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  776         hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  796         hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  805     hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  831   HAL_StatusTypeDef status = HAL_OK;
 
  862         hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  882         hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  891     hcryp->
ErrorCode |= HAL_CRYP_ERROR_INVALID_CALLBACK;
 
  950   HAL_StatusTypeDef status;
 
  969       hcryp->
Size = Size * 4U;
 
  978     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT);
 
  981     algo = hcryp->
Instance->CR & CRYP_CR_ALGOMODE;
 
 1009         HAL_CRYP_FIFO_FLUSH(hcryp);
 
 1012         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1015         status = CRYP_TDES_Process(hcryp, Timeout);
 
 1023         status = CRYP_AES_Encrypt(hcryp, Timeout);
 
 1025         #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 1029         status = CRYP_AESGCM_Process(hcryp, Timeout);
 
 1036         status = CRYP_AESCCM_Process(hcryp, Timeout);
 
 1040         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1044         __HAL_UNLOCK(hcryp);
 
 1051     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_ENCRYPT);
 
 1054     algo = hcryp->
Instance->CR & AES_CR_CHMOD;
 
 1064         status = CRYP_AES_Encrypt(hcryp, Timeout);
 
 1067       case CRYP_AES_GCM_GMAC:
 
 1070         status = CRYP_AESGCM_Process(hcryp, Timeout) ;
 
 1076         status = CRYP_AESCCM_Process(hcryp, Timeout);
 
 1080         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1084         __HAL_UNLOCK(hcryp);
 
 1089     if (status == HAL_OK)
 
 1095       __HAL_UNLOCK(hcryp);
 
 1101     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 1122   HAL_StatusTypeDef status;
 
 1142       hcryp->
Size = Size * 4U;
 
 1152     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT);
 
 1155     algo = hcryp->
Instance->CR & CRYP_CR_ALGOMODE;
 
 1183         HAL_CRYP_FIFO_FLUSH(hcryp);
 
 1186         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1189         status = CRYP_TDES_Process(hcryp, Timeout);
 
 1198         status = CRYP_AES_Decrypt(hcryp, Timeout);
 
 1200         #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 1204         status = CRYP_AESGCM_Process(hcryp, Timeout) ;
 
 1210         status = CRYP_AESCCM_Process(hcryp, Timeout);
 
 1214         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1218         __HAL_UNLOCK(hcryp);
 
 1225     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_DECRYPT);
 
 1228     algo = hcryp->
Instance->CR & AES_CR_CHMOD;
 
 1238         status = CRYP_AES_Decrypt(hcryp, Timeout);
 
 1241       case CRYP_AES_GCM_GMAC:
 
 1244         status = CRYP_AESGCM_Process(hcryp, Timeout) ;
 
 1250         status = CRYP_AESCCM_Process(hcryp, Timeout);
 
 1254         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1258         __HAL_UNLOCK(hcryp);
 
 1263     if (status == HAL_OK)
 
 1269       __HAL_UNLOCK(hcryp);
 
 1275     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 1295   HAL_StatusTypeDef status = HAL_OK;
 
 1314       hcryp->
Size = Size * 4U;
 
 1324     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT);
 
 1327     algo = (hcryp->
Instance->CR & CRYP_CR_ALGOMODE);
 
 1354         HAL_CRYP_FIFO_FLUSH(hcryp);
 
 1357         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1360         __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
 
 1363         __HAL_CRYP_ENABLE(hcryp);
 
 1370         status = CRYP_AES_Encrypt_IT(hcryp);
 
 1372         #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 1375         status = CRYP_AESGCM_Process_IT(hcryp) ;
 
 1380         status = CRYP_AESCCM_Process_IT(hcryp);
 
 1384         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1388         __HAL_UNLOCK(hcryp);
 
 1396     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_ENCRYPT);
 
 1399     algo = hcryp->
Instance->CR & AES_CR_CHMOD;
 
 1408         status = CRYP_AES_Encrypt_IT(hcryp);
 
 1411       case CRYP_AES_GCM_GMAC:
 
 1414         status = CRYP_AESGCM_Process_IT(hcryp) ;
 
 1420         status = CRYP_AESCCM_Process_IT(hcryp);
 
 1424         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1428         __HAL_UNLOCK(hcryp);
 
 1438     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 1458   HAL_StatusTypeDef status = HAL_OK;
 
 1477       hcryp->
Size = Size * 4U;
 
 1487     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT);
 
 1490     algo = hcryp->
Instance->CR & CRYP_CR_ALGOMODE;
 
 1517         HAL_CRYP_FIFO_FLUSH(hcryp);
 
 1520         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1523         __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
 
 1526         __HAL_CRYP_ENABLE(hcryp);
 
 1535         status = CRYP_AES_Decrypt_IT(hcryp);
 
 1537         #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 1541         status = CRYP_AESGCM_Process_IT(hcryp) ;
 
 1547         status = CRYP_AESCCM_Process_IT(hcryp);
 
 1551         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1555         __HAL_UNLOCK(hcryp);
 
 1563     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_DECRYPT);
 
 1566     algo = hcryp->
Instance->CR & AES_CR_CHMOD;
 
 1575         status = CRYP_AES_Decrypt_IT(hcryp);
 
 1578       case CRYP_AES_GCM_GMAC:
 
 1581         status = CRYP_AESGCM_Process_IT(hcryp) ;
 
 1587         status = CRYP_AESCCM_Process_IT(hcryp);
 
 1591         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1595         __HAL_UNLOCK(hcryp);
 
 1605     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 1625   HAL_StatusTypeDef status = HAL_OK;
 
 1626   uint32_t DoKeyIVConfig = 1U; 
 
 1645       hcryp->
Size = Size * 4U;
 
 1655     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_ENCRYPT);
 
 1658     algo = hcryp->
Instance->CR & CRYP_CR_ALGOMODE;
 
 1686         HAL_CRYP_FIFO_FLUSH(hcryp);
 
 1689         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1692         CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->
pCrypInBuffPtr), ((uint16_t)(hcryp->
Size) / 4U),
 
 1717         if (DoKeyIVConfig == 1U)
 
 1733         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1736         CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->
pCrypInBuffPtr), ((uint16_t)(hcryp->
Size) / 4U),
 
 1739         #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 1742         status = CRYP_AESGCM_Process_DMA(hcryp) ;
 
 1747         status = CRYP_AESCCM_Process_DMA(hcryp);
 
 1751         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1755         __HAL_UNLOCK(hcryp);
 
 1762     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_ENCRYPT);
 
 1765     algo = hcryp->
Instance->CR & AES_CR_CHMOD;
 
 1791         if (DoKeyIVConfig == 1U)
 
 1806         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1812       case CRYP_AES_GCM_GMAC:
 
 1814         status = CRYP_AESGCM_Process_DMA(hcryp) ;
 
 1819         status = CRYP_AESCCM_Process_DMA(hcryp);
 
 1823         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1827         __HAL_UNLOCK(hcryp);
 
 1837     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 1857   HAL_StatusTypeDef status = HAL_OK;
 
 1877       hcryp->
Size = Size * 4U;
 
 1887     MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGODIR, CRYP_OPERATINGMODE_DECRYPT);
 
 1890     algo = hcryp->
Instance->CR & CRYP_CR_ALGOMODE;
 
 1918         HAL_CRYP_FIFO_FLUSH(hcryp);
 
 1921         hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 1924         CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->
pCrypInBuffPtr), ((uint16_t)(hcryp->
Size) / 4U),
 
 1933         status = CRYP_AES_Decrypt_DMA(hcryp);
 
 1935         #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 1938         status = CRYP_AESGCM_Process_DMA(hcryp) ;
 
 1943         status = CRYP_AESCCM_Process_DMA(hcryp);
 
 1947         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1951         __HAL_UNLOCK(hcryp);
 
 1959     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_DECRYPT);
 
 1962     algo = hcryp->
Instance->CR & AES_CR_CHMOD;
 
 1972         status = CRYP_AES_Decrypt_DMA(hcryp);
 
 1975       case CRYP_AES_GCM_GMAC:
 
 1977         status = CRYP_AESGCM_Process_DMA(hcryp) ;
 
 1982         status = CRYP_AESCCM_Process_DMA(hcryp);
 
 1986         hcryp->
ErrorCode |= HAL_CRYP_ERROR_NOT_SUPPORTED;
 
 1990         __HAL_UNLOCK(hcryp);
 
 1999     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 2040   uint32_t itstatus = hcryp->
Instance->MISR;
 
 2042   if ((itstatus & (CRYP_IT_INI | CRYP_IT_OUTI)) != 0U)
 
 2047       CRYP_TDES_IT(hcryp); 
 
 2054     #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 2058       if ((hcryp->
Instance->CR & CRYP_PHASE_HEADER) == CRYP_PHASE_HEADER)
 
 2060         CRYP_GCMCCM_SetHeaderPhase_IT(hcryp);
 
 2064         CRYP_GCMCCM_SetPayloadPhase_IT(hcryp);
 
 2075   if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_IT_CCF) != RESET)
 
 2077     if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_CCFIE) != RESET)
 
 2081       __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 2087         if ((hcryp->
Instance->CR & CRYP_PHASE_HEADER) == CRYP_PHASE_HEADER)
 
 2089           CRYP_GCMCCM_SetHeaderPhase_IT(hcryp);
 
 2093           CRYP_GCMCCM_SetPayloadPhase_IT(hcryp);
 
 2101           CRYP_GCMCCM_SetHeaderPhase_IT(hcryp);
 
 2105           CRYP_GCMCCM_SetPayloadPhase_IT(hcryp);
 
 2115   if (__HAL_CRYP_GET_IT_SOURCE(hcryp, CRYP_IT_ERRIE) != RESET)
 
 2118     if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_IT_WRERR) != RESET)
 
 2120       hcryp->
ErrorCode |= HAL_CRYP_ERROR_WRITE;
 
 2123     if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_IT_RDERR) != RESET)
 
 2125       hcryp->
ErrorCode |= HAL_CRYP_ERROR_READ;
 
 2150   return hcryp->
State;
 
 2218 static HAL_StatusTypeDef CRYP_TDES_Process(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 2226   __HAL_CRYP_ENABLE(hcryp);
 
 2236     if (((hcryp->
Instance->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->
Size / 4U)))
 
 2246     if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK)
 
 2249       __HAL_CRYP_DISABLE(hcryp);
 
 2252       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 2256       __HAL_UNLOCK(hcryp);
 
 2257 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 2269     if (((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->
Size / 4U)))
 
 2272       for (i = 0U; i < 2U; i++)
 
 2288   __HAL_CRYP_DISABLE(hcryp);
 
 2311     if (__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI) != 0x0U)
 
 2313       if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_INRIS) != 0x0U)
 
 2324           __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
 
 2326 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 2336     if (__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI) != 0x0U)
 
 2338       if (__HAL_CRYP_GET_FLAG(hcryp, CRYP_FLAG_OUTRIS) != 0x0U)
 
 2341         for (i = 0U; i < 2U; i++)
 
 2355           __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
 
 2358           __HAL_CRYP_DISABLE(hcryp);
 
 2361           __HAL_UNLOCK(hcryp);
 
 2366 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 2380     __HAL_UNLOCK(hcryp);
 
 2382     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 2383 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 2401 static HAL_StatusTypeDef CRYP_AES_Encrypt(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 2404   uint32_t DoKeyIVConfig = 1U; 
 
 2423   if (DoKeyIVConfig == 1U)
 
 2447   hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 2450   __HAL_CRYP_ENABLE(hcryp);
 
 2458     CRYP_AES_ProcessData(hcryp, Timeout);
 
 2464   __HAL_CRYP_DISABLE(hcryp);
 
 2481   uint32_t DoKeyIVConfig = 1U; 
 
 2500   if (DoKeyIVConfig == 1U)
 
 2524   hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 2526   if (hcryp->
Size != 0U)
 
 2531     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 2534     __HAL_CRYP_ENABLE(hcryp);
 
 2551     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
 
 2554     __HAL_CRYP_ENABLE(hcryp);
 
 2564     __HAL_UNLOCK(hcryp);
 
 2577 static HAL_StatusTypeDef CRYP_AES_Decrypt(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 2580   uint32_t DoKeyIVConfig = 1U; 
 
 2599   if (DoKeyIVConfig == 1U)
 
 2608         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_KEYDERIVATION);
 
 2614         __HAL_CRYP_ENABLE(hcryp);
 
 2617         if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 2620           __HAL_CRYP_DISABLE(hcryp);
 
 2623           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 2627           __HAL_UNLOCK(hcryp);
 
 2631         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 2634         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_DECRYPT);
 
 2642         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_KEYDERIVATION_DECRYPT);
 
 2646       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_CR_ALGOMODE_AES_KEY);
 
 2652       __HAL_CRYP_ENABLE(hcryp);
 
 2655       if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK)
 
 2658         __HAL_CRYP_DISABLE(hcryp);
 
 2661         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 2665         __HAL_UNLOCK(hcryp);
 
 2697   hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 2700   __HAL_CRYP_ENABLE(hcryp);
 
 2708     CRYP_AES_ProcessData(hcryp, Timeout);
 
 2714   __HAL_CRYP_DISABLE(hcryp);
 
 2730   __IO uint32_t count = 0U;
 
 2731   uint32_t DoKeyIVConfig = 1U; 
 
 2750   if (DoKeyIVConfig == 1U)
 
 2759         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_KEYDERIVATION);
 
 2765         __HAL_CRYP_ENABLE(hcryp);
 
 2768         count = CRYP_TIMEOUT_KEYPREPARATION;
 
 2775             __HAL_CRYP_DISABLE(hcryp);
 
 2778             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 2782             __HAL_UNLOCK(hcryp);
 
 2786         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 2789         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 2792         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_DECRYPT);
 
 2800         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_KEYDERIVATION_DECRYPT);
 
 2805       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_CR_ALGOMODE_AES_KEY);
 
 2811       __HAL_CRYP_ENABLE(hcryp);
 
 2814       count = CRYP_TIMEOUT_KEYPREPARATION;
 
 2821           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 2825           __HAL_UNLOCK(hcryp);
 
 2829       while (HAL_IS_BIT_SET(hcryp->
Instance->SR, CRYP_FLAG_BUSY));
 
 2862   hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 2863   if (hcryp->
Size != 0U)
 
 2869     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 2872     __HAL_CRYP_ENABLE(hcryp);
 
 2889     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
 
 2892     __HAL_CRYP_ENABLE(hcryp);
 
 2899     __HAL_UNLOCK(hcryp);
 
 2916   __IO uint32_t count = 0U;
 
 2917   uint32_t DoKeyIVConfig = 1U; 
 
 2935   if (DoKeyIVConfig == 1U)
 
 2944         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_KEYDERIVATION);
 
 2950         __HAL_CRYP_ENABLE(hcryp);
 
 2953         count = CRYP_TIMEOUT_KEYPREPARATION;
 
 2960             __HAL_CRYP_DISABLE(hcryp);
 
 2963             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 2967             __HAL_UNLOCK(hcryp);
 
 2971         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 2974         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 2977         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_DECRYPT);
 
 2985         MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_KEYDERIVATION_DECRYPT);
 
 2989       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_CR_ALGOMODE_AES_KEY);
 
 2995       __HAL_CRYP_ENABLE(hcryp);
 
 2998       count = CRYP_TIMEOUT_KEYPREPARATION;
 
 3005           __HAL_CRYP_DISABLE(hcryp);
 
 3008           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3012           __HAL_UNLOCK(hcryp);
 
 3016       while (HAL_IS_BIT_SET(hcryp->
Instance->SR, CRYP_FLAG_BUSY));
 
 3047   hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 3049   if (hcryp->
Size != 0U)
 
 3057     __HAL_UNLOCK(hcryp);
 
 3080   hcryp->
Instance->DMACR &= (uint32_t)(~CRYP_DMACR_DIEN);
 
 3083   CLEAR_BIT(hcryp->
Instance->CR, AES_CR_DMAINEN);
 
 3089     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 3095     __HAL_UNLOCK(hcryp);
 
 3100 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3123   hcryp->
Instance->DMACR &= (uint32_t)(~CRYP_DMACR_DOEN);
 
 3124   #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 3128     __HAL_CRYP_DISABLE(hcryp);
 
 3133   __HAL_CRYP_DISABLE(hcryp);
 
 3137   CLEAR_BIT(hcryp->
Instance->CR, AES_CR_DMAOUTEN);
 
 3140   __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 3142   if ((hcryp->
Init.
Algorithm & CRYP_AES_GCM_GMAC) != CRYP_AES_GCM_GMAC)
 
 3145     __HAL_CRYP_DISABLE(hcryp);
 
 3153   __HAL_UNLOCK(hcryp);
 
 3155 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3182   __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 3187 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3205 static void CRYP_SetDMAConfig(
CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_t outputaddr)
 
 3222   __HAL_CRYP_ENABLE(hcryp);
 
 3231 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3246 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3255   hcryp->
Instance->DMACR = CRYP_DMACR_DOEN | CRYP_DMACR_DIEN;
 
 3259   if (((hcryp->
Init.
Algorithm & CRYP_AES_GCM_GMAC) != CRYP_AES_GCM_GMAC)
 
 3260       && ((hcryp->
Init.
Algorithm & CRYP_AES_CCM) != CRYP_AES_CCM))
 
 3263     __HAL_CRYP_ENABLE(hcryp);
 
 3273 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3288 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3301     SET_BIT(hcryp->
Instance->CR, (AES_CR_DMAINEN));
 
 3306     SET_BIT(hcryp->
Instance->CR, (AES_CR_DMAINEN | AES_CR_DMAOUTEN));
 
 3333   if (((hcryp->
Instance->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->
Size / 4U)))
 
 3347   if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK)
 
 3350     __HAL_CRYP_DISABLE(hcryp);
 
 3353     hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3357     __HAL_UNLOCK(hcryp);
 
 3358 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3370   if (((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->
Size / 4U)))
 
 3373     for (i = 0U; i < 4U; i++)
 
 3399   if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 3402     __HAL_CRYP_DISABLE(hcryp);
 
 3405     hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3409     __HAL_UNLOCK(hcryp);
 
 3410 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3420   __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 3423   for (i = 0U; i < 4U; i++)
 
 3460     if (((hcryp->
Instance->SR & CRYP_FLAG_IFNF) != 0x0U) && (incount < (hcryp->
Size / 4U)))
 
 3474         __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
 
 3477 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3489     if (((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U) && (outcount < (hcryp->
Size / 4U)))
 
 3492       for (i = 0U; i < 4U; i++)
 
 3506         __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
 
 3512         __HAL_CRYP_DISABLE(hcryp);
 
 3515         __HAL_UNLOCK(hcryp);
 
 3518 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3531     for (i = 0U; i < 4U; i++)
 
 3546       __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 3552       __HAL_CRYP_DISABLE(hcryp);
 
 3555       __HAL_UNLOCK(hcryp);
 
 3558 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3581 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 3596     hcryp->
ErrorCode |= HAL_CRYP_ERROR_BUSY;
 
 3597 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 3620     case CRYP_KEYSIZE_256B:
 
 3630     case CRYP_KEYSIZE_192B:
 
 3638     case CRYP_KEYSIZE_128B:
 
 3651     case CRYP_KEYSIZE_256B:
 
 3661     case CRYP_KEYSIZE_128B:
 
 3674 #if defined (CRYP_CR_ALGOMODE_AES_GCM)|| defined (AES) 
 3682 static HAL_StatusTypeDef CRYP_AESGCM_Process(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 3685   uint32_t wordsize = (uint32_t)(hcryp->
Size) / 4U ;
 
 3687   uint32_t DoKeyIVConfig = 1U; 
 
 3712   if (DoKeyIVConfig == 1U)
 
 3719     CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT);
 
 3733     __HAL_CRYP_ENABLE(hcryp);
 
 3739     while ((hcryp->
Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN)
 
 3742       if (Timeout != HAL_MAX_DELAY)
 
 3744         if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 3747           __HAL_CRYP_DISABLE(hcryp);
 
 3750           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3754           __HAL_UNLOCK(hcryp);
 
 3765     MODIFY_REG(hcryp->
Instance->CR, AES_CR_DATATYPE, CRYP_DATATYPE_32B);
 
 3774     __HAL_CRYP_ENABLE(hcryp);
 
 3777     if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 3780       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3784       __HAL_UNLOCK(hcryp);
 
 3788     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 3794     if (CRYP_GCMCCM_SetHeaderPhase(hcryp,  Timeout) != HAL_OK)
 
 3802     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 3807     __HAL_CRYP_DISABLE(hcryp);
 
 3810     CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 3813     __HAL_CRYP_ENABLE(hcryp);
 
 3818     CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 3823   if ((hcryp->
Size % 16U) != 0U)
 
 3826     wordsize = ((wordsize / 4U) * 4U) ;
 
 3835   while ((hcryp->
CrypInCount < wordsize) && (outcount < wordsize))
 
 3838     CRYP_AES_ProcessData(hcryp, Timeout);
 
 3844     if (Timeout != HAL_MAX_DELAY)
 
 3846       if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 3849         __HAL_CRYP_DISABLE(hcryp);
 
 3852         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3856         __HAL_UNLOCK(hcryp);
 
 3862   if ((hcryp->
Size % 16U) != 0U)
 
 3867     CRYP_Workaround(hcryp, Timeout);
 
 3882   __IO uint32_t count = 0U;
 
 3883   uint32_t DoKeyIVConfig = 1U; 
 
 3885   uint32_t loopcounter;
 
 3886   uint32_t lastwordsize;
 
 3914   if (DoKeyIVConfig == 1U)
 
 3921     CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT);
 
 3934     __HAL_CRYP_ENABLE(hcryp);
 
 3937     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 3944         __HAL_CRYP_DISABLE(hcryp);
 
 3947         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3951         __HAL_UNLOCK(hcryp);
 
 3955     while ((hcryp->
Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN);
 
 3963     MODIFY_REG(hcryp->
Instance->CR, AES_CR_DATATYPE, CRYP_DATATYPE_32B);
 
 3972     __HAL_CRYP_ENABLE(hcryp);
 
 3975     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 3982         __HAL_CRYP_DISABLE(hcryp);
 
 3985         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 3989         __HAL_UNLOCK(hcryp);
 
 3993     while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 3996     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4005     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 4008     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI);
 
 4011     __HAL_CRYP_ENABLE(hcryp);
 
 4019     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 4022     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 4025     __HAL_CRYP_ENABLE(hcryp);
 
 4030       hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 4033       MODIFY_REG(hcryp->
Instance->CR, AES_CR_GCMPH, CRYP_PHASE_PAYLOAD);
 
 4036       if (hcryp->
Size == 0U)
 
 4039         __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 4045         __HAL_UNLOCK(hcryp);
 
 4047       else if (hcryp->
Size >= 16U)
 
 4060 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 4077         npblb = 16U - (uint32_t)(hcryp->
Size);
 
 4080         if ((npblb % 4U) == 0U)
 
 4082           lastwordsize = (16U - npblb) / 4U;
 
 4086           lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 4090         for (loopcounter = 0U; loopcounter < lastwordsize ; loopcounter++)
 
 4095         while (loopcounter < 4U)
 
 4105       for (loopcounter = 0U; loopcounter < hcryp->
Init.
HeaderSize ; loopcounter++)
 
 4110       while (loopcounter < 4U)
 
 4117       hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 4120       CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 4123 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 4164   __IO uint32_t count = 0U;
 
 4166   uint32_t DoKeyIVConfig = 1U; 
 
 4191   if (DoKeyIVConfig == 1U)
 
 4198     CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT);
 
 4211     __HAL_CRYP_ENABLE(hcryp);
 
 4214     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 4221         __HAL_CRYP_DISABLE(hcryp);
 
 4224         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4228         __HAL_UNLOCK(hcryp);
 
 4232     while ((hcryp->
Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN);
 
 4240     MODIFY_REG(hcryp->
Instance->CR, AES_CR_DATATYPE, CRYP_DATATYPE_32B);
 
 4249     __HAL_CRYP_ENABLE(hcryp);
 
 4252     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 4259         __HAL_CRYP_DISABLE(hcryp);
 
 4262         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4266         __HAL_UNLOCK(hcryp);
 
 4270     while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 4273     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4279     if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK)
 
 4287     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 4292     __HAL_CRYP_DISABLE(hcryp);
 
 4297     CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 4301   if (hcryp->
Size != 0U)
 
 4307     if ((hcryp->
Size % 16U) == 0U)
 
 4313       wordsize = (uint32_t)(hcryp->
Size) + (16U - ((uint32_t)(hcryp->
Size) % 16U)) ;
 
 4316       CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->
pCrypInBuffPtr), ((uint16_t)wordsize / 4U),
 
 4323     __HAL_UNLOCK(hcryp);
 
 4342 static HAL_StatusTypeDef CRYP_AESCCM_Process(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 4345   uint32_t wordsize = (uint32_t)(hcryp->
Size) / 4U;
 
 4347   uint32_t DoKeyIVConfig = 1U; 
 
 4349   uint32_t loopcounter;
 
 4351   uint32_t lastwordsize;
 
 4377   if (DoKeyIVConfig == 1U)
 
 4387     CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT);
 
 4396     hcryp->
Instance->IV1RR = (hcryp->
Init.
B0[3] & CRYP_CCM_CTR1_1) |  CRYP_CCM_CTR1_2;
 
 4400     __HAL_CRYP_ENABLE(hcryp);
 
 4413       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 1), 16);
 
 4414       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 2), 16);
 
 4415       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 3), 16);
 
 4420       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 1));
 
 4421       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 2));
 
 4422       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 3));
 
 4435     while ((hcryp->
Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN)
 
 4438       if (Timeout != HAL_MAX_DELAY)
 
 4440         if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 4443           __HAL_CRYP_DISABLE(hcryp);
 
 4446           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4450           __HAL_UNLOCK(hcryp);
 
 4458     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 4461     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_ENCRYPT);
 
 4473     __HAL_CRYP_ENABLE(hcryp);
 
 4482     if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 4485       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4489       __HAL_UNLOCK(hcryp);
 
 4493     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4496     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 4506         for (loopcounter = 0U; (loopcounter < hcryp->
Init.
HeaderSize); loopcounter += 4U)
 
 4518           if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 4521             __HAL_CRYP_DISABLE(hcryp);
 
 4524             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4528             __HAL_UNLOCK(hcryp);
 
 4532           __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4550           if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 4553             __HAL_CRYP_DISABLE(hcryp);
 
 4556             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4560             __HAL_UNLOCK(hcryp);
 
 4564           __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4567         for (loopcounter = 0U; (loopcounter < (hcryp->
Init.
HeaderSize % 4U)); loopcounter++)
 
 4572         while (loopcounter < 4U)
 
 4579         if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 4582           __HAL_CRYP_DISABLE(hcryp);
 
 4585           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4589           __HAL_UNLOCK(hcryp);
 
 4593         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4599   if (hcryp->
Size != 0U)
 
 4601     if ((hcryp->
Size % 16U) != 0U)
 
 4604       wordsize = ((wordsize / 4U) * 4U) ;
 
 4612     while ((hcryp->
CrypInCount < wordsize) && (outcount < wordsize))
 
 4615       CRYP_AES_ProcessData(hcryp, Timeout);
 
 4621       if (Timeout != HAL_MAX_DELAY)
 
 4623         if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 4626           __HAL_CRYP_DISABLE(hcryp);
 
 4629           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4633           __HAL_UNLOCK(hcryp);
 
 4639     if ((hcryp->
Size % 16U) != 0U)
 
 4642       npblb = ((((uint32_t)(hcryp->
Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->
Size);
 
 4645       if ((npblb % 4U) == 0U)
 
 4647         lastwordsize = (16U - npblb) / 4U;
 
 4651         lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 4654       for (loopcounter = 0U; loopcounter < lastwordsize; loopcounter ++)
 
 4660       while (loopcounter < 4U)
 
 4667       if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 4670         __HAL_CRYP_DISABLE(hcryp);
 
 4673         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4677         __HAL_UNLOCK(hcryp);
 
 4681       __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 4693     if (CRYP_GCMCCM_SetHeaderPhase(hcryp, Timeout) != HAL_OK)
 
 4701     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 4704     __HAL_CRYP_DISABLE(hcryp);
 
 4707     CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 4710     __HAL_CRYP_ENABLE(hcryp);
 
 4714   if ((hcryp->
Size % 16U) != 0U)
 
 4717     wordsize = ((wordsize / 4U) * 4U) ;
 
 4725   while ((hcryp->
CrypInCount < wordsize) && (outcount < wordsize))
 
 4728     CRYP_AES_ProcessData(hcryp, Timeout);
 
 4731     if (Timeout != HAL_MAX_DELAY)
 
 4733       if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 4736         __HAL_CRYP_DISABLE(hcryp);
 
 4739         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4743         __HAL_UNLOCK(hcryp);
 
 4749   if ((hcryp->
Size % 16U) != 0U)
 
 4754     CRYP_Workaround(hcryp, Timeout);
 
 4771   uint32_t DoKeyIVConfig = 1U; 
 
 4773   __IO uint32_t count = 0U;
 
 4800   if (DoKeyIVConfig == 1U)
 
 4809     CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT);
 
 4818     hcryp->
Instance->IV1RR = (hcryp->
Init.
B0[3] & CRYP_CCM_CTR1_1) |  CRYP_CCM_CTR1_2;
 
 4821     __HAL_CRYP_ENABLE(hcryp);
 
 4834       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 1), 16);
 
 4835       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 2), 16);
 
 4836       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 3), 16);
 
 4841       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 1));
 
 4842       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 2));
 
 4843       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 3));
 
 4853     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 4860         __HAL_CRYP_DISABLE(hcryp);
 
 4863         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 4867         __HAL_UNLOCK(hcryp);
 
 4871     while ((hcryp->
Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN);
 
 4874     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 4879   __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI);
 
 4882   __HAL_CRYP_ENABLE(hcryp);
 
 4888     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 4891     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_ENCRYPT);
 
 4903     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 4905     __HAL_CRYP_ENABLE(hcryp);
 
 4929   __IO uint32_t count = 0U;
 
 4930   uint32_t DoKeyIVConfig = 1U; 
 
 4932   uint32_t loopcounter;
 
 4934   uint32_t lastwordsize;
 
 4960   if (DoKeyIVConfig == 1U)
 
 4970     CRYP_SET_PHASE(hcryp, CRYP_PHASE_INIT);
 
 4979     hcryp->
Instance->IV1RR = (hcryp->
Init.
B0[3] & CRYP_CCM_CTR1_1) |  CRYP_CCM_CTR1_2;
 
 4982     __HAL_CRYP_ENABLE(hcryp);
 
 4995       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 1), 16);
 
 4996       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 2), 16);
 
 4997       hcryp->
Instance->DIN = __ROR(*(uint32_t *)(hcryp->
Init.
B0 + 3), 16);
 
 5002       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 1));
 
 5003       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 2));
 
 5004       hcryp->
Instance->DIN = __RBIT(*(uint32_t *)(hcryp->
Init.
B0 + 3));
 
 5015     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 5022         __HAL_CRYP_DISABLE(hcryp);
 
 5025         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5029         __HAL_UNLOCK(hcryp);
 
 5033     while ((hcryp->
Instance->CR & CRYP_CR_CRYPEN) == CRYP_CR_CRYPEN);
 
 5039     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 5042     MODIFY_REG(hcryp->
Instance->CR, AES_CR_MODE, CRYP_OPERATINGMODE_ENCRYPT);
 
 5054     __HAL_CRYP_ENABLE(hcryp);
 
 5062     count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 5069         __HAL_CRYP_DISABLE(hcryp);
 
 5072         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5076         __HAL_UNLOCK(hcryp);
 
 5080     while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 5082     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5085     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 5095         for (loopcounter = 0U; (loopcounter < hcryp->
Init.
HeaderSize); loopcounter += 4U)
 
 5108           count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 5115               __HAL_CRYP_DISABLE(hcryp);
 
 5118               hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5122               __HAL_UNLOCK(hcryp);
 
 5126           while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 5128           __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5146           count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 5153               __HAL_CRYP_DISABLE(hcryp);
 
 5156               hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5160               __HAL_UNLOCK(hcryp);
 
 5164           while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 5166           __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5169         for (loopcounter = 0U; (loopcounter < (hcryp->
Init.
HeaderSize % 4U)); loopcounter++)
 
 5174         while (loopcounter < 4U)
 
 5181         count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 5188             __HAL_CRYP_DISABLE(hcryp);
 
 5191             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5195             __HAL_UNLOCK(hcryp);
 
 5199         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 5201         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5207   if (hcryp->
Size != 0U)
 
 5209     if (hcryp->
Size >= 16U)
 
 5211       if ((hcryp->
Size % 16U) == 0U)
 
 5217         wordsize = (uint32_t)(hcryp->
Size) + (16U - ((uint32_t)(hcryp->
Size) % 16U)) ;
 
 5220         CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->
pCrypInBuffPtr), ((uint16_t)wordsize / 4U),
 
 5224     if ((hcryp->
Size < 16U) != 0U)
 
 5227       npblb = ((((uint32_t)(hcryp->
Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->
Size);
 
 5230       if ((npblb % 4U) == 0U)
 
 5232         lastwordsize = (16U - npblb) / 4U;
 
 5236         lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 5239       for (loopcounter = 0U; loopcounter < lastwordsize; loopcounter ++)
 
 5245       while (loopcounter < 4U)
 
 5251       count = CRYP_TIMEOUT_GCMCCMINITPHASE;
 
 5258           __HAL_CRYP_DISABLE(hcryp);
 
 5261           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5265           __HAL_UNLOCK(hcryp);
 
 5269       while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 5271       __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5274       __HAL_UNLOCK(hcryp);
 
 5283     __HAL_UNLOCK(hcryp);
 
 5292     if (CRYP_GCMCCM_SetHeaderPhase_DMA(hcryp) != HAL_OK)
 
 5300     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 5303     __HAL_CRYP_DISABLE(hcryp);
 
 5306     CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 5309   if (hcryp->
Size != 0U)
 
 5315     if ((hcryp->
Size % 16U) == 0U)
 
 5321       wordsize = (uint32_t)(hcryp->
Size) + 16U - ((uint32_t)(hcryp->
Size) % 16U) ;
 
 5324       CRYP_SetDMAConfig(hcryp, (uint32_t)(hcryp->
pCrypInBuffPtr), (uint16_t)wordsize / 4U,
 
 5331     __HAL_UNLOCK(hcryp);
 
 5349   uint32_t loopcounter;
 
 5351   uint32_t lastwordsize;
 
 5361   if (hcryp->
Size == 0U)
 
 5364     __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
 
 5367     __HAL_UNLOCK(hcryp);
 
 5387       __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
 
 5390 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 5401       for (i = 0U; i < 4U; i++)
 
 5415         __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
 
 5421         __HAL_CRYP_DISABLE(hcryp);
 
 5424         __HAL_UNLOCK(hcryp);
 
 5427 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 5437   else if ((hcryp->
Size % 16U) != 0U)
 
 5444     npblb = ((((uint32_t)(hcryp->
Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->
Size);
 
 5447     if ((npblb % 4U) == 0U)
 
 5449       lastwordsize = (16U - npblb) / 4U;
 
 5453       lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 5457     for (loopcounter = 0U; loopcounter < lastwordsize; loopcounter++)
 
 5462     while (loopcounter < 4U)
 
 5468     __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
 
 5470     if ((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U)
 
 5472       for (i = 0U; i < 4U; i++)
 
 5476       if (((hcryp->
Size) / 4U) == 0U)
 
 5478         for (i = 0U; i < ((uint32_t)(hcryp->
Size) % 4U); i++)
 
 5495       __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI | CRYP_IT_INI);
 
 5501       __HAL_UNLOCK(hcryp);
 
 5504 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 5520   for (i = 0U; i < 4U; i++)
 
 5537     __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 5543     __HAL_UNLOCK(hcryp);
 
 5546 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 5569 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 5585     npblb = ((((uint32_t)(hcryp->
Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->
Size);
 
 5588     if ((npblb % 4U) == 0U)
 
 5590       lastwordsize = (16U - npblb) / 4U;
 
 5594       lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 5598     for (loopcounter = 0U; loopcounter < lastwordsize; loopcounter++)
 
 5603     while (loopcounter < 4U)
 
 5622 static HAL_StatusTypeDef CRYP_GCMCCM_SetHeaderPhase(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 5624   uint32_t loopcounter;
 
 5625   uint32_t size_in_bytes;
 
 5627   uint32_t mask[12] = {0x0U, 0xFF000000U, 0xFFFF0000U, 0xFFFFFF00U,  
 
 5628                        0x0U, 0x0000FF00U, 0x0000FFFFU, 0xFF00FFFFU,  
 
 5629                        0x0U, 0x000000FFU, 0x0000FFFFU, 0x00FFFFFFU}; 
 
 5642   if (size_in_bytes != 0U)
 
 5648     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 5651     __HAL_CRYP_ENABLE(hcryp);
 
 5653     if ((size_in_bytes % 16U) == 0U)
 
 5656       for (loopcounter = 0U; (loopcounter < (size_in_bytes / 4U)); loopcounter += 4U)
 
 5668         if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK)
 
 5671           __HAL_CRYP_DISABLE(hcryp);
 
 5674           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5678           __HAL_UNLOCK(hcryp);
 
 5686       for (loopcounter = 0U; (loopcounter < ((size_in_bytes / 16U) * 4U)); loopcounter += 4U)
 
 5698         if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK)
 
 5701           __HAL_CRYP_DISABLE(hcryp);
 
 5704           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5708           __HAL_UNLOCK(hcryp);
 
 5713       for (loopcounter = 0U; (loopcounter < ((size_in_bytes / 4U) % 4U)); loopcounter++)
 
 5719       if ((size_in_bytes % 4U) == 0U)
 
 5722         while (loopcounter < 4U)
 
 5732         tmp &= mask[(hcryp->
Init.
DataType * 2U) + (size_in_bytes % 4U)];
 
 5736         while (loopcounter < 4U)
 
 5743       if (CRYP_WaitOnIFEMFlag(hcryp, Timeout) != HAL_OK)
 
 5746         __HAL_CRYP_DISABLE(hcryp);
 
 5749         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5753         __HAL_UNLOCK(hcryp);
 
 5758     if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK)
 
 5761       __HAL_CRYP_DISABLE(hcryp);
 
 5764       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5768       __HAL_UNLOCK(hcryp);
 
 5780       CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 5783       __HAL_CRYP_ENABLE(hcryp);
 
 5787     if ((size_in_bytes % 16U) == 0U)
 
 5790       for (loopcounter = 0U; (loopcounter < (size_in_bytes / 4U)); loopcounter += 4U)
 
 5802         if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 5805           __HAL_CRYP_DISABLE(hcryp);
 
 5808           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5812           __HAL_UNLOCK(hcryp);
 
 5816         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5822       for (loopcounter = 0U; (loopcounter < ((size_in_bytes / 16U) * 4U)); loopcounter += 4U)
 
 5834         if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 5837           __HAL_CRYP_DISABLE(hcryp);
 
 5840           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5844           __HAL_UNLOCK(hcryp);
 
 5848         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5851       for (loopcounter = 0U; (loopcounter < ((size_in_bytes / 4U) % 4U)); loopcounter++)
 
 5857       if ((size_in_bytes % 4U) == 0U)
 
 5860         while (loopcounter < 4U)
 
 5870         tmp &= mask[(hcryp->
Init.
DataType * 2U) + (size_in_bytes % 4U)];
 
 5874         while (loopcounter < 4U)
 
 5881       if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 5884         __HAL_CRYP_DISABLE(hcryp);
 
 5887         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5891         __HAL_UNLOCK(hcryp);
 
 5895       __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 5908       CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 5911       __HAL_CRYP_ENABLE(hcryp);
 
 5927   __IO uint32_t count  = 0U;
 
 5928   uint32_t loopcounter;
 
 5929   uint32_t headersize_in_bytes;
 
 5931   uint32_t mask[12] = {0x0U, 0xFF000000U, 0xFFFF0000U, 0xFFFFFF00U,  
 
 5932                        0x0U, 0x0000FF00U, 0x0000FFFFU, 0xFF00FFFFU,  
 
 5933                        0x0U, 0x000000FFU, 0x0000FFFFU, 0x00FFFFFFU}; 
 
 5945   if (headersize_in_bytes != 0U)
 
 5951     CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 5954     __HAL_CRYP_ENABLE(hcryp);
 
 5956     if ((headersize_in_bytes % 16U) == 0U)
 
 5959       for (loopcounter = 0U; (loopcounter < (headersize_in_bytes / 4U)); loopcounter += 4U)
 
 5971         count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 5978             __HAL_CRYP_DISABLE(hcryp);
 
 5981             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 5985             __HAL_UNLOCK(hcryp);
 
 5989         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, CRYP_FLAG_IFEM));
 
 5995       for (loopcounter = 0U; (loopcounter < ((headersize_in_bytes / 16U) * 4U)); loopcounter += 4U)
 
 6007         count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 6014             __HAL_CRYP_DISABLE(hcryp);
 
 6017             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6021             __HAL_UNLOCK(hcryp);
 
 6025         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, CRYP_FLAG_IFEM));
 
 6028       for (loopcounter = 0U; (loopcounter < ((headersize_in_bytes / 4U) % 4U)); loopcounter++)
 
 6034       if ((headersize_in_bytes % 4U) == 0U)
 
 6037         while (loopcounter < 4U)
 
 6047         tmp &= mask[(hcryp->
Init.
DataType * 2U) + (headersize_in_bytes % 4U)];
 
 6051         while (loopcounter < 4U)
 
 6058       count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 6065           __HAL_CRYP_DISABLE(hcryp);
 
 6068           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6072           __HAL_UNLOCK(hcryp);
 
 6076       while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, CRYP_FLAG_IFEM));
 
 6079     count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 6086         __HAL_CRYP_DISABLE(hcryp);
 
 6089         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6093         __HAL_UNLOCK(hcryp);
 
 6097     while (HAL_IS_BIT_SET(hcryp->
Instance->SR, CRYP_FLAG_BUSY));
 
 6107       CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 6110       __HAL_CRYP_ENABLE(hcryp);
 
 6112     if ((headersize_in_bytes % 16U) == 0U)
 
 6115       for (loopcounter = 0U; (loopcounter < (headersize_in_bytes / 4U)); loopcounter += 4U)
 
 6128         count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 6135             __HAL_CRYP_DISABLE(hcryp);
 
 6138             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6142             __HAL_UNLOCK(hcryp);
 
 6146         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 6149         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 6155       for (loopcounter = 0U; (loopcounter < ((headersize_in_bytes / 16U) * 4U)); loopcounter += 4U)
 
 6168         count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 6175             __HAL_CRYP_DISABLE(hcryp);
 
 6178             hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6182             __HAL_UNLOCK(hcryp);
 
 6186         while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 6189         __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 6192       for (loopcounter = 0U; (loopcounter < ((headersize_in_bytes / 4U) % 4U)); loopcounter++)
 
 6198       if ((headersize_in_bytes % 4U) == 0U)
 
 6201         while (loopcounter < 4U)
 
 6211         tmp &= mask[(hcryp->
Init.
DataType * 2U) + (headersize_in_bytes % 4U)];
 
 6215         while (loopcounter < 4U)
 
 6222       count = CRYP_TIMEOUT_GCMCCMHEADERPHASE;
 
 6229           __HAL_CRYP_DISABLE(hcryp);
 
 6232           hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6236           __HAL_UNLOCK(hcryp);
 
 6240       while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF));
 
 6243       __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 6256       CRYP_SET_PHASE(hcryp, CRYP_PHASE_HEADER);
 
 6259       __HAL_CRYP_ENABLE(hcryp);
 
 6275   uint32_t loopcounter;
 
 6277   uint32_t lastwordsize;
 
 6280   uint32_t headersize_in_bytes;
 
 6282   uint32_t mask[12] = {0x0U, 0xFF000000U, 0xFFFF0000U, 0xFFFFFF00U,  
 
 6283                        0x0U, 0x0000FF00U, 0x0000FFFFU, 0xFF00FFFFU,  
 
 6284                        0x0U, 0x000000FFU, 0x0000FFFFU, 0x00FFFFFFU}; 
 
 6301     __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
 
 6304     __HAL_CRYP_DISABLE(hcryp);
 
 6307     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 6310     CRYP_SET_PHASE(hcryp, CRYP_PHASE_PAYLOAD);
 
 6313     __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
 
 6316     __HAL_CRYP_ENABLE(hcryp);
 
 6318   else if (((headersize_in_bytes / 4U) - (hcryp->
CrypHeaderCount)) >= 4U)
 
 6334     for (loopcounter = 0U; loopcounter < ((headersize_in_bytes / 4U) % 4U); loopcounter++)
 
 6339     if ((headersize_in_bytes % 4U) == 0U)
 
 6342       while (loopcounter < 4U)
 
 6353       tmp &= mask[(hcryp->
Init.
DataType * 2U) + (headersize_in_bytes % 4U)];
 
 6358       while (loopcounter < 4U)
 
 6371     hcryp->
Phase = CRYP_PHASE_PROCESS;
 
 6377       MODIFY_REG(hcryp->
Instance->CR, AES_CR_GCMPH, CRYP_PHASE_PAYLOAD);
 
 6385     if (hcryp->
Size == 0U)
 
 6388       __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_CCFIE | CRYP_IT_ERRIE);
 
 6394       __HAL_UNLOCK(hcryp);
 
 6396     else if (hcryp->
Size >= 16U)
 
 6410 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 6426       npblb = ((((uint32_t)(hcryp->
Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->
Size);
 
 6429       if ((npblb % 4U) == 0U)
 
 6431         lastwordsize = (16U - npblb) / 4U;
 
 6435         lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 6439       for (loopcounter = 0U; loopcounter < lastwordsize; loopcounter++)
 
 6444       while (loopcounter < 4U)
 
 6452   else if (((headersize_in_bytes / 4U) - (hcryp->
CrypHeaderCount)) >= 4U)
 
 6467     for (loopcounter = 0U; loopcounter < ((headersize_in_bytes / 4U) % 4U); loopcounter++)
 
 6473     if ((headersize_in_bytes % 4U) == 0U)
 
 6476       while (loopcounter < 4U)
 
 6487       tmp &= mask[(hcryp->
Init.
DataType * 2U) + (headersize_in_bytes % 4U)];
 
 6492       while (loopcounter < 4U)
 
 6513   uint32_t lastwordsize;
 
 6517   uint32_t  temp[4] = {0};
 
 6518   uint32_t  temp2[4] = {0};
 
 6520   uint32_t intermediate_data[4] = {0};
 
 6524   npblb = ((((uint32_t)(hcryp->
Size) / 16U) + 1U) * 16U) - (uint32_t)(hcryp->
Size);
 
 6527   if ((npblb % 4U) == 0U)
 
 6529     lastwordsize = (16U - npblb) / 4U;
 
 6533     lastwordsize = ((16U - npblb) / 4U) + 1U;
 
 6541     if ((hcryp->
Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT)
 
 6546       __HAL_CRYP_DISABLE(hcryp);
 
 6550       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_AES_CTR);
 
 6553       __HAL_CRYP_ENABLE(hcryp);
 
 6556     for (index = 0; index < lastwordsize; index ++)
 
 6569     if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK)
 
 6572       __HAL_CRYP_DISABLE(hcryp);
 
 6575       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6579       __HAL_UNLOCK(hcryp);
 
 6580 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 6588     if ((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U)
 
 6590       for (index = 0U; index < 4U; index++)
 
 6593         intermediate_data[index] = hcryp->
Instance->DOUT;
 
 6601     if ((hcryp->
Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_ENCRYPT)
 
 6607       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_AES_GCM);
 
 6610       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_GCM_CCMPH, CRYP_PHASE_FINAL);
 
 6612       if ((hcryp->
Instance->CR & CRYP_CR_DATATYPE) == CRYP_DATATYPE_32B)
 
 6614         if ((npblb % 4U) == 1U)
 
 6616           intermediate_data[lastwordsize - 1U] &= 0xFFFFFF00U;
 
 6618         if ((npblb % 4U) == 2U)
 
 6620           intermediate_data[lastwordsize - 1U] &= 0xFFFF0000U;
 
 6622         if ((npblb % 4U) == 3U)
 
 6624           intermediate_data[lastwordsize - 1U] &= 0xFF000000U;
 
 6627       else if ((hcryp->
Instance->CR & CRYP_CR_DATATYPE) == CRYP_DATATYPE_8B)
 
 6629         if ((npblb % 4U) == 1U)
 
 6631           intermediate_data[lastwordsize - 1U] &= __REV(0xFFFFFF00U);
 
 6633         if ((npblb % 4U) == 2U)
 
 6635           intermediate_data[lastwordsize - 1U] &= __REV(0xFFFF0000U);
 
 6637         if ((npblb % 4U) == 3U)
 
 6639           intermediate_data[lastwordsize - 1U] &= __REV(0xFF000000U);
 
 6642       else if ((hcryp->
Instance->CR & CRYP_CR_DATATYPE) == CRYP_DATATYPE_16B)
 
 6644         if ((npblb % 4U) == 1U)
 
 6646           intermediate_data[lastwordsize - 1U] &= __ROR((0xFFFFFF00U), 16);
 
 6648         if ((npblb % 4U) == 2U)
 
 6650           intermediate_data[lastwordsize - 1U] &= __ROR((0xFFFF0000U), 16);
 
 6652         if ((npblb % 4U) == 3U)
 
 6654           intermediate_data[lastwordsize - 1U] &= __ROR((0xFF000000U), 16);
 
 6659         if ((npblb % 4U) == 1U)
 
 6661           intermediate_data[lastwordsize - 1U] &= __RBIT(0xFFFFFF00U);
 
 6663         if ((npblb % 4U) == 2U)
 
 6665           intermediate_data[lastwordsize - 1U] &= __RBIT(0xFFFF0000U);
 
 6667         if ((npblb % 4U) == 3U)
 
 6669           intermediate_data[lastwordsize - 1U] &= __RBIT(0xFF000000U);
 
 6672       for (index = 0U; index < lastwordsize; index ++)
 
 6675         hcryp->
Instance->DIN = intermediate_data[index];
 
 6684       if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK)
 
 6687         __HAL_CRYP_DISABLE(hcryp);
 
 6690         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6694         __HAL_UNLOCK(hcryp);
 
 6695 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 
 6704       if ((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U)
 
 6706         for (index = 0U; index < 4U; index++)
 
 6708           intermediate_data[index] = hcryp->
Instance->DOUT;
 
 6719     if ((hcryp->
Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_DECRYPT)
 
 6721       iv1temp = hcryp->
Instance->CSGCMCCM7R;
 
 6724       __HAL_CRYP_DISABLE(hcryp);
 
 6726       temp[0] =  hcryp->
Instance->CSGCMCCM0R;
 
 6727       temp[1] =  hcryp->
Instance->CSGCMCCM1R;
 
 6728       temp[2] =  hcryp->
Instance->CSGCMCCM2R;
 
 6729       temp[3] =  hcryp->
Instance->CSGCMCCM3R;
 
 6734       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_AES_CTR);
 
 6737       __HAL_CRYP_ENABLE(hcryp);
 
 6740     for (index = 0; index < lastwordsize; index ++)
 
 6753     if (CRYP_WaitOnOFNEFlag(hcryp, Timeout) != HAL_OK)
 
 6756       __HAL_CRYP_DISABLE(hcryp);
 
 6759       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6763       __HAL_UNLOCK(hcryp);
 
 6764 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 6773     if ((hcryp->
Instance->SR & CRYP_FLAG_OFNE) != 0x0U)
 
 6775       for (index = 0U; index < 4U; index++)
 
 6778         intermediate_data[index] = hcryp->
Instance->DOUT;
 
 6786     if ((hcryp->
Instance->CR & CRYP_CR_ALGODIR) == CRYP_OPERATINGMODE_DECRYPT)
 
 6788       temp2[0] =  hcryp->
Instance->CSGCMCCM0R;
 
 6789       temp2[1] =  hcryp->
Instance->CSGCMCCM1R;
 
 6790       temp2[2] =  hcryp->
Instance->CSGCMCCM2R;
 
 6791       temp2[3] =  hcryp->
Instance->CSGCMCCM3R;
 
 6794       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_ALGOMODE, CRYP_AES_CCM);
 
 6797       MODIFY_REG(hcryp->
Instance->CR, CRYP_CR_GCM_CCMPH, CRYP_PHASE_HEADER);
 
 6800       for (index = lastwordsize; index < 4U; index ++)
 
 6802         intermediate_data[index] = 0U;
 
 6804       if ((npblb % 4U) == 1U)
 
 6806         intermediate_data[lastwordsize - 1U] &= 0xFFFFFF00U;
 
 6808       if ((npblb % 4U) == 2U)
 
 6810         intermediate_data[lastwordsize - 1U] &= 0xFFFF0000U;
 
 6812       if ((npblb % 4U) == 3U)
 
 6814         intermediate_data[lastwordsize - 1U] &= 0xFF000000U;
 
 6816       for (index = 0U; index < 4U ; index ++)
 
 6818         intermediate_data[index] ^=  temp[index];
 
 6819         intermediate_data[index] ^=  temp2[index];
 
 6821       for (index = 0U; index < 4U; index ++)
 
 6824         hcryp->
Instance->DIN  = intermediate_data[index] ;
 
 6828       if (CRYP_WaitOnBUSYFlag(hcryp, Timeout) != HAL_OK)
 
 6831         __HAL_CRYP_DISABLE(hcryp);
 
 6834         hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6838         __HAL_UNLOCK(hcryp);
 
 6839 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 6851   __HAL_UNLOCK(hcryp);
 
 6858   if ((hcryp->
Instance->CR & AES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT)
 
 6861     MODIFY_REG(hcryp->
Instance->CR, AES_CR_CHMOD, CRYP_AES_CTR);
 
 6864   for (index = 0U; index < lastwordsize; index ++)
 
 6877   if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 6880     __HAL_UNLOCK(hcryp);
 
 6881 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 6891   __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 6893   for (index = 0U; index < 4U; index++)
 
 6896     intermediate_data[index] = hcryp->
Instance->DOUTR;
 
 6903   if ((hcryp->
Instance->CR & AES_CR_MODE) == CRYP_OPERATINGMODE_ENCRYPT)
 
 6906     MODIFY_REG(hcryp->
Instance->CR, AES_CR_CHMOD, CRYP_AES_GCM_GMAC);
 
 6909     MODIFY_REG(hcryp->
Instance->CR, AES_CR_GCMPH, CRYP_PHASE_FINAL);
 
 6911     if ((hcryp->
Instance->CR & AES_CR_DATATYPE) == CRYP_DATATYPE_32B)
 
 6913       if ((npblb % 4U) == 1U)
 
 6915         intermediate_data[lastwordsize - 1U] &= 0xFFFFFF00U;
 
 6917       if ((npblb % 4U) == 2U)
 
 6919         intermediate_data[lastwordsize - 1U] &= 0xFFFF0000U;
 
 6921       if ((npblb % 4U) == 3U)
 
 6923         intermediate_data[lastwordsize - 1U] &= 0xFF000000U;
 
 6926     else if ((hcryp->
Instance->CR & AES_CR_DATATYPE) == CRYP_DATATYPE_8B)
 
 6928       if ((npblb % 4U) == 1U)
 
 6930         intermediate_data[lastwordsize - 1U] &= __REV(0xFFFFFF00U);
 
 6932       if ((npblb % 4U) == 2U)
 
 6934         intermediate_data[lastwordsize - 1U] &= __REV(0xFFFF0000U);
 
 6936       if ((npblb % 4U) == 3U)
 
 6938         intermediate_data[lastwordsize - 1U] &= __REV(0xFF000000U);
 
 6941     else if ((hcryp->
Instance->CR & AES_CR_DATATYPE) == CRYP_DATATYPE_16B)
 
 6943       if ((npblb % 4U) == 1U)
 
 6945         intermediate_data[lastwordsize - 1U] &= __ROR((0xFFFFFF00U), 16);
 
 6947       if ((npblb % 4U) == 2U)
 
 6949         intermediate_data[lastwordsize - 1U] &= __ROR((0xFFFF0000U), 16);
 
 6951       if ((npblb % 4U) == 3U)
 
 6953         intermediate_data[lastwordsize - 1U] &= __ROR((0xFF000000U), 16);
 
 6958       if ((npblb % 4U) == 1U)
 
 6960         intermediate_data[lastwordsize - 1U] &= __RBIT(0xFFFFFF00U);
 
 6962       if ((npblb % 4U) == 2U)
 
 6964         intermediate_data[lastwordsize - 1U] &= __RBIT(0xFFFF0000U);
 
 6966       if ((npblb % 4U) == 3U)
 
 6968         intermediate_data[lastwordsize - 1U] &= __RBIT(0xFF000000U);
 
 6973     for (index = 0U; index < lastwordsize; index ++)
 
 6975       hcryp->
Instance->DINR  = intermediate_data[index];
 
 6984     if (CRYP_WaitOnCCFlag(hcryp, Timeout) != HAL_OK)
 
 6987       __HAL_CRYP_DISABLE(hcryp);
 
 6990       hcryp->
ErrorCode |= HAL_CRYP_ERROR_TIMEOUT;
 
 6994       __HAL_UNLOCK(hcryp);
 
 6995 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1U) 
 7004     __HAL_CRYP_CLEAR_FLAG(hcryp, CRYP_CCF_CLEAR);
 
 7006     for (index = 0U; index < 4U; index++)
 
 7008       intermediate_data[index] = hcryp->
Instance->DOUTR;
 
 7015 #if defined (CRYP_CR_ALGOMODE_AES_GCM) 
 7023 static HAL_StatusTypeDef CRYP_WaitOnIFEMFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 7030   while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, CRYP_FLAG_IFEM))
 
 7033     if (Timeout != HAL_MAX_DELAY)
 
 7035       if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 7051 static HAL_StatusTypeDef CRYP_WaitOnBUSYFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 7058   while (HAL_IS_BIT_SET(hcryp->
Instance->SR, CRYP_FLAG_BUSY))
 
 7061     if (Timeout != HAL_MAX_DELAY)
 
 7063       if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 7080 static HAL_StatusTypeDef CRYP_WaitOnOFNEFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 7087   while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, CRYP_FLAG_OFNE))
 
 7090     if (Timeout != HAL_MAX_DELAY)
 
 7092       if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 7110 static HAL_StatusTypeDef CRYP_WaitOnCCFlag(
CRYP_HandleTypeDef *hcryp, uint32_t Timeout)
 
 7117   while (HAL_IS_BIT_CLR(hcryp->
Instance->SR, AES_SR_CCF))
 
 7120     if (Timeout != HAL_MAX_DELAY)
 
 7122       if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp)
DeInitializes CRYP MSP.
void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp)
Initializes the CRYP MSP.
HAL_StatusTypeDef HAL_CRYP_GetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf)
Get CRYP Configuration parameters in associated handle.
HAL_StatusTypeDef HAL_CRYP_RegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef CallbackID, pCRYP_CallbackTypeDef pCallback)
Register a User CRYP Callback To be used instead of the weak predefined callback.
HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp)
De-Initializes the CRYP peripheral.
HAL_StatusTypeDef HAL_CRYP_SetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf)
Configure the CRYP according to the specified parameters in the CRYP_ConfigTypeDef.
HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp)
Initializes the CRYP according to the specified parameters in the CRYP_ConfigTypeDef and creates the ...
HAL_StatusTypeDef HAL_CRYP_UnRegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef CallbackID)
Unregister an CRYP Callback CRYP callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_CRYP_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output)
Encryption in interrupt mode.
HAL_StatusTypeDef HAL_CRYP_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output)
Decryption in itnterrupt mode.
HAL_StatusTypeDef HAL_CRYP_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output)
Decryption in DMA mode.
HAL_StatusTypeDef HAL_CRYP_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output, uint32_t Timeout)
Encryption mode.
HAL_StatusTypeDef HAL_CRYP_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output, uint32_t Timeout)
Decryption mode.
HAL_StatusTypeDef HAL_CRYP_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output)
Encryption in DMA mode.
uint32_t HAL_CRYP_GetError(CRYP_HandleTypeDef *hcryp)
Return the CRYP error code.
void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp)
Input FIFO transfer completed callback.
void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp)
This function handles cryptographic interrupt request.
void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp)
CRYP error callback.
HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp)
Returns the CRYP state.
void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp)
Output FIFO transfer completed callback.
__IO HAL_CRYP_STATETypeDef State
void(* ErrorCallback)(struct __CRYP_HandleTypeDef *hcryp)
void(* InCpltCallback)(struct __CRYP_HandleTypeDef *hcryp)
void(* OutCpltCallback)(struct __CRYP_HandleTypeDef *hcryp)
FunctionalState AutoKeyDerivation
__IO uint16_t CrypHeaderCount
DMA_HandleTypeDef * hdmaout
uint32_t * pCrypOutBuffPtr
__IO uint16_t CrypOutCount
uint32_t * pCrypInBuffPtr
void(* MspInitCallback)(struct __CRYP_HandleTypeDef *hcryp)
__IO uint16_t CrypInCount
DMA_HandleTypeDef * hdmain
void(* MspDeInitCallback)(struct __CRYP_HandleTypeDef *hcryp)
HAL_CRYP_STATETypeDef
CRYP State Structure definition.
CRYP Init Structure definition.
CRYP handle Structure definition.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
HAL_CRYP_CallbackIDTypeDef
@ HAL_CRYP_MSPDEINIT_CB_ID
@ HAL_CRYP_INPUT_COMPLETE_CB_ID
@ HAL_CRYP_OUTPUT_COMPLETE_CB_ID
void(* pCRYP_CallbackTypeDef)(CRYP_HandleTypeDef *hcryp)
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
This file contains all the functions prototypes for the HAL module driver.
DMA handle Structure definition.
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)