21 #ifndef __STM32L4xx_HAL_CRYP_H 22 #define __STM32L4xx_HAL_CRYP_H 57 uint32_t OperatingMode;
60 uint32_t ChainingMode;
63 uint32_t KeyWriteFlag;
66 uint32_t GCMCMACPhase;
127 #define HAL_CRYP_ERROR_NONE ((uint32_t)0x00000000) 128 #define HAL_CRYP_WRITE_ERROR ((uint32_t)0x00000001) 129 #define HAL_CRYP_READ_ERROR ((uint32_t)0x00000002) 130 #define HAL_CRYP_DMA_ERROR ((uint32_t)0x00000004) 131 #define HAL_CRYP_BUSY_ERROR ((uint32_t)0x00000008) 132 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 133 #define HAL_CRYP_ERROR_INVALID_CALLBACK ((uint32_t)0x00000010U) 136 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 186 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 203 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 222 #define CRYP_KEYSIZE_128B ((uint32_t)0x00000000) 223 #define CRYP_KEYSIZE_256B AES_CR_KEYSIZE 231 #define CRYP_DATATYPE_32B ((uint32_t)0x00000000) 232 #define CRYP_DATATYPE_16B AES_CR_DATATYPE_0 233 #define CRYP_DATATYPE_8B AES_CR_DATATYPE_1 234 #define CRYP_DATATYPE_1B AES_CR_DATATYPE 242 #define CRYP_AES_DISABLE ((uint32_t)0x00000000) 243 #define CRYP_AES_ENABLE AES_CR_EN 251 #define CRYP_ALGOMODE_ENCRYPT ((uint32_t)0x00000000) 252 #define CRYP_ALGOMODE_KEYDERIVATION AES_CR_MODE_0 253 #define CRYP_ALGOMODE_DECRYPT AES_CR_MODE_1 254 #define CRYP_ALGOMODE_KEYDERIVATION_DECRYPT AES_CR_MODE 255 #define CRYP_ALGOMODE_TAG_GENERATION ((uint32_t)0x00000000) 263 #define CRYP_CHAINMODE_AES_ECB ((uint32_t)0x00000000) 264 #define CRYP_CHAINMODE_AES_CBC AES_CR_CHMOD_0 265 #define CRYP_CHAINMODE_AES_CTR AES_CR_CHMOD_1 266 #define CRYP_CHAINMODE_AES_GCM_GMAC (AES_CR_CHMOD_0 | AES_CR_CHMOD_1) 267 #if defined(AES_CR_NPBLB) 268 #define CRYP_CHAINMODE_AES_CCM AES_CR_CHMOD_2 270 #define CRYP_CHAINMODE_AES_CMAC AES_CR_CHMOD_2 279 #define CRYP_KEY_WRITE_ENABLE ((uint32_t)0x00000000) 280 #define CRYP_KEY_WRITE_DISABLE ((uint32_t)0x00000001) 288 #define CRYP_DMAIN_DISABLE ((uint32_t)0x00000000) 289 #define CRYP_DMAIN_ENABLE AES_CR_DMAINEN 297 #define CRYP_DMAOUT_DISABLE ((uint32_t)0x00000000) 298 #define CRYP_DMAOUT_ENABLE AES_CR_DMAOUTEN 307 #define CRYP_GCM_INIT_PHASE ((uint32_t)0x00000000) 308 #define CRYP_GCMCMAC_HEADER_PHASE AES_CR_GCMPH_0 309 #define CRYP_GCM_PAYLOAD_PHASE AES_CR_GCMPH_1 310 #define CRYP_GCMCMAC_FINAL_PHASE AES_CR_GCMPH 313 #define CRYP_INIT_PHASE ((uint32_t)0x00000000) 314 #define CRYP_HEADER_PHASE AES_CR_GCMPH_0 315 #define CRYP_PAYLOAD_PHASE AES_CR_GCMPH_1 316 #define CRYP_FINAL_PHASE AES_CR_GCMPH 325 #define CRYP_FLAG_BUSY AES_SR_BUSY 326 #define CRYP_FLAG_WRERR AES_SR_WRERR 327 #define CRYP_FLAG_RDERR AES_SR_RDERR 328 #define CRYP_FLAG_CCF AES_SR_CCF 337 #define CRYP_CCF_CLEAR AES_CR_CCFC 338 #define CRYP_ERR_CLEAR AES_CR_ERRC 346 #define CRYP_IT_CCFIE AES_CR_CCFIE 347 #define CRYP_IT_ERRIE AES_CR_ERRIE 355 #define CRYP_IT_WRERR AES_SR_WRERR 356 #define CRYP_IT_RDERR AES_SR_RDERR 357 #define CRYP_IT_CCF AES_SR_CCF 375 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) 376 #define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) do{\ 377 (__HANDLE__)->State = HAL_CRYP_STATE_RESET;\ 378 (__HANDLE__)->MspInitCallback = NULL; \ 379 (__HANDLE__)->MspDeInitCallback = NULL; \ 382 #define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRYP_STATE_RESET) 390 #define __HAL_CRYP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= AES_CR_EN) 397 #define __HAL_CRYP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~AES_CR_EN) 410 #define __HAL_CRYP_SET_OPERATINGMODE(__HANDLE__, __OPERATING_MODE__) MODIFY_REG((__HANDLE__)->Instance->CR, AES_CR_MODE, (__OPERATING_MODE__)) 425 #define __HAL_CRYP_SET_CHAININGMODE(__HANDLE__, __CHAINING_MODE__) MODIFY_REG((__HANDLE__)->Instance->CR, AES_CR_CHMOD, (__CHAINING_MODE__)) 439 #define __HAL_CRYP_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__)) 450 #define __HAL_CRYP_CLEAR_FLAG(__HANDLE__, __FLAG__) SET_BIT((__HANDLE__)->Instance->CR, (__FLAG__)) 462 #define __HAL_CRYP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR & (__INTERRUPT__)) == (__INTERRUPT__)) 474 #define __HAL_CRYP_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->SR & (__INTERRUPT__)) == (__INTERRUPT__)) 486 #define __HAL_CRYP_CLEAR_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__)) 498 #define __HAL_CRYP_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) |= (__INTERRUPT__)) 510 #define __HAL_CRYP_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) &= ~(__INTERRUPT__)) 526 #define IS_CRYP_KEYSIZE(__KEYSIZE__) (((__KEYSIZE__) == CRYP_KEYSIZE_128B) || \ 527 ((__KEYSIZE__) == CRYP_KEYSIZE_256B)) 534 #define IS_CRYP_DATATYPE(__DATATYPE__) (((__DATATYPE__) == CRYP_DATATYPE_32B) || \ 535 ((__DATATYPE__) == CRYP_DATATYPE_16B) || \ 536 ((__DATATYPE__) == CRYP_DATATYPE_8B) || \ 537 ((__DATATYPE__) == CRYP_DATATYPE_1B)) 544 #define IS_CRYP_AES(__MODE__) (((__MODE__) == CRYP_AES_DISABLE) || \ 545 ((__MODE__) == CRYP_AES_ENABLE)) 552 #define IS_CRYP_ALGOMODE(__ALGOMODE__) (((__ALGOMODE__) == CRYP_ALGOMODE_ENCRYPT) || \ 553 ((__ALGOMODE__) == CRYP_ALGOMODE_KEYDERIVATION) || \ 554 ((__ALGOMODE__) == CRYP_ALGOMODE_DECRYPT) || \ 555 ((__ALGOMODE__) == CRYP_ALGOMODE_TAG_GENERATION) || \ 556 ((__ALGOMODE__) == CRYP_ALGOMODE_KEYDERIVATION_DECRYPT)) 563 #if defined(AES_CR_NPBLB) 564 #define IS_CRYP_CHAINMODE(__CHAINMODE__) (((__CHAINMODE__) == CRYP_CHAINMODE_AES_ECB) || \ 565 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CBC) || \ 566 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CTR) || \ 567 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_GCM_GMAC) || \ 568 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CCM)) 570 #define IS_CRYP_CHAINMODE(__CHAINMODE__) (((__CHAINMODE__) == CRYP_CHAINMODE_AES_ECB) || \ 571 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CBC) || \ 572 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CTR) || \ 573 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_GCM_GMAC) || \ 574 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CMAC)) 582 #define IS_CRYP_WRITE(__WRITE__) (((__WRITE__) == CRYP_KEY_WRITE_ENABLE) || \ 583 ((__WRITE__) == CRYP_KEY_WRITE_DISABLE)) 590 #define IS_CRYP_DMAIN(__MODE__) (((__MODE__) == CRYP_DMAIN_DISABLE) || \ 591 ((__MODE__) == CRYP_DMAIN_ENABLE)) 598 #define IS_CRYP_DMAOUT(__MODE__) (((__MODE__) == CRYP_DMAOUT_DISABLE) || \ 599 ((__MODE__) == CRYP_DMAOUT_ENABLE)) 606 #define IS_CRYP_GCMCMAC_PHASE(__PHASE__) (((__PHASE__) == CRYP_INIT_PHASE) || \ 607 ((__PHASE__) == CRYP_HEADER_PHASE) || \ 608 ((__PHASE__) == CRYP_PAYLOAD_PHASE) || \ 609 ((__PHASE__) == CRYP_FINAL_PHASE)) 681 #if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1) HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp)
Return the CRYP handle state.
void(* ErrorCallback)(struct __CRYP_HandleTypeDef *hcryp)
__IO HAL_CRYP_STATETypeDef State
HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
Decrypt pCypherData in AES CTR decryption mode using DMA, the decyphered data are available in pPlain...
HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
Decrypt pCypherData in AES CTR decryption mode using Interrupt, the decyphered data are available in ...
HAL_CRYP_CallbackIDTypeDef
HAL CRYP common Callback ID enumeration definition.
HAL_SuspendTypeDef
HAL CRYP mode suspend definitions.
DMA_HandleTypeDef * hdmaout
DMA handle Structure definition.
struct __CRYP_HandleTypeDef CRYP_HandleTypeDef
CRYP handle Structure definition.
void(* MspInitCallback)(struct __CRYP_HandleTypeDef *hcryp)
HAL_PhaseTypeDef
HAL CRYP phase structures definition.
HAL_CRYP_STATETypeDef
HAL CRYP State structures definition.
HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
Encrypt pPlainData in AES CBC encryption mode using DMA, the cypher data are available in pCypherData...
HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
Decrypt pCypherData in AES ECB decryption mode using Interrupt, the decyphered data are available in ...
HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp)
DeInitialize the CRYP peripheral.
DMA_HandleTypeDef * hdmain
HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
Encrypt pPlainData in AES CBC encryption mode with key derivation. The cypher data are available in p...
void(* OutCpltCallback)(struct __CRYP_HandleTypeDef *hcryp)
HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
Encrypt pPlainData in AES CTR encryption mode using Interrupt, the cypher data are available in pCyph...
HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
Encrypt pPlainData in AES ECB encryption mode. The cypher data are available in pCypherData.
void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp)
Initialize the CRYP MSP.
This file contains HAL common defines, enumeration, macros and structures definitions.
void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp)
Output DMA transfer complete callback.
HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
Decrypt pCypherData in AES ECB decryption mode with key derivation, the decyphered data are available...
HAL_SuspendTypeDef SuspendRequest
HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
Encrypt pPlainData in AES ECB encryption mode using DMA, the cypher data are available in pCypherData...
CRYP handle Structure definition.
HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
Decrypt pCypherData in AES CBC decryption mode using Interrupt, the decyphered data are available in ...
HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout)
Encrypt pPlainData in AES CTR encryption mode. The cypher data are available in pCypherData.
void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp)
CRYP error callback.
HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
Encrypt pPlainData in AES ECB encryption mode using Interrupt, the cypher data are available in pCyph...
void(* CompCpltCallback)(struct __CRYP_HandleTypeDef *hcryp)
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 (surcharged) predefined callback...
void(* InCpltCallback)(struct __CRYP_HandleTypeDef *hcryp)
HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
Decrypt pCypherData in AES CBC decryption mode using DMA, the decyphered data are available in pPlain...
HAL_LockTypeDef
HAL Lock structures definition.
void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp)
Input DMA transfer complete callback.
void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp)
DeInitialize CRYP MSP.
HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
Decrypt pCypherData in AES ECB decryption mode with key derivation, the decyphered data are available...
HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp)
Initialize the CRYP according to the specified parameters in the CRYP_InitTypeDef and initialize the ...
uint32_t HAL_CRYP_GetError(CRYP_HandleTypeDef *hcryp)
Return the CRYP peripheral error.
HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData)
Decrypt pCypherData in AES ECB decryption mode using DMA, the decyphered data are available in pPlain...
void(* pCRYP_CallbackTypeDef)(CRYP_HandleTypeDef *hcryp)
HAL CRYP Callback pointer definition.
HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
Encrypt pPlainData in AES CTR encryption mode using DMA, the cypher data are available in pCypherData...
HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout)
Decrypt pCypherData in AES CTR decryption mode, the decyphered data are available in pPlainData...
uint8_t * pCrypOutBuffPtr
HAL_StatusTypeDef HAL_CRYP_UnRegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef CallbackID)
Unregister a CRYP Callback CRYP Callback is redirected to the weak (surcharged) predefined callback...
HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData)
Encrypt pPlainData in AES CBC encryption mode using Interrupt, the cypher data are available in pCyph...
Header file of CRYPEx HAL module.
void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp)
Handle AES interrupt request.
void(* MspDeInitCallback)(struct __CRYP_HandleTypeDef *hcryp)