STM32L443xx HAL User Manual
|
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 */