001

Committer:
ganlikun
Date:
Sun Jun 12 14:02:44 2022 +0000
Revision:
0:13413ea9a877
00

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ganlikun 0:13413ea9a877 1 /**
ganlikun 0:13413ea9a877 2 ******************************************************************************
ganlikun 0:13413ea9a877 3 * @file stm32f4xx_hal_cryp_ex.h
ganlikun 0:13413ea9a877 4 * @author MCD Application Team
ganlikun 0:13413ea9a877 5 * @version V1.7.1
ganlikun 0:13413ea9a877 6 * @date 14-April-2017
ganlikun 0:13413ea9a877 7 * @brief Header file of CRYP HAL Extension module.
ganlikun 0:13413ea9a877 8 ******************************************************************************
ganlikun 0:13413ea9a877 9 * @attention
ganlikun 0:13413ea9a877 10 *
ganlikun 0:13413ea9a877 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
ganlikun 0:13413ea9a877 12 *
ganlikun 0:13413ea9a877 13 * Redistribution and use in source and binary forms, with or without modification,
ganlikun 0:13413ea9a877 14 * are permitted provided that the following conditions are met:
ganlikun 0:13413ea9a877 15 * 1. Redistributions of source code must retain the above copyright notice,
ganlikun 0:13413ea9a877 16 * this list of conditions and the following disclaimer.
ganlikun 0:13413ea9a877 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
ganlikun 0:13413ea9a877 18 * this list of conditions and the following disclaimer in the documentation
ganlikun 0:13413ea9a877 19 * and/or other materials provided with the distribution.
ganlikun 0:13413ea9a877 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
ganlikun 0:13413ea9a877 21 * may be used to endorse or promote products derived from this software
ganlikun 0:13413ea9a877 22 * without specific prior written permission.
ganlikun 0:13413ea9a877 23 *
ganlikun 0:13413ea9a877 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
ganlikun 0:13413ea9a877 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
ganlikun 0:13413ea9a877 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
ganlikun 0:13413ea9a877 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
ganlikun 0:13413ea9a877 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
ganlikun 0:13413ea9a877 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
ganlikun 0:13413ea9a877 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
ganlikun 0:13413ea9a877 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
ganlikun 0:13413ea9a877 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
ganlikun 0:13413ea9a877 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ganlikun 0:13413ea9a877 34 *
ganlikun 0:13413ea9a877 35 ******************************************************************************
ganlikun 0:13413ea9a877 36 */
ganlikun 0:13413ea9a877 37
ganlikun 0:13413ea9a877 38 /* Define to prevent recursive inclusion -------------------------------------*/
ganlikun 0:13413ea9a877 39 #ifndef __STM32F4xx_HAL_CRYP_EX_H
ganlikun 0:13413ea9a877 40 #define __STM32F4xx_HAL_CRYP_EX_H
ganlikun 0:13413ea9a877 41
ganlikun 0:13413ea9a877 42 #ifdef __cplusplus
ganlikun 0:13413ea9a877 43 extern "C" {
ganlikun 0:13413ea9a877 44 #endif
ganlikun 0:13413ea9a877 45
ganlikun 0:13413ea9a877 46 /* Includes ------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 47 #include "stm32f4xx_hal_def.h"
ganlikun 0:13413ea9a877 48
ganlikun 0:13413ea9a877 49
ganlikun 0:13413ea9a877 50 #if defined(CRYP)
ganlikun 0:13413ea9a877 51
ganlikun 0:13413ea9a877 52 /** @addtogroup STM32F4xx_HAL_Driver
ganlikun 0:13413ea9a877 53 * @{
ganlikun 0:13413ea9a877 54 */
ganlikun 0:13413ea9a877 55
ganlikun 0:13413ea9a877 56 /** @addtogroup CRYPEx
ganlikun 0:13413ea9a877 57 * @{
ganlikun 0:13413ea9a877 58 */
ganlikun 0:13413ea9a877 59
ganlikun 0:13413ea9a877 60 /* Exported types ------------------------------------------------------------*/
ganlikun 0:13413ea9a877 61 /* Exported constants --------------------------------------------------------*/
ganlikun 0:13413ea9a877 62
ganlikun 0:13413ea9a877 63 /** @defgroup CRYPEx_Exported_Constants CRYPEx Exported Constants
ganlikun 0:13413ea9a877 64 * @{
ganlikun 0:13413ea9a877 65 */
ganlikun 0:13413ea9a877 66
ganlikun 0:13413ea9a877 67 /** @defgroup CRYPEx_Exported_Constants_Group1 CRYP AlgoModeDirection
ganlikun 0:13413ea9a877 68 * @{
ganlikun 0:13413ea9a877 69 */
ganlikun 0:13413ea9a877 70 #define CRYP_CR_ALGOMODE_AES_GCM_ENCRYPT 0x00080000U
ganlikun 0:13413ea9a877 71 #define CRYP_CR_ALGOMODE_AES_GCM_DECRYPT 0x00080004U
ganlikun 0:13413ea9a877 72 #define CRYP_CR_ALGOMODE_AES_CCM_ENCRYPT 0x00080008U
ganlikun 0:13413ea9a877 73 #define CRYP_CR_ALGOMODE_AES_CCM_DECRYPT 0x0008000CU
ganlikun 0:13413ea9a877 74
ganlikun 0:13413ea9a877 75 /**
ganlikun 0:13413ea9a877 76 * @}
ganlikun 0:13413ea9a877 77 */
ganlikun 0:13413ea9a877 78
ganlikun 0:13413ea9a877 79 /** @defgroup CRYPEx_Exported_Constants_Group3 CRYP PhaseConfig
ganlikun 0:13413ea9a877 80 * @brief The phases are relevant only to AES-GCM and AES-CCM
ganlikun 0:13413ea9a877 81 * @{
ganlikun 0:13413ea9a877 82 */
ganlikun 0:13413ea9a877 83 #define CRYP_PHASE_INIT 0x00000000U
ganlikun 0:13413ea9a877 84 #define CRYP_PHASE_HEADER CRYP_CR_GCM_CCMPH_0
ganlikun 0:13413ea9a877 85 #define CRYP_PHASE_PAYLOAD CRYP_CR_GCM_CCMPH_1
ganlikun 0:13413ea9a877 86 #define CRYP_PHASE_FINAL CRYP_CR_GCM_CCMPH
ganlikun 0:13413ea9a877 87 /**
ganlikun 0:13413ea9a877 88 * @}
ganlikun 0:13413ea9a877 89 */
ganlikun 0:13413ea9a877 90
ganlikun 0:13413ea9a877 91 /**
ganlikun 0:13413ea9a877 92 * @}
ganlikun 0:13413ea9a877 93 */
ganlikun 0:13413ea9a877 94
ganlikun 0:13413ea9a877 95 /* Exported macro ------------------------------------------------------------*/
ganlikun 0:13413ea9a877 96 /** @defgroup CRYPEx_Exported_Macros CRYP Exported Macros
ganlikun 0:13413ea9a877 97 * @{
ganlikun 0:13413ea9a877 98 */
ganlikun 0:13413ea9a877 99
ganlikun 0:13413ea9a877 100 /**
ganlikun 0:13413ea9a877 101 * @brief Set the phase: Init, header, payload, final.
ganlikun 0:13413ea9a877 102 * This is relevant only for GCM and CCM modes.
ganlikun 0:13413ea9a877 103 * @param __HANDLE__: specifies the CRYP handle.
ganlikun 0:13413ea9a877 104 * @param __PHASE__: The phase.
ganlikun 0:13413ea9a877 105 * @retval None
ganlikun 0:13413ea9a877 106 */
ganlikun 0:13413ea9a877 107 #define __HAL_CRYP_SET_PHASE(__HANDLE__, __PHASE__) do{(__HANDLE__)->Instance->CR &= (uint32_t)(~CRYP_CR_GCM_CCMPH);\
ganlikun 0:13413ea9a877 108 (__HANDLE__)->Instance->CR |= (uint32_t)(__PHASE__);\
ganlikun 0:13413ea9a877 109 }while(0)
ganlikun 0:13413ea9a877 110
ganlikun 0:13413ea9a877 111 /**
ganlikun 0:13413ea9a877 112 * @}
ganlikun 0:13413ea9a877 113 */
ganlikun 0:13413ea9a877 114
ganlikun 0:13413ea9a877 115 /* Exported functions --------------------------------------------------------*/
ganlikun 0:13413ea9a877 116 /** @defgroup CRYPEx_Exported_Functions CRYPEx Exported Functions
ganlikun 0:13413ea9a877 117 * @{
ganlikun 0:13413ea9a877 118 */
ganlikun 0:13413ea9a877 119
ganlikun 0:13413ea9a877 120 /** @addtogroup CRYPEx_Exported_Functions_Group1
ganlikun 0:13413ea9a877 121 * @{
ganlikun 0:13413ea9a877 122 */
ganlikun 0:13413ea9a877 123
ganlikun 0:13413ea9a877 124 /* AES encryption/decryption using polling ***********************************/
ganlikun 0:13413ea9a877 125 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
ganlikun 0:13413ea9a877 126 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
ganlikun 0:13413ea9a877 127 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Finish(CRYP_HandleTypeDef *hcryp, uint32_t Size, uint8_t *AuthTag, uint32_t Timeout);
ganlikun 0:13413ea9a877 128 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
ganlikun 0:13413ea9a877 129 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
ganlikun 0:13413ea9a877 130 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Finish(CRYP_HandleTypeDef *hcryp, uint8_t *AuthTag, uint32_t Timeout);
ganlikun 0:13413ea9a877 131
ganlikun 0:13413ea9a877 132 /* AES encryption/decryption using interrupt *********************************/
ganlikun 0:13413ea9a877 133 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
ganlikun 0:13413ea9a877 134 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
ganlikun 0:13413ea9a877 135 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
ganlikun 0:13413ea9a877 136 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
ganlikun 0:13413ea9a877 137
ganlikun 0:13413ea9a877 138 /* AES encryption/decryption using DMA ***************************************/
ganlikun 0:13413ea9a877 139 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
ganlikun 0:13413ea9a877 140 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
ganlikun 0:13413ea9a877 141 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
ganlikun 0:13413ea9a877 142 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
ganlikun 0:13413ea9a877 143
ganlikun 0:13413ea9a877 144 /**
ganlikun 0:13413ea9a877 145 * @}
ganlikun 0:13413ea9a877 146 */
ganlikun 0:13413ea9a877 147
ganlikun 0:13413ea9a877 148 /** @addtogroup CRYPEx_Exported_Functions_Group2
ganlikun 0:13413ea9a877 149 * @{
ganlikun 0:13413ea9a877 150 */
ganlikun 0:13413ea9a877 151
ganlikun 0:13413ea9a877 152 void HAL_CRYPEx_GCMCCM_IRQHandler(CRYP_HandleTypeDef *hcryp);
ganlikun 0:13413ea9a877 153
ganlikun 0:13413ea9a877 154 /**
ganlikun 0:13413ea9a877 155 * @}
ganlikun 0:13413ea9a877 156 */
ganlikun 0:13413ea9a877 157
ganlikun 0:13413ea9a877 158 /**
ganlikun 0:13413ea9a877 159 * @}
ganlikun 0:13413ea9a877 160 */
ganlikun 0:13413ea9a877 161
ganlikun 0:13413ea9a877 162
ganlikun 0:13413ea9a877 163 /* Private types -------------------------------------------------------------*/
ganlikun 0:13413ea9a877 164 /** @defgroup CRYPEx_Private_Types CRYPEx Private Types
ganlikun 0:13413ea9a877 165 * @{
ganlikun 0:13413ea9a877 166 */
ganlikun 0:13413ea9a877 167
ganlikun 0:13413ea9a877 168 /**
ganlikun 0:13413ea9a877 169 * @}
ganlikun 0:13413ea9a877 170 */
ganlikun 0:13413ea9a877 171
ganlikun 0:13413ea9a877 172 /* Private variables ---------------------------------------------------------*/
ganlikun 0:13413ea9a877 173 /** @defgroup CRYPEx_Private_Variables CRYPEx Private Variables
ganlikun 0:13413ea9a877 174 * @{
ganlikun 0:13413ea9a877 175 */
ganlikun 0:13413ea9a877 176
ganlikun 0:13413ea9a877 177 /**
ganlikun 0:13413ea9a877 178 * @}
ganlikun 0:13413ea9a877 179 */
ganlikun 0:13413ea9a877 180
ganlikun 0:13413ea9a877 181 /* Private constants ---------------------------------------------------------*/
ganlikun 0:13413ea9a877 182 /** @defgroup CRYPEx_Private_Constants CRYPEx Private Constants
ganlikun 0:13413ea9a877 183 * @{
ganlikun 0:13413ea9a877 184 */
ganlikun 0:13413ea9a877 185
ganlikun 0:13413ea9a877 186 /**
ganlikun 0:13413ea9a877 187 * @}
ganlikun 0:13413ea9a877 188 */
ganlikun 0:13413ea9a877 189
ganlikun 0:13413ea9a877 190 /* Private macros ------------------------------------------------------------*/
ganlikun 0:13413ea9a877 191 /** @defgroup CRYPEx_Private_Macros CRYPEx Private Macros
ganlikun 0:13413ea9a877 192 * @{
ganlikun 0:13413ea9a877 193 */
ganlikun 0:13413ea9a877 194
ganlikun 0:13413ea9a877 195 /**
ganlikun 0:13413ea9a877 196 * @}
ganlikun 0:13413ea9a877 197 */
ganlikun 0:13413ea9a877 198
ganlikun 0:13413ea9a877 199 /* Private functions ---------------------------------------------------------*/
ganlikun 0:13413ea9a877 200 /** @defgroup CRYPEx_Private_Functions CRYPEx Private Functions
ganlikun 0:13413ea9a877 201 * @{
ganlikun 0:13413ea9a877 202 */
ganlikun 0:13413ea9a877 203
ganlikun 0:13413ea9a877 204 /**
ganlikun 0:13413ea9a877 205 * @}
ganlikun 0:13413ea9a877 206 */
ganlikun 0:13413ea9a877 207
ganlikun 0:13413ea9a877 208 #endif /* CRYP */
ganlikun 0:13413ea9a877 209
ganlikun 0:13413ea9a877 210 #if defined (AES)
ganlikun 0:13413ea9a877 211
ganlikun 0:13413ea9a877 212 /** @addtogroup CRYPEx_Exported_Functions
ganlikun 0:13413ea9a877 213 * @{
ganlikun 0:13413ea9a877 214 */
ganlikun 0:13413ea9a877 215
ganlikun 0:13413ea9a877 216 /** @addtogroup CRYPEx_Exported_Functions_Group1
ganlikun 0:13413ea9a877 217 * @{
ganlikun 0:13413ea9a877 218 */
ganlikun 0:13413ea9a877 219
ganlikun 0:13413ea9a877 220 /* CallBack functions ********************************************************/
ganlikun 0:13413ea9a877 221 void HAL_CRYPEx_ComputationCpltCallback(CRYP_HandleTypeDef *hcryp);
ganlikun 0:13413ea9a877 222
ganlikun 0:13413ea9a877 223 /**
ganlikun 0:13413ea9a877 224 * @}
ganlikun 0:13413ea9a877 225 */
ganlikun 0:13413ea9a877 226
ganlikun 0:13413ea9a877 227 /** @addtogroup CRYPEx_Exported_Functions_Group2
ganlikun 0:13413ea9a877 228 * @{
ganlikun 0:13413ea9a877 229 */
ganlikun 0:13413ea9a877 230
ganlikun 0:13413ea9a877 231 /* AES encryption/decryption processing functions ****************************/
ganlikun 0:13413ea9a877 232 HAL_StatusTypeDef HAL_CRYPEx_AES(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint16_t Size, uint8_t *pOutputData, uint32_t Timeout);
ganlikun 0:13413ea9a877 233 HAL_StatusTypeDef HAL_CRYPEx_AES_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint16_t Size, uint8_t *pOutputData);
ganlikun 0:13413ea9a877 234 HAL_StatusTypeDef HAL_CRYPEx_AES_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint16_t Size, uint8_t *pOutputData);
ganlikun 0:13413ea9a877 235
ganlikun 0:13413ea9a877 236 /* AES encryption/decryption/authentication processing functions *************/
ganlikun 0:13413ea9a877 237 HAL_StatusTypeDef HAL_CRYPEx_AES_Auth(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint64_t Size, uint8_t *pOutputData, uint32_t Timeout);
ganlikun 0:13413ea9a877 238 HAL_StatusTypeDef HAL_CRYPEx_AES_Auth_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint64_t Size, uint8_t *pOutputData);
ganlikun 0:13413ea9a877 239 HAL_StatusTypeDef HAL_CRYPEx_AES_Auth_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pInputData, uint64_t Size, uint8_t *pOutputData);
ganlikun 0:13413ea9a877 240
ganlikun 0:13413ea9a877 241 /**
ganlikun 0:13413ea9a877 242 * @}
ganlikun 0:13413ea9a877 243 */
ganlikun 0:13413ea9a877 244
ganlikun 0:13413ea9a877 245 /** @addtogroup CRYPEx_Exported_Functions_Group3
ganlikun 0:13413ea9a877 246 * @{
ganlikun 0:13413ea9a877 247 */
ganlikun 0:13413ea9a877 248
ganlikun 0:13413ea9a877 249 /* AES suspension/resumption functions ***************************************/
ganlikun 0:13413ea9a877 250 void HAL_CRYPEx_Read_IVRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Output);
ganlikun 0:13413ea9a877 251 void HAL_CRYPEx_Write_IVRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Input);
ganlikun 0:13413ea9a877 252 void HAL_CRYPEx_Read_SuspendRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Output);
ganlikun 0:13413ea9a877 253 void HAL_CRYPEx_Write_SuspendRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Input);
ganlikun 0:13413ea9a877 254 void HAL_CRYPEx_Read_KeyRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Output, uint32_t KeySize);
ganlikun 0:13413ea9a877 255 void HAL_CRYPEx_Write_KeyRegisters(CRYP_HandleTypeDef *hcryp, uint8_t* Input, uint32_t KeySize);
ganlikun 0:13413ea9a877 256 void HAL_CRYPEx_Read_ControlRegister(CRYP_HandleTypeDef *hcryp, uint8_t* Output);
ganlikun 0:13413ea9a877 257 void HAL_CRYPEx_Write_ControlRegister(CRYP_HandleTypeDef *hcryp, uint8_t* Input);
ganlikun 0:13413ea9a877 258 void HAL_CRYPEx_ProcessSuspend(CRYP_HandleTypeDef *hcryp);
ganlikun 0:13413ea9a877 259
ganlikun 0:13413ea9a877 260 /**
ganlikun 0:13413ea9a877 261 * @}
ganlikun 0:13413ea9a877 262 */
ganlikun 0:13413ea9a877 263
ganlikun 0:13413ea9a877 264
ganlikun 0:13413ea9a877 265 /**
ganlikun 0:13413ea9a877 266 * @}
ganlikun 0:13413ea9a877 267 */
ganlikun 0:13413ea9a877 268
ganlikun 0:13413ea9a877 269 /* Private functions -----------------------------------------------------------*/
ganlikun 0:13413ea9a877 270 /** @addtogroup CRYPEx_Private_Functions CRYPEx Private Functions
ganlikun 0:13413ea9a877 271 * @{
ganlikun 0:13413ea9a877 272 */
ganlikun 0:13413ea9a877 273 HAL_StatusTypeDef CRYP_AES_Auth_IT(CRYP_HandleTypeDef *hcryp);
ganlikun 0:13413ea9a877 274
ganlikun 0:13413ea9a877 275 /**
ganlikun 0:13413ea9a877 276 * @}
ganlikun 0:13413ea9a877 277 */
ganlikun 0:13413ea9a877 278
ganlikun 0:13413ea9a877 279 #endif /* AES */
ganlikun 0:13413ea9a877 280
ganlikun 0:13413ea9a877 281 /**
ganlikun 0:13413ea9a877 282 * @}
ganlikun 0:13413ea9a877 283 */
ganlikun 0:13413ea9a877 284
ganlikun 0:13413ea9a877 285 /**
ganlikun 0:13413ea9a877 286 * @}
ganlikun 0:13413ea9a877 287 */
ganlikun 0:13413ea9a877 288
ganlikun 0:13413ea9a877 289 #ifdef __cplusplus
ganlikun 0:13413ea9a877 290 }
ganlikun 0:13413ea9a877 291 #endif
ganlikun 0:13413ea9a877 292
ganlikun 0:13413ea9a877 293 #endif /* __STM32F4xx_HAL_CRYP_EX_H */
ganlikun 0:13413ea9a877 294
ganlikun 0:13413ea9a877 295 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
ganlikun 0:13413ea9a877 296