1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 /**
5  *******************************************************************************
6  * @file lac_hooks.h
7  *
8  * @defgroup LacHooks   Hooks
9  *
10  * @ingroup LacCommon
11  *
12  * Component Init/Shutdown functions. These are:
13  *  - an init function which is called during the intialisation sequence,
14  *  - a shutdown function which is called by the overall shutdown function,
15  *
16  ******************************************************************************/
17 
18 #ifndef LAC_HOOKS_H
19 #define LAC_HOOKS_H
20 
21 /*
22 ********************************************************************************
23 * Include public/global header files
24 ********************************************************************************
25 */
26 
27 #include "cpa.h"
28 
29 /*
30 ********************************************************************************
31 * Include private header files
32 ********************************************************************************
33 */
34 
35 /******************************************************************************/
36 
37 /**
38  *******************************************************************************
39  * @ingroup LacHooks
40  *      This function initialises the Large Number (ModExp and ModInv) module
41  *
42  * @description
43  *      This function clears the Large Number statistics
44  *
45  * @param[in] instanceHandle
46  *
47  ******************************************************************************/
48 CpaStatus LacLn_Init(CpaInstanceHandle instanceHandle);
49 
50 /**
51  *******************************************************************************
52  * @ingroup LacHooks
53  *      This function frees statistics array for Large Number module
54  *
55  * @description
56  *      This function frees statistics array for Large Number module
57  *
58  * @param[in] instanceHandle
59  *
60  ******************************************************************************/
61 void LacLn_StatsFree(CpaInstanceHandle instanceHandle);
62 
63 /**
64  *******************************************************************************
65  * @ingroup LacHooks
66  *      This function initialises the Prime module
67  *
68  * @description
69  *      This function clears the Prime statistics
70  *
71  * @param[in] instanceHandle
72  *
73  ******************************************************************************/
74 CpaStatus LacPrime_Init(CpaInstanceHandle instanceHandle);
75 
76 /**
77  *******************************************************************************
78  * @ingroup LacHooks
79  *      This function frees the Prime module statistics array
80  *
81  * @description
82  *      This function frees the Prime module statistics array
83  *
84  * @param[in] instanceHandle
85  *
86  ******************************************************************************/
87 void LacPrime_StatsFree(CpaInstanceHandle instanceHandle);
88 
89 /**
90  *******************************************************************************
91  * @ingroup LacHooks
92  *      This function initialises the DSA module
93  *
94  * @param[in] instanceHandle
95  *
96  * @description
97  *      This function clears the DSA statistics
98  *
99  ******************************************************************************/
100 CpaStatus LacDsa_Init(CpaInstanceHandle instanceHandle);
101 
102 /**
103  *******************************************************************************
104  * @ingroup LacHooks
105  *      This function frees the DSA module statistics array
106  *
107  * @param[in] instanceHandle
108  *
109  * @description
110  *      This function frees the DSA statistics array
111  *
112  ******************************************************************************/
113 void LacDsa_StatsFree(CpaInstanceHandle instanceHandle);
114 
115 /**
116  *******************************************************************************
117  * @ingroup LacHooks
118  *      This function initialises the Diffie Hellmann module
119  *
120  * @description
121  *      This function initialises the Diffie Hellman statistics
122  *
123  * @param[in] instanceHandle
124  *
125  ******************************************************************************/
126 CpaStatus LacDh_Init(CpaInstanceHandle instanceHandle);
127 
128 /**
129  *******************************************************************************
130  * @ingroup LacHooks
131  *      This function frees the Diffie Hellmann module statistics
132  *
133  * @description
134  *      This function frees the Diffie Hellmann module statistics
135  *
136  * @param[in] instanceHandle
137  *
138  ******************************************************************************/
139 void LacDh_StatsFree(CpaInstanceHandle instanceHandle);
140 
141 /**
142  ******************************************************************************
143  * @ingroup LacSymKey
144  *      This function registers the callback handlers to SSL/TLS and MGF,
145  *      allocates resources that are needed for the component and clears
146  *      the stats.
147  *
148  * @param[in] instanceHandle
149  *
150  * @retval CPA_STATUS_SUCCESS   Status Success
151  * @retval CPA_STATUS_FAIL      General failure
152  * @retval CPA_STATUS_RESOURCE  Resource allocation failure
153  *
154  *****************************************************************************/
155 CpaStatus LacSymKey_Init(CpaInstanceHandle instanceHandle);
156 
157 /**
158  ******************************************************************************
159  * @ingroup LacSymKey
160  *      This function frees up resources obtained by the key gen component
161  *      and clears the stats
162  *
163  * @param[in] instanceHandle
164  *
165  * @retval CPA_STATUS_SUCCESS   Status Success
166  *
167  *****************************************************************************/
168 CpaStatus LacSymKey_Shutdown(CpaInstanceHandle instanceHandle);
169 
170 /**
171  *******************************************************************************
172  * @ingroup LacHooks
173  *      This function initialises the RSA module
174  *
175  * @description
176  *      This function clears the RSA statistics
177  *
178  * @param[in] instanceHandle
179  *
180  ******************************************************************************/
181 CpaStatus LacRsa_Init(CpaInstanceHandle instanceHandle);
182 
183 /**
184  *******************************************************************************
185  * @ingroup LacHooks
186  *      This function frees the RSA module statistics
187  *
188  * @description
189  *      This function frees the RSA module statistics
190  *
191  * @param[in] instanceHandle
192  *
193  ******************************************************************************/
194 void LacRsa_StatsFree(CpaInstanceHandle instanceHandle);
195 
196 /**
197  *******************************************************************************
198  * @ingroup LacHooks
199  *      This function initialises the EC module
200  *
201  * @description
202  *      This function clears the EC statistics
203  *
204  * @param[in] instanceHandle
205  *
206  ******************************************************************************/
207 CpaStatus LacEc_Init(CpaInstanceHandle instanceHandle);
208 
209 /**
210  *******************************************************************************
211  * @ingroup LacHooks
212  *      This function frees the EC module stats array
213  *
214  * @description
215  *      This function frees the EC module stats array
216  *
217  * @param[in] instanceHandle
218  *
219  ******************************************************************************/
220 void LacEc_StatsFree(CpaInstanceHandle instanceHandle);
221 
222 /**
223 *******************************************************************************
224  * @ingroup LacSymNrbg
225  *      Initialise the NRBG module
226  *
227  * @description
228  *     This function registers NRBG callback handlers.
229  *
230  *
231  *****************************************************************************/
232 void LacSymNrbg_Init(void);
233 
234 #endif /* LAC_HOOKS_H */
235