STM32L443xx HAL User Manual
Data Structures | Defines | Typedefs | Enumerations | Functions
stm32l4xx_hal_cryp.h File Reference

Header file of CRYP HAL module. More...

#include "stm32l4xx_hal_def.h"
#include "stm32l4xx_hal_cryp_ex.h"

Go to the source code of this file.

Data Structures

struct  CRYP_InitTypeDef
 CRYP Configuration Structure definition. More...
struct  __CRYP_HandleTypeDef
 CRYP handle Structure definition. More...

Defines

#define HAL_CRYP_ERROR_NONE   ((uint32_t)0x00000000)
 HAL CRYP Error Codes definition.
#define HAL_CRYP_WRITE_ERROR   ((uint32_t)0x00000001)
#define HAL_CRYP_READ_ERROR   ((uint32_t)0x00000002)
#define HAL_CRYP_DMA_ERROR   ((uint32_t)0x00000004)
#define HAL_CRYP_BUSY_ERROR   ((uint32_t)0x00000008)
#define HAL_CRYP_ERROR_INVALID_CALLBACK   ((uint32_t)0x00000010U)
#define CRYP_KEYSIZE_128B   ((uint32_t)0x00000000)
#define CRYP_KEYSIZE_256B   AES_CR_KEYSIZE
#define CRYP_DATATYPE_32B   ((uint32_t)0x00000000)
#define CRYP_DATATYPE_16B   AES_CR_DATATYPE_0
#define CRYP_DATATYPE_8B   AES_CR_DATATYPE_1
#define CRYP_DATATYPE_1B   AES_CR_DATATYPE
#define CRYP_AES_DISABLE   ((uint32_t)0x00000000)
#define CRYP_AES_ENABLE   AES_CR_EN
#define CRYP_ALGOMODE_ENCRYPT   ((uint32_t)0x00000000)
#define CRYP_ALGOMODE_KEYDERIVATION   AES_CR_MODE_0
#define CRYP_ALGOMODE_DECRYPT   AES_CR_MODE_1
#define CRYP_ALGOMODE_KEYDERIVATION_DECRYPT   AES_CR_MODE
#define CRYP_ALGOMODE_TAG_GENERATION   ((uint32_t)0x00000000)
#define CRYP_CHAINMODE_AES_ECB   ((uint32_t)0x00000000)
#define CRYP_CHAINMODE_AES_CBC   AES_CR_CHMOD_0
#define CRYP_CHAINMODE_AES_CTR   AES_CR_CHMOD_1
#define CRYP_CHAINMODE_AES_GCM_GMAC   (AES_CR_CHMOD_0 | AES_CR_CHMOD_1)
#define CRYP_CHAINMODE_AES_CMAC   AES_CR_CHMOD_2
#define CRYP_KEY_WRITE_ENABLE   ((uint32_t)0x00000000)
#define CRYP_KEY_WRITE_DISABLE   ((uint32_t)0x00000001)
#define CRYP_DMAIN_DISABLE   ((uint32_t)0x00000000)
#define CRYP_DMAIN_ENABLE   AES_CR_DMAINEN
#define CRYP_DMAOUT_DISABLE   ((uint32_t)0x00000000)
#define CRYP_DMAOUT_ENABLE   AES_CR_DMAOUTEN
#define CRYP_GCM_INIT_PHASE   ((uint32_t)0x00000000)
#define CRYP_GCMCMAC_HEADER_PHASE   AES_CR_GCMPH_0
#define CRYP_GCM_PAYLOAD_PHASE   AES_CR_GCMPH_1
#define CRYP_GCMCMAC_FINAL_PHASE   AES_CR_GCMPH
#define CRYP_INIT_PHASE   ((uint32_t)0x00000000)
#define CRYP_HEADER_PHASE   AES_CR_GCMPH_0
#define CRYP_PAYLOAD_PHASE   AES_CR_GCMPH_1
#define CRYP_FINAL_PHASE   AES_CR_GCMPH
#define CRYP_FLAG_BUSY   AES_SR_BUSY
#define CRYP_FLAG_WRERR   AES_SR_WRERR
#define CRYP_FLAG_RDERR   AES_SR_RDERR
#define CRYP_FLAG_CCF   AES_SR_CCF
#define CRYP_CCF_CLEAR   AES_CR_CCFC
#define CRYP_ERR_CLEAR   AES_CR_ERRC
#define CRYP_IT_CCFIE   AES_CR_CCFIE
#define CRYP_IT_ERRIE   AES_CR_ERRIE
#define CRYP_IT_WRERR   AES_SR_WRERR
#define CRYP_IT_RDERR   AES_SR_RDERR
#define CRYP_IT_CCF   AES_SR_CCF
#define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__)
 Reset CRYP handle state.
#define __HAL_CRYP_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR |= AES_CR_EN)
 Enable the CRYP AES peripheral.
#define __HAL_CRYP_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR &= ~AES_CR_EN)
 Disable the CRYP AES peripheral.
#define __HAL_CRYP_SET_OPERATINGMODE(__HANDLE__, __OPERATING_MODE__)   MODIFY_REG((__HANDLE__)->Instance->CR, AES_CR_MODE, (__OPERATING_MODE__))
 Set the algorithm operating mode.
#define __HAL_CRYP_SET_CHAININGMODE(__HANDLE__, __CHAINING_MODE__)   MODIFY_REG((__HANDLE__)->Instance->CR, AES_CR_CHMOD, (__CHAINING_MODE__))
 Set the algorithm chaining mode.
#define __HAL_CRYP_GET_FLAG(__HANDLE__, __FLAG__)   (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
 Check whether the specified CRYP status flag is set or not.
#define __HAL_CRYP_CLEAR_FLAG(__HANDLE__, __FLAG__)   SET_BIT((__HANDLE__)->Instance->CR, (__FLAG__))
 Clear the CRYP pending status flag.
#define __HAL_CRYP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->CR & (__INTERRUPT__)) == (__INTERRUPT__))
 Check whether the specified CRYP interrupt source is enabled or not.
#define __HAL_CRYP_GET_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->SR & (__INTERRUPT__)) == (__INTERRUPT__))
 Check whether the specified CRYP interrupt is set or not.
#define __HAL_CRYP_CLEAR_IT(__HANDLE__, __INTERRUPT__)   SET_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
 Clear the CRYP pending interrupt.
#define __HAL_CRYP_ENABLE_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->CR) |= (__INTERRUPT__))
 Enable the CRYP interrupt.
#define __HAL_CRYP_DISABLE_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->CR) &= ~(__INTERRUPT__))
 Disable the CRYP interrupt.
#define IS_CRYP_KEYSIZE(__KEYSIZE__)
 Verify the key size length.
#define IS_CRYP_DATATYPE(__DATATYPE__)
 Verify the input data type.
#define IS_CRYP_AES(__MODE__)
 Verify the CRYP AES IP running mode.
#define IS_CRYP_ALGOMODE(__ALGOMODE__)
 Verify the selected CRYP algorithm.
#define IS_CRYP_CHAINMODE(__CHAINMODE__)
 Verify the selected CRYP chaining algorithm.
#define IS_CRYP_WRITE(__WRITE__)
 Verify the deciphering key write option.
#define IS_CRYP_DMAIN(__MODE__)
 Verify the CRYP input data DMA mode.
#define IS_CRYP_DMAOUT(__MODE__)
 Verify the CRYP output data DMA mode.
#define IS_CRYP_GCMCMAC_PHASE(__PHASE__)
 Verify the CRYP AES ciphering/deciphering/authentication algorithm phase.

Typedefs

typedef struct __CRYP_HandleTypeDef CRYP_HandleTypeDef
 CRYP handle Structure definition.
typedef void(* pCRYP_CallbackTypeDef )(CRYP_HandleTypeDef *hcryp)
 HAL CRYP Callback pointer definition.

Enumerations

enum  HAL_CRYP_STATETypeDef {
  HAL_CRYP_STATE_RESET = 0x00, HAL_CRYP_STATE_READY = 0x01, HAL_CRYP_STATE_BUSY = 0x02, HAL_CRYP_STATE_TIMEOUT = 0x03,
  HAL_CRYP_STATE_ERROR = 0x04, HAL_CRYP_STATE_SUSPENDED = 0x05
}
 HAL CRYP State structures definition. More...
enum  HAL_PhaseTypeDef {
  HAL_CRYP_PHASE_READY = 0x01, HAL_CRYP_PHASE_PROCESS = 0x02, HAL_CRYP_PHASE_START = 0x03, HAL_CRYP_PHASE_INIT_OVER = 0x04,
  HAL_CRYP_PHASE_HEADER_OVER = 0x05, HAL_CRYP_PHASE_PAYLOAD_OVER = 0x06, HAL_CRYP_PHASE_FINAL_OVER = 0x07, HAL_CRYP_PHASE_HEADER_SUSPENDED = 0x08,
  HAL_CRYP_PHASE_PAYLOAD_SUSPENDED = 0x09, HAL_CRYP_PHASE_NOT_USED = 0x0a
}
 HAL CRYP phase structures definition. More...
enum  HAL_SuspendTypeDef { HAL_CRYP_SUSPEND_NONE = 0x00, HAL_CRYP_SUSPEND = 0x01 }
 HAL CRYP mode suspend definitions. More...
enum  HAL_CRYP_CallbackIDTypeDef {
  HAL_CRYP_INPUTCPLT_CB_ID = 0x01U, HAL_CRYP_OUTPUTCPLT_CB_ID = 0x02U, HAL_CRYP_COMPCPLT_CB_ID = 0x03U, HAL_CRYP_ERROR_CB_ID = 0x04U,
  HAL_CRYP_MSPINIT_CB_ID = 0x05U, HAL_CRYP_MSPDEINIT_CB_ID = 0x06U
}
 HAL CRYP common Callback ID enumeration definition. More...

Functions

HAL_StatusTypeDef HAL_CRYP_Init (CRYP_HandleTypeDef *hcryp)
 Initialize the CRYP according to the specified parameters in the CRYP_InitTypeDef and initialize the associated handle.
HAL_StatusTypeDef HAL_CRYP_DeInit (CRYP_HandleTypeDef *hcryp)
 DeInitialize the CRYP peripheral.
__weak void HAL_CRYP_MspInit (CRYP_HandleTypeDef *hcryp)
 Initialize the CRYP MSP.
__weak void HAL_CRYP_MspDeInit (CRYP_HandleTypeDef *hcryp)
 DeInitialize CRYP MSP.
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.
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 in pPlainData.
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.
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 in pPlainData.
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.
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.
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 pCypherData.
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 pCypherData.
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 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 pPlainData.
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 pPlainData.
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 pPlainData.
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.
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 pPlainData.
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_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 pPlainData.
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_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 pPlainData.
__weak void HAL_CRYP_InCpltCallback (CRYP_HandleTypeDef *hcryp)
 Input DMA transfer complete callback.
__weak void HAL_CRYP_OutCpltCallback (CRYP_HandleTypeDef *hcryp)
 Output DMA transfer complete callback.
__weak void HAL_CRYP_ErrorCallback (CRYP_HandleTypeDef *hcryp)
 CRYP error callback.
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.
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.
void HAL_CRYP_IRQHandler (CRYP_HandleTypeDef *hcryp)
 Handle AES interrupt request.
HAL_CRYP_STATETypeDef HAL_CRYP_GetState (CRYP_HandleTypeDef *hcryp)
 Return the CRYP handle state.
uint32_t HAL_CRYP_GetError (CRYP_HandleTypeDef *hcryp)
 Return the CRYP peripheral error.

Detailed Description

Header file of CRYP HAL module.

Author:
MCD Application Team
Attention:

Copyright (c) 2017 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

Definition in file stm32l4xx_hal_cryp.h.