STM32L443xx HAL User Manual
stm32l4xx_hal_cryp_ex.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l4xx_hal_cryp_ex.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of CRYPEx HAL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file in
00013   * the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   ******************************************************************************
00016   */
00017 
00018 /* Define to prevent recursive inclusion -------------------------------------*/
00019 #ifndef STM32L4xx_HAL_CRYP_EX_H
00020 #define STM32L4xx_HAL_CRYP_EX_H
00021 
00022 #ifdef __cplusplus
00023  extern "C" {
00024 #endif
00025 
00026 #if defined(AES)
00027 
00028 /* Includes ------------------------------------------------------------------*/
00029 #include "stm32l4xx_hal_def.h"
00030 
00031 /** @addtogroup STM32L4xx_HAL_Driver
00032   * @{
00033   */
00034 
00035 /** @addtogroup CRYPEx
00036   * @{
00037   */
00038 
00039 /* Exported types ------------------------------------------------------------*/
00040 /* Exported constants --------------------------------------------------------*/
00041 /* Exported functions --------------------------------------------------------*/
00042 
00043 /** @addtogroup CRYPEx_Exported_Functions
00044   * @{
00045   */
00046 
00047 /** @addtogroup CRYPEx_Exported_Functions_Group1
00048   * @{
00049   */
00050 
00051 /* CallBack functions  ********************************************************/
00052 void HAL_CRYPEx_ComputationCpltCallback(CRYP_HandleTypeDef *hcryp);
00053 
00054 /**
00055   * @}
00056   */
00057 
00058 /** @addtogroup CRYPEx_Exported_Functions_Group2
00059   * @{
00060   */
00061 
00062 /* AES encryption/decryption processing functions  ****************************/
00063 HAL_StatusTypeDef HAL_CRYPEx_AES(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint16_t Size, uint8_t *pOutputData, uint32_t Timeout);
00064 HAL_StatusTypeDef HAL_CRYPEx_AES_IT(CRYP_HandleTypeDef *hcryp,  uint8_t *pInputData, uint16_t Size, uint8_t *pOutputData);
00065 HAL_StatusTypeDef HAL_CRYPEx_AES_DMA(CRYP_HandleTypeDef *hcryp,  uint8_t *pInputData, uint16_t Size, uint8_t *pOutputData);
00066 
00067 /* AES encryption/decryption/authentication processing functions  *************/
00068 HAL_StatusTypeDef HAL_CRYPEx_AES_Auth(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint64_t Size, uint8_t *pOutputData, uint32_t Timeout);
00069 HAL_StatusTypeDef HAL_CRYPEx_AES_Auth_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint64_t Size, uint8_t *pOutputData);
00070 HAL_StatusTypeDef HAL_CRYPEx_AES_Auth_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint64_t Size, uint8_t *pOutputData);
00071 
00072 /**
00073   * @}
00074   */
00075 
00076 /** @addtogroup CRYPEx_Exported_Functions_Group3
00077   * @{
00078   */
00079 
00080 /* AES suspension/resumption functions  ***************************************/
00081 void HAL_CRYPEx_Read_IVRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Output);
00082 void HAL_CRYPEx_Write_IVRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Input);
00083 void HAL_CRYPEx_Read_SuspendRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Output);
00084 void HAL_CRYPEx_Write_SuspendRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Input);
00085 void HAL_CRYPEx_Read_KeyRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Output, uint32_t KeySize);
00086 void HAL_CRYPEx_Write_KeyRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Input, uint32_t KeySize);
00087 void HAL_CRYPEx_Read_ControlRegister(CRYP_HandleTypeDef *hcryp, uint8_t* Output);
00088 void HAL_CRYPEx_Write_ControlRegister(CRYP_HandleTypeDef *hcryp, uint8_t* Input);
00089 void HAL_CRYPEx_ProcessSuspend(CRYP_HandleTypeDef *hcryp);
00090 
00091 /**
00092   * @}
00093   */
00094 
00095 
00096 /**
00097   * @}
00098   */
00099 
00100 /* Private functions -----------------------------------------------------------*/
00101 /** @addtogroup CRYPEx_Private_Functions CRYPEx Private Functions
00102   * @{
00103   */
00104 HAL_StatusTypeDef CRYP_AES_Auth_IT(CRYP_HandleTypeDef *hcryp);
00105 
00106 /**
00107   * @}
00108   */
00109 
00110 
00111 /**
00112   * @}
00113   */
00114 
00115 /**
00116   * @}
00117   */
00118 
00119 #endif /* AES */
00120 
00121 #ifdef __cplusplus
00122 }
00123 #endif
00124 
00125 #endif /* STM32L4xx_HAL_CRYP_EX_H */