1 /**
2   ******************************************************************************
3   * @file    stm32l5xx_hal_cryp_ex.h
4   * @author  MCD Application Team
5   * @brief   Header file of CRYPEx HAL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2019 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32L5xx_HAL_CRYP_EX_H
21 #define STM32L5xx_HAL_CRYP_EX_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32l5xx_hal_def.h"
29 
30 /** @addtogroup STM32L5xx_HAL_Driver
31   * @{
32   */
33 
34 #if defined(AES)
35 
36 /** @defgroup CRYPEx CRYPEx
37   * @brief CRYP Extension HAL module driver.
38   * @{
39   */
40 
41 /* Exported types ------------------------------------------------------------*/
42 /* Exported constants --------------------------------------------------------*/
43 /* Private types -------------------------------------------------------------*/
44 /** @defgroup CRYPEx_Private_Types CRYPEx Private Types
45   * @{
46   */
47 
48 /**
49   * @}
50   */
51 
52 /* Private variables ---------------------------------------------------------*/
53 /** @defgroup CRYPEx_Private_Variables CRYPEx Private Variables
54   * @{
55   */
56 
57 /**
58   * @}
59   */
60 
61 /* Private constants ---------------------------------------------------------*/
62 /** @defgroup CRYPEx_Private_Constants CRYPEx Private Constants
63   * @{
64   */
65 
66 /**
67   * @}
68   */
69 
70 /* Private macros ------------------------------------------------------------*/
71 /** @defgroup CRYPEx_Private_Macros CRYPEx Private Macros
72   * @{
73   */
74 
75 /**
76  * @}
77  */
78 
79 /* Private functions ---------------------------------------------------------*/
80 /** @defgroup CRYPEx_Private_Functions CRYPEx Private Functions
81   * @{
82   */
83 
84 /**
85   * @}
86   */
87 
88 /* Exported functions --------------------------------------------------------*/
89 /** @defgroup CRYPEx_Exported_Functions CRYPEx Exported Functions
90   * @{
91   */
92 
93 /** @addtogroup CRYPEx_Exported_Functions_Group1
94   * @{
95   */
96 HAL_StatusTypeDef HAL_CRYPEx_AESGCM_GenerateAuthTAG(CRYP_HandleTypeDef *hcryp, uint32_t *AuthTag, uint32_t Timeout);
97 HAL_StatusTypeDef HAL_CRYPEx_AESCCM_GenerateAuthTAG(CRYP_HandleTypeDef *hcryp, uint32_t *AuthTag, uint32_t Timeout);
98 
99 /**
100   * @}
101   */
102 
103 /** @addtogroup CRYPEx_Exported_Functions_Group2
104   * @{
105   */
106 void  HAL_CRYPEx_EnableAutoKeyDerivation(CRYP_HandleTypeDef *hcryp);
107 void  HAL_CRYPEx_DisableAutoKeyDerivation(CRYP_HandleTypeDef *hcryp);
108 
109 /**
110   * @}
111   */
112 
113 /**
114   * @}
115   */
116 
117 /**
118   * @}
119   */
120 #endif /* AES */
121 
122 /**
123   * @}
124   */
125 
126 #ifdef __cplusplus
127 }
128 #endif
129 
130 #endif /* STM32L5xx_HAL_CRYP_EX_H */
131