106 #if defined (STM32F756xx) || defined (STM32F777xx) || defined (STM32F779xx) 113 #ifdef HAL_CRYP_MODULE_ENABLED 120 #define CRYP_TIMEOUT_VALUE 1 131 static void CRYP_SetInitVector(CRYP_HandleTypeDef *hcryp, uint8_t *InitVector, uint32_t IVSize);
132 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint8_t *Key, uint32_t KeySize);
133 static HAL_StatusTypeDef CRYP_ProcessData(CRYP_HandleTypeDef *hcryp, uint8_t* Input, uint16_t Ilength, uint8_t* Output, uint32_t Timeout);
134 static HAL_StatusTypeDef CRYP_ProcessData2Words(CRYP_HandleTypeDef *hcryp, uint8_t* Input, uint16_t Ilength, uint8_t* Output, uint32_t Timeout);
138 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_t outputaddr);
139 static void CRYP_SetTDESECBMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction);
140 static void CRYP_SetTDESCBCMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction);
141 static void CRYP_SetDESECBMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction);
142 static void CRYP_SetDESCBCMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction);
159 CRYP_HandleTypeDef* hcryp = (CRYP_HandleTypeDef*)((
DMA_HandleTypeDef*)hdma)->Parent;
166 HAL_CRYP_InCpltCallback(hcryp);
176 CRYP_HandleTypeDef* hcryp = (CRYP_HandleTypeDef*)((
DMA_HandleTypeDef*)hdma)->Parent;
183 __HAL_CRYP_DISABLE(hcryp);
186 hcryp->State = HAL_CRYP_STATE_READY;
189 HAL_CRYP_OutCpltCallback(hcryp);
199 CRYP_HandleTypeDef* hcryp = (CRYP_HandleTypeDef*)((
DMA_HandleTypeDef*)hdma)->Parent;
200 hcryp->State= HAL_CRYP_STATE_READY;
201 HAL_CRYP_ErrorCallback(hcryp);
212 static void CRYP_SetKey(CRYP_HandleTypeDef *hcryp, uint8_t *Key, uint32_t KeySize)
214 uint32_t keyaddr = (uint32_t)Key;
218 case CRYP_KEYSIZE_256B:
220 hcryp->Instance->K0LR =
__REV(*(uint32_t*)(keyaddr));
222 hcryp->Instance->K0RR =
__REV(*(uint32_t*)(keyaddr));
224 hcryp->Instance->K1LR =
__REV(*(uint32_t*)(keyaddr));
226 hcryp->Instance->K1RR =
__REV(*(uint32_t*)(keyaddr));
228 hcryp->Instance->K2LR =
__REV(*(uint32_t*)(keyaddr));
230 hcryp->Instance->K2RR =
__REV(*(uint32_t*)(keyaddr));
232 hcryp->Instance->K3LR =
__REV(*(uint32_t*)(keyaddr));
234 hcryp->Instance->K3RR =
__REV(*(uint32_t*)(keyaddr));
236 case CRYP_KEYSIZE_192B:
237 hcryp->Instance->K1LR =
__REV(*(uint32_t*)(keyaddr));
239 hcryp->Instance->K1RR =
__REV(*(uint32_t*)(keyaddr));
241 hcryp->Instance->K2LR =
__REV(*(uint32_t*)(keyaddr));
243 hcryp->Instance->K2RR =
__REV(*(uint32_t*)(keyaddr));
245 hcryp->Instance->K3LR =
__REV(*(uint32_t*)(keyaddr));
247 hcryp->Instance->K3RR =
__REV(*(uint32_t*)(keyaddr));
249 case CRYP_KEYSIZE_128B:
250 hcryp->Instance->K2LR =
__REV(*(uint32_t*)(keyaddr));
252 hcryp->Instance->K2RR =
__REV(*(uint32_t*)(keyaddr));
254 hcryp->Instance->K3LR =
__REV(*(uint32_t*)(keyaddr));
256 hcryp->Instance->K3RR =
__REV(*(uint32_t*)(keyaddr));
271 static void CRYP_SetInitVector(CRYP_HandleTypeDef *hcryp, uint8_t *InitVector, uint32_t IVSize)
273 uint32_t ivaddr = (uint32_t)InitVector;
277 case CRYP_KEYSIZE_128B:
278 hcryp->Instance->IV0LR =
__REV(*(uint32_t*)(ivaddr));
280 hcryp->Instance->IV0RR =
__REV(*(uint32_t*)(ivaddr));
282 hcryp->Instance->IV1LR =
__REV(*(uint32_t*)(ivaddr));
284 hcryp->Instance->IV1RR =
__REV(*(uint32_t*)(ivaddr));
287 case CRYP_KEYSIZE_192B:
288 hcryp->Instance->IV0LR =
__REV(*(uint32_t*)(ivaddr));
290 hcryp->Instance->IV0RR =
__REV(*(uint32_t*)(ivaddr));
292 case CRYP_KEYSIZE_256B:
293 hcryp->Instance->IV0LR =
__REV(*(uint32_t*)(ivaddr));
295 hcryp->Instance->IV0RR =
__REV(*(uint32_t*)(ivaddr));
312 static HAL_StatusTypeDef CRYP_ProcessData(CRYP_HandleTypeDef *hcryp, uint8_t* Input, uint16_t Ilength, uint8_t* Output, uint32_t Timeout)
314 uint32_t tickstart = 0;
317 uint32_t inputaddr = (uint32_t)Input;
318 uint32_t outputaddr = (uint32_t)Output;
320 for(i=0; (i < Ilength); i+=16)
323 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
325 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
327 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
329 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
340 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
343 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
353 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
355 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
357 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
359 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
376 static HAL_StatusTypeDef CRYP_ProcessData2Words(CRYP_HandleTypeDef *hcryp, uint8_t* Input, uint16_t Ilength, uint8_t* Output, uint32_t Timeout)
378 uint32_t tickstart = 0;
381 uint32_t inputaddr = (uint32_t)Input;
382 uint32_t outputaddr = (uint32_t)Output;
384 for(i=0; (i < Ilength); i+=8)
387 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
389 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
400 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
403 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
413 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
415 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
431 static void CRYP_SetDMAConfig(CRYP_HandleTypeDef *hcryp, uint32_t inputaddr, uint16_t Size, uint32_t outputaddr)
434 hcryp->hdmain->XferCpltCallback = CRYP_DMAInCplt;
436 hcryp->hdmain->XferErrorCallback = CRYP_DMAError;
439 hcryp->hdmaout->XferCpltCallback = CRYP_DMAOutCplt;
441 hcryp->hdmaout->XferErrorCallback = CRYP_DMAError;
444 __HAL_CRYP_ENABLE(hcryp);
447 HAL_DMA_Start_IT(hcryp->hdmain, inputaddr, (uint32_t)&hcryp->Instance->DR, Size/4);
453 HAL_DMA_Start_IT(hcryp->hdmaout, (uint32_t)&hcryp->Instance->DOUT, outputaddr, Size/4);
467 static void CRYP_SetDESECBMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction)
470 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
476 hcryp->Instance->K1LR =
__REV(*(uint32_t*)(hcryp->Init.pKey));
477 hcryp->Instance->K1RR =
__REV(*(uint32_t*)(hcryp->Init.pKey+4));
480 __HAL_CRYP_FIFO_FLUSH(hcryp);
483 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
494 static void CRYP_SetDESCBCMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction)
497 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
503 hcryp->Instance->K1LR =
__REV(*(uint32_t*)(hcryp->Init.pKey));
504 hcryp->Instance->K1RR =
__REV(*(uint32_t*)(hcryp->Init.pKey+4));
507 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_256B);
510 __HAL_CRYP_FIFO_FLUSH(hcryp);
513 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
524 static void CRYP_SetTDESECBMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction)
527 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
533 CRYP_SetKey(hcryp, hcryp->Init.pKey, CRYP_KEYSIZE_192B);
536 __HAL_CRYP_FIFO_FLUSH(hcryp);
539 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
550 static void CRYP_SetTDESCBCMode(CRYP_HandleTypeDef *hcryp, uint32_t Direction)
553 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
559 CRYP_SetKey(hcryp, hcryp->Init.pKey, CRYP_KEYSIZE_192B);
562 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_256B);
565 __HAL_CRYP_FIFO_FLUSH(hcryp);
568 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
618 if(hcryp->State == HAL_CRYP_STATE_RESET)
623 HAL_CRYP_MspInit(hcryp);
627 hcryp->State = HAL_CRYP_STATE_BUSY;
630 CRYP->CR = (uint32_t) (hcryp->Init.KeySize | hcryp->Init.DataType);
633 hcryp->CrypInCount = 0;
634 hcryp->CrypOutCount = 0;
637 hcryp->State = HAL_CRYP_STATE_READY;
640 hcryp->Phase = HAL_CRYP_PHASE_READY;
661 hcryp->State = HAL_CRYP_STATE_BUSY;
664 hcryp->Phase = HAL_CRYP_PHASE_READY;
667 hcryp->CrypInCount = 0;
668 hcryp->CrypOutCount = 0;
671 __HAL_CRYP_DISABLE(hcryp);
674 HAL_CRYP_MspDeInit(hcryp);
677 hcryp->State = HAL_CRYP_STATE_RESET;
692 __weak
void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp)
708 __weak
void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp)
752 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
758 hcryp->State = HAL_CRYP_STATE_BUSY;
761 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
764 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
770 __HAL_CRYP_FIFO_FLUSH(hcryp);
773 __HAL_CRYP_ENABLE(hcryp);
776 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
780 if(CRYP_ProcessData(hcryp, pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
786 hcryp->State = HAL_CRYP_STATE_READY;
806 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
812 hcryp->State = HAL_CRYP_STATE_BUSY;
815 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
818 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
824 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
827 __HAL_CRYP_FIFO_FLUSH(hcryp);
830 __HAL_CRYP_ENABLE(hcryp);
833 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
837 if(CRYP_ProcessData(hcryp,pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
843 hcryp->State = HAL_CRYP_STATE_READY;
863 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
869 hcryp->State = HAL_CRYP_STATE_BUSY;
872 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
875 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
881 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
884 __HAL_CRYP_FIFO_FLUSH(hcryp);
887 __HAL_CRYP_ENABLE(hcryp);
890 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
894 if(CRYP_ProcessData(hcryp, pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
900 hcryp->State = HAL_CRYP_STATE_READY;
922 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
924 uint32_t tickstart = 0;
930 hcryp->State = HAL_CRYP_STATE_BUSY;
933 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
936 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
942 __HAL_CRYP_ENABLE(hcryp);
952 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
955 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
966 __HAL_CRYP_DISABLE(hcryp);
974 __HAL_CRYP_FIFO_FLUSH(hcryp);
977 __HAL_CRYP_ENABLE(hcryp);
980 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
984 if(CRYP_ProcessData(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
990 hcryp->State = HAL_CRYP_STATE_READY;
1010 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
1012 uint32_t tickstart = 0;
1018 hcryp->State = HAL_CRYP_STATE_BUSY;
1021 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1024 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1030 __HAL_CRYP_ENABLE(hcryp);
1040 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
1043 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
1060 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1063 __HAL_CRYP_FIFO_FLUSH(hcryp);
1066 __HAL_CRYP_ENABLE(hcryp);
1069 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1073 if(CRYP_ProcessData(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
1079 hcryp->State = HAL_CRYP_STATE_READY;
1099 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
1105 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1108 hcryp->State = HAL_CRYP_STATE_BUSY;
1111 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1117 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1120 __HAL_CRYP_FIFO_FLUSH(hcryp);
1123 __HAL_CRYP_ENABLE(hcryp);
1126 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1130 if(CRYP_ProcessData(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
1136 hcryp->State = HAL_CRYP_STATE_READY;
1154 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
1157 uint32_t outputaddr;
1159 if(hcryp->State == HAL_CRYP_STATE_READY)
1164 hcryp->CrypInCount = Size;
1165 hcryp->pCrypInBuffPtr = pPlainData;
1166 hcryp->pCrypOutBuffPtr = pCypherData;
1167 hcryp->CrypOutCount = Size;
1170 hcryp->State = HAL_CRYP_STATE_BUSY;
1173 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1176 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1182 __HAL_CRYP_FIFO_FLUSH(hcryp);
1185 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1189 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
1192 __HAL_CRYP_ENABLE(hcryp);
1197 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
1199 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
1201 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1203 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1205 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1207 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1208 hcryp->pCrypInBuffPtr += 16;
1209 hcryp->CrypInCount -= 16;
1210 if(hcryp->CrypInCount == 0)
1212 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
1214 HAL_CRYP_InCpltCallback(hcryp);
1217 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
1219 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
1221 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1223 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1225 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1227 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1228 hcryp->pCrypOutBuffPtr += 16;
1229 hcryp->CrypOutCount -= 16;
1230 if(hcryp->CrypOutCount == 0)
1232 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
1236 hcryp->State = HAL_CRYP_STATE_READY;
1238 HAL_CRYP_OutCpltCallback(hcryp);
1255 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
1258 uint32_t outputaddr;
1260 if(hcryp->State == HAL_CRYP_STATE_READY)
1265 hcryp->CrypInCount = Size;
1266 hcryp->pCrypInBuffPtr = pPlainData;
1267 hcryp->pCrypOutBuffPtr = pCypherData;
1268 hcryp->CrypOutCount = Size;
1271 hcryp->State = HAL_CRYP_STATE_BUSY;
1274 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1277 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1283 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1286 __HAL_CRYP_FIFO_FLUSH(hcryp);
1289 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1292 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
1295 __HAL_CRYP_ENABLE(hcryp);
1300 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
1302 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
1304 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1306 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1308 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1310 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1311 hcryp->pCrypInBuffPtr += 16;
1312 hcryp->CrypInCount -= 16;
1313 if(hcryp->CrypInCount == 0)
1315 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
1317 HAL_CRYP_InCpltCallback(hcryp);
1320 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
1322 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
1324 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1326 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1328 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1330 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1331 hcryp->pCrypOutBuffPtr += 16;
1332 hcryp->CrypOutCount -= 16;
1333 if(hcryp->CrypOutCount == 0)
1335 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
1339 hcryp->State = HAL_CRYP_STATE_READY;
1341 HAL_CRYP_OutCpltCallback(hcryp);
1358 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
1361 uint32_t outputaddr;
1363 if(hcryp->State == HAL_CRYP_STATE_READY)
1368 hcryp->CrypInCount = Size;
1369 hcryp->pCrypInBuffPtr = pPlainData;
1370 hcryp->pCrypOutBuffPtr = pCypherData;
1371 hcryp->CrypOutCount = Size;
1374 hcryp->State = HAL_CRYP_STATE_BUSY;
1377 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1380 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1386 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1389 __HAL_CRYP_FIFO_FLUSH(hcryp);
1392 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1395 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
1398 __HAL_CRYP_ENABLE(hcryp);
1403 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
1405 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
1407 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1409 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1411 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1413 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1414 hcryp->pCrypInBuffPtr += 16;
1415 hcryp->CrypInCount -= 16;
1416 if(hcryp->CrypInCount == 0)
1418 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
1420 HAL_CRYP_InCpltCallback(hcryp);
1423 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
1425 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
1427 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1429 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1431 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1433 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1434 hcryp->pCrypOutBuffPtr += 16;
1435 hcryp->CrypOutCount -= 16;
1436 if(hcryp->CrypOutCount == 0)
1438 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
1442 hcryp->State = HAL_CRYP_STATE_READY;
1444 HAL_CRYP_OutCpltCallback(hcryp);
1462 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
1464 uint32_t tickstart = 0;
1467 uint32_t outputaddr;
1469 if(hcryp->State == HAL_CRYP_STATE_READY)
1474 hcryp->CrypInCount = Size;
1475 hcryp->pCrypInBuffPtr = pCypherData;
1476 hcryp->pCrypOutBuffPtr = pPlainData;
1477 hcryp->CrypOutCount = Size;
1480 hcryp->State = HAL_CRYP_STATE_BUSY;
1483 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1486 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1491 __HAL_CRYP_ENABLE(hcryp);
1499 if((
HAL_GetTick() - tickstart ) > CRYP_TIMEOUT_VALUE)
1502 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
1518 __HAL_CRYP_FIFO_FLUSH(hcryp);
1521 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1525 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
1528 __HAL_CRYP_ENABLE(hcryp);
1533 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
1535 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
1537 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1539 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1541 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1543 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1544 hcryp->pCrypInBuffPtr += 16;
1545 hcryp->CrypInCount -= 16;
1546 if(hcryp->CrypInCount == 0)
1548 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
1550 HAL_CRYP_InCpltCallback(hcryp);
1553 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
1555 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
1557 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1559 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1561 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1563 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1564 hcryp->pCrypOutBuffPtr += 16;
1565 hcryp->CrypOutCount -= 16;
1566 if(hcryp->CrypOutCount == 0)
1568 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
1572 hcryp->State = HAL_CRYP_STATE_READY;
1574 HAL_CRYP_OutCpltCallback(hcryp);
1591 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
1594 uint32_t tickstart = 0;
1596 uint32_t outputaddr;
1598 if(hcryp->State == HAL_CRYP_STATE_READY)
1604 hcryp->CrypInCount = Size;
1605 hcryp->pCrypInBuffPtr = pCypherData;
1606 hcryp->pCrypOutBuffPtr = pPlainData;
1607 hcryp->CrypOutCount = Size;
1610 hcryp->State = HAL_CRYP_STATE_BUSY;
1613 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1616 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1622 __HAL_CRYP_ENABLE(hcryp);
1630 if((
HAL_GetTick() - tickstart ) > CRYP_TIMEOUT_VALUE)
1633 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
1649 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1652 __HAL_CRYP_FIFO_FLUSH(hcryp);
1655 __HAL_CRYP_ENABLE(hcryp);
1658 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1662 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
1665 __HAL_CRYP_ENABLE(hcryp);
1670 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
1672 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
1674 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1676 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1678 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1680 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1681 hcryp->pCrypInBuffPtr += 16;
1682 hcryp->CrypInCount -= 16;
1683 if(hcryp->CrypInCount == 0)
1685 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
1687 HAL_CRYP_InCpltCallback(hcryp);
1690 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
1692 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
1694 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1696 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1698 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1700 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1701 hcryp->pCrypOutBuffPtr += 16;
1702 hcryp->CrypOutCount -= 16;
1703 if(hcryp->CrypOutCount == 0)
1705 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
1709 hcryp->State = HAL_CRYP_STATE_READY;
1711 HAL_CRYP_OutCpltCallback(hcryp);
1728 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
1731 uint32_t outputaddr;
1733 if(hcryp->State == HAL_CRYP_STATE_READY)
1739 hcryp->CrypInCount = Size;
1740 hcryp->pCrypInBuffPtr = pCypherData;
1741 hcryp->pCrypOutBuffPtr = pPlainData;
1742 hcryp->CrypOutCount = Size;
1745 hcryp->State = HAL_CRYP_STATE_BUSY;
1748 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1751 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1757 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1760 __HAL_CRYP_FIFO_FLUSH(hcryp);
1763 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1767 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
1770 __HAL_CRYP_ENABLE(hcryp);
1775 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
1777 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
1779 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1781 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1783 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1785 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
1786 hcryp->pCrypInBuffPtr += 16;
1787 hcryp->CrypInCount -= 16;
1788 if(hcryp->CrypInCount == 0)
1790 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
1792 HAL_CRYP_InCpltCallback(hcryp);
1795 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
1797 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
1799 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1801 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1803 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1805 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
1806 hcryp->pCrypOutBuffPtr += 16;
1807 hcryp->CrypOutCount -= 16;
1808 if(hcryp->CrypOutCount == 0)
1810 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
1814 hcryp->State = HAL_CRYP_STATE_READY;
1816 HAL_CRYP_OutCpltCallback(hcryp);
1833 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
1836 uint32_t outputaddr;
1838 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
1843 inputaddr = (uint32_t)pPlainData;
1844 outputaddr = (uint32_t)pCypherData;
1847 hcryp->State = HAL_CRYP_STATE_BUSY;
1850 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1853 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1859 __HAL_CRYP_FIFO_FLUSH(hcryp);
1862 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1865 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
1888 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
1891 uint32_t outputaddr;
1893 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
1898 inputaddr = (uint32_t)pPlainData;
1899 outputaddr = (uint32_t)pCypherData;
1902 hcryp->State = HAL_CRYP_STATE_BUSY;
1905 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1908 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1914 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1917 __HAL_CRYP_FIFO_FLUSH(hcryp);
1920 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1923 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
1946 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
1949 uint32_t outputaddr;
1951 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
1956 inputaddr = (uint32_t)pPlainData;
1957 outputaddr = (uint32_t)pCypherData;
1960 hcryp->State = HAL_CRYP_STATE_BUSY;
1963 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
1966 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
1972 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
1975 __HAL_CRYP_FIFO_FLUSH(hcryp);
1978 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
1982 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2005 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2007 uint32_t tickstart = 0;
2009 uint32_t outputaddr;
2011 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2016 inputaddr = (uint32_t)pCypherData;
2017 outputaddr = (uint32_t)pPlainData;
2020 hcryp->State = HAL_CRYP_STATE_BUSY;
2023 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
2026 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
2032 __HAL_CRYP_ENABLE(hcryp);
2040 if((
HAL_GetTick() - tickstart ) > CRYP_TIMEOUT_VALUE)
2043 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
2059 __HAL_CRYP_FIFO_FLUSH(hcryp);
2062 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
2066 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2089 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2091 uint32_t tickstart = 0;
2093 uint32_t outputaddr;
2095 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2100 inputaddr = (uint32_t)pCypherData;
2101 outputaddr = (uint32_t)pPlainData;
2104 hcryp->State = HAL_CRYP_STATE_BUSY;
2107 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
2110 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
2116 __HAL_CRYP_ENABLE(hcryp);
2124 if((
HAL_GetTick() - tickstart ) > CRYP_TIMEOUT_VALUE)
2127 hcryp->State = HAL_CRYP_STATE_TIMEOUT;
2143 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
2146 __HAL_CRYP_FIFO_FLUSH(hcryp);
2149 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
2153 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2176 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2179 uint32_t outputaddr;
2181 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2186 inputaddr = (uint32_t)pCypherData;
2187 outputaddr = (uint32_t)pPlainData;
2190 hcryp->State = HAL_CRYP_STATE_BUSY;
2193 if(hcryp->Phase == HAL_CRYP_PHASE_READY)
2196 CRYP_SetKey(hcryp, hcryp->Init.pKey, hcryp->Init.KeySize);
2202 CRYP_SetInitVector(hcryp, hcryp->Init.pInitVect, CRYP_KEYSIZE_128B);
2205 __HAL_CRYP_FIFO_FLUSH(hcryp);
2208 hcryp->Phase = HAL_CRYP_PHASE_PROCESS;
2212 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2260 HAL_StatusTypeDef HAL_CRYP_DESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
2266 hcryp->State = HAL_CRYP_STATE_BUSY;
2269 CRYP_SetDESECBMode(hcryp, 0);
2272 __HAL_CRYP_ENABLE(hcryp);
2275 if(CRYP_ProcessData2Words(hcryp, pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
2281 hcryp->State = HAL_CRYP_STATE_READY;
2300 HAL_StatusTypeDef HAL_CRYP_DESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
2306 hcryp->State = HAL_CRYP_STATE_BUSY;
2312 __HAL_CRYP_ENABLE(hcryp);
2315 if(CRYP_ProcessData2Words(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
2321 hcryp->State = HAL_CRYP_STATE_READY;
2340 HAL_StatusTypeDef HAL_CRYP_DESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
2346 hcryp->State = HAL_CRYP_STATE_BUSY;
2349 CRYP_SetDESCBCMode(hcryp, 0);
2352 __HAL_CRYP_ENABLE(hcryp);
2355 if(CRYP_ProcessData2Words(hcryp, pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
2361 hcryp->State = HAL_CRYP_STATE_READY;
2380 HAL_StatusTypeDef HAL_CRYP_DESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
2386 hcryp->State = HAL_CRYP_STATE_BUSY;
2392 __HAL_CRYP_ENABLE(hcryp);
2395 if(CRYP_ProcessData2Words(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
2401 hcryp->State = HAL_CRYP_STATE_READY;
2419 HAL_StatusTypeDef HAL_CRYP_DESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
2422 uint32_t outputaddr;
2424 if(hcryp->State == HAL_CRYP_STATE_READY)
2429 hcryp->CrypInCount = Size;
2430 hcryp->pCrypInBuffPtr = pPlainData;
2431 hcryp->pCrypOutBuffPtr = pCypherData;
2432 hcryp->CrypOutCount = Size;
2435 hcryp->State = HAL_CRYP_STATE_BUSY;
2438 CRYP_SetDESECBMode(hcryp, 0);
2441 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
2444 __HAL_CRYP_ENABLE(hcryp);
2449 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
2451 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
2453 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2455 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2457 hcryp->pCrypInBuffPtr += 8;
2458 hcryp->CrypInCount -= 8;
2459 if(hcryp->CrypInCount == 0)
2461 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
2463 HAL_CRYP_InCpltCallback(hcryp);
2466 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
2468 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
2470 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2472 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2474 hcryp->pCrypOutBuffPtr += 8;
2475 hcryp->CrypOutCount -= 8;
2476 if(hcryp->CrypOutCount == 0)
2479 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
2481 __HAL_CRYP_DISABLE(hcryp);
2485 hcryp->State = HAL_CRYP_STATE_READY;
2487 HAL_CRYP_OutCpltCallback(hcryp);
2504 HAL_StatusTypeDef HAL_CRYP_DESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
2507 uint32_t outputaddr;
2509 if(hcryp->State == HAL_CRYP_STATE_READY)
2514 hcryp->CrypInCount = Size;
2515 hcryp->pCrypInBuffPtr = pPlainData;
2516 hcryp->pCrypOutBuffPtr = pCypherData;
2517 hcryp->CrypOutCount = Size;
2520 hcryp->State = HAL_CRYP_STATE_BUSY;
2523 CRYP_SetDESCBCMode(hcryp, 0);
2526 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
2529 __HAL_CRYP_ENABLE(hcryp);
2535 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
2537 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
2539 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2541 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2543 hcryp->pCrypInBuffPtr += 8;
2544 hcryp->CrypInCount -= 8;
2545 if(hcryp->CrypInCount == 0)
2547 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
2549 HAL_CRYP_InCpltCallback(hcryp);
2552 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
2554 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
2556 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2558 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2560 hcryp->pCrypOutBuffPtr += 8;
2561 hcryp->CrypOutCount -= 8;
2562 if(hcryp->CrypOutCount == 0)
2565 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
2567 __HAL_CRYP_DISABLE(hcryp);
2571 hcryp->State = HAL_CRYP_STATE_READY;
2573 HAL_CRYP_OutCpltCallback(hcryp);
2590 HAL_StatusTypeDef HAL_CRYP_DESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2593 uint32_t outputaddr;
2595 if(hcryp->State == HAL_CRYP_STATE_READY)
2600 hcryp->CrypInCount = Size;
2601 hcryp->pCrypInBuffPtr = pCypherData;
2602 hcryp->pCrypOutBuffPtr = pPlainData;
2603 hcryp->CrypOutCount = Size;
2606 hcryp->State = HAL_CRYP_STATE_BUSY;
2612 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
2615 __HAL_CRYP_ENABLE(hcryp);
2620 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
2622 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
2624 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2626 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2628 hcryp->pCrypInBuffPtr += 8;
2629 hcryp->CrypInCount -= 8;
2630 if(hcryp->CrypInCount == 0)
2632 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
2634 HAL_CRYP_InCpltCallback(hcryp);
2637 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
2639 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
2641 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2643 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2645 hcryp->pCrypOutBuffPtr += 8;
2646 hcryp->CrypOutCount -= 8;
2647 if(hcryp->CrypOutCount == 0)
2650 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
2652 __HAL_CRYP_DISABLE(hcryp);
2656 hcryp->State = HAL_CRYP_STATE_READY;
2658 HAL_CRYP_OutCpltCallback(hcryp);
2675 HAL_StatusTypeDef HAL_CRYP_DESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2678 uint32_t outputaddr;
2680 if(hcryp->State == HAL_CRYP_STATE_READY)
2685 hcryp->CrypInCount = Size;
2686 hcryp->pCrypInBuffPtr = pCypherData;
2687 hcryp->pCrypOutBuffPtr = pPlainData;
2688 hcryp->CrypOutCount = Size;
2691 hcryp->State = HAL_CRYP_STATE_BUSY;
2697 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
2700 __HAL_CRYP_ENABLE(hcryp);
2705 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
2707 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
2709 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2711 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
2713 hcryp->pCrypInBuffPtr += 8;
2714 hcryp->CrypInCount -= 8;
2715 if(hcryp->CrypInCount == 0)
2717 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
2719 HAL_CRYP_InCpltCallback(hcryp);
2722 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
2724 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
2726 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2728 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
2730 hcryp->pCrypOutBuffPtr += 8;
2731 hcryp->CrypOutCount -= 8;
2732 if(hcryp->CrypOutCount == 0)
2735 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
2737 __HAL_CRYP_DISABLE(hcryp);
2741 hcryp->State = HAL_CRYP_STATE_READY;
2743 HAL_CRYP_OutCpltCallback(hcryp);
2760 HAL_StatusTypeDef HAL_CRYP_DESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
2763 uint32_t outputaddr;
2765 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2770 inputaddr = (uint32_t)pPlainData;
2771 outputaddr = (uint32_t)pCypherData;
2774 hcryp->State = HAL_CRYP_STATE_BUSY;
2777 CRYP_SetDESECBMode(hcryp, 0);
2780 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2803 HAL_StatusTypeDef HAL_CRYP_DESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
2806 uint32_t outputaddr;
2808 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2813 inputaddr = (uint32_t)pPlainData;
2814 outputaddr = (uint32_t)pCypherData;
2817 hcryp->State = HAL_CRYP_STATE_BUSY;
2820 CRYP_SetDESCBCMode(hcryp, 0);
2823 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2846 HAL_StatusTypeDef HAL_CRYP_DESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2849 uint32_t outputaddr;
2851 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2856 inputaddr = (uint32_t)pCypherData;
2857 outputaddr = (uint32_t)pPlainData;
2860 hcryp->State = HAL_CRYP_STATE_BUSY;
2866 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2889 HAL_StatusTypeDef HAL_CRYP_DESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
2892 uint32_t outputaddr;
2894 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
2899 inputaddr = (uint32_t)pCypherData;
2900 outputaddr = (uint32_t)pPlainData;
2903 hcryp->State = HAL_CRYP_STATE_BUSY;
2909 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
2957 HAL_StatusTypeDef HAL_CRYP_TDESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
2963 hcryp->State = HAL_CRYP_STATE_BUSY;
2966 CRYP_SetTDESECBMode(hcryp, 0);
2969 __HAL_CRYP_ENABLE(hcryp);
2972 if(CRYP_ProcessData2Words(hcryp, pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
2978 hcryp->State = HAL_CRYP_STATE_READY;
2998 HAL_StatusTypeDef HAL_CRYP_TDESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
3004 hcryp->State = HAL_CRYP_STATE_BUSY;
3010 __HAL_CRYP_ENABLE(hcryp);
3013 if(CRYP_ProcessData2Words(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
3019 hcryp->State = HAL_CRYP_STATE_READY;
3039 HAL_StatusTypeDef HAL_CRYP_TDESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
3045 hcryp->State = HAL_CRYP_STATE_BUSY;
3048 CRYP_SetTDESCBCMode(hcryp, 0);
3051 __HAL_CRYP_ENABLE(hcryp);
3054 if(CRYP_ProcessData2Words(hcryp, pPlainData, Size, pCypherData, Timeout) !=
HAL_OK)
3060 hcryp->State = HAL_CRYP_STATE_READY;
3080 HAL_StatusTypeDef HAL_CRYP_TDESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
3086 hcryp->State = HAL_CRYP_STATE_BUSY;
3092 __HAL_CRYP_ENABLE(hcryp);
3095 if(CRYP_ProcessData2Words(hcryp, pCypherData, Size, pPlainData, Timeout) !=
HAL_OK)
3101 hcryp->State = HAL_CRYP_STATE_READY;
3119 HAL_StatusTypeDef HAL_CRYP_TDESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
3122 uint32_t outputaddr;
3124 if(hcryp->State == HAL_CRYP_STATE_READY)
3129 hcryp->CrypInCount = Size;
3130 hcryp->pCrypInBuffPtr = pPlainData;
3131 hcryp->pCrypOutBuffPtr = pCypherData;
3132 hcryp->CrypOutCount = Size;
3135 hcryp->State = HAL_CRYP_STATE_BUSY;
3138 CRYP_SetTDESECBMode(hcryp, 0);
3141 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
3144 __HAL_CRYP_ENABLE(hcryp);
3149 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
3151 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
3153 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3155 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3157 hcryp->pCrypInBuffPtr += 8;
3158 hcryp->CrypInCount -= 8;
3159 if(hcryp->CrypInCount == 0)
3161 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
3163 HAL_CRYP_InCpltCallback(hcryp);
3166 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
3168 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
3170 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3172 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3174 hcryp->pCrypOutBuffPtr += 8;
3175 hcryp->CrypOutCount -= 8;
3176 if(hcryp->CrypOutCount == 0)
3179 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
3181 __HAL_CRYP_DISABLE(hcryp);
3185 hcryp->State = HAL_CRYP_STATE_READY;
3187 HAL_CRYP_OutCpltCallback(hcryp);
3204 HAL_StatusTypeDef HAL_CRYP_TDESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
3207 uint32_t outputaddr;
3209 if(hcryp->State == HAL_CRYP_STATE_READY)
3214 hcryp->CrypInCount = Size;
3215 hcryp->pCrypInBuffPtr = pPlainData;
3216 hcryp->pCrypOutBuffPtr = pCypherData;
3217 hcryp->CrypOutCount = Size;
3220 hcryp->State = HAL_CRYP_STATE_BUSY;
3223 CRYP_SetTDESCBCMode(hcryp, 0);
3226 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
3229 __HAL_CRYP_ENABLE(hcryp);
3234 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
3236 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
3238 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3240 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3242 hcryp->pCrypInBuffPtr += 8;
3243 hcryp->CrypInCount -= 8;
3244 if(hcryp->CrypInCount == 0)
3246 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
3248 HAL_CRYP_InCpltCallback(hcryp);
3251 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
3253 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
3255 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3257 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3259 hcryp->pCrypOutBuffPtr += 8;
3260 hcryp->CrypOutCount -= 8;
3261 if(hcryp->CrypOutCount == 0)
3263 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
3265 __HAL_CRYP_DISABLE(hcryp);
3269 hcryp->State = HAL_CRYP_STATE_READY;
3271 HAL_CRYP_OutCpltCallback(hcryp);
3288 HAL_StatusTypeDef HAL_CRYP_TDESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
3291 uint32_t outputaddr;
3293 if(hcryp->State == HAL_CRYP_STATE_READY)
3298 hcryp->CrypInCount = Size;
3299 hcryp->pCrypInBuffPtr = pCypherData;
3300 hcryp->pCrypOutBuffPtr = pPlainData;
3301 hcryp->CrypOutCount = Size;
3304 hcryp->State = HAL_CRYP_STATE_BUSY;
3310 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
3313 __HAL_CRYP_ENABLE(hcryp);
3318 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
3320 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
3322 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3324 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3326 hcryp->pCrypInBuffPtr += 8;
3327 hcryp->CrypInCount -= 8;
3328 if(hcryp->CrypInCount == 0)
3330 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
3332 HAL_CRYP_InCpltCallback(hcryp);
3335 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
3337 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
3339 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3341 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3343 hcryp->pCrypOutBuffPtr += 8;
3344 hcryp->CrypOutCount -= 8;
3345 if(hcryp->CrypOutCount == 0)
3347 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
3349 __HAL_CRYP_DISABLE(hcryp);
3353 hcryp->State = HAL_CRYP_STATE_READY;
3355 HAL_CRYP_OutCpltCallback(hcryp);
3372 HAL_StatusTypeDef HAL_CRYP_TDESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
3375 uint32_t outputaddr;
3377 if(hcryp->State == HAL_CRYP_STATE_READY)
3382 hcryp->CrypInCount = Size;
3383 hcryp->pCrypInBuffPtr = pCypherData;
3384 hcryp->pCrypOutBuffPtr = pPlainData;
3385 hcryp->CrypOutCount = Size;
3388 hcryp->State = HAL_CRYP_STATE_BUSY;
3394 __HAL_CRYP_ENABLE_IT(hcryp, CRYP_IT_INI | CRYP_IT_OUTI);
3397 __HAL_CRYP_ENABLE(hcryp);
3402 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_INI))
3404 inputaddr = (uint32_t)hcryp->pCrypInBuffPtr;
3406 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3408 hcryp->Instance->DR = *(uint32_t*)(inputaddr);
3410 hcryp->pCrypInBuffPtr += 8;
3411 hcryp->CrypInCount -= 8;
3412 if(hcryp->CrypInCount == 0)
3414 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_INI);
3416 HAL_CRYP_InCpltCallback(hcryp);
3419 else if(__HAL_CRYP_GET_IT(hcryp, CRYP_IT_OUTI))
3421 outputaddr = (uint32_t)hcryp->pCrypOutBuffPtr;
3423 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3425 *(uint32_t*)(outputaddr) = hcryp->Instance->DOUT;
3427 hcryp->pCrypOutBuffPtr += 8;
3428 hcryp->CrypOutCount -= 8;
3429 if(hcryp->CrypOutCount == 0)
3431 __HAL_CRYP_DISABLE_IT(hcryp, CRYP_IT_OUTI);
3433 __HAL_CRYP_DISABLE(hcryp);
3437 hcryp->State = HAL_CRYP_STATE_READY;
3439 HAL_CRYP_OutCpltCallback(hcryp);
3456 HAL_StatusTypeDef HAL_CRYP_TDESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
3459 uint32_t outputaddr;
3461 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
3466 inputaddr = (uint32_t)pPlainData;
3467 outputaddr = (uint32_t)pCypherData;
3470 hcryp->State = HAL_CRYP_STATE_BUSY;
3473 CRYP_SetTDESECBMode(hcryp, 0);
3476 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
3499 HAL_StatusTypeDef HAL_CRYP_TDESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
3502 uint32_t outputaddr;
3504 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
3509 inputaddr = (uint32_t)pPlainData;
3510 outputaddr = (uint32_t)pCypherData;
3513 hcryp->State = HAL_CRYP_STATE_BUSY;
3516 CRYP_SetTDESCBCMode(hcryp, 0);
3519 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
3542 HAL_StatusTypeDef HAL_CRYP_TDESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
3545 uint32_t outputaddr;
3547 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
3552 inputaddr = (uint32_t)pCypherData;
3553 outputaddr = (uint32_t)pPlainData;
3556 hcryp->State = HAL_CRYP_STATE_BUSY;
3562 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
3585 HAL_StatusTypeDef HAL_CRYP_TDESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
3588 uint32_t outputaddr;
3590 if((hcryp->State == HAL_CRYP_STATE_READY) || (hcryp->Phase == HAL_CRYP_PHASE_PROCESS))
3595 inputaddr = (uint32_t)pCypherData;
3596 outputaddr = (uint32_t)pPlainData;
3599 hcryp->State = HAL_CRYP_STATE_BUSY;
3605 CRYP_SetDMAConfig(hcryp, inputaddr, Size, outputaddr);
3645 __weak
void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp)
3661 __weak
void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp)
3677 __weak
void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp)
3710 void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp)
3712 switch(
CRYP->CR & CRYP_CR_ALGOMODE_DIRECTION)
3714 case CRYP_CR_ALGOMODE_TDES_ECB_ENCRYPT:
3715 HAL_CRYP_TDESECB_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3718 case CRYP_CR_ALGOMODE_TDES_ECB_DECRYPT:
3719 HAL_CRYP_TDESECB_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3722 case CRYP_CR_ALGOMODE_TDES_CBC_ENCRYPT:
3723 HAL_CRYP_TDESCBC_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3726 case CRYP_CR_ALGOMODE_TDES_CBC_DECRYPT:
3727 HAL_CRYP_TDESCBC_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3730 case CRYP_CR_ALGOMODE_DES_ECB_ENCRYPT:
3731 HAL_CRYP_DESECB_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3734 case CRYP_CR_ALGOMODE_DES_ECB_DECRYPT:
3735 HAL_CRYP_DESECB_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3738 case CRYP_CR_ALGOMODE_DES_CBC_ENCRYPT:
3739 HAL_CRYP_DESCBC_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3742 case CRYP_CR_ALGOMODE_DES_CBC_DECRYPT:
3743 HAL_CRYP_DESCBC_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3746 case CRYP_CR_ALGOMODE_AES_ECB_ENCRYPT:
3747 HAL_CRYP_AESECB_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3750 case CRYP_CR_ALGOMODE_AES_ECB_DECRYPT:
3751 HAL_CRYP_AESECB_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3754 case CRYP_CR_ALGOMODE_AES_CBC_ENCRYPT:
3755 HAL_CRYP_AESCBC_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3758 case CRYP_CR_ALGOMODE_AES_CBC_DECRYPT:
3759 HAL_CRYP_AESCBC_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3762 case CRYP_CR_ALGOMODE_AES_CTR_ENCRYPT:
3763 HAL_CRYP_AESCTR_Encrypt_IT(hcryp,
NULL, 0,
NULL);
3766 case CRYP_CR_ALGOMODE_AES_CTR_DECRYPT:
3767 HAL_CRYP_AESCTR_Decrypt_IT(hcryp,
NULL, 0,
NULL);
3799 HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp)
3801 return hcryp->State;
#define CRYP_CR_ALGOMODE_AES_KEY
#define CRYP_CR_ALGOMODE_DES_ECB
#define assert_param(expr)
Include module's header file.
#define CRYP_CR_ALGOMODE_TDES_ECB
#define __HAL_UNLOCK(__HANDLE__)
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
#define CRYP_CR_ALGOMODE_TDES_CBC
#define __HAL_LOCK(__HANDLE__)
This file contains all the functions prototypes for the HAL module driver.
#define HAL_IS_BIT_CLR(REG, BIT)
#define CRYP_CR_ALGOMODE_AES_ECB
#define CRYP_CR_ALGOMODE_DES_CBC
#define HAL_IS_BIT_SET(REG, BIT)
DMA handle Structure definition.
#define __REV
Reverse byte order (32 bit)
HAL_StatusTypeDef
HAL Status structures definition.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define CRYP_CR_ALGOMODE_AES_CBC
#define CRYP_CR_ALGOMODE_AES_CTR