1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 /**
5  * @file icp_qat_fw_mmp.h
6  * @defgroup icp_qat_fw_mmp ICP QAT FW MMP Processing Definitions
7  * @ingroup icp_qat_fw
8  * $Revision: 0.1 $
9  * @brief
10  *      This file documents the external interfaces that the QAT FW running
11  *      on the QAT Acceleration Engine provides to clients wanting to
12  *      accelerate crypto assymetric applications
13  */
14 
15 #ifndef __ICP_QAT_FW_MMP__
16 #define __ICP_QAT_FW_MMP__
17 
18 /**************************************************************************
19  * Include local header files
20  **************************************************************************
21  */
22 
23 #include "icp_qat_fw.h"
24 
25 /**************************************************************************
26  * Local constants
27  **************************************************************************
28  */
29 #define ICP_QAT_FW_PKE_INPUT_COUNT_MAX 7
30 /**< @ingroup icp_qat_fw_pke
31  * Maximum number of input paramaters in all PKE request */
32 #define ICP_QAT_FW_PKE_OUTPUT_COUNT_MAX 5
33 /**< @ingroup icp_qat_fw_pke
34  * Maximum number of output paramaters in all PKE request */
35 
36 /**
37  * @ingroup icp_qat_fw_mmp
38  * @brief
39  *    Input parameter list for Initialisation sequence ,
40  *      to be used when icp_qat_fw_pke_request_s::functionalityId is #PKE_INIT.
41  */
42 typedef struct icp_qat_fw_mmp_init_input_s {
43 	uint64_t z; /**< zeroed quadword (1 qwords)*/
44 } icp_qat_fw_mmp_init_input_t;
45 
46 /**
47  * @ingroup icp_qat_fw_mmp
48  * @brief
49  *    Input parameter list for Diffie-Hellman Modular exponentiation base 2 for
50  * 768-bit numbers ,
51  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
52  * #PKE_DH_G2_768.
53  */
54 typedef struct icp_qat_fw_mmp_dh_g2_768_input_s {
55 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^768 (12 qwords)*/
56 	uint64_t m; /**< modulus   &ge; 2^767 and &lt; 2^768 (12 qwords)*/
57 } icp_qat_fw_mmp_dh_g2_768_input_t;
58 
59 /**
60  * @ingroup icp_qat_fw_mmp
61  * @brief
62  *    Input parameter list for Diffie-Hellman Modular exponentiation for 768-bit
63  * numbers ,
64  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
65  * #PKE_DH_768.
66  */
67 typedef struct icp_qat_fw_mmp_dh_768_input_s {
68 	uint64_t g; /**< base &ge; 0 and &lt; 2^768 (12 qwords)*/
69 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^768 (12 qwords)*/
70 	uint64_t m; /**< modulus   &ge; 2^767 and &lt; 2^768 (12 qwords)*/
71 } icp_qat_fw_mmp_dh_768_input_t;
72 
73 /**
74  * @ingroup icp_qat_fw_mmp
75  * @brief
76  *    Input parameter list for Diffie-Hellman Modular exponentiation base 2 for
77  * 1024-bit numbers ,
78  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
79  * #PKE_DH_G2_1024.
80  */
81 typedef struct icp_qat_fw_mmp_dh_g2_1024_input_s {
82 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^1024 (16 qwords)*/
83 	uint64_t m; /**< modulus   &ge; 2^1023 and &lt; 2^1024 (16 qwords)*/
84 } icp_qat_fw_mmp_dh_g2_1024_input_t;
85 
86 /**
87  * @ingroup icp_qat_fw_mmp
88  * @brief
89  *    Input parameter list for Diffie-Hellman Modular exponentiation for
90  * 1024-bit numbers ,
91  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
92  * #PKE_DH_1024.
93  */
94 typedef struct icp_qat_fw_mmp_dh_1024_input_s {
95 	uint64_t g; /**< base &ge; 0 and &lt; 2^1024 (16 qwords)*/
96 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^1024 (16 qwords)*/
97 	uint64_t m; /**< modulus   &ge; 2^1023 and &lt; 2^1024 (16 qwords)*/
98 } icp_qat_fw_mmp_dh_1024_input_t;
99 
100 /**
101  * @ingroup icp_qat_fw_mmp
102  * @brief
103  *    Input parameter list for Diffie-Hellman Modular exponentiation base 2 for
104  * 1536-bit numbers ,
105  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
106  * #PKE_DH_G2_1536.
107  */
108 typedef struct icp_qat_fw_mmp_dh_g2_1536_input_s {
109 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^1536 (24 qwords)*/
110 	uint64_t m; /**< modulus   &ge; 2^1535 and &lt; 2^1536 (24 qwords)*/
111 } icp_qat_fw_mmp_dh_g2_1536_input_t;
112 
113 /**
114  * @ingroup icp_qat_fw_mmp
115  * @brief
116  *    Input parameter list for Diffie-Hellman Modular exponentiation for
117  * 1536-bit numbers ,
118  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
119  * #PKE_DH_1536.
120  */
121 typedef struct icp_qat_fw_mmp_dh_1536_input_s {
122 	uint64_t g; /**< base &ge; 0 and &lt; 2^1536 (24 qwords)*/
123 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^1536 (24 qwords)*/
124 	uint64_t m; /**< modulus   &ge; 2^1535 and &lt; 2^1536 (24 qwords)*/
125 } icp_qat_fw_mmp_dh_1536_input_t;
126 
127 /**
128  * @ingroup icp_qat_fw_mmp
129  * @brief
130  *    Input parameter list for Diffie-Hellman Modular exponentiation base 2 for
131  * 2048-bit numbers ,
132  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
133  * #PKE_DH_G2_2048.
134  */
135 typedef struct icp_qat_fw_mmp_dh_g2_2048_input_s {
136 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^2048 (32 qwords)*/
137 	uint64_t m; /**< modulus  &ge; 2^2047 and &lt; 2^2048 (32 qwords)*/
138 } icp_qat_fw_mmp_dh_g2_2048_input_t;
139 
140 /**
141  * @ingroup icp_qat_fw_mmp
142  * @brief
143  *    Input parameter list for Diffie-Hellman Modular exponentiation for
144  * 2048-bit numbers ,
145  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
146  * #PKE_DH_2048.
147  */
148 typedef struct icp_qat_fw_mmp_dh_2048_input_s {
149 	uint64_t g; /**< base &ge; 0 and &lt; 2^2048 (32 qwords)*/
150 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^2048 (32 qwords)*/
151 	uint64_t m; /**< modulus   &ge; 2^2047 and &lt; 2^2048 (32 qwords)*/
152 } icp_qat_fw_mmp_dh_2048_input_t;
153 
154 /**
155  * @ingroup icp_qat_fw_mmp
156  * @brief
157  *    Input parameter list for Diffie-Hellman Modular exponentiation base 2 for
158  * 3072-bit numbers ,
159  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
160  * #PKE_DH_G2_3072.
161  */
162 typedef struct icp_qat_fw_mmp_dh_g2_3072_input_s {
163 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^3072 (48 qwords)*/
164 	uint64_t m; /**< modulus  &ge; 2^3071 and &lt; 2^3072 (48 qwords)*/
165 } icp_qat_fw_mmp_dh_g2_3072_input_t;
166 
167 /**
168  * @ingroup icp_qat_fw_mmp
169  * @brief
170  *    Input parameter list for Diffie-Hellman Modular exponentiation for
171  * 3072-bit numbers ,
172  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
173  * #PKE_DH_3072.
174  */
175 typedef struct icp_qat_fw_mmp_dh_3072_input_s {
176 	uint64_t g; /**< base &ge; 0 and &lt; 2^3072 (48 qwords)*/
177 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^3072 (48 qwords)*/
178 	uint64_t m; /**< modulus  &ge; 2^3071 and &lt; 2^3072 (48 qwords)*/
179 } icp_qat_fw_mmp_dh_3072_input_t;
180 
181 /**
182  * @ingroup icp_qat_fw_mmp
183  * @brief
184  *    Input parameter list for Diffie-Hellman Modular exponentiation base 2 for
185  * 4096-bit numbers ,
186  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
187  * #PKE_DH_G2_4096.
188  */
189 typedef struct icp_qat_fw_mmp_dh_g2_4096_input_s {
190 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^4096 (64 qwords)*/
191 	uint64_t m; /**< modulus   &ge; 2^4095 and &lt; 2^4096 (64 qwords)*/
192 } icp_qat_fw_mmp_dh_g2_4096_input_t;
193 
194 /**
195  * @ingroup icp_qat_fw_mmp
196  * @brief
197  *    Input parameter list for Diffie-Hellman Modular exponentiation for
198  * 4096-bit numbers ,
199  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
200  * #PKE_DH_4096.
201  */
202 typedef struct icp_qat_fw_mmp_dh_4096_input_s {
203 	uint64_t g; /**< base &ge; 0 and &lt; 2^4096 (64 qwords)*/
204 	uint64_t e; /**< exponent &gt; 0 and &lt; 2^4096 (64 qwords)*/
205 	uint64_t m; /**< modulus   &ge; 2^4095 and &lt; 2^4096 (64 qwords)*/
206 } icp_qat_fw_mmp_dh_4096_input_t;
207 
208 /**
209  * @ingroup icp_qat_fw_mmp
210  * @brief
211  *    Input parameter list for RSA 512 key generation first form ,
212  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
213  * #PKE_RSA_KP1_512.
214  */
215 typedef struct icp_qat_fw_mmp_rsa_kp1_512_input_s {
216 	uint64_t
217 	    p; /**< RSA parameter, prime, &nbsp;2 &lt; p &lt; 2^256 (4 qwords)*/
218 	uint64_t
219 	    q; /**< RSA parameter, prime, &nbsp;2 &lt; q &lt; 2^256 (4 qwords)*/
220 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
221 		       &nbsp;with GCD(e, p-1, q-1) = 1 (8 qwords)*/
222 } icp_qat_fw_mmp_rsa_kp1_512_input_t;
223 
224 /**
225  * @ingroup icp_qat_fw_mmp
226  * @brief
227  *    Input parameter list for RSA 512 key generation second form ,
228  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
229  * #PKE_RSA_KP2_512.
230  */
231 typedef struct icp_qat_fw_mmp_rsa_kp2_512_input_s {
232 	uint64_t
233 	    p; /**< RSA parameter, prime, &nbsp;2^255 &lt; p &lt; 2^256 (4
234 		  qwords)*/
235 	uint64_t
236 	    q;      /**< RSA parameter, prime, &nbsp;2^255 &lt; q &lt; 2^256 (4
237 		       qwords)*/
238 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
239 		       &nbsp;with GCD(e, p-1, q-1) = 1 (8 qwords)*/
240 } icp_qat_fw_mmp_rsa_kp2_512_input_t;
241 
242 /**
243  * @ingroup icp_qat_fw_mmp
244  * @brief
245  *    Input parameter list for RSA 512 Encryption ,
246  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
247  * #PKE_RSA_EP_512.
248  */
249 typedef struct icp_qat_fw_mmp_rsa_ep_512_input_s {
250 	uint64_t m; /**< message representative, &lt; n (8 qwords)*/
251 	uint64_t e; /**< RSA public key, &ge; 3 and &le; n-1 (8 qwords)*/
252 	uint64_t n; /**< RSA key, &gt; 0 and &lt; 2^256 (8 qwords)*/
253 } icp_qat_fw_mmp_rsa_ep_512_input_t;
254 
255 /**
256  * @ingroup icp_qat_fw_mmp
257  * @brief
258  *    Input parameter list for RSA 512 Decryption ,
259  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
260  * #PKE_RSA_DP1_512.
261  */
262 typedef struct icp_qat_fw_mmp_rsa_dp1_512_input_s {
263 	uint64_t c; /**< cipher text representative, &lt; n (8 qwords)*/
264 	uint64_t d; /**< RSA private key (RSADP first form) (8 qwords)*/
265 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^256 (8 qwords)*/
266 } icp_qat_fw_mmp_rsa_dp1_512_input_t;
267 
268 /**
269  * @ingroup icp_qat_fw_mmp
270  * @brief
271  *    Input parameter list for RSA 1024 Decryption with CRT ,
272  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
273  * #PKE_RSA_DP2_512.
274  */
275 typedef struct icp_qat_fw_mmp_rsa_dp2_512_input_s {
276 	uint64_t c; /**< cipher text representative, &lt; (p*q) (8 qwords)*/
277 	uint64_t
278 	    p; /**< RSA parameter, prime, &nbsp;2^255 &lt; p &lt; 2^256 (4
279 		  qwords)*/
280 	uint64_t
281 	    q;       /**< RSA parameter, prime, &nbsp;2^255 &lt; q &lt; 2^256 (4
282 			qwords)*/
283 	uint64_t dp; /**< RSA private key, 0 &lt; dp &lt; p-1 (4 qwords)*/
284 	uint64_t dq; /**< RSA private key 0 &lt; dq &lt; q-1 (4 qwords)*/
285 	uint64_t qinv; /**< RSA private key 0 &lt; qInv &lt; p (4 qwords)*/
286 } icp_qat_fw_mmp_rsa_dp2_512_input_t;
287 
288 /**
289  * @ingroup icp_qat_fw_mmp
290  * @brief
291  *    Input parameter list for RSA 1024 key generation first form ,
292  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
293  * #PKE_RSA_KP1_1024.
294  */
295 typedef struct icp_qat_fw_mmp_rsa_kp1_1024_input_s {
296 	uint64_t
297 	    p; /**< RSA parameter, prime, &nbsp;2 &lt; p &lt; 2^512 (8 qwords)*/
298 	uint64_t
299 	    q; /**< RSA parameter, prime, &nbsp;2 &lt; q &lt; 2^512 (8 qwords)*/
300 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
301 		       &nbsp;with GCD(e, p-1, q-1) = 1 (16 qwords)*/
302 } icp_qat_fw_mmp_rsa_kp1_1024_input_t;
303 
304 /**
305  * @ingroup icp_qat_fw_mmp
306  * @brief
307  *    Input parameter list for RSA 1024 key generation second form ,
308  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
309  * #PKE_RSA_KP2_1024.
310  */
311 typedef struct icp_qat_fw_mmp_rsa_kp2_1024_input_s {
312 	uint64_t
313 	    p; /**< RSA parameter, prime, &nbsp;2^511 &lt; p &lt; 2^512 (8
314 		  qwords)*/
315 	uint64_t
316 	    q;      /**< RSA parameter, prime, &nbsp;2^511 &lt; q &lt; 2^512 (8
317 		       qwords)*/
318 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
319 		       &nbsp;with GCD(e, p-1, q-1) = 1 (16 qwords)*/
320 } icp_qat_fw_mmp_rsa_kp2_1024_input_t;
321 
322 /**
323  * @ingroup icp_qat_fw_mmp
324  * @brief
325  *    Input parameter list for RSA 1024 Encryption ,
326  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
327  * #PKE_RSA_EP_1024.
328  */
329 typedef struct icp_qat_fw_mmp_rsa_ep_1024_input_s {
330 	uint64_t m; /**< message representative, &lt; n (16 qwords)*/
331 	uint64_t e; /**< RSA public key, &ge; 3 and &le; n-1 (16 qwords)*/
332 	uint64_t n; /**< RSA key, &gt; 0 and &lt; 2^1024 (16 qwords)*/
333 } icp_qat_fw_mmp_rsa_ep_1024_input_t;
334 
335 /**
336  * @ingroup icp_qat_fw_mmp
337  * @brief
338  *    Input parameter list for RSA 1024 Decryption ,
339  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
340  * #PKE_RSA_DP1_1024.
341  */
342 typedef struct icp_qat_fw_mmp_rsa_dp1_1024_input_s {
343 	uint64_t c; /**< cipher text representative, &lt; n (16 qwords)*/
344 	uint64_t d; /**< RSA private key (RSADP first form) (16 qwords)*/
345 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^1024 (16 qwords)*/
346 } icp_qat_fw_mmp_rsa_dp1_1024_input_t;
347 
348 /**
349  * @ingroup icp_qat_fw_mmp
350  * @brief
351  *    Input parameter list for RSA 1024 Decryption with CRT ,
352  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
353  * #PKE_RSA_DP2_1024.
354  */
355 typedef struct icp_qat_fw_mmp_rsa_dp2_1024_input_s {
356 	uint64_t c; /**< cipher text representative, &lt; (p*q) (16 qwords)*/
357 	uint64_t
358 	    p; /**< RSA parameter, prime, &nbsp;2^511 &lt; p &lt; 2^512 (8
359 		  qwords)*/
360 	uint64_t
361 	    q;       /**< RSA parameter, prime, &nbsp;2^511 &lt; q &lt; 2^512 (8
362 			qwords)*/
363 	uint64_t dp; /**< RSA private key, 0 &lt; dp &lt; p-1 (8 qwords)*/
364 	uint64_t dq; /**< RSA private key 0 &lt; dq &lt; q-1 (8 qwords)*/
365 	uint64_t qinv; /**< RSA private key 0 &lt; qInv &lt; p (8 qwords)*/
366 } icp_qat_fw_mmp_rsa_dp2_1024_input_t;
367 
368 /**
369  * @ingroup icp_qat_fw_mmp
370  * @brief
371  *    Input parameter list for RSA 1536 key generation first form ,
372  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
373  * #PKE_RSA_KP1_1536.
374  */
375 typedef struct icp_qat_fw_mmp_rsa_kp1_1536_input_s {
376 	uint64_t p; /**< RSA parameter, prime, &nbsp;2 &lt; p &lt; 2^768 (12
377 		       qwords)*/
378 	uint64_t q; /**< RSA parameter, prime, &nbsp;2 &lt; q &lt; 2^768 (12
379 		       qwords)*/
380 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
381 		       &nbsp;with GCD(e, p-1, q-1) = 1 (24 qwords)*/
382 } icp_qat_fw_mmp_rsa_kp1_1536_input_t;
383 
384 /**
385  * @ingroup icp_qat_fw_mmp
386  * @brief
387  *    Input parameter list for RSA 1536 key generation second form ,
388  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
389  * #PKE_RSA_KP2_1536.
390  */
391 typedef struct icp_qat_fw_mmp_rsa_kp2_1536_input_s {
392 	uint64_t
393 	    p; /**< RSA parameter, prime, &nbsp;2^767 &lt; p &lt; 2^768 (12
394 		  qwords)*/
395 	uint64_t
396 	    q;      /**< RSA parameter, prime, &nbsp;2^767 &lt; q &lt; 2^768 (12
397 		       qwords)*/
398 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
399 		       &nbsp;with GCD(e, p-1, q-1) = 1 (24 qwords)*/
400 } icp_qat_fw_mmp_rsa_kp2_1536_input_t;
401 
402 /**
403  * @ingroup icp_qat_fw_mmp
404  * @brief
405  *    Input parameter list for RSA 1536 Encryption ,
406  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
407  * #PKE_RSA_EP_1536.
408  */
409 typedef struct icp_qat_fw_mmp_rsa_ep_1536_input_s {
410 	uint64_t m; /**< message representative, &lt; n (24 qwords)*/
411 	uint64_t e; /**< RSA public key, &ge; 3 and &le; (p*q)-1 (24 qwords)*/
412 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^1536 (24 qwords)*/
413 } icp_qat_fw_mmp_rsa_ep_1536_input_t;
414 
415 /**
416  * @ingroup icp_qat_fw_mmp
417  * @brief
418  *    Input parameter list for RSA 1536 Decryption ,
419  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
420  * #PKE_RSA_DP1_1536.
421  */
422 typedef struct icp_qat_fw_mmp_rsa_dp1_1536_input_s {
423 	uint64_t c; /**< cipher text representative, &lt; n (24 qwords)*/
424 	uint64_t d; /**< RSA private key (24 qwords)*/
425 	uint64_t n; /**< RSA key, &gt; 0 and &lt; 2^1536 (24 qwords)*/
426 } icp_qat_fw_mmp_rsa_dp1_1536_input_t;
427 
428 /**
429  * @ingroup icp_qat_fw_mmp
430  * @brief
431  *    Input parameter list for RSA 1536 Decryption with CRT ,
432  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
433  * #PKE_RSA_DP2_1536.
434  */
435 typedef struct icp_qat_fw_mmp_rsa_dp2_1536_input_s {
436 	uint64_t c; /**< cipher text representative, &lt; (p*q) (24 qwords)*/
437 	uint64_t
438 	    p; /**< RSA parameter, prime, &nbsp;2^767 &lt; p &lt; 2^768 (12
439 		  qwords)*/
440 	uint64_t
441 	    q; /**< RSA parameter, prime, &nbsp;2^767 &lt; p &lt; 2^768 (12
442 		  qwords)*/
443 	uint64_t dp;   /**< RSA private key, 0 &lt; dp &lt; p-1 (12 qwords)*/
444 	uint64_t dq;   /**< RSA private key, 0 &lt; dq &lt; q-1 (12 qwords)*/
445 	uint64_t qinv; /**< RSA private key, 0 &lt; qInv &lt; p (12 qwords)*/
446 } icp_qat_fw_mmp_rsa_dp2_1536_input_t;
447 
448 /**
449  * @ingroup icp_qat_fw_mmp
450  * @brief
451  *    Input parameter list for RSA 2048 key generation first form ,
452  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
453  * #PKE_RSA_KP1_2048.
454  */
455 typedef struct icp_qat_fw_mmp_rsa_kp1_2048_input_s {
456 	uint64_t p; /**< RSA parameter, prime, &nbsp;2 &lt; p &lt; 2^1024 (16
457 		       qwords)*/
458 	uint64_t q; /**< RSA parameter, prime, &nbsp;2 &lt; q &lt; 2^1024 (16
459 		       qwords)*/
460 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
461 		       &nbsp;with GCD(e, p-1, q-1) = 1 (32 qwords)*/
462 } icp_qat_fw_mmp_rsa_kp1_2048_input_t;
463 
464 /**
465  * @ingroup icp_qat_fw_mmp
466  * @brief
467  *    Input parameter list for RSA 2048 key generation second form ,
468  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
469  * #PKE_RSA_KP2_2048.
470  */
471 typedef struct icp_qat_fw_mmp_rsa_kp2_2048_input_s {
472 	uint64_t p; /**< RSA parameter, prime, &nbsp;2^1023 &lt; p &lt; 2^1024
473 		       (16 qwords)*/
474 	uint64_t q; /**< RSA parameter, prime, &nbsp;2^1023 &lt; q &lt; 2^1024
475 		       (16 qwords)*/
476 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
477 		       &nbsp;with GCD(e, p-1, q-1) = 1 (32 qwords)*/
478 } icp_qat_fw_mmp_rsa_kp2_2048_input_t;
479 
480 /**
481  * @ingroup icp_qat_fw_mmp
482  * @brief
483  *    Input parameter list for RSA 2048 Encryption ,
484  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
485  * #PKE_RSA_EP_2048.
486  */
487 typedef struct icp_qat_fw_mmp_rsa_ep_2048_input_s {
488 	uint64_t m; /**< message representative, &lt; n (32 qwords)*/
489 	uint64_t e; /**< RSA public key, &ge; 3 and &le; n-1 (32 qwords)*/
490 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^2048 (32 qwords)*/
491 } icp_qat_fw_mmp_rsa_ep_2048_input_t;
492 
493 /**
494  * @ingroup icp_qat_fw_mmp
495  * @brief
496  *    Input parameter list for RSA 2048 Decryption ,
497  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
498  * #PKE_RSA_DP1_2048.
499  */
500 typedef struct icp_qat_fw_mmp_rsa_dp1_2048_input_s {
501 	uint64_t c; /**< cipher text representative, &lt; n (32 qwords)*/
502 	uint64_t d; /**< RSA private key (32 qwords)*/
503 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^2048 (32 qwords)*/
504 } icp_qat_fw_mmp_rsa_dp1_2048_input_t;
505 
506 /**
507  * @ingroup icp_qat_fw_mmp
508  * @brief
509  *    Input parameter list for RSA 2048 Decryption with CRT ,
510  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
511  * #PKE_RSA_DP2_2048.
512  */
513 typedef struct icp_qat_fw_mmp_rsa_dp2_2048_input_s {
514 	uint64_t c;  /**< cipher text representative, &lt; (p*q) (32 qwords)*/
515 	uint64_t p;  /**< RSA parameter, prime, &nbsp;2^1023 &lt; p &lt; 2^1024
516 			(16 qwords)*/
517 	uint64_t q;  /**< RSA parameter, prime, &nbsp;2^1023 &lt; q &lt; 2^1024
518 			(16 qwords)*/
519 	uint64_t dp; /**< RSA private key, 0 &lt; dp &lt; p-1 (16 qwords)*/
520 	uint64_t dq; /**< RSA private key, 0 &lt; dq &lt; q-1 (16 qwords)*/
521 	uint64_t qinv; /**< RSA private key, 0 &lt; qInv &lt; p (16 qwords)*/
522 } icp_qat_fw_mmp_rsa_dp2_2048_input_t;
523 
524 /**
525  * @ingroup icp_qat_fw_mmp
526  * @brief
527  *    Input parameter list for RSA 3072 key generation first form ,
528  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
529  * #PKE_RSA_KP1_3072.
530  */
531 typedef struct icp_qat_fw_mmp_rsa_kp1_3072_input_s {
532 	uint64_t p; /**< RSA parameter, prime, &nbsp;2 &lt; p &lt; 2^1536 (24
533 		       qwords)*/
534 	uint64_t q; /**< RSA parameter, prime, &nbsp;2 &lt; q &lt; 2^1536 (24
535 		       qwords)*/
536 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
537 		       &nbsp;with GCD(e, p-1, q-1) = 1 (48 qwords)*/
538 } icp_qat_fw_mmp_rsa_kp1_3072_input_t;
539 
540 /**
541  * @ingroup icp_qat_fw_mmp
542  * @brief
543  *    Input parameter list for RSA 3072 key generation second form ,
544  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
545  * #PKE_RSA_KP2_3072.
546  */
547 typedef struct icp_qat_fw_mmp_rsa_kp2_3072_input_s {
548 	uint64_t p; /**< RSA parameter, prime, &nbsp;2^1535 &lt; p &lt; 2^1536
549 		       (24 qwords)*/
550 	uint64_t q; /**< RSA parameter, prime, &nbsp;2^1535 &lt; q &lt; 2^1536
551 		       (24 qwords)*/
552 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
553 		       &nbsp;with GCD(e, p-1, q-1) = 1 (48 qwords)*/
554 } icp_qat_fw_mmp_rsa_kp2_3072_input_t;
555 
556 /**
557  * @ingroup icp_qat_fw_mmp
558  * @brief
559  *    Input parameter list for RSA 3072 Encryption ,
560  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
561  * #PKE_RSA_EP_3072.
562  */
563 typedef struct icp_qat_fw_mmp_rsa_ep_3072_input_s {
564 	uint64_t m; /**< message representative, &lt; n (48 qwords)*/
565 	uint64_t e; /**< RSA public key, &ge; 3 and &le; n-1 (48 qwords)*/
566 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^3072 (48 qwords)*/
567 } icp_qat_fw_mmp_rsa_ep_3072_input_t;
568 
569 /**
570  * @ingroup icp_qat_fw_mmp
571  * @brief
572  *    Input parameter list for RSA 3072 Decryption ,
573  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
574  * #PKE_RSA_DP1_3072.
575  */
576 typedef struct icp_qat_fw_mmp_rsa_dp1_3072_input_s {
577 	uint64_t c; /**< cipher text representative, &lt; n (48 qwords)*/
578 	uint64_t d; /**< RSA private key (48 qwords)*/
579 	uint64_t n; /**< RSA key &gt; 0 and &lt; 2^3072 (48 qwords)*/
580 } icp_qat_fw_mmp_rsa_dp1_3072_input_t;
581 
582 /**
583  * @ingroup icp_qat_fw_mmp
584  * @brief
585  *    Input parameter list for RSA 3072 Decryption with CRT ,
586  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
587  * #PKE_RSA_DP2_3072.
588  */
589 typedef struct icp_qat_fw_mmp_rsa_dp2_3072_input_s {
590 	uint64_t c;  /**< cipher text representative, &lt; (p*q) (48 qwords)*/
591 	uint64_t p;  /**< RSA parameter, prime, &nbsp;2^1535 &lt; p &lt; 2^1536
592 			(24 qwords)*/
593 	uint64_t q;  /**< RSA parameter, prime, &nbsp;2^1535 &lt; q &lt; 2^1536
594 			(24 qwords)*/
595 	uint64_t dp; /**< RSA private key, 0 &lt; dp &lt; p-1 (24 qwords)*/
596 	uint64_t dq; /**< RSA private key, 0 &lt; dq &lt; q-1 (24 qwords)*/
597 	uint64_t qinv; /**< RSA private key, 0 &lt; qInv &lt; p (24 qwords)*/
598 } icp_qat_fw_mmp_rsa_dp2_3072_input_t;
599 
600 /**
601  * @ingroup icp_qat_fw_mmp
602  * @brief
603  *    Input parameter list for RSA 4096 key generation first form ,
604  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
605  * #PKE_RSA_KP1_4096.
606  */
607 typedef struct icp_qat_fw_mmp_rsa_kp1_4096_input_s {
608 	uint64_t p; /**< RSA parameter, prime, &nbsp;2 &lt; p &lt; 2^2048 (32
609 		       qwords)*/
610 	uint64_t q; /**< RSA parameter, prime, &nbsp;2 &lt; q &lt; 2^2048 (32
611 		       qwords)*/
612 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
613 		       &nbsp;with GCD(e, p-1, q-1) = 1 (64 qwords)*/
614 } icp_qat_fw_mmp_rsa_kp1_4096_input_t;
615 
616 /**
617  * @ingroup icp_qat_fw_mmp
618  * @brief
619  *    Input parameter list for RSA 4096 key generation second form ,
620  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
621  * #PKE_RSA_KP2_4096.
622  */
623 typedef struct icp_qat_fw_mmp_rsa_kp2_4096_input_s {
624 	uint64_t p; /**< RSA parameter, prime, &nbsp;2^2047 &lt; p &lt; 2^2048
625 		       (32 qwords)*/
626 	uint64_t q; /**< RSA parameter, prime, &nbsp;2^2047 &lt; q &lt; 2^2048
627 		       (32 qwords)*/
628 	uint64_t e; /**< RSA public key, must be odd, &ge; 3 and &le; (p*q)-1,
629 		       &nbsp;with GCD(e, p-1, q-1) = 1 (64 qwords)*/
630 } icp_qat_fw_mmp_rsa_kp2_4096_input_t;
631 
632 /**
633  * @ingroup icp_qat_fw_mmp
634  * @brief
635  *    Input parameter list for RSA 4096 Encryption ,
636  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
637  * #PKE_RSA_EP_4096.
638  */
639 typedef struct icp_qat_fw_mmp_rsa_ep_4096_input_s {
640 	uint64_t m; /**< message representative, &lt; n (64 qwords)*/
641 	uint64_t e; /**< RSA public key, &ge; 3 and &le; n-1 (64 qwords)*/
642 	uint64_t n; /**< RSA key, &gt; 0 and &lt; 2^4096 (64 qwords)*/
643 } icp_qat_fw_mmp_rsa_ep_4096_input_t;
644 
645 /**
646  * @ingroup icp_qat_fw_mmp
647  * @brief
648  *    Input parameter list for RSA 4096 Decryption ,
649  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
650  * #PKE_RSA_DP1_4096.
651  */
652 typedef struct icp_qat_fw_mmp_rsa_dp1_4096_input_s {
653 	uint64_t c; /**< cipher text representative, &lt; n (64 qwords)*/
654 	uint64_t d; /**< RSA private key (64 qwords)*/
655 	uint64_t n; /**< RSA key, &gt; 0 and &lt; 2^4096 (64 qwords)*/
656 } icp_qat_fw_mmp_rsa_dp1_4096_input_t;
657 
658 /**
659  * @ingroup icp_qat_fw_mmp
660  * @brief
661  *    Input parameter list for RSA 4096 Decryption with CRT ,
662  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
663  * #PKE_RSA_DP2_4096.
664  */
665 typedef struct icp_qat_fw_mmp_rsa_dp2_4096_input_s {
666 	uint64_t c;  /**< cipher text representative, &lt; (p*q) (64 qwords)*/
667 	uint64_t p;  /**< RSA parameter, prime, &nbsp;2^2047 &lt; p &lt; 2^2048
668 			(32 qwords)*/
669 	uint64_t q;  /**< RSA parameter, prime, &nbsp;2^2047 &lt; q &lt; 2^2048
670 			(32 qwords)*/
671 	uint64_t dp; /**< RSA private key, 0 &lt; dp &lt; p-1 (32 qwords)*/
672 	uint64_t dq; /**< RSA private key, 0 &lt; dq &lt; q-1 (32 qwords)*/
673 	uint64_t qinv; /**< RSA private key, 0 &lt; qInv &lt; p (32 qwords)*/
674 } icp_qat_fw_mmp_rsa_dp2_4096_input_t;
675 
676 /**
677  * @ingroup icp_qat_fw_mmp
678  * @brief
679  *    Input parameter list for GCD primality test for 192-bit numbers ,
680  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
681  * #PKE_GCD_PT_192.
682  */
683 typedef struct icp_qat_fw_mmp_gcd_pt_192_input_s {
684 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^192 (3 qwords)*/
685 } icp_qat_fw_mmp_gcd_pt_192_input_t;
686 
687 /**
688  * @ingroup icp_qat_fw_mmp
689  * @brief
690  *    Input parameter list for GCD primality test for 256-bit numbers ,
691  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
692  * #PKE_GCD_PT_256.
693  */
694 typedef struct icp_qat_fw_mmp_gcd_pt_256_input_s {
695 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^256 (4 qwords)*/
696 } icp_qat_fw_mmp_gcd_pt_256_input_t;
697 
698 /**
699  * @ingroup icp_qat_fw_mmp
700  * @brief
701  *    Input parameter list for GCD primality test for 384-bit numbers ,
702  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
703  * #PKE_GCD_PT_384.
704  */
705 typedef struct icp_qat_fw_mmp_gcd_pt_384_input_s {
706 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^384 (6 qwords)*/
707 } icp_qat_fw_mmp_gcd_pt_384_input_t;
708 
709 /**
710  * @ingroup icp_qat_fw_mmp
711  * @brief
712  *    Input parameter list for GCD primality test for 512-bit numbers ,
713  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
714  * #PKE_GCD_PT_512.
715  */
716 typedef struct icp_qat_fw_mmp_gcd_pt_512_input_s {
717 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^512 (8 qwords)*/
718 } icp_qat_fw_mmp_gcd_pt_512_input_t;
719 
720 /**
721  * @ingroup icp_qat_fw_mmp
722  * @brief
723  *    Input parameter list for GCD primality test for 768-bit numbers ,
724  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
725  * #PKE_GCD_PT_768.
726  */
727 typedef struct icp_qat_fw_mmp_gcd_pt_768_input_s {
728 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^768 (12 qwords)*/
729 } icp_qat_fw_mmp_gcd_pt_768_input_t;
730 
731 /**
732  * @ingroup icp_qat_fw_mmp
733  * @brief
734  *    Input parameter list for GCD primality test for 1024-bit numbers ,
735  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
736  * #PKE_GCD_PT_1024.
737  */
738 typedef struct icp_qat_fw_mmp_gcd_pt_1024_input_s {
739 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^1024 (16 qwords)*/
740 } icp_qat_fw_mmp_gcd_pt_1024_input_t;
741 
742 /**
743  * @ingroup icp_qat_fw_mmp
744  * @brief
745  *    Input parameter list for GCD primality test for 1536-bit numbers ,
746  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
747  * #PKE_GCD_PT_1536.
748  */
749 typedef struct icp_qat_fw_mmp_gcd_pt_1536_input_s {
750 	uint64_t m; /**<  (24 qwords)*/
751 } icp_qat_fw_mmp_gcd_pt_1536_input_t;
752 
753 /**
754  * @ingroup icp_qat_fw_mmp
755  * @brief
756  *    Input parameter list for GCD primality test for 2048-bit numbers ,
757  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
758  * #PKE_GCD_PT_2048.
759  */
760 typedef struct icp_qat_fw_mmp_gcd_pt_2048_input_s {
761 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^2048 (32 qwords)*/
762 } icp_qat_fw_mmp_gcd_pt_2048_input_t;
763 
764 /**
765  * @ingroup icp_qat_fw_mmp
766  * @brief
767  *    Input parameter list for GCD primality test for 3072-bit numbers ,
768  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
769  * #PKE_GCD_PT_3072.
770  */
771 typedef struct icp_qat_fw_mmp_gcd_pt_3072_input_s {
772 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^3072 (48 qwords)*/
773 } icp_qat_fw_mmp_gcd_pt_3072_input_t;
774 
775 /**
776  * @ingroup icp_qat_fw_mmp
777  * @brief
778  *    Input parameter list for GCD primality test for 4096-bit numbers ,
779  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
780  * #PKE_GCD_PT_4096.
781  */
782 typedef struct icp_qat_fw_mmp_gcd_pt_4096_input_s {
783 	uint64_t m; /**< prime candidate &gt; 1 and &lt; 2^4096 (64 qwords)*/
784 } icp_qat_fw_mmp_gcd_pt_4096_input_t;
785 
786 /**
787  * @ingroup icp_qat_fw_mmp
788  * @brief
789  *    Input parameter list for Fermat primality test for 160-bit numbers ,
790  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
791  * #PKE_FERMAT_PT_160.
792  */
793 typedef struct icp_qat_fw_mmp_fermat_pt_160_input_s {
794 	uint64_t m; /**< prime candidate, 2^159 &lt; m &lt; 2^160 (3 qwords)*/
795 } icp_qat_fw_mmp_fermat_pt_160_input_t;
796 
797 /**
798  * @ingroup icp_qat_fw_mmp
799  * @brief
800  *    Input parameter list for Fermat primality test for 512-bit numbers ,
801  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
802  * #PKE_FERMAT_PT_512.
803  */
804 typedef struct icp_qat_fw_mmp_fermat_pt_512_input_s {
805 	uint64_t m; /**< prime candidate, 2^511 &lt; m &lt; 2^512 (8 qwords)*/
806 } icp_qat_fw_mmp_fermat_pt_512_input_t;
807 
808 /**
809  * @ingroup icp_qat_fw_mmp
810  * @brief
811  *    Input parameter list for Fermat primality test for &lte; 512-bit numbers ,
812  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
813  * #PKE_FERMAT_PT_L512.
814  */
815 typedef struct icp_qat_fw_mmp_fermat_pt_l512_input_s {
816 	uint64_t m; /**< prime candidate, 5 &lt; m &lt; 2^512 (8 qwords)*/
817 } icp_qat_fw_mmp_fermat_pt_l512_input_t;
818 
819 /**
820  * @ingroup icp_qat_fw_mmp
821  * @brief
822  *    Input parameter list for Fermat primality test for 768-bit numbers ,
823  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
824  * #PKE_FERMAT_PT_768.
825  */
826 typedef struct icp_qat_fw_mmp_fermat_pt_768_input_s {
827 	uint64_t m; /**< prime candidate, 2^767 &lt; m &lt; 2^768 (12 qwords)*/
828 } icp_qat_fw_mmp_fermat_pt_768_input_t;
829 
830 /**
831  * @ingroup icp_qat_fw_mmp
832  * @brief
833  *    Input parameter list for Fermat primality test for 1024-bit numbers ,
834  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
835  * #PKE_FERMAT_PT_1024.
836  */
837 typedef struct icp_qat_fw_mmp_fermat_pt_1024_input_s {
838 	uint64_t
839 	    m; /**< prime candidate, 2^1023 &lt; m &lt; 2^1024 (16 qwords)*/
840 } icp_qat_fw_mmp_fermat_pt_1024_input_t;
841 
842 /**
843  * @ingroup icp_qat_fw_mmp
844  * @brief
845  *    Input parameter list for Fermat primality test for 1536-bit numbers ,
846  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
847  * #PKE_FERMAT_PT_1536.
848  */
849 typedef struct icp_qat_fw_mmp_fermat_pt_1536_input_s {
850 	uint64_t
851 	    m; /**< prime candidate, 2^1535 &lt; m &lt; 2^1536 (24 qwords)*/
852 } icp_qat_fw_mmp_fermat_pt_1536_input_t;
853 
854 /**
855  * @ingroup icp_qat_fw_mmp
856  * @brief
857  *    Input parameter list for Fermat primality test for 2048-bit numbers ,
858  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
859  * #PKE_FERMAT_PT_2048.
860  */
861 typedef struct icp_qat_fw_mmp_fermat_pt_2048_input_s {
862 	uint64_t
863 	    m; /**< prime candidate, 2^2047 &lt; m &lt; 2^2048 (32 qwords)*/
864 } icp_qat_fw_mmp_fermat_pt_2048_input_t;
865 
866 /**
867  * @ingroup icp_qat_fw_mmp
868  * @brief
869  *    Input parameter list for Fermat primality test for 3072-bit numbers ,
870  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
871  * #PKE_FERMAT_PT_3072.
872  */
873 typedef struct icp_qat_fw_mmp_fermat_pt_3072_input_s {
874 	uint64_t
875 	    m; /**< prime candidate, 2^3071 &lt; m &lt; 2^3072 (48 qwords)*/
876 } icp_qat_fw_mmp_fermat_pt_3072_input_t;
877 
878 /**
879  * @ingroup icp_qat_fw_mmp
880  * @brief
881  *    Input parameter list for Fermat primality test for 4096-bit numbers ,
882  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
883  * #PKE_FERMAT_PT_4096.
884  */
885 typedef struct icp_qat_fw_mmp_fermat_pt_4096_input_s {
886 	uint64_t
887 	    m; /**< prime candidate, 2^4095 &lt; m &lt; 2^4096 (64 qwords)*/
888 } icp_qat_fw_mmp_fermat_pt_4096_input_t;
889 
890 /**
891  * @ingroup icp_qat_fw_mmp
892  * @brief
893  *    Input parameter list for Miller-Rabin primality test for 160-bit numbers ,
894  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
895  * #PKE_MR_PT_160.
896  */
897 typedef struct icp_qat_fw_mmp_mr_pt_160_input_s {
898 	uint64_t x; /**< randomness  &gt; 1 and &lt; m-1 (3 qwords)*/
899 	uint64_t m; /**< prime candidate &gt; 2^159 and &lt; 2^160 (3 qwords)*/
900 } icp_qat_fw_mmp_mr_pt_160_input_t;
901 
902 /**
903  * @ingroup icp_qat_fw_mmp
904  * @brief
905  *    Input parameter list for Miller-Rabin primality test for 512-bit numbers ,
906  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
907  * #PKE_MR_PT_512.
908  */
909 typedef struct icp_qat_fw_mmp_mr_pt_512_input_s {
910 	uint64_t x; /**< randomness   &gt; 1 and &lt; m-1 (8 qwords)*/
911 	uint64_t m; /**< prime candidate  &gt; 2^511 and &lt; 2^512 (8 qwords)*/
912 } icp_qat_fw_mmp_mr_pt_512_input_t;
913 
914 /**
915  * @ingroup icp_qat_fw_mmp
916  * @brief
917  *    Input parameter list for Miller-Rabin primality test for 768-bit numbers ,
918  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
919  * #PKE_MR_PT_768.
920  */
921 typedef struct icp_qat_fw_mmp_mr_pt_768_input_s {
922 	uint64_t x; /**< randomness  &gt; 1 and &lt; m-1 (12 qwords)*/
923 	uint64_t m; /**< prime candidate &gt; 2^767 and &lt; 2^768 (12 qwords)*/
924 } icp_qat_fw_mmp_mr_pt_768_input_t;
925 
926 /**
927  * @ingroup icp_qat_fw_mmp
928  * @brief
929  *    Input parameter list for Miller-Rabin primality test for 1024-bit numbers
930  * ,
931  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
932  * #PKE_MR_PT_1024.
933  */
934 typedef struct icp_qat_fw_mmp_mr_pt_1024_input_s {
935 	uint64_t x; /**< randomness &gt; 1 and &lt; m-1 (16 qwords)*/
936 	uint64_t
937 	    m; /**< prime candidate &gt; 2^1023 and &lt; 2^1024 (16 qwords)*/
938 } icp_qat_fw_mmp_mr_pt_1024_input_t;
939 
940 /**
941  * @ingroup icp_qat_fw_mmp
942  * @brief
943  *    Input parameter list for Miller-Rabin primality test for 1536-bit numbers
944  * ,
945  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
946  * #PKE_MR_PT_1536.
947  */
948 typedef struct icp_qat_fw_mmp_mr_pt_1536_input_s {
949 	uint64_t x; /**< randomness &gt; 1 and &lt; m-1 (24 qwords)*/
950 	uint64_t
951 	    m; /**< prime candidate &gt; 2^1535 and &lt; 2^1536 (24 qwords)*/
952 } icp_qat_fw_mmp_mr_pt_1536_input_t;
953 
954 /**
955  * @ingroup icp_qat_fw_mmp
956  * @brief
957  *    Input parameter list for Miller-Rabin primality test for 2048-bit numbers
958  * ,
959  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
960  * #PKE_MR_PT_2048.
961  */
962 typedef struct icp_qat_fw_mmp_mr_pt_2048_input_s {
963 	uint64_t x; /**< randomness  &gt; 1 and &lt;m-1 (32 qwords)*/
964 	uint64_t
965 	    m; /**< prime candidate  &gt; 2^2047 and &lt; 2^2048 (32 qwords)*/
966 } icp_qat_fw_mmp_mr_pt_2048_input_t;
967 
968 /**
969  * @ingroup icp_qat_fw_mmp
970  * @brief
971  *    Input parameter list for Miller-Rabin primality test for 3072-bit numbers
972  * ,
973  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
974  * #PKE_MR_PT_3072.
975  */
976 typedef struct icp_qat_fw_mmp_mr_pt_3072_input_s {
977 	uint64_t x; /**< randomness  &gt; 1 and &lt; m-1 (48 qwords)*/
978 	uint64_t
979 	    m; /**< prime candidate &gt; 2^3071 and &lt; 2^3072 (48 qwords)*/
980 } icp_qat_fw_mmp_mr_pt_3072_input_t;
981 
982 /**
983  * @ingroup icp_qat_fw_mmp
984  * @brief
985  *    Input parameter list for Miller-Rabin primality test for 4096-bit numbers
986  * ,
987  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
988  * #PKE_MR_PT_4096.
989  */
990 typedef struct icp_qat_fw_mmp_mr_pt_4096_input_s {
991 	uint64_t x; /**< randomness  &gt; 1 and &lt; m-1 (64 qwords)*/
992 	uint64_t
993 	    m; /**< prime candidate &gt; 2^4095 and &lt; 2^4096 (64 qwords)*/
994 } icp_qat_fw_mmp_mr_pt_4096_input_t;
995 
996 /**
997  * @ingroup icp_qat_fw_mmp
998  * @brief
999  *    Input parameter list for Miller-Rabin primality test for 512-bit numbers ,
1000  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1001  * #PKE_MR_PT_L512.
1002  */
1003 typedef struct icp_qat_fw_mmp_mr_pt_l512_input_s {
1004 	uint64_t x; /**< randomness   &gt; 1 and &lt; m-1 (8 qwords)*/
1005 	uint64_t m; /**< prime candidate  &gt; 1 and &lt; 2^512 (8 qwords)*/
1006 } icp_qat_fw_mmp_mr_pt_l512_input_t;
1007 
1008 /**
1009  * @ingroup icp_qat_fw_mmp
1010  * @brief
1011  *    Input parameter list for Lucas primality test for 160-bit numbers ,
1012  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1013  * #PKE_LUCAS_PT_160.
1014  */
1015 typedef struct icp_qat_fw_mmp_lucas_pt_160_input_s {
1016 	uint64_t
1017 	    m; /**< odd prime candidate &gt; 2^159 and &lt; 2^160 (3 qwords)*/
1018 } icp_qat_fw_mmp_lucas_pt_160_input_t;
1019 
1020 /**
1021  * @ingroup icp_qat_fw_mmp
1022  * @brief
1023  *    Input parameter list for Lucas primality test for 512-bit numbers ,
1024  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1025  * #PKE_LUCAS_PT_512.
1026  */
1027 typedef struct icp_qat_fw_mmp_lucas_pt_512_input_s {
1028 	uint64_t
1029 	    m; /**< odd prime candidate &gt; 2^511 and &lt; 2^512 (8 qwords)*/
1030 } icp_qat_fw_mmp_lucas_pt_512_input_t;
1031 
1032 /**
1033  * @ingroup icp_qat_fw_mmp
1034  * @brief
1035  *    Input parameter list for Lucas primality test for 768-bit numbers ,
1036  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1037  * #PKE_LUCAS_PT_768.
1038  */
1039 typedef struct icp_qat_fw_mmp_lucas_pt_768_input_s {
1040 	uint64_t
1041 	    m; /**< odd prime candidate &gt; 2^767 and &lt; 2^768 (12 qwords)*/
1042 } icp_qat_fw_mmp_lucas_pt_768_input_t;
1043 
1044 /**
1045  * @ingroup icp_qat_fw_mmp
1046  * @brief
1047  *    Input parameter list for Lucas primality test for 1024-bit numbers ,
1048  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1049  * #PKE_LUCAS_PT_1024.
1050  */
1051 typedef struct icp_qat_fw_mmp_lucas_pt_1024_input_s {
1052 	uint64_t m; /**< odd prime candidate &gt; 2^1023 and &lt; 2^1024 (16
1053 		       qwords)*/
1054 } icp_qat_fw_mmp_lucas_pt_1024_input_t;
1055 
1056 /**
1057  * @ingroup icp_qat_fw_mmp
1058  * @brief
1059  *    Input parameter list for Lucas primality test for 1536-bit numbers ,
1060  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1061  * #PKE_LUCAS_PT_1536.
1062  */
1063 typedef struct icp_qat_fw_mmp_lucas_pt_1536_input_s {
1064 	uint64_t m; /**< odd prime candidate &gt; 2^1535 and &lt; 2^1536 (24
1065 		       qwords)*/
1066 } icp_qat_fw_mmp_lucas_pt_1536_input_t;
1067 
1068 /**
1069  * @ingroup icp_qat_fw_mmp
1070  * @brief
1071  *    Input parameter list for Lucas primality test for 2048-bit numbers ,
1072  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1073  * #PKE_LUCAS_PT_2048.
1074  */
1075 typedef struct icp_qat_fw_mmp_lucas_pt_2048_input_s {
1076 	uint64_t m; /**< odd prime candidate &gt; 2^2047 and &lt; 2^2048 (32
1077 		       qwords)*/
1078 } icp_qat_fw_mmp_lucas_pt_2048_input_t;
1079 
1080 /**
1081  * @ingroup icp_qat_fw_mmp
1082  * @brief
1083  *    Input parameter list for Lucas primality test for 3072-bit numbers ,
1084  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1085  * #PKE_LUCAS_PT_3072.
1086  */
1087 typedef struct icp_qat_fw_mmp_lucas_pt_3072_input_s {
1088 	uint64_t m; /**< odd prime candidate &gt; 2^3071 and &lt; 2^3072 (48
1089 		       qwords)*/
1090 } icp_qat_fw_mmp_lucas_pt_3072_input_t;
1091 
1092 /**
1093  * @ingroup icp_qat_fw_mmp
1094  * @brief
1095  *    Input parameter list for Lucas primality test for 4096-bit numbers ,
1096  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1097  * #PKE_LUCAS_PT_4096.
1098  */
1099 typedef struct icp_qat_fw_mmp_lucas_pt_4096_input_s {
1100 	uint64_t m; /**< odd prime candidate &gt; 2^4096 and &lt; 2^4096 (64
1101 		       qwords)*/
1102 } icp_qat_fw_mmp_lucas_pt_4096_input_t;
1103 
1104 /**
1105  * @ingroup icp_qat_fw_mmp
1106  * @brief
1107  *    Input parameter list for Lucas primality test for L512-bit numbers ,
1108  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1109  * #PKE_LUCAS_PT_L512.
1110  */
1111 typedef struct icp_qat_fw_mmp_lucas_pt_l512_input_s {
1112 	uint64_t m; /**< odd prime candidate &gt; 5 and &lt; 2^512 (8 qwords)*/
1113 } icp_qat_fw_mmp_lucas_pt_l512_input_t;
1114 
1115 /**
1116  * @ingroup icp_qat_fw_mmp
1117  * @brief
1118  *    Input parameter list for Modular exponentiation for numbers less than
1119  * 512-bits ,
1120  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1121  * #MATHS_MODEXP_L512.
1122  */
1123 typedef struct icp_qat_fw_maths_modexp_l512_input_s {
1124 	uint64_t g; /**< base &ge; 0 and &lt; 2^512 (8 qwords)*/
1125 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^512 (8 qwords)*/
1126 	uint64_t m; /**< modulus   &gt; 0 and &lt; 2^512 (8 qwords)*/
1127 } icp_qat_fw_maths_modexp_l512_input_t;
1128 
1129 /**
1130  * @ingroup icp_qat_fw_mmp
1131  * @brief
1132  *    Input parameter list for Modular exponentiation for numbers less than
1133  * 1024-bit ,
1134  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1135  * #MATHS_MODEXP_L1024.
1136  */
1137 typedef struct icp_qat_fw_maths_modexp_l1024_input_s {
1138 	uint64_t g; /**< base &ge; 0 and &lt; 2^1024 (16 qwords)*/
1139 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^1024 (16 qwords)*/
1140 	uint64_t m; /**< modulus &gt; 0 and &lt; 2^1024 (16 qwords)*/
1141 } icp_qat_fw_maths_modexp_l1024_input_t;
1142 
1143 /**
1144  * @ingroup icp_qat_fw_mmp
1145  * @brief
1146  *    Input parameter list for Modular exponentiation for numbers less than
1147  * 1536-bits ,
1148  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1149  * #MATHS_MODEXP_L1536.
1150  */
1151 typedef struct icp_qat_fw_maths_modexp_l1536_input_s {
1152 	uint64_t g; /**< base &ge; 0 and &lt; 2^1536 (24 qwords)*/
1153 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^1536 (24 qwords)*/
1154 	uint64_t m; /**< modulus   &gt; 0 and &lt; 2^1536 (24 qwords)*/
1155 } icp_qat_fw_maths_modexp_l1536_input_t;
1156 
1157 /**
1158  * @ingroup icp_qat_fw_mmp
1159  * @brief
1160  *    Input parameter list for Modular exponentiation for numbers less than
1161  * 2048-bit ,
1162  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1163  * #MATHS_MODEXP_L2048.
1164  */
1165 typedef struct icp_qat_fw_maths_modexp_l2048_input_s {
1166 	uint64_t g; /**< base &ge; 0 and &lt; 2^2048 (32 qwords)*/
1167 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^2048 (32 qwords)*/
1168 	uint64_t m; /**< modulus &gt; 0 and &lt; 2^2048 (32 qwords)*/
1169 } icp_qat_fw_maths_modexp_l2048_input_t;
1170 
1171 /**
1172  * @ingroup icp_qat_fw_mmp
1173  * @brief
1174  *    Input parameter list for Modular exponentiation for numbers less than
1175  * 2560-bits ,
1176  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1177  * #MATHS_MODEXP_L2560.
1178  */
1179 typedef struct icp_qat_fw_maths_modexp_l2560_input_s {
1180 	uint64_t g; /**< base &ge; 0 and &lt; 2^2560 (40 qwords)*/
1181 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^2560 (40 qwords)*/
1182 	uint64_t m; /**< modulus   &gt; 0 and &lt; 2^2560 (40 qwords)*/
1183 } icp_qat_fw_maths_modexp_l2560_input_t;
1184 
1185 /**
1186  * @ingroup icp_qat_fw_mmp
1187  * @brief
1188  *    Input parameter list for Modular exponentiation for numbers less than
1189  * 3072-bits ,
1190  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1191  * #MATHS_MODEXP_L3072.
1192  */
1193 typedef struct icp_qat_fw_maths_modexp_l3072_input_s {
1194 	uint64_t g; /**< base &ge; 0 and &lt; 2^3072 (48 qwords)*/
1195 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^3072 (48 qwords)*/
1196 	uint64_t m; /**< modulus   &gt; 0 and &lt; 2^3072 (48 qwords)*/
1197 } icp_qat_fw_maths_modexp_l3072_input_t;
1198 
1199 /**
1200  * @ingroup icp_qat_fw_mmp
1201  * @brief
1202  *    Input parameter list for Modular exponentiation for numbers less than
1203  * 3584-bits ,
1204  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1205  * #MATHS_MODEXP_L3584.
1206  */
1207 typedef struct icp_qat_fw_maths_modexp_l3584_input_s {
1208 	uint64_t g; /**< base &ge; 0 and &lt; 2^3584 (56 qwords)*/
1209 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^3584 (56 qwords)*/
1210 	uint64_t m; /**< modulus   &gt; 0 and &lt; 2^3584 (56 qwords)*/
1211 } icp_qat_fw_maths_modexp_l3584_input_t;
1212 
1213 /**
1214  * @ingroup icp_qat_fw_mmp
1215  * @brief
1216  *    Input parameter list for Modular exponentiation for numbers less than
1217  * 4096-bit ,
1218  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1219  * #MATHS_MODEXP_L4096.
1220  */
1221 typedef struct icp_qat_fw_maths_modexp_l4096_input_s {
1222 	uint64_t g; /**< base &ge; 0 and &lt; 2^4096 (64 qwords)*/
1223 	uint64_t e; /**< exponent &ge; 0 and &lt; 2^4096 (64 qwords)*/
1224 	uint64_t m; /**< modulus   &gt; 0 and &lt; 2^4096 (64 qwords)*/
1225 } icp_qat_fw_maths_modexp_l4096_input_t;
1226 
1227 /**
1228  * @ingroup icp_qat_fw_mmp
1229  * @brief
1230  *    Input parameter list for Modular multiplicative inverse for numbers less
1231  * than 128 bits ,
1232  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1233  * #MATHS_MODINV_ODD_L128.
1234  */
1235 typedef struct icp_qat_fw_maths_modinv_odd_l128_input_s {
1236 	uint64_t a; /**< number &gt; 0 and &lt; 2^128 (2 qwords)*/
1237 	uint64_t
1238 	    b; /**< odd modulus &gt; 0 and &lt; 2^128, coprime to a (2 qwords)*/
1239 } icp_qat_fw_maths_modinv_odd_l128_input_t;
1240 
1241 /**
1242  * @ingroup icp_qat_fw_mmp
1243  * @brief
1244  *    Input parameter list for Modular multiplicative inverse for numbers less
1245  * than 192 bits ,
1246  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1247  * #MATHS_MODINV_ODD_L192.
1248  */
1249 typedef struct icp_qat_fw_maths_modinv_odd_l192_input_s {
1250 	uint64_t a; /**< number &gt; 0 and &lt; 2^192 (3 qwords)*/
1251 	uint64_t
1252 	    b; /**< odd modulus &gt; 0 and &lt; 2^192, coprime to a (3 qwords)*/
1253 } icp_qat_fw_maths_modinv_odd_l192_input_t;
1254 
1255 /**
1256  * @ingroup icp_qat_fw_mmp
1257  * @brief
1258  *    Input parameter list for Modular multiplicative inverse for numbers less
1259  * than 256 bits ,
1260  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1261  * #MATHS_MODINV_ODD_L256.
1262  */
1263 typedef struct icp_qat_fw_maths_modinv_odd_l256_input_s {
1264 	uint64_t a; /**< number &gt; 0 and &lt; 2^256 (4 qwords)*/
1265 	uint64_t
1266 	    b; /**< odd modulus &gt; 0 and &lt; 2^256, coprime to a (4 qwords)*/
1267 } icp_qat_fw_maths_modinv_odd_l256_input_t;
1268 
1269 /**
1270  * @ingroup icp_qat_fw_mmp
1271  * @brief
1272  *    Input parameter list for Modular multiplicative inverse for numbers less
1273  * than 384 bits ,
1274  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1275  * #MATHS_MODINV_ODD_L384.
1276  */
1277 typedef struct icp_qat_fw_maths_modinv_odd_l384_input_s {
1278 	uint64_t a; /**< number &gt; 0 and &lt; 2^384 (6 qwords)*/
1279 	uint64_t
1280 	    b; /**< odd modulus &gt; 0 and &lt; 2^384, coprime to a (6 qwords)*/
1281 } icp_qat_fw_maths_modinv_odd_l384_input_t;
1282 
1283 /**
1284  * @ingroup icp_qat_fw_mmp
1285  * @brief
1286  *    Input parameter list for Modular multiplicative inverse for numbers less
1287  * than 512 bits ,
1288  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1289  * #MATHS_MODINV_ODD_L512.
1290  */
1291 typedef struct icp_qat_fw_maths_modinv_odd_l512_input_s {
1292 	uint64_t a; /**< number &gt; 0 and &lt; 2^512 (8 qwords)*/
1293 	uint64_t
1294 	    b; /**< odd modulus &gt; 0 and &lt; 2^512, coprime to a (8 qwords)*/
1295 } icp_qat_fw_maths_modinv_odd_l512_input_t;
1296 
1297 /**
1298  * @ingroup icp_qat_fw_mmp
1299  * @brief
1300  *    Input parameter list for Modular multiplicative inverse for numbers less
1301  * than 768 bits ,
1302  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1303  * #MATHS_MODINV_ODD_L768.
1304  */
1305 typedef struct icp_qat_fw_maths_modinv_odd_l768_input_s {
1306 	uint64_t a; /**< number &gt; 0 and &lt; 2^768 (12 qwords)*/
1307 	uint64_t b; /**< odd modulus &gt; 0 and &lt; 2^768 ,coprime to a (12
1308 		       qwords)*/
1309 } icp_qat_fw_maths_modinv_odd_l768_input_t;
1310 
1311 /**
1312  * @ingroup icp_qat_fw_mmp
1313  * @brief
1314  *    Input parameter list for Modular multiplicative inverse for numbers less
1315  * than 1024 bits ,
1316  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1317  * #MATHS_MODINV_ODD_L1024.
1318  */
1319 typedef struct icp_qat_fw_maths_modinv_odd_l1024_input_s {
1320 	uint64_t a; /**< number &gt; 0 and &lt; 2^1024 (16 qwords)*/
1321 	uint64_t b; /**< odd modulus &gt; 0 and &lt; 2^1024, coprime to a (16
1322 		       qwords)*/
1323 } icp_qat_fw_maths_modinv_odd_l1024_input_t;
1324 
1325 /**
1326  * @ingroup icp_qat_fw_mmp
1327  * @brief
1328  *    Input parameter list for Modular multiplicative inverse for numbers less
1329  * than 1536 bits ,
1330  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1331  * #MATHS_MODINV_ODD_L1536.
1332  */
1333 typedef struct icp_qat_fw_maths_modinv_odd_l1536_input_s {
1334 	uint64_t a; /**< number &gt; 0 and &lt; 2^1536 (24 qwords)*/
1335 	uint64_t b; /**< odd modulus &gt; 0 and &lt; 2^1536, coprime to a (24
1336 		       qwords)*/
1337 } icp_qat_fw_maths_modinv_odd_l1536_input_t;
1338 
1339 /**
1340  * @ingroup icp_qat_fw_mmp
1341  * @brief
1342  *    Input parameter list for Modular multiplicative inverse for numbers less
1343  * than 2048 bits ,
1344  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1345  * #MATHS_MODINV_ODD_L2048.
1346  */
1347 typedef struct icp_qat_fw_maths_modinv_odd_l2048_input_s {
1348 	uint64_t a; /**< number &gt; 0 and &lt; 2^2048 (32 qwords)*/
1349 	uint64_t b; /**< odd modulus &gt; 0 and &lt; 2^2048, coprime to a (32
1350 		       qwords)*/
1351 } icp_qat_fw_maths_modinv_odd_l2048_input_t;
1352 
1353 /**
1354  * @ingroup icp_qat_fw_mmp
1355  * @brief
1356  *    Input parameter list for Modular multiplicative inverse for numbers less
1357  * than 3072 bits ,
1358  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1359  * #MATHS_MODINV_ODD_L3072.
1360  */
1361 typedef struct icp_qat_fw_maths_modinv_odd_l3072_input_s {
1362 	uint64_t a; /**< number &gt; 0 and &lt; 2^3072 (48 qwords)*/
1363 	uint64_t b; /**< odd modulus &gt; 0 and &lt; 2^3072, coprime to a (48
1364 		       qwords)*/
1365 } icp_qat_fw_maths_modinv_odd_l3072_input_t;
1366 
1367 /**
1368  * @ingroup icp_qat_fw_mmp
1369  * @brief
1370  *    Input parameter list for Modular multiplicative inverse for numbers less
1371  * than 4096 bits ,
1372  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1373  * #MATHS_MODINV_ODD_L4096.
1374  */
1375 typedef struct icp_qat_fw_maths_modinv_odd_l4096_input_s {
1376 	uint64_t a; /**< number &gt; 0 and &lt; 2^4096 (64 qwords)*/
1377 	uint64_t b; /**< odd modulus &gt; 0 and &lt; 2^4096, coprime to a (64
1378 		       qwords)*/
1379 } icp_qat_fw_maths_modinv_odd_l4096_input_t;
1380 
1381 /**
1382  * @ingroup icp_qat_fw_mmp
1383  * @brief
1384  *    Input parameter list for Modular multiplicative inverse for numbers less
1385  * than 128 bits ,
1386  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1387  * #MATHS_MODINV_EVEN_L128.
1388  */
1389 typedef struct icp_qat_fw_maths_modinv_even_l128_input_s {
1390 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^128 (2 qwords)*/
1391 	uint64_t
1392 	    b; /**< even modulus   &gt; 0 and &lt; 2^128, coprime with a (2
1393 		  qwords)*/
1394 } icp_qat_fw_maths_modinv_even_l128_input_t;
1395 
1396 /**
1397  * @ingroup icp_qat_fw_mmp
1398  * @brief
1399  *    Input parameter list for Modular multiplicative inverse for numbers less
1400  * than 192 bits ,
1401  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1402  * #MATHS_MODINV_EVEN_L192.
1403  */
1404 typedef struct icp_qat_fw_maths_modinv_even_l192_input_s {
1405 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^192 (3 qwords)*/
1406 	uint64_t
1407 	    b; /**< even modulus   &gt; 0 and &lt; 2^192, coprime with a (3
1408 		  qwords)*/
1409 } icp_qat_fw_maths_modinv_even_l192_input_t;
1410 
1411 /**
1412  * @ingroup icp_qat_fw_mmp
1413  * @brief
1414  *    Input parameter list for Modular multiplicative inverse for numbers less
1415  * than 256 bits ,
1416  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1417  * #MATHS_MODINV_EVEN_L256.
1418  */
1419 typedef struct icp_qat_fw_maths_modinv_even_l256_input_s {
1420 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^256 (4 qwords)*/
1421 	uint64_t
1422 	    b; /**< even modulus   &gt; 0 and &lt; 2^256, coprime with a (4
1423 		  qwords)*/
1424 } icp_qat_fw_maths_modinv_even_l256_input_t;
1425 
1426 /**
1427  * @ingroup icp_qat_fw_mmp
1428  * @brief
1429  *    Input parameter list for Modular multiplicative inverse for numbers less
1430  * than 384 bits ,
1431  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1432  * #MATHS_MODINV_EVEN_L384.
1433  */
1434 typedef struct icp_qat_fw_maths_modinv_even_l384_input_s {
1435 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^384 (6 qwords)*/
1436 	uint64_t
1437 	    b; /**< even modulus   &gt; 0 and &lt; 2^384, coprime with a (6
1438 		  qwords)*/
1439 } icp_qat_fw_maths_modinv_even_l384_input_t;
1440 
1441 /**
1442  * @ingroup icp_qat_fw_mmp
1443  * @brief
1444  *    Input parameter list for Modular multiplicative inverse for numbers less
1445  * than 512 bits ,
1446  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1447  * #MATHS_MODINV_EVEN_L512.
1448  */
1449 typedef struct icp_qat_fw_maths_modinv_even_l512_input_s {
1450 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^512 (8 qwords)*/
1451 	uint64_t
1452 	    b; /**< even modulus   &gt; 0 and &lt; 2^512, coprime with a (8
1453 		  qwords)*/
1454 } icp_qat_fw_maths_modinv_even_l512_input_t;
1455 
1456 /**
1457  * @ingroup icp_qat_fw_mmp
1458  * @brief
1459  *    Input parameter list for Modular multiplicative inverse for numbers less
1460  * than 768 bits ,
1461  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1462  * #MATHS_MODINV_EVEN_L768.
1463  */
1464 typedef struct icp_qat_fw_maths_modinv_even_l768_input_s {
1465 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^768 (12 qwords)*/
1466 	uint64_t b; /**< even modulus   &gt; 0 and &lt; 2^768, coprime with a
1467 		       (12 qwords)*/
1468 } icp_qat_fw_maths_modinv_even_l768_input_t;
1469 
1470 /**
1471  * @ingroup icp_qat_fw_mmp
1472  * @brief
1473  *    Input parameter list for Modular multiplicative inverse for numbers less
1474  * than 1024 bits ,
1475  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1476  * #MATHS_MODINV_EVEN_L1024.
1477  */
1478 typedef struct icp_qat_fw_maths_modinv_even_l1024_input_s {
1479 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^1024 (16 qwords)*/
1480 	uint64_t b; /**< even modulus   &gt; 0 and &lt; 2^1024, coprime with a
1481 		       (16 qwords)*/
1482 } icp_qat_fw_maths_modinv_even_l1024_input_t;
1483 
1484 /**
1485  * @ingroup icp_qat_fw_mmp
1486  * @brief
1487  *    Input parameter list for Modular multiplicative inverse for numbers less
1488  * than 1536 bits ,
1489  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1490  * #MATHS_MODINV_EVEN_L1536.
1491  */
1492 typedef struct icp_qat_fw_maths_modinv_even_l1536_input_s {
1493 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^1536 (24 qwords)*/
1494 	uint64_t b; /**< even modulus   &gt; 0 and &lt; 2^1536, coprime with a
1495 		       (24 qwords)*/
1496 } icp_qat_fw_maths_modinv_even_l1536_input_t;
1497 
1498 /**
1499  * @ingroup icp_qat_fw_mmp
1500  * @brief
1501  *    Input parameter list for Modular multiplicative inverse for numbers less
1502  * than 2048 bits ,
1503  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1504  * #MATHS_MODINV_EVEN_L2048.
1505  */
1506 typedef struct icp_qat_fw_maths_modinv_even_l2048_input_s {
1507 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^2048 (32 qwords)*/
1508 	uint64_t b; /**< even modulus   &gt; 0 and &lt; 2^2048, coprime with a
1509 		       (32 qwords)*/
1510 } icp_qat_fw_maths_modinv_even_l2048_input_t;
1511 
1512 /**
1513  * @ingroup icp_qat_fw_mmp
1514  * @brief
1515  *    Input parameter list for Modular multiplicative inverse for numbers less
1516  * than 3072 bits ,
1517  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1518  * #MATHS_MODINV_EVEN_L3072.
1519  */
1520 typedef struct icp_qat_fw_maths_modinv_even_l3072_input_s {
1521 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^3072 (48 qwords)*/
1522 	uint64_t b; /**< even modulus   &gt; 0 and &lt; 2^3072, coprime with a
1523 		       (48 qwords)*/
1524 } icp_qat_fw_maths_modinv_even_l3072_input_t;
1525 
1526 /**
1527  * @ingroup icp_qat_fw_mmp
1528  * @brief
1529  *    Input parameter list for Modular multiplicative inverse for numbers less
1530  * than 4096 bits ,
1531  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1532  * #MATHS_MODINV_EVEN_L4096.
1533  */
1534 typedef struct icp_qat_fw_maths_modinv_even_l4096_input_s {
1535 	uint64_t a; /**< odd number &gt; 0 and &lt; 2^4096 (64 qwords)*/
1536 	uint64_t b; /**< even modulus   &gt; 0 and &lt; 2^4096, coprime with a
1537 		       (64 qwords)*/
1538 } icp_qat_fw_maths_modinv_even_l4096_input_t;
1539 
1540 /**
1541  * @ingroup icp_qat_fw_mmp
1542  * @brief
1543  *    Input parameter list for DSA parameter generation P ,
1544  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1545  * #PKE_DSA_GEN_P_1024_160.
1546  */
1547 typedef struct icp_qat_fw_mmp_dsa_gen_p_1024_160_input_s {
1548 	uint64_t x; /**< DSA 1024-bit randomness  (16 qwords)*/
1549 	uint64_t q; /**< DSA 160-bit parameter  (3 qwords)*/
1550 } icp_qat_fw_mmp_dsa_gen_p_1024_160_input_t;
1551 
1552 /**
1553  * @ingroup icp_qat_fw_mmp
1554  * @brief
1555  *    Input parameter list for DSA key generation G ,
1556  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1557  * #PKE_DSA_GEN_G_1024.
1558  */
1559 typedef struct icp_qat_fw_mmp_dsa_gen_g_1024_input_s {
1560 	uint64_t p; /**< DSA 1024-bit parameter  (16 qwords)*/
1561 	uint64_t q; /**< DSA 160-bit parameter  (3 qwords)*/
1562 	uint64_t h; /**< DSA 1024-bit parameter  (16 qwords)*/
1563 } icp_qat_fw_mmp_dsa_gen_g_1024_input_t;
1564 
1565 /**
1566  * @ingroup icp_qat_fw_mmp
1567  * @brief
1568  *    Input parameter list for DSA key generation Y ,
1569  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1570  * #PKE_DSA_GEN_Y_1024.
1571  */
1572 typedef struct icp_qat_fw_mmp_dsa_gen_y_1024_input_s {
1573 	uint64_t p; /**< DSA 1024-bit parameter  (16 qwords)*/
1574 	uint64_t g; /**< DSA parameter  (16 qwords)*/
1575 	uint64_t
1576 	    x; /**< randomly generated DSA parameter (160 bits),  (3 qwords)*/
1577 } icp_qat_fw_mmp_dsa_gen_y_1024_input_t;
1578 
1579 /**
1580  * @ingroup icp_qat_fw_mmp
1581  * @brief
1582  *    Input parameter list for DSA Sign R ,
1583  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1584  * #PKE_DSA_SIGN_R_1024_160.
1585  */
1586 typedef struct icp_qat_fw_mmp_dsa_sign_r_1024_160_input_s {
1587 	uint64_t k; /**< randomly generated DSA parameter  (3 qwords)*/
1588 	uint64_t p; /**< DSA parameter,  (16 qwords)*/
1589 	uint64_t q; /**< DSA parameter  (3 qwords)*/
1590 	uint64_t g; /**< DSA parameter  (16 qwords)*/
1591 } icp_qat_fw_mmp_dsa_sign_r_1024_160_input_t;
1592 
1593 /**
1594  * @ingroup icp_qat_fw_mmp
1595  * @brief
1596  *    Input parameter list for DSA Sign S ,
1597  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1598  * #PKE_DSA_SIGN_S_160.
1599  */
1600 typedef struct icp_qat_fw_mmp_dsa_sign_s_160_input_s {
1601 	uint64_t m; /**< digest message to be signed  (3 qwords)*/
1602 	uint64_t k; /**< randomly generated DSA parameter  (3 qwords)*/
1603 	uint64_t q; /**< DSA parameter  (3 qwords)*/
1604 	uint64_t r; /**< DSA parameter  (3 qwords)*/
1605 	uint64_t x; /**< randomly generated DSA parameter  (3 qwords)*/
1606 } icp_qat_fw_mmp_dsa_sign_s_160_input_t;
1607 
1608 /**
1609  * @ingroup icp_qat_fw_mmp
1610  * @brief
1611  *    Input parameter list for DSA Sign R S ,
1612  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1613  * #PKE_DSA_SIGN_R_S_1024_160.
1614  */
1615 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_1024_160_input_s {
1616 	uint64_t m; /**< digest of the message to be signed  (3 qwords)*/
1617 	uint64_t k; /**< randomly generated DSA parameter  (3 qwords)*/
1618 	uint64_t p; /**< DSA parameter  (16 qwords)*/
1619 	uint64_t q; /**< DSA parameter  (3 qwords)*/
1620 	uint64_t g; /**< DSA parameter  (16 qwords)*/
1621 	uint64_t x; /**< randomly generated DSA parameter  (3 qwords)*/
1622 } icp_qat_fw_mmp_dsa_sign_r_s_1024_160_input_t;
1623 
1624 /**
1625  * @ingroup icp_qat_fw_mmp
1626  * @brief
1627  *    Input parameter list for DSA Verify ,
1628  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1629  * #PKE_DSA_VERIFY_1024_160.
1630  */
1631 typedef struct icp_qat_fw_mmp_dsa_verify_1024_160_input_s {
1632 	uint64_t r; /**< DSA 160-bits signature  (3 qwords)*/
1633 	uint64_t s; /**< DSA 160-bits signature  (3 qwords)*/
1634 	uint64_t m; /**< digest of the message  (3 qwords)*/
1635 	uint64_t p; /**< DSA parameter  (16 qwords)*/
1636 	uint64_t q; /**< DSA parameter  (3 qwords)*/
1637 	uint64_t g; /**< DSA parameter  (16 qwords)*/
1638 	uint64_t y; /**< DSA parameter  (16 qwords)*/
1639 } icp_qat_fw_mmp_dsa_verify_1024_160_input_t;
1640 
1641 /**
1642  * @ingroup icp_qat_fw_mmp
1643  * @brief
1644  *    Input parameter list for DSA parameter generation P ,
1645  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1646  * #PKE_DSA_GEN_P_2048_224.
1647  */
1648 typedef struct icp_qat_fw_mmp_dsa_gen_p_2048_224_input_s {
1649 	uint64_t x; /**< DSA 2048-bit randomness  (32 qwords)*/
1650 	uint64_t q; /**< DSA 224-bit parameter  (4 qwords)*/
1651 } icp_qat_fw_mmp_dsa_gen_p_2048_224_input_t;
1652 
1653 /**
1654  * @ingroup icp_qat_fw_mmp
1655  * @brief
1656  *    Input parameter list for DSA key generation Y ,
1657  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1658  * #PKE_DSA_GEN_Y_2048.
1659  */
1660 typedef struct icp_qat_fw_mmp_dsa_gen_y_2048_input_s {
1661 	uint64_t p; /**< DSA 2048-bit parameter  (32 qwords)*/
1662 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1663 	uint64_t x; /**< randomly generated DSA parameter (224/256 bits),  (4
1664 		       qwords)*/
1665 } icp_qat_fw_mmp_dsa_gen_y_2048_input_t;
1666 
1667 /**
1668  * @ingroup icp_qat_fw_mmp
1669  * @brief
1670  *    Input parameter list for DSA Sign R ,
1671  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1672  * #PKE_DSA_SIGN_R_2048_224.
1673  */
1674 typedef struct icp_qat_fw_mmp_dsa_sign_r_2048_224_input_s {
1675 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1676 	uint64_t p; /**< DSA parameter,  (32 qwords)*/
1677 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1678 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1679 } icp_qat_fw_mmp_dsa_sign_r_2048_224_input_t;
1680 
1681 /**
1682  * @ingroup icp_qat_fw_mmp
1683  * @brief
1684  *    Input parameter list for DSA Sign S ,
1685  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1686  * #PKE_DSA_SIGN_S_224.
1687  */
1688 typedef struct icp_qat_fw_mmp_dsa_sign_s_224_input_s {
1689 	uint64_t m; /**< digest message to be signed  (4 qwords)*/
1690 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1691 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1692 	uint64_t r; /**< DSA parameter  (4 qwords)*/
1693 	uint64_t x; /**< randomly generated DSA parameter  (4 qwords)*/
1694 } icp_qat_fw_mmp_dsa_sign_s_224_input_t;
1695 
1696 /**
1697  * @ingroup icp_qat_fw_mmp
1698  * @brief
1699  *    Input parameter list for DSA Sign R S ,
1700  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1701  * #PKE_DSA_SIGN_R_S_2048_224.
1702  */
1703 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_2048_224_input_s {
1704 	uint64_t m; /**< digest of the message to be signed  (4 qwords)*/
1705 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1706 	uint64_t p; /**< DSA parameter  (32 qwords)*/
1707 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1708 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1709 	uint64_t x; /**< randomly generated DSA parameter  (4 qwords)*/
1710 } icp_qat_fw_mmp_dsa_sign_r_s_2048_224_input_t;
1711 
1712 /**
1713  * @ingroup icp_qat_fw_mmp
1714  * @brief
1715  *    Input parameter list for DSA Verify ,
1716  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1717  * #PKE_DSA_VERIFY_2048_224.
1718  */
1719 typedef struct icp_qat_fw_mmp_dsa_verify_2048_224_input_s {
1720 	uint64_t r; /**< DSA 224-bits signature  (4 qwords)*/
1721 	uint64_t s; /**< DSA 224-bits signature  (4 qwords)*/
1722 	uint64_t m; /**< digest of the message  (4 qwords)*/
1723 	uint64_t p; /**< DSA parameter  (32 qwords)*/
1724 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1725 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1726 	uint64_t y; /**< DSA parameter  (32 qwords)*/
1727 } icp_qat_fw_mmp_dsa_verify_2048_224_input_t;
1728 
1729 /**
1730  * @ingroup icp_qat_fw_mmp
1731  * @brief
1732  *    Input parameter list for DSA parameter generation P ,
1733  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1734  * #PKE_DSA_GEN_P_2048_256.
1735  */
1736 typedef struct icp_qat_fw_mmp_dsa_gen_p_2048_256_input_s {
1737 	uint64_t x; /**< DSA 2048-bit randomness  (32 qwords)*/
1738 	uint64_t q; /**< DSA 256-bit parameter  (4 qwords)*/
1739 } icp_qat_fw_mmp_dsa_gen_p_2048_256_input_t;
1740 
1741 /**
1742  * @ingroup icp_qat_fw_mmp
1743  * @brief
1744  *    Input parameter list for DSA key generation G ,
1745  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1746  * #PKE_DSA_GEN_G_2048.
1747  */
1748 typedef struct icp_qat_fw_mmp_dsa_gen_g_2048_input_s {
1749 	uint64_t p; /**< DSA 2048-bit parameter  (32 qwords)*/
1750 	uint64_t q; /**< DSA 256-bit parameter  (4 qwords)*/
1751 	uint64_t h; /**< DSA 2048-bit parameter  (32 qwords)*/
1752 } icp_qat_fw_mmp_dsa_gen_g_2048_input_t;
1753 
1754 /**
1755  * @ingroup icp_qat_fw_mmp
1756  * @brief
1757  *    Input parameter list for DSA Sign R ,
1758  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1759  * #PKE_DSA_SIGN_R_2048_256.
1760  */
1761 typedef struct icp_qat_fw_mmp_dsa_sign_r_2048_256_input_s {
1762 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1763 	uint64_t p; /**< DSA parameter,  (32 qwords)*/
1764 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1765 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1766 } icp_qat_fw_mmp_dsa_sign_r_2048_256_input_t;
1767 
1768 /**
1769  * @ingroup icp_qat_fw_mmp
1770  * @brief
1771  *    Input parameter list for DSA Sign S ,
1772  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1773  * #PKE_DSA_SIGN_S_256.
1774  */
1775 typedef struct icp_qat_fw_mmp_dsa_sign_s_256_input_s {
1776 	uint64_t m; /**< digest message to be signed  (4 qwords)*/
1777 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1778 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1779 	uint64_t r; /**< DSA parameter  (4 qwords)*/
1780 	uint64_t x; /**< randomly generated DSA parameter  (4 qwords)*/
1781 } icp_qat_fw_mmp_dsa_sign_s_256_input_t;
1782 
1783 /**
1784  * @ingroup icp_qat_fw_mmp
1785  * @brief
1786  *    Input parameter list for DSA Sign R S ,
1787  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1788  * #PKE_DSA_SIGN_R_S_2048_256.
1789  */
1790 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_2048_256_input_s {
1791 	uint64_t m; /**< digest of the message to be signed  (4 qwords)*/
1792 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1793 	uint64_t p; /**< DSA parameter  (32 qwords)*/
1794 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1795 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1796 	uint64_t x; /**< randomly generated DSA parameter  (4 qwords)*/
1797 } icp_qat_fw_mmp_dsa_sign_r_s_2048_256_input_t;
1798 
1799 /**
1800  * @ingroup icp_qat_fw_mmp
1801  * @brief
1802  *    Input parameter list for DSA Verify ,
1803  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1804  * #PKE_DSA_VERIFY_2048_256.
1805  */
1806 typedef struct icp_qat_fw_mmp_dsa_verify_2048_256_input_s {
1807 	uint64_t r; /**< DSA 256-bits signature  (4 qwords)*/
1808 	uint64_t s; /**< DSA 256-bits signature  (4 qwords)*/
1809 	uint64_t m; /**< digest of the message  (4 qwords)*/
1810 	uint64_t p; /**< DSA parameter  (32 qwords)*/
1811 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1812 	uint64_t g; /**< DSA parameter  (32 qwords)*/
1813 	uint64_t y; /**< DSA parameter  (32 qwords)*/
1814 } icp_qat_fw_mmp_dsa_verify_2048_256_input_t;
1815 
1816 /**
1817  * @ingroup icp_qat_fw_mmp
1818  * @brief
1819  *    Input parameter list for DSA parameter generation P ,
1820  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1821  * #PKE_DSA_GEN_P_3072_256.
1822  */
1823 typedef struct icp_qat_fw_mmp_dsa_gen_p_3072_256_input_s {
1824 	uint64_t x; /**< DSA 3072-bit randomness  (48 qwords)*/
1825 	uint64_t q; /**< DSA 256-bit parameter  (4 qwords)*/
1826 } icp_qat_fw_mmp_dsa_gen_p_3072_256_input_t;
1827 
1828 /**
1829  * @ingroup icp_qat_fw_mmp
1830  * @brief
1831  *    Input parameter list for DSA key generation G ,
1832  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1833  * #PKE_DSA_GEN_G_3072.
1834  */
1835 typedef struct icp_qat_fw_mmp_dsa_gen_g_3072_input_s {
1836 	uint64_t p; /**< DSA 3072-bit parameter  (48 qwords)*/
1837 	uint64_t q; /**< DSA 256-bit parameter  (4 qwords)*/
1838 	uint64_t h; /**< DSA 3072-bit parameter  (48 qwords)*/
1839 } icp_qat_fw_mmp_dsa_gen_g_3072_input_t;
1840 
1841 /**
1842  * @ingroup icp_qat_fw_mmp
1843  * @brief
1844  *    Input parameter list for DSA key generation Y ,
1845  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1846  * #PKE_DSA_GEN_Y_3072.
1847  */
1848 typedef struct icp_qat_fw_mmp_dsa_gen_y_3072_input_s {
1849 	uint64_t p; /**< DSA 3072-bit parameter  (48 qwords)*/
1850 	uint64_t g; /**< DSA parameter  (48 qwords)*/
1851 	uint64_t
1852 	    x; /**< randomly generated DSA parameter (3072 bits),  (4 qwords)*/
1853 } icp_qat_fw_mmp_dsa_gen_y_3072_input_t;
1854 
1855 /**
1856  * @ingroup icp_qat_fw_mmp
1857  * @brief
1858  *    Input parameter list for DSA Sign R ,
1859  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1860  * #PKE_DSA_SIGN_R_3072_256.
1861  */
1862 typedef struct icp_qat_fw_mmp_dsa_sign_r_3072_256_input_s {
1863 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1864 	uint64_t p; /**< DSA parameter,  (48 qwords)*/
1865 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1866 	uint64_t g; /**< DSA parameter  (48 qwords)*/
1867 } icp_qat_fw_mmp_dsa_sign_r_3072_256_input_t;
1868 
1869 /**
1870  * @ingroup icp_qat_fw_mmp
1871  * @brief
1872  *    Input parameter list for DSA Sign R S ,
1873  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1874  * #PKE_DSA_SIGN_R_S_3072_256.
1875  */
1876 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_3072_256_input_s {
1877 	uint64_t m; /**< digest of the message to be signed  (4 qwords)*/
1878 	uint64_t k; /**< randomly generated DSA parameter  (4 qwords)*/
1879 	uint64_t p; /**< DSA parameter  (48 qwords)*/
1880 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1881 	uint64_t g; /**< DSA parameter  (48 qwords)*/
1882 	uint64_t x; /**< randomly generated DSA parameter  (4 qwords)*/
1883 } icp_qat_fw_mmp_dsa_sign_r_s_3072_256_input_t;
1884 
1885 /**
1886  * @ingroup icp_qat_fw_mmp
1887  * @brief
1888  *    Input parameter list for DSA Verify ,
1889  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1890  * #PKE_DSA_VERIFY_3072_256.
1891  */
1892 typedef struct icp_qat_fw_mmp_dsa_verify_3072_256_input_s {
1893 	uint64_t r; /**< DSA 256-bits signature  (4 qwords)*/
1894 	uint64_t s; /**< DSA 256-bits signature  (4 qwords)*/
1895 	uint64_t m; /**< digest of the message  (4 qwords)*/
1896 	uint64_t p; /**< DSA parameter  (48 qwords)*/
1897 	uint64_t q; /**< DSA parameter  (4 qwords)*/
1898 	uint64_t g; /**< DSA parameter  (48 qwords)*/
1899 	uint64_t y; /**< DSA parameter  (48 qwords)*/
1900 } icp_qat_fw_mmp_dsa_verify_3072_256_input_t;
1901 
1902 /**
1903  * @ingroup icp_qat_fw_mmp
1904  * @brief
1905  *    Input parameter list for ECDSA Sign RS for curves B/K-163 and B/K-233 ,
1906  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1907  * #PKE_ECDSA_SIGN_RS_GF2_L256.
1908  */
1909 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l256_input_s {
1910 	uint64_t in; /**< concatenated input parameters (G, n, q, a, b, k, e, d)
1911 			(36 qwords)*/
1912 } icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l256_input_t;
1913 
1914 /**
1915  * @ingroup icp_qat_fw_mmp
1916  * @brief
1917  *    Input parameter list for ECDSA Sign R for curves B/K-163 and B/K-233 ,
1918  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1919  * #PKE_ECDSA_SIGN_R_GF2_L256.
1920  */
1921 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gf2_l256_input_s {
1922 	uint64_t
1923 	    xg; /**< x coordinate of base point G of B/K-163 of B/K-233  (4
1924 		   qwords)*/
1925 	uint64_t
1926 	    yg; /**< y coordinate of base point G of B/K-163 or B/K-233  (4
1927 		   qwords)*/
1928 	uint64_t
1929 	    n; /**< order of the base point of B/K-163 or B/K-233  (4 qwords)*/
1930 	uint64_t q; /**< field polynomial of B/K-163 or B/K-233  (4 qwords)*/
1931 	uint64_t
1932 	    a; /**< a equation coefficient of B/K-163 of B/K-233  (4 qwords)*/
1933 	uint64_t
1934 	    b; /**< b equation coefficient of B/K-163 or B/K-233  (4 qwords)*/
1935 	uint64_t k; /**< random value &gt; 0 and &lt; n  (4 qwords)*/
1936 } icp_qat_fw_mmp_ecdsa_sign_r_gf2_l256_input_t;
1937 
1938 /**
1939  * @ingroup icp_qat_fw_mmp
1940  * @brief
1941  *    Input parameter list for ECDSA Sign S for curves with n &lt; 2^256 ,
1942  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1943  * #PKE_ECDSA_SIGN_S_GF2_L256.
1944  */
1945 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gf2_l256_input_s {
1946 	uint64_t e; /**< hash of message (0 &lt; e &lt; 2^256)  (4 qwords)*/
1947 	uint64_t d; /**< private key (&gt;0 and &lt; n)  (4 qwords)*/
1948 	uint64_t
1949 	    r; /**< ECDSA r signature value (&gt;0 and &lt; n)  (4 qwords)*/
1950 	uint64_t k; /**< random value &gt; 0 and &lt; n  (4 qwords)*/
1951 	uint64_t n; /**< order of the base point G (2 &lt; n &lt; 2^256)  (4
1952 		       qwords)*/
1953 } icp_qat_fw_mmp_ecdsa_sign_s_gf2_l256_input_t;
1954 
1955 /**
1956  * @ingroup icp_qat_fw_mmp
1957  * @brief
1958  *    Input parameter list for ECDSA Verify for curves B/K-163 and B/K-233 ,
1959  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1960  * #PKE_ECDSA_VERIFY_GF2_L256.
1961  */
1962 typedef struct icp_qat_fw_mmp_ecdsa_verify_gf2_l256_input_s {
1963 	uint64_t
1964 	    in; /**< concatenated curve parameter (e,s,r,n,G,Q,a,b,q)  (44
1965 		   qwords)*/
1966 } icp_qat_fw_mmp_ecdsa_verify_gf2_l256_input_t;
1967 
1968 /**
1969  * @ingroup icp_qat_fw_mmp
1970  * @brief
1971  *    Input parameter list for ECDSA Sign RS ,
1972  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1973  * #PKE_ECDSA_SIGN_RS_GF2_L512.
1974  */
1975 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l512_input_s {
1976 	uint64_t in; /**< concatenated input parameters (G, n, q, a, b, k, e, d)
1977 			(72 qwords)*/
1978 } icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l512_input_t;
1979 
1980 /**
1981  * @ingroup icp_qat_fw_mmp
1982  * @brief
1983  *    Input parameter list for ECDSA GF2 Sign R ,
1984  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
1985  * #PKE_ECDSA_SIGN_R_GF2_L512.
1986  */
1987 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gf2_l512_input_s {
1988 	uint64_t xg; /**< x coordinate of verified base point (&gt; 0 and
1989 			degree(x(G)) &lt; degree(q))  (8 qwords)*/
1990 	uint64_t yg; /**< y coordinate of verified base point (&gt; 0 and
1991 			degree(y(G)) &lt; degree(q))  (8 qwords)*/
1992 	uint64_t n;  /**< order of the base point G, which must be prime and a
1993 			divisor of #E and &lt; 2^512)  (8 qwords)*/
1994 	uint64_t
1995 	    q; /**< field polynomial of degree &gt; 2 and &lt; 512  (8 qwords)*/
1996 	uint64_t a; /**< a equation coefficient (degree(a) &lt; degree(q))  (8
1997 		       qwords)*/
1998 	uint64_t b; /**< b equation coefficient (degree(b) &lt; degree(q))  (8
1999 		       qwords)*/
2000 	uint64_t k; /**< random value &gt; 0 and &lt; n  (8 qwords)*/
2001 } icp_qat_fw_mmp_ecdsa_sign_r_gf2_l512_input_t;
2002 
2003 /**
2004  * @ingroup icp_qat_fw_mmp
2005  * @brief
2006  *    Input parameter list for ECDSA GF2 Sign S ,
2007  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2008  * #PKE_ECDSA_SIGN_S_GF2_L512.
2009  */
2010 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gf2_l512_input_s {
2011 	uint64_t e; /**< hash of message (0 &lt; e &lt; 2^512)  (8 qwords)*/
2012 	uint64_t d; /**< private key (&gt;0 and &lt; n)  (8 qwords)*/
2013 	uint64_t
2014 	    r; /**< ECDSA r signature value (&gt;0 and &lt; n)  (8 qwords)*/
2015 	uint64_t k; /**< random value &gt; 0 and &lt; n  (8 qwords)*/
2016 	uint64_t n; /**< order of the base point G, which must be prime and a
2017 		       divisor of #E and &lt; 2^512)  (8 qwords)*/
2018 } icp_qat_fw_mmp_ecdsa_sign_s_gf2_l512_input_t;
2019 
2020 /**
2021  * @ingroup icp_qat_fw_mmp
2022  * @brief
2023  *    Input parameter list for ECDSA GF2 Verify ,
2024  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2025  * #PKE_ECDSA_VERIFY_GF2_L512.
2026  */
2027 typedef struct icp_qat_fw_mmp_ecdsa_verify_gf2_l512_input_s {
2028 	uint64_t
2029 	    in; /**< concatenated curve parameters (e, s, r, n, xG, yG, xQ, yQ,
2030 		   a, b, q)  (88 qwords)*/
2031 } icp_qat_fw_mmp_ecdsa_verify_gf2_l512_input_t;
2032 
2033 /**
2034  * @ingroup icp_qat_fw_mmp
2035  * @brief
2036  *    Input parameter list for ECDSA GF2 Sign RS for curves B-571/K-571 ,
2037  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2038  * #PKE_ECDSA_SIGN_RS_GF2_571.
2039  */
2040 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gf2_571_input_s {
2041 	uint64_t
2042 	    in; /**< concatenated input parameters (x(G), y(G), n, q, a, b, k,
2043 		   e, d)  (81 qwords)*/
2044 } icp_qat_fw_mmp_ecdsa_sign_rs_gf2_571_input_t;
2045 
2046 /**
2047  * @ingroup icp_qat_fw_mmp
2048  * @brief
2049  *    Input parameter list for ECDSA GF2 Sign S for curves with deg(q) &lt; 576
2050  * ,
2051  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2052  * #PKE_ECDSA_SIGN_S_GF2_571.
2053  */
2054 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gf2_571_input_s {
2055 	uint64_t e; /**< hash of message &lt; 2^576  (9 qwords)*/
2056 	uint64_t d; /**< private key (&gt; 0 and &lt; n)  (9 qwords)*/
2057 	uint64_t
2058 	    r; /**< ECDSA r signature value  (&gt; 0 and &lt; n)  (9 qwords)*/
2059 	uint64_t k; /**< random value (&gt; 0 and &lt; n)  (9 qwords)*/
2060 	uint64_t
2061 	    n; /**< order of the base point of the curve (n &lt; 2^576)  (9
2062 		  qwords)*/
2063 } icp_qat_fw_mmp_ecdsa_sign_s_gf2_571_input_t;
2064 
2065 /**
2066  * @ingroup icp_qat_fw_mmp
2067  * @brief
2068  *    Input parameter list for ECDSA GF2 Sign R for degree 571 ,
2069  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2070  * #PKE_ECDSA_SIGN_R_GF2_571.
2071  */
2072 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gf2_571_input_s {
2073 	uint64_t xg; /**< x coordinate of verified base point belonging to
2074 			B/K-571  (9 qwords)*/
2075 	uint64_t yg; /**< y coordinate of verified base point belonging to
2076 			B/K-571  (9 qwords)*/
2077 	uint64_t n;  /**< order of the base point G  (9 qwords)*/
2078 	uint64_t q;  /**< irreducible field polynomial of B/K-571  (9 qwords)*/
2079 	uint64_t a;  /**< a coefficient of curve B/K-571 (degree(a) &lt;
2080 			degree(q))  (9 qwords)*/
2081 	uint64_t b;  /**< b coefficient of curve B/K-571 (degree(b) &lt;
2082 			degree(q))  (9 qwords)*/
2083 	uint64_t k;  /**< random value &gt; 0 and &lt; n  (9 qwords)*/
2084 } icp_qat_fw_mmp_ecdsa_sign_r_gf2_571_input_t;
2085 
2086 /**
2087  * @ingroup icp_qat_fw_mmp
2088  * @brief
2089  *    Input parameter list for ECDSA GF2 Verify for degree 571 ,
2090  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2091  * #PKE_ECDSA_VERIFY_GF2_571.
2092  */
2093 typedef struct icp_qat_fw_mmp_ecdsa_verify_gf2_571_input_s {
2094 	uint64_t in; /**< concatenated input (e, s, r, n, G, Q, a, b, q) (99
2095 			qwords)*/
2096 } icp_qat_fw_mmp_ecdsa_verify_gf2_571_input_t;
2097 
2098 /**
2099  * @ingroup icp_qat_fw_mmp
2100  * @brief
2101  *    Input parameter list for MATHS GF2 Point Multiplication ,
2102  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2103  * #MATHS_POINT_MULTIPLICATION_GF2_L256.
2104  */
2105 typedef struct icp_qat_fw_maths_point_multiplication_gf2_l256_input_s {
2106 	uint64_t k;  /**< scalar multiplier &gt; 0 and &lt; 2^256 (4 qwords)*/
2107 	uint64_t xg; /**< x coordinate of curve point (degree(xG) &lt; 256) (4
2108 			qwords)*/
2109 	uint64_t yg; /**< y coordinate of curve point (degree(yG) &lt; 256) (4
2110 			qwords)*/
2111 	uint64_t
2112 	    a; /**< a equation coefficient of B/K-163 or B/K-233 (4 qwords)*/
2113 	uint64_t
2114 	    b; /**< b equation coefficient of B/K-163 or B/K-233 (4 qwords)*/
2115 	uint64_t q; /**< field polynomial of B/K-163 or B/K-233 (4 qwords)*/
2116 	uint64_t h; /**< cofactor of B/K-163 or B/K-233 (4 qwords)*/
2117 } icp_qat_fw_maths_point_multiplication_gf2_l256_input_t;
2118 
2119 /**
2120  * @ingroup icp_qat_fw_mmp
2121  * @brief
2122  *    Input parameter list for MATHS GF2 Point Verification ,
2123  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2124  * #MATHS_POINT_VERIFY_GF2_L256.
2125  */
2126 typedef struct icp_qat_fw_maths_point_verify_gf2_l256_input_s {
2127 	uint64_t xq; /**< x coordinate of input point (4 qwords)*/
2128 	uint64_t yq; /**< y coordinate of input point (4 qwords)*/
2129 	uint64_t
2130 	    q; /**< field polynomial of curve, degree(q) &lt; 256 (4 qwords)*/
2131 	uint64_t
2132 	    a; /**< a equation coefficient of curve, degree(a) &lt; 256 (4
2133 		  qwords)*/
2134 	uint64_t
2135 	    b; /**< b equation coefficient of curve, degree(b) &lt; 256 (4
2136 		  qwords)*/
2137 } icp_qat_fw_maths_point_verify_gf2_l256_input_t;
2138 
2139 /**
2140  * @ingroup icp_qat_fw_mmp
2141  * @brief
2142  *    Input parameter list for MATHS GF2 Point Multiplication ,
2143  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2144  * #MATHS_POINT_MULTIPLICATION_GF2_L512.
2145  */
2146 typedef struct icp_qat_fw_maths_point_multiplication_gf2_l512_input_s {
2147 	uint64_t k;  /**< scalar multiplier &gt; 0 and &lt; 2^512 (8 qwords)*/
2148 	uint64_t xg; /**< x coordinate of curve point (degree(xG) &lt; 512) (8
2149 			qwords)*/
2150 	uint64_t yg; /**< y coordinate of curve point (degree(yG) &lt; 512) (8
2151 			qwords)*/
2152 	uint64_t
2153 	    a; /**< a equation coefficient (degree(a) &lt; 512) (8 qwords)*/
2154 	uint64_t
2155 	    b; /**< b equation coefficient (degree(b) &lt; 512) (8 qwords)*/
2156 	uint64_t
2157 	    q; /**< field polynomial of degree &gt; 2 and &lt; 512 (8 qwords)*/
2158 	uint64_t h; /**< cofactor (&lt; 2^512) (8 qwords)*/
2159 } icp_qat_fw_maths_point_multiplication_gf2_l512_input_t;
2160 
2161 /**
2162  * @ingroup icp_qat_fw_mmp
2163  * @brief
2164  *    Input parameter list for MATHS GF2 Point Verification ,
2165  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2166  * #MATHS_POINT_VERIFY_GF2_L512.
2167  */
2168 typedef struct icp_qat_fw_maths_point_verify_gf2_l512_input_s {
2169 	uint64_t xq; /**< x coordinate of input point (8 qwords)*/
2170 	uint64_t yq; /**< y coordinate of input point (8 qwords)*/
2171 	uint64_t
2172 	    q; /**< field polynomial of degree &gt; 2 and &lt; 512 (8 qwords)*/
2173 	uint64_t
2174 	    a; /**< a equation coefficient (degree(a) &lt; 512) (8 qwords)*/
2175 	uint64_t
2176 	    b; /**< b equation coefficient (degree(a) &lt; 512) (8 qwords)*/
2177 } icp_qat_fw_maths_point_verify_gf2_l512_input_t;
2178 
2179 /**
2180  * @ingroup icp_qat_fw_mmp
2181  * @brief
2182  *    Input parameter list for ECC GF2 Point Multiplication for curves
2183  * B-571/K-571 ,
2184  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2185  * #MATHS_POINT_MULTIPLICATION_GF2_571.
2186  */
2187 typedef struct icp_qat_fw_maths_point_multiplication_gf2_571_input_s {
2188 	uint64_t k;  /**< scalar value &gt; 0 and &lt; 2^576 (9 qwords)*/
2189 	uint64_t xg; /**< x coordinate of curve point (degree(xG) &lt;
2190 			degree(q)) (9 qwords)*/
2191 	uint64_t yg; /**< y coordinate of curve point (degree(xG) &lt;
2192 			degree(q)) (9 qwords)*/
2193 	uint64_t a;  /**< a equation coefficient for B/K-571 (9 qwords)*/
2194 	uint64_t b;  /**< b equation coefficient for B/K-571 (9 qwords)*/
2195 	uint64_t q;  /**< field polynomial of B/K-571 (9 qwords)*/
2196 	uint64_t h;  /**< cofactor for B/K-571 (1 qwords)*/
2197 } icp_qat_fw_maths_point_multiplication_gf2_571_input_t;
2198 
2199 /**
2200  * @ingroup icp_qat_fw_mmp
2201  * @brief
2202  *    Input parameter list for ECC GF2 Point Verification for degree 571 ,
2203  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2204  * #MATHS_POINT_VERIFY_GF2_571.
2205  */
2206 typedef struct icp_qat_fw_maths_point_verify_gf2_571_input_s {
2207 	uint64_t xq; /**< x coordinate of candidate public key (9 qwords)*/
2208 	uint64_t yq; /**< y coordinate of candidate public key (9 qwords)*/
2209 	uint64_t q;  /**< field polynomial of B/K-571 (9 qwords)*/
2210 	uint64_t a;  /**< a equation coefficient of B/K-571 (9 qwords)*/
2211 	uint64_t b;  /**< b equation coefficient of B/K-571 (9 qwords)*/
2212 } icp_qat_fw_maths_point_verify_gf2_571_input_t;
2213 
2214 /**
2215  * @ingroup icp_qat_fw_mmp
2216  * @brief
2217  *    Input parameter list for ECDSA GFP Sign R ,
2218  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2219  * #PKE_ECDSA_SIGN_R_GFP_L256.
2220  */
2221 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gfp_l256_input_s {
2222 	uint64_t xg; /**< x coordinate of base point G,  (4 qwords)*/
2223 	uint64_t yg; /**< y coordinate of base point G,  (4 qwords)*/
2224 	uint64_t n;  /**< order of the base point G, which shall be prime  (4
2225 			qwords)*/
2226 	uint64_t q;  /**< modulus  (4 qwords)*/
2227 	uint64_t a;  /**< a equation coefficient  (4 qwords)*/
2228 	uint64_t b;  /**< b equation coefficient  (4 qwords)*/
2229 	uint64_t k;  /**< random value  (4 qwords)*/
2230 } icp_qat_fw_mmp_ecdsa_sign_r_gfp_l256_input_t;
2231 
2232 /**
2233  * @ingroup icp_qat_fw_mmp
2234  * @brief
2235  *    Input parameter list for ECDSA GFP Sign S ,
2236  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2237  * #PKE_ECDSA_SIGN_S_GFP_L256.
2238  */
2239 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gfp_l256_input_s {
2240 	uint64_t e; /**< digest of the message to be signed  (4 qwords)*/
2241 	uint64_t d; /**< private key  (4 qwords)*/
2242 	uint64_t r; /**< DSA r signature value  (4 qwords)*/
2243 	uint64_t k; /**< random value  (4 qwords)*/
2244 	uint64_t n; /**< order of the base point G, which shall be prime  (4
2245 		       qwords)*/
2246 } icp_qat_fw_mmp_ecdsa_sign_s_gfp_l256_input_t;
2247 
2248 /**
2249  * @ingroup icp_qat_fw_mmp
2250  * @brief
2251  *    Input parameter list for ECDSA GFP Sign RS ,
2252  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2253  * #PKE_ECDSA_SIGN_RS_GFP_L256.
2254  */
2255 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l256_input_s {
2256 	uint64_t
2257 	    in; /**< {xG, yG, n, q, a, b, k, e, d} concatenated  (36 qwords)*/
2258 } icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l256_input_t;
2259 
2260 /**
2261  * @ingroup icp_qat_fw_mmp
2262  * @brief
2263  *    Input parameter list for ECDSA GFP Verify ,
2264  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2265  * #PKE_ECDSA_VERIFY_GFP_L256.
2266  */
2267 typedef struct icp_qat_fw_mmp_ecdsa_verify_gfp_l256_input_s {
2268 	uint64_t in; /**< in = {e, s, r, n, xG, yG, xQ, yQ, a, b ,q}
2269 			concatenated  (44 qwords)*/
2270 } icp_qat_fw_mmp_ecdsa_verify_gfp_l256_input_t;
2271 
2272 /**
2273  * @ingroup icp_qat_fw_mmp
2274  * @brief
2275  *    Input parameter list for ECDSA GFP Sign R ,
2276  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2277  * #PKE_ECDSA_SIGN_R_GFP_L512.
2278  */
2279 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gfp_l512_input_s {
2280 	uint64_t xg; /**< x coordinate of base point G,  (8 qwords)*/
2281 	uint64_t yg; /**< y coordinate of base point G,  (8 qwords)*/
2282 	uint64_t n;  /**< order of the base point G, which shall be prime  (8
2283 			qwords)*/
2284 	uint64_t q;  /**< modulus  (8 qwords)*/
2285 	uint64_t a;  /**< a equation coefficient  (8 qwords)*/
2286 	uint64_t b;  /**< b equation coefficient  (8 qwords)*/
2287 	uint64_t k;  /**< random value  (8 qwords)*/
2288 } icp_qat_fw_mmp_ecdsa_sign_r_gfp_l512_input_t;
2289 
2290 /**
2291  * @ingroup icp_qat_fw_mmp
2292  * @brief
2293  *    Input parameter list for ECDSA GFP Sign S ,
2294  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2295  * #PKE_ECDSA_SIGN_S_GFP_L512.
2296  */
2297 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gfp_l512_input_s {
2298 	uint64_t e; /**< digest of the message to be signed  (8 qwords)*/
2299 	uint64_t d; /**< private key  (8 qwords)*/
2300 	uint64_t r; /**< DSA r signature value  (8 qwords)*/
2301 	uint64_t k; /**< random value  (8 qwords)*/
2302 	uint64_t n; /**< order of the base point G, which shall be prime  (8
2303 		       qwords)*/
2304 } icp_qat_fw_mmp_ecdsa_sign_s_gfp_l512_input_t;
2305 
2306 /**
2307  * @ingroup icp_qat_fw_mmp
2308  * @brief
2309  *    Input parameter list for ECDSA GFP Sign RS ,
2310  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2311  * #PKE_ECDSA_SIGN_RS_GFP_L512.
2312  */
2313 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l512_input_s {
2314 	uint64_t
2315 	    in; /**< {xG, yG, n, q, a, b, k, e, d} concatenated  (72 qwords)*/
2316 } icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l512_input_t;
2317 
2318 /**
2319  * @ingroup icp_qat_fw_mmp
2320  * @brief
2321  *    Input parameter list for ECDSA GFP Verify ,
2322  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2323  * #PKE_ECDSA_VERIFY_GFP_L512.
2324  */
2325 typedef struct icp_qat_fw_mmp_ecdsa_verify_gfp_l512_input_s {
2326 	uint64_t in; /**< in = {e, s, r, n, xG, yG, xQ, yQ, a, b ,q}
2327 			concatenated  (88 qwords)*/
2328 } icp_qat_fw_mmp_ecdsa_verify_gfp_l512_input_t;
2329 
2330 /**
2331  * @ingroup icp_qat_fw_mmp
2332  * @brief
2333  *    Input parameter list for ECDSA GFP Sign R ,
2334  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2335  * #PKE_ECDSA_SIGN_R_GFP_521.
2336  */
2337 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gfp_521_input_s {
2338 	uint64_t xg; /**< x coordinate of base point G,  (9 qwords)*/
2339 	uint64_t yg; /**< y coordinate of base point G,  (9 qwords)*/
2340 	uint64_t n;  /**< order of the base point G, which shall be prime  (9
2341 			qwords)*/
2342 	uint64_t q;  /**< modulus  (9 qwords)*/
2343 	uint64_t a;  /**< a equation coefficient  (9 qwords)*/
2344 	uint64_t b;  /**< b equation coefficient  (9 qwords)*/
2345 	uint64_t k;  /**< random value  (9 qwords)*/
2346 } icp_qat_fw_mmp_ecdsa_sign_r_gfp_521_input_t;
2347 
2348 /**
2349  * @ingroup icp_qat_fw_mmp
2350  * @brief
2351  *    Input parameter list for ECDSA GFP Sign S ,
2352  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2353  * #PKE_ECDSA_SIGN_S_GFP_521.
2354  */
2355 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gfp_521_input_s {
2356 	uint64_t e; /**< digest of the message to be signed  (9 qwords)*/
2357 	uint64_t d; /**< private key  (9 qwords)*/
2358 	uint64_t r; /**< DSA r signature value  (9 qwords)*/
2359 	uint64_t k; /**< random value  (9 qwords)*/
2360 	uint64_t n; /**< order of the base point G, which shall be prime  (9
2361 		       qwords)*/
2362 } icp_qat_fw_mmp_ecdsa_sign_s_gfp_521_input_t;
2363 
2364 /**
2365  * @ingroup icp_qat_fw_mmp
2366  * @brief
2367  *    Input parameter list for ECDSA GFP Sign RS ,
2368  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2369  * #PKE_ECDSA_SIGN_RS_GFP_521.
2370  */
2371 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gfp_521_input_s {
2372 	uint64_t
2373 	    in; /**< {xG, yG, n, q, a, b, k, e, d} concatenated  (81 qwords)*/
2374 } icp_qat_fw_mmp_ecdsa_sign_rs_gfp_521_input_t;
2375 
2376 /**
2377  * @ingroup icp_qat_fw_mmp
2378  * @brief
2379  *    Input parameter list for ECDSA GFP Verify ,
2380  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2381  * #PKE_ECDSA_VERIFY_GFP_521.
2382  */
2383 typedef struct icp_qat_fw_mmp_ecdsa_verify_gfp_521_input_s {
2384 	uint64_t in; /**< in = {e, s, r, n, xG, yG, xQ, yQ, a, b ,q}
2385 			concatenated  (99 qwords)*/
2386 } icp_qat_fw_mmp_ecdsa_verify_gfp_521_input_t;
2387 
2388 /**
2389  * @ingroup icp_qat_fw_mmp
2390  * @brief
2391  *    Input parameter list for ECC GFP Point Multiplication ,
2392  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2393  * #MATHS_POINT_MULTIPLICATION_GFP_L256.
2394  */
2395 typedef struct icp_qat_fw_maths_point_multiplication_gfp_l256_input_s {
2396 	uint64_t k;  /**< scalar multiplier  (4 qwords)*/
2397 	uint64_t xg; /**< x coordinate of curve point  (4 qwords)*/
2398 	uint64_t yg; /**< y coordinate of curve point  (4 qwords)*/
2399 	uint64_t a;  /**< a equation coefficient  (4 qwords)*/
2400 	uint64_t b;  /**< b equation coefficient  (4 qwords)*/
2401 	uint64_t q;  /**< modulus  (4 qwords)*/
2402 	uint64_t h;  /**< cofactor  (4 qwords)*/
2403 } icp_qat_fw_maths_point_multiplication_gfp_l256_input_t;
2404 
2405 /**
2406  * @ingroup icp_qat_fw_mmp
2407  * @brief
2408  *    Input parameter list for ECC GFP Partial Point Verification ,
2409  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2410  * #MATHS_POINT_VERIFY_GFP_L256.
2411  */
2412 typedef struct icp_qat_fw_maths_point_verify_gfp_l256_input_s {
2413 	uint64_t xq; /**< x coordinate of candidate point (4 qwords)*/
2414 	uint64_t yq; /**< y coordinate of candidate point (4 qwords)*/
2415 	uint64_t q;  /**< modulus (4 qwords)*/
2416 	uint64_t a;  /**< a equation coefficient  (4 qwords)*/
2417 	uint64_t b;  /**< b equation coefficient  (4 qwords)*/
2418 } icp_qat_fw_maths_point_verify_gfp_l256_input_t;
2419 
2420 /**
2421  * @ingroup icp_qat_fw_mmp
2422  * @brief
2423  *    Input parameter list for ECC GFP Point Multiplication ,
2424  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2425  * #MATHS_POINT_MULTIPLICATION_GFP_L512.
2426  */
2427 typedef struct icp_qat_fw_maths_point_multiplication_gfp_l512_input_s {
2428 	uint64_t k;  /**< scalar multiplier  (8 qwords)*/
2429 	uint64_t xg; /**< x coordinate of curve point  (8 qwords)*/
2430 	uint64_t yg; /**< y coordinate of curve point  (8 qwords)*/
2431 	uint64_t a;  /**< a equation coefficient  (8 qwords)*/
2432 	uint64_t b;  /**< b equation coefficient  (8 qwords)*/
2433 	uint64_t q;  /**< modulus  (8 qwords)*/
2434 	uint64_t h;  /**< cofactor  (8 qwords)*/
2435 } icp_qat_fw_maths_point_multiplication_gfp_l512_input_t;
2436 
2437 /**
2438  * @ingroup icp_qat_fw_mmp
2439  * @brief
2440  *    Input parameter list for ECC GFP Partial Point ,
2441  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2442  * #MATHS_POINT_VERIFY_GFP_L512.
2443  */
2444 typedef struct icp_qat_fw_maths_point_verify_gfp_l512_input_s {
2445 	uint64_t xq; /**< x coordinate of candidate point (8 qwords)*/
2446 	uint64_t yq; /**< y coordinate of candidate point (8 qwords)*/
2447 	uint64_t q;  /**< modulus  (8 qwords)*/
2448 	uint64_t a;  /**< a equation coefficient  (8 qwords)*/
2449 	uint64_t b;  /**< b equation coefficient  (8 qwords)*/
2450 } icp_qat_fw_maths_point_verify_gfp_l512_input_t;
2451 
2452 /**
2453  * @ingroup icp_qat_fw_mmp
2454  * @brief
2455  *    Input parameter list for ECC GFP Point Multiplication ,
2456  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2457  * #MATHS_POINT_MULTIPLICATION_GFP_521.
2458  */
2459 typedef struct icp_qat_fw_maths_point_multiplication_gfp_521_input_s {
2460 	uint64_t k;  /**< scalar multiplier  (9 qwords)*/
2461 	uint64_t xg; /**< x coordinate of curve point  (9 qwords)*/
2462 	uint64_t yg; /**< y coordinate of curve point  (9 qwords)*/
2463 	uint64_t a;  /**< a equation coefficient  (9 qwords)*/
2464 	uint64_t b;  /**< b equation coefficient (9 qwords)*/
2465 	uint64_t q;  /**< modulus  (9 qwords)*/
2466 	uint64_t h;  /**< cofactor  (1 qwords)*/
2467 } icp_qat_fw_maths_point_multiplication_gfp_521_input_t;
2468 
2469 /**
2470  * @ingroup icp_qat_fw_mmp
2471  * @brief
2472  *    Input parameter list for ECC GFP Partial Point Verification ,
2473  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2474  * #MATHS_POINT_VERIFY_GFP_521.
2475  */
2476 typedef struct icp_qat_fw_maths_point_verify_gfp_521_input_s {
2477 	uint64_t xq; /**< x coordinate of candidate point (9 qwords)*/
2478 	uint64_t yq; /**< y coordinate of candidate point (9 qwords)*/
2479 	uint64_t q;  /**< modulus  (9 qwords)*/
2480 	uint64_t a;  /**< a equation coefficient  (9 qwords)*/
2481 	uint64_t b;  /**< b equation coefficient (9 qwords)*/
2482 } icp_qat_fw_maths_point_verify_gfp_521_input_t;
2483 
2484 /**
2485  * @ingroup icp_qat_fw_mmp
2486  * @brief
2487  *    Input parameter list for ECC curve25519 Variable Point Multiplication
2488  * [k]P(x), as specified in RFC7748 ,
2489  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2490  * #POINT_MULTIPLICATION_C25519.
2491  */
2492 typedef struct icp_qat_fw_point_multiplication_c25519_input_s {
2493 	uint64_t xp; /**< xP = Montgomery affine coordinate X of point P  (4
2494 			qwords)*/
2495 	uint64_t k;  /**< k  = scalar  (4 qwords)*/
2496 } icp_qat_fw_point_multiplication_c25519_input_t;
2497 
2498 /**
2499  * @ingroup icp_qat_fw_mmp
2500  * @brief
2501  *    Input parameter list for ECC curve25519 Generator Point Multiplication
2502  * [k]G(x), as specified in RFC7748 ,
2503  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2504  * #GENERATOR_MULTIPLICATION_C25519.
2505  */
2506 typedef struct icp_qat_fw_generator_multiplication_c25519_input_s {
2507 	uint64_t k; /**< k  = scalar  (4 qwords)*/
2508 } icp_qat_fw_generator_multiplication_c25519_input_t;
2509 
2510 /**
2511  * @ingroup icp_qat_fw_mmp
2512  * @brief
2513  *    Input parameter list for ECC edwards25519 Variable Point Multiplication
2514  * [k]P, as specified in RFC8032 ,
2515  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2516  * #POINT_MULTIPLICATION_ED25519.
2517  */
2518 typedef struct icp_qat_fw_point_multiplication_ed25519_input_s {
2519 	uint64_t xp; /**< xP = Twisted Edwards affine coordinate X of point P
2520 			(4 qwords)*/
2521 	uint64_t yp; /**< yP = Twisted Edwards affine coordinate Y of point P
2522 			(4 qwords)*/
2523 	uint64_t k;  /**< k  = scalar  (4 qwords)*/
2524 } icp_qat_fw_point_multiplication_ed25519_input_t;
2525 
2526 /**
2527  * @ingroup icp_qat_fw_mmp
2528  * @brief
2529  *    Input parameter list for ECC edwards25519 Generator Point Multiplication
2530  * [k]G, as specified in RFC8032 ,
2531  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2532  * #GENERATOR_MULTIPLICATION_ED25519.
2533  */
2534 typedef struct icp_qat_fw_generator_multiplication_ed25519_input_s {
2535 	uint64_t k; /**< k  = scalar  (4 qwords)*/
2536 } icp_qat_fw_generator_multiplication_ed25519_input_t;
2537 
2538 /**
2539  * @ingroup icp_qat_fw_mmp
2540  * @brief
2541  *    Input parameter list for ECC curve448 Variable Point Multiplication
2542  * [k]P(x), as specified in RFC7748 ,
2543  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2544  * #POINT_MULTIPLICATION_C448.
2545  */
2546 typedef struct icp_qat_fw_point_multiplication_c448_input_s {
2547 	uint64_t xp; /**< xP = Montgomery affine coordinate X of point P  (8
2548 			qwords)*/
2549 	uint64_t k;  /**< k  = scalar  (8 qwords)*/
2550 } icp_qat_fw_point_multiplication_c448_input_t;
2551 
2552 /**
2553  * @ingroup icp_qat_fw_mmp
2554  * @brief
2555  *    Input parameter list for ECC curve448 Generator Point Multiplication
2556  * [k]G(x), as specified in RFC7748 ,
2557  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2558  * #GENERATOR_MULTIPLICATION_C448.
2559  */
2560 typedef struct icp_qat_fw_generator_multiplication_c448_input_s {
2561 	uint64_t k; /**< k  = scalar  (8 qwords)*/
2562 } icp_qat_fw_generator_multiplication_c448_input_t;
2563 
2564 /**
2565  * @ingroup icp_qat_fw_mmp
2566  * @brief
2567  *    Input parameter list for ECC edwards448 Variable Point Multiplication
2568  * [k]P, as specified in RFC8032 ,
2569  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2570  * #POINT_MULTIPLICATION_ED448.
2571  */
2572 typedef struct icp_qat_fw_point_multiplication_ed448_input_s {
2573 	uint64_t
2574 	    xp; /**< xP = Edwards affine coordinate X of point P  (8 qwords)*/
2575 	uint64_t
2576 	    yp; /**< yP = Edwards affine coordinate Y of point P  (8 qwords)*/
2577 	uint64_t k; /**< k  = scalar  (8 qwords)*/
2578 } icp_qat_fw_point_multiplication_ed448_input_t;
2579 
2580 /**
2581  * @ingroup icp_qat_fw_mmp
2582  * @brief
2583  *    Input parameter list for ECC edwards448 Generator Point Multiplication
2584  * [k]P, as specified in RFC8032 ,
2585  *      to be used when icp_qat_fw_pke_request_s::functionalityId is
2586  * #GENERATOR_MULTIPLICATION_ED448.
2587  */
2588 typedef struct icp_qat_fw_generator_multiplication_ed448_input_s {
2589 	uint64_t k; /**< k  = scalar  (8 qwords)*/
2590 } icp_qat_fw_generator_multiplication_ed448_input_t;
2591 
2592 /**
2593  * @ingroup icp_qat_fw_mmp
2594  * @brief
2595  *    MMP input parameters
2596  */
2597 typedef union icp_qat_fw_mmp_input_param_u {
2598 	/** Generic parameter structure : All members of this wrapper structure
2599 	 * are pointers to large integers.
2600 	 */
2601 	uint64_t flat_array[ICP_QAT_FW_PKE_INPUT_COUNT_MAX];
2602 
2603 	/** Initialisation sequence  */
2604 	icp_qat_fw_mmp_init_input_t mmp_init;
2605 
2606 	/** Diffie-Hellman Modular exponentiation base 2 for 768-bit numbers  */
2607 	icp_qat_fw_mmp_dh_g2_768_input_t mmp_dh_g2_768;
2608 
2609 	/** Diffie-Hellman Modular exponentiation for 768-bit numbers  */
2610 	icp_qat_fw_mmp_dh_768_input_t mmp_dh_768;
2611 
2612 	/** Diffie-Hellman Modular exponentiation base 2 for 1024-bit numbers */
2613 	icp_qat_fw_mmp_dh_g2_1024_input_t mmp_dh_g2_1024;
2614 
2615 	/** Diffie-Hellman Modular exponentiation for 1024-bit numbers  */
2616 	icp_qat_fw_mmp_dh_1024_input_t mmp_dh_1024;
2617 
2618 	/** Diffie-Hellman Modular exponentiation base 2 for 1536-bit numbers */
2619 	icp_qat_fw_mmp_dh_g2_1536_input_t mmp_dh_g2_1536;
2620 
2621 	/** Diffie-Hellman Modular exponentiation for 1536-bit numbers  */
2622 	icp_qat_fw_mmp_dh_1536_input_t mmp_dh_1536;
2623 
2624 	/** Diffie-Hellman Modular exponentiation base 2 for 2048-bit numbers */
2625 	icp_qat_fw_mmp_dh_g2_2048_input_t mmp_dh_g2_2048;
2626 
2627 	/** Diffie-Hellman Modular exponentiation for 2048-bit numbers  */
2628 	icp_qat_fw_mmp_dh_2048_input_t mmp_dh_2048;
2629 
2630 	/** Diffie-Hellman Modular exponentiation base 2 for 3072-bit numbers */
2631 	icp_qat_fw_mmp_dh_g2_3072_input_t mmp_dh_g2_3072;
2632 
2633 	/** Diffie-Hellman Modular exponentiation for 3072-bit numbers  */
2634 	icp_qat_fw_mmp_dh_3072_input_t mmp_dh_3072;
2635 
2636 	/** Diffie-Hellman Modular exponentiation base 2 for 4096-bit numbers */
2637 	icp_qat_fw_mmp_dh_g2_4096_input_t mmp_dh_g2_4096;
2638 
2639 	/** Diffie-Hellman Modular exponentiation for 4096-bit numbers  */
2640 	icp_qat_fw_mmp_dh_4096_input_t mmp_dh_4096;
2641 
2642 	/** RSA 512 key generation first form  */
2643 	icp_qat_fw_mmp_rsa_kp1_512_input_t mmp_rsa_kp1_512;
2644 
2645 	/** RSA 512 key generation second form  */
2646 	icp_qat_fw_mmp_rsa_kp2_512_input_t mmp_rsa_kp2_512;
2647 
2648 	/** RSA 512 Encryption  */
2649 	icp_qat_fw_mmp_rsa_ep_512_input_t mmp_rsa_ep_512;
2650 
2651 	/** RSA 512 Decryption  */
2652 	icp_qat_fw_mmp_rsa_dp1_512_input_t mmp_rsa_dp1_512;
2653 
2654 	/** RSA 1024 Decryption with CRT  */
2655 	icp_qat_fw_mmp_rsa_dp2_512_input_t mmp_rsa_dp2_512;
2656 
2657 	/** RSA 1024 key generation first form  */
2658 	icp_qat_fw_mmp_rsa_kp1_1024_input_t mmp_rsa_kp1_1024;
2659 
2660 	/** RSA 1024 key generation second form  */
2661 	icp_qat_fw_mmp_rsa_kp2_1024_input_t mmp_rsa_kp2_1024;
2662 
2663 	/** RSA 1024 Encryption  */
2664 	icp_qat_fw_mmp_rsa_ep_1024_input_t mmp_rsa_ep_1024;
2665 
2666 	/** RSA 1024 Decryption  */
2667 	icp_qat_fw_mmp_rsa_dp1_1024_input_t mmp_rsa_dp1_1024;
2668 
2669 	/** RSA 1024 Decryption with CRT  */
2670 	icp_qat_fw_mmp_rsa_dp2_1024_input_t mmp_rsa_dp2_1024;
2671 
2672 	/** RSA 1536 key generation first form  */
2673 	icp_qat_fw_mmp_rsa_kp1_1536_input_t mmp_rsa_kp1_1536;
2674 
2675 	/** RSA 1536 key generation second form  */
2676 	icp_qat_fw_mmp_rsa_kp2_1536_input_t mmp_rsa_kp2_1536;
2677 
2678 	/** RSA 1536 Encryption  */
2679 	icp_qat_fw_mmp_rsa_ep_1536_input_t mmp_rsa_ep_1536;
2680 
2681 	/** RSA 1536 Decryption  */
2682 	icp_qat_fw_mmp_rsa_dp1_1536_input_t mmp_rsa_dp1_1536;
2683 
2684 	/** RSA 1536 Decryption with CRT  */
2685 	icp_qat_fw_mmp_rsa_dp2_1536_input_t mmp_rsa_dp2_1536;
2686 
2687 	/** RSA 2048 key generation first form  */
2688 	icp_qat_fw_mmp_rsa_kp1_2048_input_t mmp_rsa_kp1_2048;
2689 
2690 	/** RSA 2048 key generation second form  */
2691 	icp_qat_fw_mmp_rsa_kp2_2048_input_t mmp_rsa_kp2_2048;
2692 
2693 	/** RSA 2048 Encryption  */
2694 	icp_qat_fw_mmp_rsa_ep_2048_input_t mmp_rsa_ep_2048;
2695 
2696 	/** RSA 2048 Decryption  */
2697 	icp_qat_fw_mmp_rsa_dp1_2048_input_t mmp_rsa_dp1_2048;
2698 
2699 	/** RSA 2048 Decryption with CRT  */
2700 	icp_qat_fw_mmp_rsa_dp2_2048_input_t mmp_rsa_dp2_2048;
2701 
2702 	/** RSA 3072 key generation first form  */
2703 	icp_qat_fw_mmp_rsa_kp1_3072_input_t mmp_rsa_kp1_3072;
2704 
2705 	/** RSA 3072 key generation second form  */
2706 	icp_qat_fw_mmp_rsa_kp2_3072_input_t mmp_rsa_kp2_3072;
2707 
2708 	/** RSA 3072 Encryption  */
2709 	icp_qat_fw_mmp_rsa_ep_3072_input_t mmp_rsa_ep_3072;
2710 
2711 	/** RSA 3072 Decryption  */
2712 	icp_qat_fw_mmp_rsa_dp1_3072_input_t mmp_rsa_dp1_3072;
2713 
2714 	/** RSA 3072 Decryption with CRT  */
2715 	icp_qat_fw_mmp_rsa_dp2_3072_input_t mmp_rsa_dp2_3072;
2716 
2717 	/** RSA 4096 key generation first form  */
2718 	icp_qat_fw_mmp_rsa_kp1_4096_input_t mmp_rsa_kp1_4096;
2719 
2720 	/** RSA 4096 key generation second form  */
2721 	icp_qat_fw_mmp_rsa_kp2_4096_input_t mmp_rsa_kp2_4096;
2722 
2723 	/** RSA 4096 Encryption  */
2724 	icp_qat_fw_mmp_rsa_ep_4096_input_t mmp_rsa_ep_4096;
2725 
2726 	/** RSA 4096 Decryption  */
2727 	icp_qat_fw_mmp_rsa_dp1_4096_input_t mmp_rsa_dp1_4096;
2728 
2729 	/** RSA 4096 Decryption with CRT  */
2730 	icp_qat_fw_mmp_rsa_dp2_4096_input_t mmp_rsa_dp2_4096;
2731 
2732 	/** GCD primality test for 192-bit numbers  */
2733 	icp_qat_fw_mmp_gcd_pt_192_input_t mmp_gcd_pt_192;
2734 
2735 	/** GCD primality test for 256-bit numbers  */
2736 	icp_qat_fw_mmp_gcd_pt_256_input_t mmp_gcd_pt_256;
2737 
2738 	/** GCD primality test for 384-bit numbers  */
2739 	icp_qat_fw_mmp_gcd_pt_384_input_t mmp_gcd_pt_384;
2740 
2741 	/** GCD primality test for 512-bit numbers  */
2742 	icp_qat_fw_mmp_gcd_pt_512_input_t mmp_gcd_pt_512;
2743 
2744 	/** GCD primality test for 768-bit numbers  */
2745 	icp_qat_fw_mmp_gcd_pt_768_input_t mmp_gcd_pt_768;
2746 
2747 	/** GCD primality test for 1024-bit numbers  */
2748 	icp_qat_fw_mmp_gcd_pt_1024_input_t mmp_gcd_pt_1024;
2749 
2750 	/** GCD primality test for 1536-bit numbers  */
2751 	icp_qat_fw_mmp_gcd_pt_1536_input_t mmp_gcd_pt_1536;
2752 
2753 	/** GCD primality test for 2048-bit numbers  */
2754 	icp_qat_fw_mmp_gcd_pt_2048_input_t mmp_gcd_pt_2048;
2755 
2756 	/** GCD primality test for 3072-bit numbers  */
2757 	icp_qat_fw_mmp_gcd_pt_3072_input_t mmp_gcd_pt_3072;
2758 
2759 	/** GCD primality test for 4096-bit numbers  */
2760 	icp_qat_fw_mmp_gcd_pt_4096_input_t mmp_gcd_pt_4096;
2761 
2762 	/** Fermat primality test for 160-bit numbers  */
2763 	icp_qat_fw_mmp_fermat_pt_160_input_t mmp_fermat_pt_160;
2764 
2765 	/** Fermat primality test for 512-bit numbers  */
2766 	icp_qat_fw_mmp_fermat_pt_512_input_t mmp_fermat_pt_512;
2767 
2768 	/** Fermat primality test for &lte; 512-bit numbers  */
2769 	icp_qat_fw_mmp_fermat_pt_l512_input_t mmp_fermat_pt_l512;
2770 
2771 	/** Fermat primality test for 768-bit numbers  */
2772 	icp_qat_fw_mmp_fermat_pt_768_input_t mmp_fermat_pt_768;
2773 
2774 	/** Fermat primality test for 1024-bit numbers  */
2775 	icp_qat_fw_mmp_fermat_pt_1024_input_t mmp_fermat_pt_1024;
2776 
2777 	/** Fermat primality test for 1536-bit numbers  */
2778 	icp_qat_fw_mmp_fermat_pt_1536_input_t mmp_fermat_pt_1536;
2779 
2780 	/** Fermat primality test for 2048-bit numbers  */
2781 	icp_qat_fw_mmp_fermat_pt_2048_input_t mmp_fermat_pt_2048;
2782 
2783 	/** Fermat primality test for 3072-bit numbers  */
2784 	icp_qat_fw_mmp_fermat_pt_3072_input_t mmp_fermat_pt_3072;
2785 
2786 	/** Fermat primality test for 4096-bit numbers  */
2787 	icp_qat_fw_mmp_fermat_pt_4096_input_t mmp_fermat_pt_4096;
2788 
2789 	/** Miller-Rabin primality test for 160-bit numbers  */
2790 	icp_qat_fw_mmp_mr_pt_160_input_t mmp_mr_pt_160;
2791 
2792 	/** Miller-Rabin primality test for 512-bit numbers  */
2793 	icp_qat_fw_mmp_mr_pt_512_input_t mmp_mr_pt_512;
2794 
2795 	/** Miller-Rabin primality test for 768-bit numbers  */
2796 	icp_qat_fw_mmp_mr_pt_768_input_t mmp_mr_pt_768;
2797 
2798 	/** Miller-Rabin primality test for 1024-bit numbers  */
2799 	icp_qat_fw_mmp_mr_pt_1024_input_t mmp_mr_pt_1024;
2800 
2801 	/** Miller-Rabin primality test for 1536-bit numbers  */
2802 	icp_qat_fw_mmp_mr_pt_1536_input_t mmp_mr_pt_1536;
2803 
2804 	/** Miller-Rabin primality test for 2048-bit numbers  */
2805 	icp_qat_fw_mmp_mr_pt_2048_input_t mmp_mr_pt_2048;
2806 
2807 	/** Miller-Rabin primality test for 3072-bit numbers  */
2808 	icp_qat_fw_mmp_mr_pt_3072_input_t mmp_mr_pt_3072;
2809 
2810 	/** Miller-Rabin primality test for 4096-bit numbers  */
2811 	icp_qat_fw_mmp_mr_pt_4096_input_t mmp_mr_pt_4096;
2812 
2813 	/** Miller-Rabin primality test for 512-bit numbers  */
2814 	icp_qat_fw_mmp_mr_pt_l512_input_t mmp_mr_pt_l512;
2815 
2816 	/** Lucas primality test for 160-bit numbers  */
2817 	icp_qat_fw_mmp_lucas_pt_160_input_t mmp_lucas_pt_160;
2818 
2819 	/** Lucas primality test for 512-bit numbers  */
2820 	icp_qat_fw_mmp_lucas_pt_512_input_t mmp_lucas_pt_512;
2821 
2822 	/** Lucas primality test for 768-bit numbers  */
2823 	icp_qat_fw_mmp_lucas_pt_768_input_t mmp_lucas_pt_768;
2824 
2825 	/** Lucas primality test for 1024-bit numbers  */
2826 	icp_qat_fw_mmp_lucas_pt_1024_input_t mmp_lucas_pt_1024;
2827 
2828 	/** Lucas primality test for 1536-bit numbers  */
2829 	icp_qat_fw_mmp_lucas_pt_1536_input_t mmp_lucas_pt_1536;
2830 
2831 	/** Lucas primality test for 2048-bit numbers  */
2832 	icp_qat_fw_mmp_lucas_pt_2048_input_t mmp_lucas_pt_2048;
2833 
2834 	/** Lucas primality test for 3072-bit numbers  */
2835 	icp_qat_fw_mmp_lucas_pt_3072_input_t mmp_lucas_pt_3072;
2836 
2837 	/** Lucas primality test for 4096-bit numbers  */
2838 	icp_qat_fw_mmp_lucas_pt_4096_input_t mmp_lucas_pt_4096;
2839 
2840 	/** Lucas primality test for L512-bit numbers  */
2841 	icp_qat_fw_mmp_lucas_pt_l512_input_t mmp_lucas_pt_l512;
2842 
2843 	/** Modular exponentiation for numbers less than 512-bits  */
2844 	icp_qat_fw_maths_modexp_l512_input_t maths_modexp_l512;
2845 
2846 	/** Modular exponentiation for numbers less than 1024-bit  */
2847 	icp_qat_fw_maths_modexp_l1024_input_t maths_modexp_l1024;
2848 
2849 	/** Modular exponentiation for numbers less than 1536-bits  */
2850 	icp_qat_fw_maths_modexp_l1536_input_t maths_modexp_l1536;
2851 
2852 	/** Modular exponentiation for numbers less than 2048-bit  */
2853 	icp_qat_fw_maths_modexp_l2048_input_t maths_modexp_l2048;
2854 
2855 	/** Modular exponentiation for numbers less than 2560-bits  */
2856 	icp_qat_fw_maths_modexp_l2560_input_t maths_modexp_l2560;
2857 
2858 	/** Modular exponentiation for numbers less than 3072-bits  */
2859 	icp_qat_fw_maths_modexp_l3072_input_t maths_modexp_l3072;
2860 
2861 	/** Modular exponentiation for numbers less than 3584-bits  */
2862 	icp_qat_fw_maths_modexp_l3584_input_t maths_modexp_l3584;
2863 
2864 	/** Modular exponentiation for numbers less than 4096-bit  */
2865 	icp_qat_fw_maths_modexp_l4096_input_t maths_modexp_l4096;
2866 
2867 	/** Modular multiplicative inverse for numbers less than 128 bits  */
2868 	icp_qat_fw_maths_modinv_odd_l128_input_t maths_modinv_odd_l128;
2869 
2870 	/** Modular multiplicative inverse for numbers less than 192 bits  */
2871 	icp_qat_fw_maths_modinv_odd_l192_input_t maths_modinv_odd_l192;
2872 
2873 	/** Modular multiplicative inverse for numbers less than 256 bits  */
2874 	icp_qat_fw_maths_modinv_odd_l256_input_t maths_modinv_odd_l256;
2875 
2876 	/** Modular multiplicative inverse for numbers less than 384 bits  */
2877 	icp_qat_fw_maths_modinv_odd_l384_input_t maths_modinv_odd_l384;
2878 
2879 	/** Modular multiplicative inverse for numbers less than 512 bits  */
2880 	icp_qat_fw_maths_modinv_odd_l512_input_t maths_modinv_odd_l512;
2881 
2882 	/** Modular multiplicative inverse for numbers less than 768 bits  */
2883 	icp_qat_fw_maths_modinv_odd_l768_input_t maths_modinv_odd_l768;
2884 
2885 	/** Modular multiplicative inverse for numbers less than 1024 bits  */
2886 	icp_qat_fw_maths_modinv_odd_l1024_input_t maths_modinv_odd_l1024;
2887 
2888 	/** Modular multiplicative inverse for numbers less than 1536 bits  */
2889 	icp_qat_fw_maths_modinv_odd_l1536_input_t maths_modinv_odd_l1536;
2890 
2891 	/** Modular multiplicative inverse for numbers less than 2048 bits  */
2892 	icp_qat_fw_maths_modinv_odd_l2048_input_t maths_modinv_odd_l2048;
2893 
2894 	/** Modular multiplicative inverse for numbers less than 3072 bits  */
2895 	icp_qat_fw_maths_modinv_odd_l3072_input_t maths_modinv_odd_l3072;
2896 
2897 	/** Modular multiplicative inverse for numbers less than 4096 bits  */
2898 	icp_qat_fw_maths_modinv_odd_l4096_input_t maths_modinv_odd_l4096;
2899 
2900 	/** Modular multiplicative inverse for numbers less than 128 bits  */
2901 	icp_qat_fw_maths_modinv_even_l128_input_t maths_modinv_even_l128;
2902 
2903 	/** Modular multiplicative inverse for numbers less than 192 bits  */
2904 	icp_qat_fw_maths_modinv_even_l192_input_t maths_modinv_even_l192;
2905 
2906 	/** Modular multiplicative inverse for numbers less than 256 bits  */
2907 	icp_qat_fw_maths_modinv_even_l256_input_t maths_modinv_even_l256;
2908 
2909 	/** Modular multiplicative inverse for numbers less than 384 bits  */
2910 	icp_qat_fw_maths_modinv_even_l384_input_t maths_modinv_even_l384;
2911 
2912 	/** Modular multiplicative inverse for numbers less than 512 bits  */
2913 	icp_qat_fw_maths_modinv_even_l512_input_t maths_modinv_even_l512;
2914 
2915 	/** Modular multiplicative inverse for numbers less than 768 bits  */
2916 	icp_qat_fw_maths_modinv_even_l768_input_t maths_modinv_even_l768;
2917 
2918 	/** Modular multiplicative inverse for numbers less than 1024 bits  */
2919 	icp_qat_fw_maths_modinv_even_l1024_input_t maths_modinv_even_l1024;
2920 
2921 	/** Modular multiplicative inverse for numbers less than 1536 bits  */
2922 	icp_qat_fw_maths_modinv_even_l1536_input_t maths_modinv_even_l1536;
2923 
2924 	/** Modular multiplicative inverse for numbers less than 2048 bits  */
2925 	icp_qat_fw_maths_modinv_even_l2048_input_t maths_modinv_even_l2048;
2926 
2927 	/** Modular multiplicative inverse for numbers less than 3072 bits  */
2928 	icp_qat_fw_maths_modinv_even_l3072_input_t maths_modinv_even_l3072;
2929 
2930 	/** Modular multiplicative inverse for numbers less than 4096 bits  */
2931 	icp_qat_fw_maths_modinv_even_l4096_input_t maths_modinv_even_l4096;
2932 
2933 	/** DSA parameter generation P  */
2934 	icp_qat_fw_mmp_dsa_gen_p_1024_160_input_t mmp_dsa_gen_p_1024_160;
2935 
2936 	/** DSA key generation G  */
2937 	icp_qat_fw_mmp_dsa_gen_g_1024_input_t mmp_dsa_gen_g_1024;
2938 
2939 	/** DSA key generation Y  */
2940 	icp_qat_fw_mmp_dsa_gen_y_1024_input_t mmp_dsa_gen_y_1024;
2941 
2942 	/** DSA Sign R  */
2943 	icp_qat_fw_mmp_dsa_sign_r_1024_160_input_t mmp_dsa_sign_r_1024_160;
2944 
2945 	/** DSA Sign S  */
2946 	icp_qat_fw_mmp_dsa_sign_s_160_input_t mmp_dsa_sign_s_160;
2947 
2948 	/** DSA Sign R S  */
2949 	icp_qat_fw_mmp_dsa_sign_r_s_1024_160_input_t mmp_dsa_sign_r_s_1024_160;
2950 
2951 	/** DSA Verify  */
2952 	icp_qat_fw_mmp_dsa_verify_1024_160_input_t mmp_dsa_verify_1024_160;
2953 
2954 	/** DSA parameter generation P  */
2955 	icp_qat_fw_mmp_dsa_gen_p_2048_224_input_t mmp_dsa_gen_p_2048_224;
2956 
2957 	/** DSA key generation Y  */
2958 	icp_qat_fw_mmp_dsa_gen_y_2048_input_t mmp_dsa_gen_y_2048;
2959 
2960 	/** DSA Sign R  */
2961 	icp_qat_fw_mmp_dsa_sign_r_2048_224_input_t mmp_dsa_sign_r_2048_224;
2962 
2963 	/** DSA Sign S  */
2964 	icp_qat_fw_mmp_dsa_sign_s_224_input_t mmp_dsa_sign_s_224;
2965 
2966 	/** DSA Sign R S  */
2967 	icp_qat_fw_mmp_dsa_sign_r_s_2048_224_input_t mmp_dsa_sign_r_s_2048_224;
2968 
2969 	/** DSA Verify  */
2970 	icp_qat_fw_mmp_dsa_verify_2048_224_input_t mmp_dsa_verify_2048_224;
2971 
2972 	/** DSA parameter generation P  */
2973 	icp_qat_fw_mmp_dsa_gen_p_2048_256_input_t mmp_dsa_gen_p_2048_256;
2974 
2975 	/** DSA key generation G  */
2976 	icp_qat_fw_mmp_dsa_gen_g_2048_input_t mmp_dsa_gen_g_2048;
2977 
2978 	/** DSA Sign R  */
2979 	icp_qat_fw_mmp_dsa_sign_r_2048_256_input_t mmp_dsa_sign_r_2048_256;
2980 
2981 	/** DSA Sign S  */
2982 	icp_qat_fw_mmp_dsa_sign_s_256_input_t mmp_dsa_sign_s_256;
2983 
2984 	/** DSA Sign R S  */
2985 	icp_qat_fw_mmp_dsa_sign_r_s_2048_256_input_t mmp_dsa_sign_r_s_2048_256;
2986 
2987 	/** DSA Verify  */
2988 	icp_qat_fw_mmp_dsa_verify_2048_256_input_t mmp_dsa_verify_2048_256;
2989 
2990 	/** DSA parameter generation P  */
2991 	icp_qat_fw_mmp_dsa_gen_p_3072_256_input_t mmp_dsa_gen_p_3072_256;
2992 
2993 	/** DSA key generation G  */
2994 	icp_qat_fw_mmp_dsa_gen_g_3072_input_t mmp_dsa_gen_g_3072;
2995 
2996 	/** DSA key generation Y  */
2997 	icp_qat_fw_mmp_dsa_gen_y_3072_input_t mmp_dsa_gen_y_3072;
2998 
2999 	/** DSA Sign R  */
3000 	icp_qat_fw_mmp_dsa_sign_r_3072_256_input_t mmp_dsa_sign_r_3072_256;
3001 
3002 	/** DSA Sign R S  */
3003 	icp_qat_fw_mmp_dsa_sign_r_s_3072_256_input_t mmp_dsa_sign_r_s_3072_256;
3004 
3005 	/** DSA Verify  */
3006 	icp_qat_fw_mmp_dsa_verify_3072_256_input_t mmp_dsa_verify_3072_256;
3007 
3008 	/** ECDSA Sign RS for curves B/K-163 and B/K-233  */
3009 	icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l256_input_t
3010 	    mmp_ecdsa_sign_rs_gf2_l256;
3011 
3012 	/** ECDSA Sign R for curves B/K-163 and B/K-233  */
3013 	icp_qat_fw_mmp_ecdsa_sign_r_gf2_l256_input_t mmp_ecdsa_sign_r_gf2_l256;
3014 
3015 	/** ECDSA Sign S for curves with n &lt; 2^256  */
3016 	icp_qat_fw_mmp_ecdsa_sign_s_gf2_l256_input_t mmp_ecdsa_sign_s_gf2_l256;
3017 
3018 	/** ECDSA Verify for curves B/K-163 and B/K-233  */
3019 	icp_qat_fw_mmp_ecdsa_verify_gf2_l256_input_t mmp_ecdsa_verify_gf2_l256;
3020 
3021 	/** ECDSA Sign RS  */
3022 	icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l512_input_t
3023 	    mmp_ecdsa_sign_rs_gf2_l512;
3024 
3025 	/** ECDSA GF2 Sign R  */
3026 	icp_qat_fw_mmp_ecdsa_sign_r_gf2_l512_input_t mmp_ecdsa_sign_r_gf2_l512;
3027 
3028 	/** ECDSA GF2 Sign S  */
3029 	icp_qat_fw_mmp_ecdsa_sign_s_gf2_l512_input_t mmp_ecdsa_sign_s_gf2_l512;
3030 
3031 	/** ECDSA GF2 Verify  */
3032 	icp_qat_fw_mmp_ecdsa_verify_gf2_l512_input_t mmp_ecdsa_verify_gf2_l512;
3033 
3034 	/** ECDSA GF2 Sign RS for curves B-571/K-571  */
3035 	icp_qat_fw_mmp_ecdsa_sign_rs_gf2_571_input_t mmp_ecdsa_sign_rs_gf2_571;
3036 
3037 	/** ECDSA GF2 Sign S for curves with deg(q) &lt; 576  */
3038 	icp_qat_fw_mmp_ecdsa_sign_s_gf2_571_input_t mmp_ecdsa_sign_s_gf2_571;
3039 
3040 	/** ECDSA GF2 Sign R for degree 571  */
3041 	icp_qat_fw_mmp_ecdsa_sign_r_gf2_571_input_t mmp_ecdsa_sign_r_gf2_571;
3042 
3043 	/** ECDSA GF2 Verify for degree 571  */
3044 	icp_qat_fw_mmp_ecdsa_verify_gf2_571_input_t mmp_ecdsa_verify_gf2_571;
3045 
3046 	/** MATHS GF2 Point Multiplication  */
3047 	icp_qat_fw_maths_point_multiplication_gf2_l256_input_t
3048 	    maths_point_multiplication_gf2_l256;
3049 
3050 	/** MATHS GF2 Point Verification  */
3051 	icp_qat_fw_maths_point_verify_gf2_l256_input_t
3052 	    maths_point_verify_gf2_l256;
3053 
3054 	/** MATHS GF2 Point Multiplication  */
3055 	icp_qat_fw_maths_point_multiplication_gf2_l512_input_t
3056 	    maths_point_multiplication_gf2_l512;
3057 
3058 	/** MATHS GF2 Point Verification  */
3059 	icp_qat_fw_maths_point_verify_gf2_l512_input_t
3060 	    maths_point_verify_gf2_l512;
3061 
3062 	/** ECC GF2 Point Multiplication for curves B-571/K-571  */
3063 	icp_qat_fw_maths_point_multiplication_gf2_571_input_t
3064 	    maths_point_multiplication_gf2_571;
3065 
3066 	/** ECC GF2 Point Verification for degree 571  */
3067 	icp_qat_fw_maths_point_verify_gf2_571_input_t
3068 	    maths_point_verify_gf2_571;
3069 
3070 	/** ECDSA GFP Sign R  */
3071 	icp_qat_fw_mmp_ecdsa_sign_r_gfp_l256_input_t mmp_ecdsa_sign_r_gfp_l256;
3072 
3073 	/** ECDSA GFP Sign S  */
3074 	icp_qat_fw_mmp_ecdsa_sign_s_gfp_l256_input_t mmp_ecdsa_sign_s_gfp_l256;
3075 
3076 	/** ECDSA GFP Sign RS  */
3077 	icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l256_input_t
3078 	    mmp_ecdsa_sign_rs_gfp_l256;
3079 
3080 	/** ECDSA GFP Verify  */
3081 	icp_qat_fw_mmp_ecdsa_verify_gfp_l256_input_t mmp_ecdsa_verify_gfp_l256;
3082 
3083 	/** ECDSA GFP Sign R  */
3084 	icp_qat_fw_mmp_ecdsa_sign_r_gfp_l512_input_t mmp_ecdsa_sign_r_gfp_l512;
3085 
3086 	/** ECDSA GFP Sign S  */
3087 	icp_qat_fw_mmp_ecdsa_sign_s_gfp_l512_input_t mmp_ecdsa_sign_s_gfp_l512;
3088 
3089 	/** ECDSA GFP Sign RS  */
3090 	icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l512_input_t
3091 	    mmp_ecdsa_sign_rs_gfp_l512;
3092 
3093 	/** ECDSA GFP Verify  */
3094 	icp_qat_fw_mmp_ecdsa_verify_gfp_l512_input_t mmp_ecdsa_verify_gfp_l512;
3095 
3096 	/** ECDSA GFP Sign R  */
3097 	icp_qat_fw_mmp_ecdsa_sign_r_gfp_521_input_t mmp_ecdsa_sign_r_gfp_521;
3098 
3099 	/** ECDSA GFP Sign S  */
3100 	icp_qat_fw_mmp_ecdsa_sign_s_gfp_521_input_t mmp_ecdsa_sign_s_gfp_521;
3101 
3102 	/** ECDSA GFP Sign RS  */
3103 	icp_qat_fw_mmp_ecdsa_sign_rs_gfp_521_input_t mmp_ecdsa_sign_rs_gfp_521;
3104 
3105 	/** ECDSA GFP Verify  */
3106 	icp_qat_fw_mmp_ecdsa_verify_gfp_521_input_t mmp_ecdsa_verify_gfp_521;
3107 
3108 	/** ECC GFP Point Multiplication  */
3109 	icp_qat_fw_maths_point_multiplication_gfp_l256_input_t
3110 	    maths_point_multiplication_gfp_l256;
3111 
3112 	/** ECC GFP Partial Point Verification  */
3113 	icp_qat_fw_maths_point_verify_gfp_l256_input_t
3114 	    maths_point_verify_gfp_l256;
3115 
3116 	/** ECC GFP Point Multiplication  */
3117 	icp_qat_fw_maths_point_multiplication_gfp_l512_input_t
3118 	    maths_point_multiplication_gfp_l512;
3119 
3120 	/** ECC GFP Partial Point  */
3121 	icp_qat_fw_maths_point_verify_gfp_l512_input_t
3122 	    maths_point_verify_gfp_l512;
3123 
3124 	/** ECC GFP Point Multiplication  */
3125 	icp_qat_fw_maths_point_multiplication_gfp_521_input_t
3126 	    maths_point_multiplication_gfp_521;
3127 
3128 	/** ECC GFP Partial Point Verification  */
3129 	icp_qat_fw_maths_point_verify_gfp_521_input_t
3130 	    maths_point_verify_gfp_521;
3131 
3132 	/** ECC curve25519 Variable Point Multiplication [k]P(x), as specified
3133 	 * in RFC7748  */
3134 	icp_qat_fw_point_multiplication_c25519_input_t
3135 	    point_multiplication_c25519;
3136 
3137 	/** ECC curve25519 Generator Point Multiplication [k]G(x), as specified
3138 	 * in RFC7748  */
3139 	icp_qat_fw_generator_multiplication_c25519_input_t
3140 	    generator_multiplication_c25519;
3141 
3142 	/** ECC edwards25519 Variable Point Multiplication [k]P, as specified in
3143 	 * RFC8032  */
3144 	icp_qat_fw_point_multiplication_ed25519_input_t
3145 	    point_multiplication_ed25519;
3146 
3147 	/** ECC edwards25519 Generator Point Multiplication [k]G, as specified
3148 	 * in RFC8032  */
3149 	icp_qat_fw_generator_multiplication_ed25519_input_t
3150 	    generator_multiplication_ed25519;
3151 
3152 	/** ECC curve448 Variable Point Multiplication [k]P(x), as specified in
3153 	 * RFC7748  */
3154 	icp_qat_fw_point_multiplication_c448_input_t point_multiplication_c448;
3155 
3156 	/** ECC curve448 Generator Point Multiplication [k]G(x), as specified in
3157 	 * RFC7748  */
3158 	icp_qat_fw_generator_multiplication_c448_input_t
3159 	    generator_multiplication_c448;
3160 
3161 	/** ECC edwards448 Variable Point Multiplication [k]P, as specified in
3162 	 * RFC8032  */
3163 	icp_qat_fw_point_multiplication_ed448_input_t
3164 	    point_multiplication_ed448;
3165 
3166 	/** ECC edwards448 Generator Point Multiplication [k]P, as specified in
3167 	 * RFC8032  */
3168 	icp_qat_fw_generator_multiplication_ed448_input_t
3169 	    generator_multiplication_ed448;
3170 } icp_qat_fw_mmp_input_param_t;
3171 
3172 /**
3173  * @ingroup icp_qat_fw_mmp
3174  * @brief
3175  *    Output parameter list for Initialisation sequence ,
3176  *      to be used when icp_qat_fw_pke_response_s::functionalityId is #PKE_INIT.
3177  */
3178 typedef struct icp_qat_fw_mmp_init_output_s {
3179 	uint64_t zz; /**< 1'd quadword (1 qwords)*/
3180 } icp_qat_fw_mmp_init_output_t;
3181 
3182 /**
3183  * @ingroup icp_qat_fw_mmp
3184  * @brief
3185  *    Output parameter list for Diffie-Hellman Modular exponentiation base 2 for
3186  * 768-bit numbers ,
3187  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3188  * #PKE_DH_G2_768.
3189  */
3190 typedef struct icp_qat_fw_mmp_dh_g2_768_output_s {
3191 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (12
3192 		       qwords)*/
3193 } icp_qat_fw_mmp_dh_g2_768_output_t;
3194 
3195 /**
3196  * @ingroup icp_qat_fw_mmp
3197  * @brief
3198  *    Output parameter list for Diffie-Hellman Modular exponentiation for
3199  * 768-bit numbers ,
3200  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3201  * #PKE_DH_768.
3202  */
3203 typedef struct icp_qat_fw_mmp_dh_768_output_s {
3204 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (12
3205 		       qwords)*/
3206 } icp_qat_fw_mmp_dh_768_output_t;
3207 
3208 /**
3209  * @ingroup icp_qat_fw_mmp
3210  * @brief
3211  *    Output parameter list for Diffie-Hellman Modular exponentiation base 2 for
3212  * 1024-bit numbers ,
3213  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3214  * #PKE_DH_G2_1024.
3215  */
3216 typedef struct icp_qat_fw_mmp_dh_g2_1024_output_s {
3217 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (16
3218 		       qwords)*/
3219 } icp_qat_fw_mmp_dh_g2_1024_output_t;
3220 
3221 /**
3222  * @ingroup icp_qat_fw_mmp
3223  * @brief
3224  *    Output parameter list for Diffie-Hellman Modular exponentiation for
3225  * 1024-bit numbers ,
3226  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3227  * #PKE_DH_1024.
3228  */
3229 typedef struct icp_qat_fw_mmp_dh_1024_output_s {
3230 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (16
3231 		       qwords)*/
3232 } icp_qat_fw_mmp_dh_1024_output_t;
3233 
3234 /**
3235  * @ingroup icp_qat_fw_mmp
3236  * @brief
3237  *    Output parameter list for Diffie-Hellman Modular exponentiation base 2 for
3238  * 1536-bit numbers ,
3239  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3240  * #PKE_DH_G2_1536.
3241  */
3242 typedef struct icp_qat_fw_mmp_dh_g2_1536_output_s {
3243 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (24
3244 		       qwords)*/
3245 } icp_qat_fw_mmp_dh_g2_1536_output_t;
3246 
3247 /**
3248  * @ingroup icp_qat_fw_mmp
3249  * @brief
3250  *    Output parameter list for Diffie-Hellman Modular exponentiation for
3251  * 1536-bit numbers ,
3252  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3253  * #PKE_DH_1536.
3254  */
3255 typedef struct icp_qat_fw_mmp_dh_1536_output_s {
3256 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (24
3257 		       qwords)*/
3258 } icp_qat_fw_mmp_dh_1536_output_t;
3259 
3260 /**
3261  * @ingroup icp_qat_fw_mmp
3262  * @brief
3263  *    Output parameter list for Diffie-Hellman Modular exponentiation base 2 for
3264  * 2048-bit numbers ,
3265  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3266  * #PKE_DH_G2_2048.
3267  */
3268 typedef struct icp_qat_fw_mmp_dh_g2_2048_output_s {
3269 	uint64_t r; /**< modular exponentiation result   &ge; 0 and &lt; m (32
3270 		       qwords)*/
3271 } icp_qat_fw_mmp_dh_g2_2048_output_t;
3272 
3273 /**
3274  * @ingroup icp_qat_fw_mmp
3275  * @brief
3276  *    Output parameter list for Diffie-Hellman Modular exponentiation for
3277  * 2048-bit numbers ,
3278  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3279  * #PKE_DH_2048.
3280  */
3281 typedef struct icp_qat_fw_mmp_dh_2048_output_s {
3282 	uint64_t r; /**< modular exponentiation result   &ge; 0 and &lt; m (32
3283 		       qwords)*/
3284 } icp_qat_fw_mmp_dh_2048_output_t;
3285 
3286 /**
3287  * @ingroup icp_qat_fw_mmp
3288  * @brief
3289  *    Output parameter list for Diffie-Hellman Modular exponentiation base 2 for
3290  * 3072-bit numbers ,
3291  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3292  * #PKE_DH_G2_3072.
3293  */
3294 typedef struct icp_qat_fw_mmp_dh_g2_3072_output_s {
3295 	uint64_t r; /**< modular exponentiation result   &ge; 0 and &lt; m (48
3296 		       qwords)*/
3297 } icp_qat_fw_mmp_dh_g2_3072_output_t;
3298 
3299 /**
3300  * @ingroup icp_qat_fw_mmp
3301  * @brief
3302  *    Output parameter list for Diffie-Hellman Modular exponentiation for
3303  * 3072-bit numbers ,
3304  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3305  * #PKE_DH_3072.
3306  */
3307 typedef struct icp_qat_fw_mmp_dh_3072_output_s {
3308 	uint64_t r; /**< modular exponentiation result   &ge; 0 and &lt; m (48
3309 		       qwords)*/
3310 } icp_qat_fw_mmp_dh_3072_output_t;
3311 
3312 /**
3313  * @ingroup icp_qat_fw_mmp
3314  * @brief
3315  *    Output parameter list for Diffie-Hellman Modular exponentiation base 2 for
3316  * 4096-bit numbers ,
3317  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3318  * #PKE_DH_G2_4096.
3319  */
3320 typedef struct icp_qat_fw_mmp_dh_g2_4096_output_s {
3321 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (64
3322 		       qwords)*/
3323 } icp_qat_fw_mmp_dh_g2_4096_output_t;
3324 
3325 /**
3326  * @ingroup icp_qat_fw_mmp
3327  * @brief
3328  *    Output parameter list for Diffie-Hellman Modular exponentiation for
3329  * 4096-bit numbers ,
3330  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3331  * #PKE_DH_4096.
3332  */
3333 typedef struct icp_qat_fw_mmp_dh_4096_output_s {
3334 	uint64_t r; /**< modular exponentiation result   &ge; 0 and &lt; m (64
3335 		       qwords)*/
3336 } icp_qat_fw_mmp_dh_4096_output_t;
3337 
3338 /**
3339  * @ingroup icp_qat_fw_mmp
3340  * @brief
3341  *    Output parameter list for RSA 512 key generation first form ,
3342  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3343  * #PKE_RSA_KP1_512.
3344  */
3345 typedef struct icp_qat_fw_mmp_rsa_kp1_512_output_s {
3346 	uint64_t n; /**< RSA key (8 qwords)*/
3347 	uint64_t d; /**< RSA private key (first form) (8 qwords)*/
3348 } icp_qat_fw_mmp_rsa_kp1_512_output_t;
3349 
3350 /**
3351  * @ingroup icp_qat_fw_mmp
3352  * @brief
3353  *    Output parameter list for RSA 512 key generation second form ,
3354  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3355  * #PKE_RSA_KP2_512.
3356  */
3357 typedef struct icp_qat_fw_mmp_rsa_kp2_512_output_s {
3358 	uint64_t n;    /**< RSA key (8 qwords)*/
3359 	uint64_t d;    /**< RSA private key (second form) (8 qwords)*/
3360 	uint64_t dp;   /**< RSA private key (second form) (4 qwords)*/
3361 	uint64_t dq;   /**< RSA private key (second form) (4 qwords)*/
3362 	uint64_t qinv; /**< RSA private key (second form) (4 qwords)*/
3363 } icp_qat_fw_mmp_rsa_kp2_512_output_t;
3364 
3365 /**
3366  * @ingroup icp_qat_fw_mmp
3367  * @brief
3368  *    Output parameter list for RSA 512 Encryption ,
3369  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3370  * #PKE_RSA_EP_512.
3371  */
3372 typedef struct icp_qat_fw_mmp_rsa_ep_512_output_s {
3373 	uint64_t c; /**< cipher text representative, &lt; n (8 qwords)*/
3374 } icp_qat_fw_mmp_rsa_ep_512_output_t;
3375 
3376 /**
3377  * @ingroup icp_qat_fw_mmp
3378  * @brief
3379  *    Output parameter list for RSA 512 Decryption ,
3380  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3381  * #PKE_RSA_DP1_512.
3382  */
3383 typedef struct icp_qat_fw_mmp_rsa_dp1_512_output_s {
3384 	uint64_t m; /**< message representative, &lt; n (8 qwords)*/
3385 } icp_qat_fw_mmp_rsa_dp1_512_output_t;
3386 
3387 /**
3388  * @ingroup icp_qat_fw_mmp
3389  * @brief
3390  *    Output parameter list for RSA 1024 Decryption with CRT ,
3391  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3392  * #PKE_RSA_DP2_512.
3393  */
3394 typedef struct icp_qat_fw_mmp_rsa_dp2_512_output_s {
3395 	uint64_t m; /**< message representative, &lt; (p*q) (8 qwords)*/
3396 } icp_qat_fw_mmp_rsa_dp2_512_output_t;
3397 
3398 /**
3399  * @ingroup icp_qat_fw_mmp
3400  * @brief
3401  *    Output parameter list for RSA 1024 key generation first form ,
3402  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3403  * #PKE_RSA_KP1_1024.
3404  */
3405 typedef struct icp_qat_fw_mmp_rsa_kp1_1024_output_s {
3406 	uint64_t n; /**< RSA key (16 qwords)*/
3407 	uint64_t d; /**< RSA private key (first form) (16 qwords)*/
3408 } icp_qat_fw_mmp_rsa_kp1_1024_output_t;
3409 
3410 /**
3411  * @ingroup icp_qat_fw_mmp
3412  * @brief
3413  *    Output parameter list for RSA 1024 key generation second form ,
3414  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3415  * #PKE_RSA_KP2_1024.
3416  */
3417 typedef struct icp_qat_fw_mmp_rsa_kp2_1024_output_s {
3418 	uint64_t n;    /**< RSA key (16 qwords)*/
3419 	uint64_t d;    /**< RSA private key (second form) (16 qwords)*/
3420 	uint64_t dp;   /**< RSA private key (second form) (8 qwords)*/
3421 	uint64_t dq;   /**< RSA private key (second form) (8 qwords)*/
3422 	uint64_t qinv; /**< RSA private key (second form) (8 qwords)*/
3423 } icp_qat_fw_mmp_rsa_kp2_1024_output_t;
3424 
3425 /**
3426  * @ingroup icp_qat_fw_mmp
3427  * @brief
3428  *    Output parameter list for RSA 1024 Encryption ,
3429  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3430  * #PKE_RSA_EP_1024.
3431  */
3432 typedef struct icp_qat_fw_mmp_rsa_ep_1024_output_s {
3433 	uint64_t c; /**< cipher text representative, &lt; n (16 qwords)*/
3434 } icp_qat_fw_mmp_rsa_ep_1024_output_t;
3435 
3436 /**
3437  * @ingroup icp_qat_fw_mmp
3438  * @brief
3439  *    Output parameter list for RSA 1024 Decryption ,
3440  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3441  * #PKE_RSA_DP1_1024.
3442  */
3443 typedef struct icp_qat_fw_mmp_rsa_dp1_1024_output_s {
3444 	uint64_t m; /**< message representative, &lt; n (16 qwords)*/
3445 } icp_qat_fw_mmp_rsa_dp1_1024_output_t;
3446 
3447 /**
3448  * @ingroup icp_qat_fw_mmp
3449  * @brief
3450  *    Output parameter list for RSA 1024 Decryption with CRT ,
3451  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3452  * #PKE_RSA_DP2_1024.
3453  */
3454 typedef struct icp_qat_fw_mmp_rsa_dp2_1024_output_s {
3455 	uint64_t m; /**< message representative, &lt; (p*q) (16 qwords)*/
3456 } icp_qat_fw_mmp_rsa_dp2_1024_output_t;
3457 
3458 /**
3459  * @ingroup icp_qat_fw_mmp
3460  * @brief
3461  *    Output parameter list for RSA 1536 key generation first form ,
3462  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3463  * #PKE_RSA_KP1_1536.
3464  */
3465 typedef struct icp_qat_fw_mmp_rsa_kp1_1536_output_s {
3466 	uint64_t n; /**< RSA key (24 qwords)*/
3467 	uint64_t d; /**< RSA private key (24 qwords)*/
3468 } icp_qat_fw_mmp_rsa_kp1_1536_output_t;
3469 
3470 /**
3471  * @ingroup icp_qat_fw_mmp
3472  * @brief
3473  *    Output parameter list for RSA 1536 key generation second form ,
3474  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3475  * #PKE_RSA_KP2_1536.
3476  */
3477 typedef struct icp_qat_fw_mmp_rsa_kp2_1536_output_s {
3478 	uint64_t n;    /**< RSA key (24 qwords)*/
3479 	uint64_t d;    /**< RSA private key (24 qwords)*/
3480 	uint64_t dp;   /**< RSA private key (12 qwords)*/
3481 	uint64_t dq;   /**< RSA private key (12 qwords)*/
3482 	uint64_t qinv; /**< RSA private key (12 qwords)*/
3483 } icp_qat_fw_mmp_rsa_kp2_1536_output_t;
3484 
3485 /**
3486  * @ingroup icp_qat_fw_mmp
3487  * @brief
3488  *    Output parameter list for RSA 1536 Encryption ,
3489  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3490  * #PKE_RSA_EP_1536.
3491  */
3492 typedef struct icp_qat_fw_mmp_rsa_ep_1536_output_s {
3493 	uint64_t c; /**< cipher text representative, &lt; n (24 qwords)*/
3494 } icp_qat_fw_mmp_rsa_ep_1536_output_t;
3495 
3496 /**
3497  * @ingroup icp_qat_fw_mmp
3498  * @brief
3499  *    Output parameter list for RSA 1536 Decryption ,
3500  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3501  * #PKE_RSA_DP1_1536.
3502  */
3503 typedef struct icp_qat_fw_mmp_rsa_dp1_1536_output_s {
3504 	uint64_t m; /**< message representative, &lt; n (24 qwords)*/
3505 } icp_qat_fw_mmp_rsa_dp1_1536_output_t;
3506 
3507 /**
3508  * @ingroup icp_qat_fw_mmp
3509  * @brief
3510  *    Output parameter list for RSA 1536 Decryption with CRT ,
3511  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3512  * #PKE_RSA_DP2_1536.
3513  */
3514 typedef struct icp_qat_fw_mmp_rsa_dp2_1536_output_s {
3515 	uint64_t m; /**< message representative, &lt; (p*q) (24 qwords)*/
3516 } icp_qat_fw_mmp_rsa_dp2_1536_output_t;
3517 
3518 /**
3519  * @ingroup icp_qat_fw_mmp
3520  * @brief
3521  *    Output parameter list for RSA 2048 key generation first form ,
3522  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3523  * #PKE_RSA_KP1_2048.
3524  */
3525 typedef struct icp_qat_fw_mmp_rsa_kp1_2048_output_s {
3526 	uint64_t n; /**< RSA key (32 qwords)*/
3527 	uint64_t d; /**< RSA private key (32 qwords)*/
3528 } icp_qat_fw_mmp_rsa_kp1_2048_output_t;
3529 
3530 /**
3531  * @ingroup icp_qat_fw_mmp
3532  * @brief
3533  *    Output parameter list for RSA 2048 key generation second form ,
3534  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3535  * #PKE_RSA_KP2_2048.
3536  */
3537 typedef struct icp_qat_fw_mmp_rsa_kp2_2048_output_s {
3538 	uint64_t n;    /**< RSA key (32 qwords)*/
3539 	uint64_t d;    /**< RSA private key (32 qwords)*/
3540 	uint64_t dp;   /**< RSA private key (16 qwords)*/
3541 	uint64_t dq;   /**< RSA private key (16 qwords)*/
3542 	uint64_t qinv; /**< RSA private key (16 qwords)*/
3543 } icp_qat_fw_mmp_rsa_kp2_2048_output_t;
3544 
3545 /**
3546  * @ingroup icp_qat_fw_mmp
3547  * @brief
3548  *    Output parameter list for RSA 2048 Encryption ,
3549  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3550  * #PKE_RSA_EP_2048.
3551  */
3552 typedef struct icp_qat_fw_mmp_rsa_ep_2048_output_s {
3553 	uint64_t c; /**< cipher text representative, &lt; n (32 qwords)*/
3554 } icp_qat_fw_mmp_rsa_ep_2048_output_t;
3555 
3556 /**
3557  * @ingroup icp_qat_fw_mmp
3558  * @brief
3559  *    Output parameter list for RSA 2048 Decryption ,
3560  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3561  * #PKE_RSA_DP1_2048.
3562  */
3563 typedef struct icp_qat_fw_mmp_rsa_dp1_2048_output_s {
3564 	uint64_t m; /**< message representative, &lt; n (32 qwords)*/
3565 } icp_qat_fw_mmp_rsa_dp1_2048_output_t;
3566 
3567 /**
3568  * @ingroup icp_qat_fw_mmp
3569  * @brief
3570  *    Output parameter list for RSA 2048 Decryption with CRT ,
3571  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3572  * #PKE_RSA_DP2_2048.
3573  */
3574 typedef struct icp_qat_fw_mmp_rsa_dp2_2048_output_s {
3575 	uint64_t m; /**< message representative, &lt; (p*q) (32 qwords)*/
3576 } icp_qat_fw_mmp_rsa_dp2_2048_output_t;
3577 
3578 /**
3579  * @ingroup icp_qat_fw_mmp
3580  * @brief
3581  *    Output parameter list for RSA 3072 key generation first form ,
3582  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3583  * #PKE_RSA_KP1_3072.
3584  */
3585 typedef struct icp_qat_fw_mmp_rsa_kp1_3072_output_s {
3586 	uint64_t n; /**< RSA key (48 qwords)*/
3587 	uint64_t d; /**< RSA private key (48 qwords)*/
3588 } icp_qat_fw_mmp_rsa_kp1_3072_output_t;
3589 
3590 /**
3591  * @ingroup icp_qat_fw_mmp
3592  * @brief
3593  *    Output parameter list for RSA 3072 key generation second form ,
3594  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3595  * #PKE_RSA_KP2_3072.
3596  */
3597 typedef struct icp_qat_fw_mmp_rsa_kp2_3072_output_s {
3598 	uint64_t n;    /**< RSA key (48 qwords)*/
3599 	uint64_t d;    /**< RSA private key (48 qwords)*/
3600 	uint64_t dp;   /**< RSA private key (24 qwords)*/
3601 	uint64_t dq;   /**< RSA private key (24 qwords)*/
3602 	uint64_t qinv; /**< RSA private key (24 qwords)*/
3603 } icp_qat_fw_mmp_rsa_kp2_3072_output_t;
3604 
3605 /**
3606  * @ingroup icp_qat_fw_mmp
3607  * @brief
3608  *    Output parameter list for RSA 3072 Encryption ,
3609  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3610  * #PKE_RSA_EP_3072.
3611  */
3612 typedef struct icp_qat_fw_mmp_rsa_ep_3072_output_s {
3613 	uint64_t c; /**< cipher text representative, &lt; n (48 qwords)*/
3614 } icp_qat_fw_mmp_rsa_ep_3072_output_t;
3615 
3616 /**
3617  * @ingroup icp_qat_fw_mmp
3618  * @brief
3619  *    Output parameter list for RSA 3072 Decryption ,
3620  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3621  * #PKE_RSA_DP1_3072.
3622  */
3623 typedef struct icp_qat_fw_mmp_rsa_dp1_3072_output_s {
3624 	uint64_t m; /**< message representative, &lt; n (48 qwords)*/
3625 } icp_qat_fw_mmp_rsa_dp1_3072_output_t;
3626 
3627 /**
3628  * @ingroup icp_qat_fw_mmp
3629  * @brief
3630  *    Output parameter list for RSA 3072 Decryption with CRT ,
3631  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3632  * #PKE_RSA_DP2_3072.
3633  */
3634 typedef struct icp_qat_fw_mmp_rsa_dp2_3072_output_s {
3635 	uint64_t m; /**< message representative, &lt; (p*q) (48 qwords)*/
3636 } icp_qat_fw_mmp_rsa_dp2_3072_output_t;
3637 
3638 /**
3639  * @ingroup icp_qat_fw_mmp
3640  * @brief
3641  *    Output parameter list for RSA 4096 key generation first form ,
3642  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3643  * #PKE_RSA_KP1_4096.
3644  */
3645 typedef struct icp_qat_fw_mmp_rsa_kp1_4096_output_s {
3646 	uint64_t n; /**< RSA key (64 qwords)*/
3647 	uint64_t d; /**< RSA private key (64 qwords)*/
3648 } icp_qat_fw_mmp_rsa_kp1_4096_output_t;
3649 
3650 /**
3651  * @ingroup icp_qat_fw_mmp
3652  * @brief
3653  *    Output parameter list for RSA 4096 key generation second form ,
3654  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3655  * #PKE_RSA_KP2_4096.
3656  */
3657 typedef struct icp_qat_fw_mmp_rsa_kp2_4096_output_s {
3658 	uint64_t n;    /**< RSA key (64 qwords)*/
3659 	uint64_t d;    /**< RSA private key (64 qwords)*/
3660 	uint64_t dp;   /**< RSA private key (32 qwords)*/
3661 	uint64_t dq;   /**< RSA private key (32 qwords)*/
3662 	uint64_t qinv; /**< RSA private key (32 qwords)*/
3663 } icp_qat_fw_mmp_rsa_kp2_4096_output_t;
3664 
3665 /**
3666  * @ingroup icp_qat_fw_mmp
3667  * @brief
3668  *    Output parameter list for RSA 4096 Encryption ,
3669  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3670  * #PKE_RSA_EP_4096.
3671  */
3672 typedef struct icp_qat_fw_mmp_rsa_ep_4096_output_s {
3673 	uint64_t c; /**< cipher text representative, &lt; n (64 qwords)*/
3674 } icp_qat_fw_mmp_rsa_ep_4096_output_t;
3675 
3676 /**
3677  * @ingroup icp_qat_fw_mmp
3678  * @brief
3679  *    Output parameter list for RSA 4096 Decryption ,
3680  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3681  * #PKE_RSA_DP1_4096.
3682  */
3683 typedef struct icp_qat_fw_mmp_rsa_dp1_4096_output_s {
3684 	uint64_t m; /**< message representative, &lt; n (64 qwords)*/
3685 } icp_qat_fw_mmp_rsa_dp1_4096_output_t;
3686 
3687 /**
3688  * @ingroup icp_qat_fw_mmp
3689  * @brief
3690  *    Output parameter list for RSA 4096 Decryption with CRT ,
3691  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3692  * #PKE_RSA_DP2_4096.
3693  */
3694 typedef struct icp_qat_fw_mmp_rsa_dp2_4096_output_s {
3695 	uint64_t m; /**< message representative, &lt; (p*q) (64 qwords)*/
3696 } icp_qat_fw_mmp_rsa_dp2_4096_output_t;
3697 
3698 /**
3699  * @ingroup icp_qat_fw_mmp
3700  * @brief
3701  *    Output parameter list for GCD primality test for 192-bit numbers ,
3702  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3703  * #PKE_GCD_PT_192.
3704  */
3705 typedef struct icp_qat_fw_mmp_gcd_pt_192_output_s {
3706 	/* no output parameters */
3707 } icp_qat_fw_mmp_gcd_pt_192_output_t;
3708 
3709 /**
3710  * @ingroup icp_qat_fw_mmp
3711  * @brief
3712  *    Output parameter list for GCD primality test for 256-bit numbers ,
3713  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3714  * #PKE_GCD_PT_256.
3715  */
3716 typedef struct icp_qat_fw_mmp_gcd_pt_256_output_s {
3717 	/* no output parameters */
3718 } icp_qat_fw_mmp_gcd_pt_256_output_t;
3719 
3720 /**
3721  * @ingroup icp_qat_fw_mmp
3722  * @brief
3723  *    Output parameter list for GCD primality test for 384-bit numbers ,
3724  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3725  * #PKE_GCD_PT_384.
3726  */
3727 typedef struct icp_qat_fw_mmp_gcd_pt_384_output_s {
3728 	/* no output parameters */
3729 } icp_qat_fw_mmp_gcd_pt_384_output_t;
3730 
3731 /**
3732  * @ingroup icp_qat_fw_mmp
3733  * @brief
3734  *    Output parameter list for GCD primality test for 512-bit numbers ,
3735  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3736  * #PKE_GCD_PT_512.
3737  */
3738 typedef struct icp_qat_fw_mmp_gcd_pt_512_output_s {
3739 	/* no output parameters */
3740 } icp_qat_fw_mmp_gcd_pt_512_output_t;
3741 
3742 /**
3743  * @ingroup icp_qat_fw_mmp
3744  * @brief
3745  *    Output parameter list for GCD primality test for 768-bit numbers ,
3746  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3747  * #PKE_GCD_PT_768.
3748  */
3749 typedef struct icp_qat_fw_mmp_gcd_pt_768_output_s {
3750 	/* no output parameters */
3751 } icp_qat_fw_mmp_gcd_pt_768_output_t;
3752 
3753 /**
3754  * @ingroup icp_qat_fw_mmp
3755  * @brief
3756  *    Output parameter list for GCD primality test for 1024-bit numbers ,
3757  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3758  * #PKE_GCD_PT_1024.
3759  */
3760 typedef struct icp_qat_fw_mmp_gcd_pt_1024_output_s {
3761 	/* no output parameters */
3762 } icp_qat_fw_mmp_gcd_pt_1024_output_t;
3763 
3764 /**
3765  * @ingroup icp_qat_fw_mmp
3766  * @brief
3767  *    Output parameter list for GCD primality test for 1536-bit numbers ,
3768  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3769  * #PKE_GCD_PT_1536.
3770  */
3771 typedef struct icp_qat_fw_mmp_gcd_pt_1536_output_s {
3772 	/* no output parameters */
3773 } icp_qat_fw_mmp_gcd_pt_1536_output_t;
3774 
3775 /**
3776  * @ingroup icp_qat_fw_mmp
3777  * @brief
3778  *    Output parameter list for GCD primality test for 2048-bit numbers ,
3779  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3780  * #PKE_GCD_PT_2048.
3781  */
3782 typedef struct icp_qat_fw_mmp_gcd_pt_2048_output_s {
3783 	/* no output parameters */
3784 } icp_qat_fw_mmp_gcd_pt_2048_output_t;
3785 
3786 /**
3787  * @ingroup icp_qat_fw_mmp
3788  * @brief
3789  *    Output parameter list for GCD primality test for 3072-bit numbers ,
3790  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3791  * #PKE_GCD_PT_3072.
3792  */
3793 typedef struct icp_qat_fw_mmp_gcd_pt_3072_output_s {
3794 	/* no output parameters */
3795 } icp_qat_fw_mmp_gcd_pt_3072_output_t;
3796 
3797 /**
3798  * @ingroup icp_qat_fw_mmp
3799  * @brief
3800  *    Output parameter list for GCD primality test for 4096-bit numbers ,
3801  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3802  * #PKE_GCD_PT_4096.
3803  */
3804 typedef struct icp_qat_fw_mmp_gcd_pt_4096_output_s {
3805 	/* no output parameters */
3806 } icp_qat_fw_mmp_gcd_pt_4096_output_t;
3807 
3808 /**
3809  * @ingroup icp_qat_fw_mmp
3810  * @brief
3811  *    Output parameter list for Fermat primality test for 160-bit numbers ,
3812  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3813  * #PKE_FERMAT_PT_160.
3814  */
3815 typedef struct icp_qat_fw_mmp_fermat_pt_160_output_s {
3816 	/* no output parameters */
3817 } icp_qat_fw_mmp_fermat_pt_160_output_t;
3818 
3819 /**
3820  * @ingroup icp_qat_fw_mmp
3821  * @brief
3822  *    Output parameter list for Fermat primality test for 512-bit numbers ,
3823  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3824  * #PKE_FERMAT_PT_512.
3825  */
3826 typedef struct icp_qat_fw_mmp_fermat_pt_512_output_s {
3827 	/* no output parameters */
3828 } icp_qat_fw_mmp_fermat_pt_512_output_t;
3829 
3830 /**
3831  * @ingroup icp_qat_fw_mmp
3832  * @brief
3833  *    Output parameter list for Fermat primality test for &lte; 512-bit numbers
3834  * ,
3835  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3836  * #PKE_FERMAT_PT_L512.
3837  */
3838 typedef struct icp_qat_fw_mmp_fermat_pt_l512_output_s {
3839 	/* no output parameters */
3840 } icp_qat_fw_mmp_fermat_pt_l512_output_t;
3841 
3842 /**
3843  * @ingroup icp_qat_fw_mmp
3844  * @brief
3845  *    Output parameter list for Fermat primality test for 768-bit numbers ,
3846  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3847  * #PKE_FERMAT_PT_768.
3848  */
3849 typedef struct icp_qat_fw_mmp_fermat_pt_768_output_s {
3850 	/* no output parameters */
3851 } icp_qat_fw_mmp_fermat_pt_768_output_t;
3852 
3853 /**
3854  * @ingroup icp_qat_fw_mmp
3855  * @brief
3856  *    Output parameter list for Fermat primality test for 1024-bit numbers ,
3857  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3858  * #PKE_FERMAT_PT_1024.
3859  */
3860 typedef struct icp_qat_fw_mmp_fermat_pt_1024_output_s {
3861 	/* no output parameters */
3862 } icp_qat_fw_mmp_fermat_pt_1024_output_t;
3863 
3864 /**
3865  * @ingroup icp_qat_fw_mmp
3866  * @brief
3867  *    Output parameter list for Fermat primality test for 1536-bit numbers ,
3868  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3869  * #PKE_FERMAT_PT_1536.
3870  */
3871 typedef struct icp_qat_fw_mmp_fermat_pt_1536_output_s {
3872 	/* no output parameters */
3873 } icp_qat_fw_mmp_fermat_pt_1536_output_t;
3874 
3875 /**
3876  * @ingroup icp_qat_fw_mmp
3877  * @brief
3878  *    Output parameter list for Fermat primality test for 2048-bit numbers ,
3879  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3880  * #PKE_FERMAT_PT_2048.
3881  */
3882 typedef struct icp_qat_fw_mmp_fermat_pt_2048_output_s {
3883 	/* no output parameters */
3884 } icp_qat_fw_mmp_fermat_pt_2048_output_t;
3885 
3886 /**
3887  * @ingroup icp_qat_fw_mmp
3888  * @brief
3889  *    Output parameter list for Fermat primality test for 3072-bit numbers ,
3890  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3891  * #PKE_FERMAT_PT_3072.
3892  */
3893 typedef struct icp_qat_fw_mmp_fermat_pt_3072_output_s {
3894 	/* no output parameters */
3895 } icp_qat_fw_mmp_fermat_pt_3072_output_t;
3896 
3897 /**
3898  * @ingroup icp_qat_fw_mmp
3899  * @brief
3900  *    Output parameter list for Fermat primality test for 4096-bit numbers ,
3901  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3902  * #PKE_FERMAT_PT_4096.
3903  */
3904 typedef struct icp_qat_fw_mmp_fermat_pt_4096_output_s {
3905 	/* no output parameters */
3906 } icp_qat_fw_mmp_fermat_pt_4096_output_t;
3907 
3908 /**
3909  * @ingroup icp_qat_fw_mmp
3910  * @brief
3911  *    Output parameter list for Miller-Rabin primality test for 160-bit numbers
3912  * ,
3913  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3914  * #PKE_MR_PT_160.
3915  */
3916 typedef struct icp_qat_fw_mmp_mr_pt_160_output_s {
3917 	/* no output parameters */
3918 } icp_qat_fw_mmp_mr_pt_160_output_t;
3919 
3920 /**
3921  * @ingroup icp_qat_fw_mmp
3922  * @brief
3923  *    Output parameter list for Miller-Rabin primality test for 512-bit numbers
3924  * ,
3925  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3926  * #PKE_MR_PT_512.
3927  */
3928 typedef struct icp_qat_fw_mmp_mr_pt_512_output_s {
3929 	/* no output parameters */
3930 } icp_qat_fw_mmp_mr_pt_512_output_t;
3931 
3932 /**
3933  * @ingroup icp_qat_fw_mmp
3934  * @brief
3935  *    Output parameter list for Miller-Rabin primality test for 768-bit numbers
3936  * ,
3937  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3938  * #PKE_MR_PT_768.
3939  */
3940 typedef struct icp_qat_fw_mmp_mr_pt_768_output_s {
3941 	/* no output parameters */
3942 } icp_qat_fw_mmp_mr_pt_768_output_t;
3943 
3944 /**
3945  * @ingroup icp_qat_fw_mmp
3946  * @brief
3947  *    Output parameter list for Miller-Rabin primality test for 1024-bit numbers
3948  * ,
3949  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3950  * #PKE_MR_PT_1024.
3951  */
3952 typedef struct icp_qat_fw_mmp_mr_pt_1024_output_s {
3953 	/* no output parameters */
3954 } icp_qat_fw_mmp_mr_pt_1024_output_t;
3955 
3956 /**
3957  * @ingroup icp_qat_fw_mmp
3958  * @brief
3959  *    Output parameter list for Miller-Rabin primality test for 1536-bit numbers
3960  * ,
3961  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3962  * #PKE_MR_PT_1536.
3963  */
3964 typedef struct icp_qat_fw_mmp_mr_pt_1536_output_s {
3965 	/* no output parameters */
3966 } icp_qat_fw_mmp_mr_pt_1536_output_t;
3967 
3968 /**
3969  * @ingroup icp_qat_fw_mmp
3970  * @brief
3971  *    Output parameter list for Miller-Rabin primality test for 2048-bit numbers
3972  * ,
3973  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3974  * #PKE_MR_PT_2048.
3975  */
3976 typedef struct icp_qat_fw_mmp_mr_pt_2048_output_s {
3977 	/* no output parameters */
3978 } icp_qat_fw_mmp_mr_pt_2048_output_t;
3979 
3980 /**
3981  * @ingroup icp_qat_fw_mmp
3982  * @brief
3983  *    Output parameter list for Miller-Rabin primality test for 3072-bit numbers
3984  * ,
3985  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3986  * #PKE_MR_PT_3072.
3987  */
3988 typedef struct icp_qat_fw_mmp_mr_pt_3072_output_s {
3989 	/* no output parameters */
3990 } icp_qat_fw_mmp_mr_pt_3072_output_t;
3991 
3992 /**
3993  * @ingroup icp_qat_fw_mmp
3994  * @brief
3995  *    Output parameter list for Miller-Rabin primality test for 4096-bit numbers
3996  * ,
3997  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
3998  * #PKE_MR_PT_4096.
3999  */
4000 typedef struct icp_qat_fw_mmp_mr_pt_4096_output_s {
4001 	/* no output parameters */
4002 } icp_qat_fw_mmp_mr_pt_4096_output_t;
4003 
4004 /**
4005  * @ingroup icp_qat_fw_mmp
4006  * @brief
4007  *    Output parameter list for Miller-Rabin primality test for 512-bit numbers
4008  * ,
4009  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4010  * #PKE_MR_PT_L512.
4011  */
4012 typedef struct icp_qat_fw_mmp_mr_pt_l512_output_s {
4013 	/* no output parameters */
4014 } icp_qat_fw_mmp_mr_pt_l512_output_t;
4015 
4016 /**
4017  * @ingroup icp_qat_fw_mmp
4018  * @brief
4019  *    Output parameter list for Lucas primality test for 160-bit numbers ,
4020  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4021  * #PKE_LUCAS_PT_160.
4022  */
4023 typedef struct icp_qat_fw_mmp_lucas_pt_160_output_s {
4024 	/* no output parameters */
4025 } icp_qat_fw_mmp_lucas_pt_160_output_t;
4026 
4027 /**
4028  * @ingroup icp_qat_fw_mmp
4029  * @brief
4030  *    Output parameter list for Lucas primality test for 512-bit numbers ,
4031  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4032  * #PKE_LUCAS_PT_512.
4033  */
4034 typedef struct icp_qat_fw_mmp_lucas_pt_512_output_s {
4035 	/* no output parameters */
4036 } icp_qat_fw_mmp_lucas_pt_512_output_t;
4037 
4038 /**
4039  * @ingroup icp_qat_fw_mmp
4040  * @brief
4041  *    Output parameter list for Lucas primality test for 768-bit numbers ,
4042  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4043  * #PKE_LUCAS_PT_768.
4044  */
4045 typedef struct icp_qat_fw_mmp_lucas_pt_768_output_s {
4046 	/* no output parameters */
4047 } icp_qat_fw_mmp_lucas_pt_768_output_t;
4048 
4049 /**
4050  * @ingroup icp_qat_fw_mmp
4051  * @brief
4052  *    Output parameter list for Lucas primality test for 1024-bit numbers ,
4053  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4054  * #PKE_LUCAS_PT_1024.
4055  */
4056 typedef struct icp_qat_fw_mmp_lucas_pt_1024_output_s {
4057 	/* no output parameters */
4058 } icp_qat_fw_mmp_lucas_pt_1024_output_t;
4059 
4060 /**
4061  * @ingroup icp_qat_fw_mmp
4062  * @brief
4063  *    Output parameter list for Lucas primality test for 1536-bit numbers ,
4064  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4065  * #PKE_LUCAS_PT_1536.
4066  */
4067 typedef struct icp_qat_fw_mmp_lucas_pt_1536_output_s {
4068 	/* no output parameters */
4069 } icp_qat_fw_mmp_lucas_pt_1536_output_t;
4070 
4071 /**
4072  * @ingroup icp_qat_fw_mmp
4073  * @brief
4074  *    Output parameter list for Lucas primality test for 2048-bit numbers ,
4075  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4076  * #PKE_LUCAS_PT_2048.
4077  */
4078 typedef struct icp_qat_fw_mmp_lucas_pt_2048_output_s {
4079 	/* no output parameters */
4080 } icp_qat_fw_mmp_lucas_pt_2048_output_t;
4081 
4082 /**
4083  * @ingroup icp_qat_fw_mmp
4084  * @brief
4085  *    Output parameter list for Lucas primality test for 3072-bit numbers ,
4086  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4087  * #PKE_LUCAS_PT_3072.
4088  */
4089 typedef struct icp_qat_fw_mmp_lucas_pt_3072_output_s {
4090 	/* no output parameters */
4091 } icp_qat_fw_mmp_lucas_pt_3072_output_t;
4092 
4093 /**
4094  * @ingroup icp_qat_fw_mmp
4095  * @brief
4096  *    Output parameter list for Lucas primality test for 4096-bit numbers ,
4097  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4098  * #PKE_LUCAS_PT_4096.
4099  */
4100 typedef struct icp_qat_fw_mmp_lucas_pt_4096_output_s {
4101 	/* no output parameters */
4102 } icp_qat_fw_mmp_lucas_pt_4096_output_t;
4103 
4104 /**
4105  * @ingroup icp_qat_fw_mmp
4106  * @brief
4107  *    Output parameter list for Lucas primality test for L512-bit numbers ,
4108  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4109  * #PKE_LUCAS_PT_L512.
4110  */
4111 typedef struct icp_qat_fw_mmp_lucas_pt_l512_output_s {
4112 	/* no output parameters */
4113 } icp_qat_fw_mmp_lucas_pt_l512_output_t;
4114 
4115 /**
4116  * @ingroup icp_qat_fw_mmp
4117  * @brief
4118  *    Output parameter list for Modular exponentiation for numbers less than
4119  * 512-bits ,
4120  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4121  * #MATHS_MODEXP_L512.
4122  */
4123 typedef struct icp_qat_fw_maths_modexp_l512_output_s {
4124 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (8
4125 		       qwords)*/
4126 } icp_qat_fw_maths_modexp_l512_output_t;
4127 
4128 /**
4129  * @ingroup icp_qat_fw_mmp
4130  * @brief
4131  *    Output parameter list for Modular exponentiation for numbers less than
4132  * 1024-bit ,
4133  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4134  * #MATHS_MODEXP_L1024.
4135  */
4136 typedef struct icp_qat_fw_maths_modexp_l1024_output_s {
4137 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (16
4138 		       qwords)*/
4139 } icp_qat_fw_maths_modexp_l1024_output_t;
4140 
4141 /**
4142  * @ingroup icp_qat_fw_mmp
4143  * @brief
4144  *    Output parameter list for Modular exponentiation for numbers less than
4145  * 1536-bits ,
4146  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4147  * #MATHS_MODEXP_L1536.
4148  */
4149 typedef struct icp_qat_fw_maths_modexp_l1536_output_s {
4150 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (24
4151 		       qwords)*/
4152 } icp_qat_fw_maths_modexp_l1536_output_t;
4153 
4154 /**
4155  * @ingroup icp_qat_fw_mmp
4156  * @brief
4157  *    Output parameter list for Modular exponentiation for numbers less than
4158  * 2048-bit ,
4159  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4160  * #MATHS_MODEXP_L2048.
4161  */
4162 typedef struct icp_qat_fw_maths_modexp_l2048_output_s {
4163 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (32
4164 		       qwords)*/
4165 } icp_qat_fw_maths_modexp_l2048_output_t;
4166 
4167 /**
4168  * @ingroup icp_qat_fw_mmp
4169  * @brief
4170  *    Output parameter list for Modular exponentiation for numbers less than
4171  * 2560-bits ,
4172  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4173  * #MATHS_MODEXP_L2560.
4174  */
4175 typedef struct icp_qat_fw_maths_modexp_l2560_output_s {
4176 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (40
4177 		       qwords)*/
4178 } icp_qat_fw_maths_modexp_l2560_output_t;
4179 
4180 /**
4181  * @ingroup icp_qat_fw_mmp
4182  * @brief
4183  *    Output parameter list for Modular exponentiation for numbers less than
4184  * 3072-bits ,
4185  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4186  * #MATHS_MODEXP_L3072.
4187  */
4188 typedef struct icp_qat_fw_maths_modexp_l3072_output_s {
4189 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (48
4190 		       qwords)*/
4191 } icp_qat_fw_maths_modexp_l3072_output_t;
4192 
4193 /**
4194  * @ingroup icp_qat_fw_mmp
4195  * @brief
4196  *    Output parameter list for Modular exponentiation for numbers less than
4197  * 3584-bits ,
4198  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4199  * #MATHS_MODEXP_L3584.
4200  */
4201 typedef struct icp_qat_fw_maths_modexp_l3584_output_s {
4202 	uint64_t r; /**< modular exponentiation result  &ge; 0 and &lt; m (56
4203 		       qwords)*/
4204 } icp_qat_fw_maths_modexp_l3584_output_t;
4205 
4206 /**
4207  * @ingroup icp_qat_fw_mmp
4208  * @brief
4209  *    Output parameter list for Modular exponentiation for numbers less than
4210  * 4096-bit ,
4211  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4212  * #MATHS_MODEXP_L4096.
4213  */
4214 typedef struct icp_qat_fw_maths_modexp_l4096_output_s {
4215 	uint64_t r; /**< modular exponentiation result   &ge; 0 and &lt; m (64
4216 		       qwords)*/
4217 } icp_qat_fw_maths_modexp_l4096_output_t;
4218 
4219 /**
4220  * @ingroup icp_qat_fw_mmp
4221  * @brief
4222  *    Output parameter list for Modular multiplicative inverse for numbers less
4223  * than 128 bits ,
4224  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4225  * #MATHS_MODINV_ODD_L128.
4226  */
4227 typedef struct icp_qat_fw_maths_modinv_odd_l128_output_s {
4228 	uint64_t
4229 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (2
4230 		  qwords)*/
4231 } icp_qat_fw_maths_modinv_odd_l128_output_t;
4232 
4233 /**
4234  * @ingroup icp_qat_fw_mmp
4235  * @brief
4236  *    Output parameter list for Modular multiplicative inverse for numbers less
4237  * than 192 bits ,
4238  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4239  * #MATHS_MODINV_ODD_L192.
4240  */
4241 typedef struct icp_qat_fw_maths_modinv_odd_l192_output_s {
4242 	uint64_t
4243 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (3
4244 		  qwords)*/
4245 } icp_qat_fw_maths_modinv_odd_l192_output_t;
4246 
4247 /**
4248  * @ingroup icp_qat_fw_mmp
4249  * @brief
4250  *    Output parameter list for Modular multiplicative inverse for numbers less
4251  * than 256 bits ,
4252  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4253  * #MATHS_MODINV_ODD_L256.
4254  */
4255 typedef struct icp_qat_fw_maths_modinv_odd_l256_output_s {
4256 	uint64_t
4257 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (4
4258 		  qwords)*/
4259 } icp_qat_fw_maths_modinv_odd_l256_output_t;
4260 
4261 /**
4262  * @ingroup icp_qat_fw_mmp
4263  * @brief
4264  *    Output parameter list for Modular multiplicative inverse for numbers less
4265  * than 384 bits ,
4266  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4267  * #MATHS_MODINV_ODD_L384.
4268  */
4269 typedef struct icp_qat_fw_maths_modinv_odd_l384_output_s {
4270 	uint64_t
4271 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (6
4272 		  qwords)*/
4273 } icp_qat_fw_maths_modinv_odd_l384_output_t;
4274 
4275 /**
4276  * @ingroup icp_qat_fw_mmp
4277  * @brief
4278  *    Output parameter list for Modular multiplicative inverse for numbers less
4279  * than 512 bits ,
4280  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4281  * #MATHS_MODINV_ODD_L512.
4282  */
4283 typedef struct icp_qat_fw_maths_modinv_odd_l512_output_s {
4284 	uint64_t
4285 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (8
4286 		  qwords)*/
4287 } icp_qat_fw_maths_modinv_odd_l512_output_t;
4288 
4289 /**
4290  * @ingroup icp_qat_fw_mmp
4291  * @brief
4292  *    Output parameter list for Modular multiplicative inverse for numbers less
4293  * than 768 bits ,
4294  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4295  * #MATHS_MODINV_ODD_L768.
4296  */
4297 typedef struct icp_qat_fw_maths_modinv_odd_l768_output_s {
4298 	uint64_t
4299 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (12
4300 		  qwords)*/
4301 } icp_qat_fw_maths_modinv_odd_l768_output_t;
4302 
4303 /**
4304  * @ingroup icp_qat_fw_mmp
4305  * @brief
4306  *    Output parameter list for Modular multiplicative inverse for numbers less
4307  * than 1024 bits ,
4308  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4309  * #MATHS_MODINV_ODD_L1024.
4310  */
4311 typedef struct icp_qat_fw_maths_modinv_odd_l1024_output_s {
4312 	uint64_t
4313 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (16
4314 		  qwords)*/
4315 } icp_qat_fw_maths_modinv_odd_l1024_output_t;
4316 
4317 /**
4318  * @ingroup icp_qat_fw_mmp
4319  * @brief
4320  *    Output parameter list for Modular multiplicative inverse for numbers less
4321  * than 1536 bits ,
4322  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4323  * #MATHS_MODINV_ODD_L1536.
4324  */
4325 typedef struct icp_qat_fw_maths_modinv_odd_l1536_output_s {
4326 	uint64_t
4327 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (24
4328 		  qwords)*/
4329 } icp_qat_fw_maths_modinv_odd_l1536_output_t;
4330 
4331 /**
4332  * @ingroup icp_qat_fw_mmp
4333  * @brief
4334  *    Output parameter list for Modular multiplicative inverse for numbers less
4335  * than 2048 bits ,
4336  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4337  * #MATHS_MODINV_ODD_L2048.
4338  */
4339 typedef struct icp_qat_fw_maths_modinv_odd_l2048_output_s {
4340 	uint64_t
4341 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (32
4342 		  qwords)*/
4343 } icp_qat_fw_maths_modinv_odd_l2048_output_t;
4344 
4345 /**
4346  * @ingroup icp_qat_fw_mmp
4347  * @brief
4348  *    Output parameter list for Modular multiplicative inverse for numbers less
4349  * than 3072 bits ,
4350  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4351  * #MATHS_MODINV_ODD_L3072.
4352  */
4353 typedef struct icp_qat_fw_maths_modinv_odd_l3072_output_s {
4354 	uint64_t
4355 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (48
4356 		  qwords)*/
4357 } icp_qat_fw_maths_modinv_odd_l3072_output_t;
4358 
4359 /**
4360  * @ingroup icp_qat_fw_mmp
4361  * @brief
4362  *    Output parameter list for Modular multiplicative inverse for numbers less
4363  * than 4096 bits ,
4364  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4365  * #MATHS_MODINV_ODD_L4096.
4366  */
4367 typedef struct icp_qat_fw_maths_modinv_odd_l4096_output_s {
4368 	uint64_t
4369 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (64
4370 		  qwords)*/
4371 } icp_qat_fw_maths_modinv_odd_l4096_output_t;
4372 
4373 /**
4374  * @ingroup icp_qat_fw_mmp
4375  * @brief
4376  *    Output parameter list for Modular multiplicative inverse for numbers less
4377  * than 128 bits ,
4378  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4379  * #MATHS_MODINV_EVEN_L128.
4380  */
4381 typedef struct icp_qat_fw_maths_modinv_even_l128_output_s {
4382 	uint64_t
4383 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (2
4384 		  qwords)*/
4385 } icp_qat_fw_maths_modinv_even_l128_output_t;
4386 
4387 /**
4388  * @ingroup icp_qat_fw_mmp
4389  * @brief
4390  *    Output parameter list for Modular multiplicative inverse for numbers less
4391  * than 192 bits ,
4392  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4393  * #MATHS_MODINV_EVEN_L192.
4394  */
4395 typedef struct icp_qat_fw_maths_modinv_even_l192_output_s {
4396 	uint64_t
4397 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (3
4398 		  qwords)*/
4399 } icp_qat_fw_maths_modinv_even_l192_output_t;
4400 
4401 /**
4402  * @ingroup icp_qat_fw_mmp
4403  * @brief
4404  *    Output parameter list for Modular multiplicative inverse for numbers less
4405  * than 256 bits ,
4406  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4407  * #MATHS_MODINV_EVEN_L256.
4408  */
4409 typedef struct icp_qat_fw_maths_modinv_even_l256_output_s {
4410 	uint64_t
4411 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (4
4412 		  qwords)*/
4413 } icp_qat_fw_maths_modinv_even_l256_output_t;
4414 
4415 /**
4416  * @ingroup icp_qat_fw_mmp
4417  * @brief
4418  *    Output parameter list for Modular multiplicative inverse for numbers less
4419  * than 384 bits ,
4420  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4421  * #MATHS_MODINV_EVEN_L384.
4422  */
4423 typedef struct icp_qat_fw_maths_modinv_even_l384_output_s {
4424 	uint64_t
4425 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (6
4426 		  qwords)*/
4427 } icp_qat_fw_maths_modinv_even_l384_output_t;
4428 
4429 /**
4430  * @ingroup icp_qat_fw_mmp
4431  * @brief
4432  *    Output parameter list for Modular multiplicative inverse for numbers less
4433  * than 512 bits ,
4434  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4435  * #MATHS_MODINV_EVEN_L512.
4436  */
4437 typedef struct icp_qat_fw_maths_modinv_even_l512_output_s {
4438 	uint64_t
4439 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (8
4440 		  qwords)*/
4441 } icp_qat_fw_maths_modinv_even_l512_output_t;
4442 
4443 /**
4444  * @ingroup icp_qat_fw_mmp
4445  * @brief
4446  *    Output parameter list for Modular multiplicative inverse for numbers less
4447  * than 768 bits ,
4448  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4449  * #MATHS_MODINV_EVEN_L768.
4450  */
4451 typedef struct icp_qat_fw_maths_modinv_even_l768_output_s {
4452 	uint64_t
4453 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (12
4454 		  qwords)*/
4455 } icp_qat_fw_maths_modinv_even_l768_output_t;
4456 
4457 /**
4458  * @ingroup icp_qat_fw_mmp
4459  * @brief
4460  *    Output parameter list for Modular multiplicative inverse for numbers less
4461  * than 1024 bits ,
4462  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4463  * #MATHS_MODINV_EVEN_L1024.
4464  */
4465 typedef struct icp_qat_fw_maths_modinv_even_l1024_output_s {
4466 	uint64_t
4467 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (16
4468 		  qwords)*/
4469 } icp_qat_fw_maths_modinv_even_l1024_output_t;
4470 
4471 /**
4472  * @ingroup icp_qat_fw_mmp
4473  * @brief
4474  *    Output parameter list for Modular multiplicative inverse for numbers less
4475  * than 1536 bits ,
4476  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4477  * #MATHS_MODINV_EVEN_L1536.
4478  */
4479 typedef struct icp_qat_fw_maths_modinv_even_l1536_output_s {
4480 	uint64_t
4481 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (24
4482 		  qwords)*/
4483 } icp_qat_fw_maths_modinv_even_l1536_output_t;
4484 
4485 /**
4486  * @ingroup icp_qat_fw_mmp
4487  * @brief
4488  *    Output parameter list for Modular multiplicative inverse for numbers less
4489  * than 2048 bits ,
4490  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4491  * #MATHS_MODINV_EVEN_L2048.
4492  */
4493 typedef struct icp_qat_fw_maths_modinv_even_l2048_output_s {
4494 	uint64_t
4495 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (32
4496 		  qwords)*/
4497 } icp_qat_fw_maths_modinv_even_l2048_output_t;
4498 
4499 /**
4500  * @ingroup icp_qat_fw_mmp
4501  * @brief
4502  *    Output parameter list for Modular multiplicative inverse for numbers less
4503  * than 3072 bits ,
4504  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4505  * #MATHS_MODINV_EVEN_L3072.
4506  */
4507 typedef struct icp_qat_fw_maths_modinv_even_l3072_output_s {
4508 	uint64_t
4509 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (48
4510 		  qwords)*/
4511 } icp_qat_fw_maths_modinv_even_l3072_output_t;
4512 
4513 /**
4514  * @ingroup icp_qat_fw_mmp
4515  * @brief
4516  *    Output parameter list for Modular multiplicative inverse for numbers less
4517  * than 4096 bits ,
4518  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4519  * #MATHS_MODINV_EVEN_L4096.
4520  */
4521 typedef struct icp_qat_fw_maths_modinv_even_l4096_output_s {
4522 	uint64_t
4523 	    c; /**< modular multiplicative inverse of a, &gt; 0 and &lt; b (64
4524 		  qwords)*/
4525 } icp_qat_fw_maths_modinv_even_l4096_output_t;
4526 
4527 /**
4528  * @ingroup icp_qat_fw_mmp
4529  * @brief
4530  *    Output parameter list for DSA parameter generation P ,
4531  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4532  * #PKE_DSA_GEN_P_1024_160.
4533  */
4534 typedef struct icp_qat_fw_mmp_dsa_gen_p_1024_160_output_s {
4535 	uint64_t p; /**< candidate for DSA parameter p  (16 qwords)*/
4536 } icp_qat_fw_mmp_dsa_gen_p_1024_160_output_t;
4537 
4538 /**
4539  * @ingroup icp_qat_fw_mmp
4540  * @brief
4541  *    Output parameter list for DSA key generation G ,
4542  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4543  * #PKE_DSA_GEN_G_1024.
4544  */
4545 typedef struct icp_qat_fw_mmp_dsa_gen_g_1024_output_s {
4546 	uint64_t g; /**< DSA parameter  (16 qwords)*/
4547 } icp_qat_fw_mmp_dsa_gen_g_1024_output_t;
4548 
4549 /**
4550  * @ingroup icp_qat_fw_mmp
4551  * @brief
4552  *    Output parameter list for DSA key generation Y ,
4553  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4554  * #PKE_DSA_GEN_Y_1024.
4555  */
4556 typedef struct icp_qat_fw_mmp_dsa_gen_y_1024_output_s {
4557 	uint64_t y; /**< DSA parameter (16 qwords)*/
4558 } icp_qat_fw_mmp_dsa_gen_y_1024_output_t;
4559 
4560 /**
4561  * @ingroup icp_qat_fw_mmp
4562  * @brief
4563  *    Output parameter list for DSA Sign R ,
4564  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4565  * #PKE_DSA_SIGN_R_1024_160.
4566  */
4567 typedef struct icp_qat_fw_mmp_dsa_sign_r_1024_160_output_s {
4568 	uint64_t r; /**< DSA 160-bits signature  (3 qwords)*/
4569 } icp_qat_fw_mmp_dsa_sign_r_1024_160_output_t;
4570 
4571 /**
4572  * @ingroup icp_qat_fw_mmp
4573  * @brief
4574  *    Output parameter list for DSA Sign S ,
4575  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4576  * #PKE_DSA_SIGN_S_160.
4577  */
4578 typedef struct icp_qat_fw_mmp_dsa_sign_s_160_output_s {
4579 	uint64_t s; /**< s DSA 160-bits signature  (3 qwords)*/
4580 } icp_qat_fw_mmp_dsa_sign_s_160_output_t;
4581 
4582 /**
4583  * @ingroup icp_qat_fw_mmp
4584  * @brief
4585  *    Output parameter list for DSA Sign R S ,
4586  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4587  * #PKE_DSA_SIGN_R_S_1024_160.
4588  */
4589 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_1024_160_output_s {
4590 	uint64_t r; /**< DSA 160-bits signature  (3 qwords)*/
4591 	uint64_t s; /**< DSA 160-bits signature  (3 qwords)*/
4592 } icp_qat_fw_mmp_dsa_sign_r_s_1024_160_output_t;
4593 
4594 /**
4595  * @ingroup icp_qat_fw_mmp
4596  * @brief
4597  *    Output parameter list for DSA Verify ,
4598  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4599  * #PKE_DSA_VERIFY_1024_160.
4600  */
4601 typedef struct icp_qat_fw_mmp_dsa_verify_1024_160_output_s {
4602 	/* no output parameters */
4603 } icp_qat_fw_mmp_dsa_verify_1024_160_output_t;
4604 
4605 /**
4606  * @ingroup icp_qat_fw_mmp
4607  * @brief
4608  *    Output parameter list for DSA parameter generation P ,
4609  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4610  * #PKE_DSA_GEN_P_2048_224.
4611  */
4612 typedef struct icp_qat_fw_mmp_dsa_gen_p_2048_224_output_s {
4613 	uint64_t p; /**< candidate for DSA parameter p  (32 qwords)*/
4614 } icp_qat_fw_mmp_dsa_gen_p_2048_224_output_t;
4615 
4616 /**
4617  * @ingroup icp_qat_fw_mmp
4618  * @brief
4619  *    Output parameter list for DSA key generation Y ,
4620  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4621  * #PKE_DSA_GEN_Y_2048.
4622  */
4623 typedef struct icp_qat_fw_mmp_dsa_gen_y_2048_output_s {
4624 	uint64_t y; /**< DSA parameter (32 qwords)*/
4625 } icp_qat_fw_mmp_dsa_gen_y_2048_output_t;
4626 
4627 /**
4628  * @ingroup icp_qat_fw_mmp
4629  * @brief
4630  *    Output parameter list for DSA Sign R ,
4631  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4632  * #PKE_DSA_SIGN_R_2048_224.
4633  */
4634 typedef struct icp_qat_fw_mmp_dsa_sign_r_2048_224_output_s {
4635 	uint64_t r; /**< DSA 224-bits signature  (4 qwords)*/
4636 } icp_qat_fw_mmp_dsa_sign_r_2048_224_output_t;
4637 
4638 /**
4639  * @ingroup icp_qat_fw_mmp
4640  * @brief
4641  *    Output parameter list for DSA Sign S ,
4642  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4643  * #PKE_DSA_SIGN_S_224.
4644  */
4645 typedef struct icp_qat_fw_mmp_dsa_sign_s_224_output_s {
4646 	uint64_t s; /**< s DSA 224-bits signature  (4 qwords)*/
4647 } icp_qat_fw_mmp_dsa_sign_s_224_output_t;
4648 
4649 /**
4650  * @ingroup icp_qat_fw_mmp
4651  * @brief
4652  *    Output parameter list for DSA Sign R S ,
4653  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4654  * #PKE_DSA_SIGN_R_S_2048_224.
4655  */
4656 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_2048_224_output_s {
4657 	uint64_t r; /**< DSA 224-bits signature  (4 qwords)*/
4658 	uint64_t s; /**< DSA 224-bits signature  (4 qwords)*/
4659 } icp_qat_fw_mmp_dsa_sign_r_s_2048_224_output_t;
4660 
4661 /**
4662  * @ingroup icp_qat_fw_mmp
4663  * @brief
4664  *    Output parameter list for DSA Verify ,
4665  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4666  * #PKE_DSA_VERIFY_2048_224.
4667  */
4668 typedef struct icp_qat_fw_mmp_dsa_verify_2048_224_output_s {
4669 	/* no output parameters */
4670 } icp_qat_fw_mmp_dsa_verify_2048_224_output_t;
4671 
4672 /**
4673  * @ingroup icp_qat_fw_mmp
4674  * @brief
4675  *    Output parameter list for DSA parameter generation P ,
4676  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4677  * #PKE_DSA_GEN_P_2048_256.
4678  */
4679 typedef struct icp_qat_fw_mmp_dsa_gen_p_2048_256_output_s {
4680 	uint64_t p; /**< candidate for DSA parameter p  (32 qwords)*/
4681 } icp_qat_fw_mmp_dsa_gen_p_2048_256_output_t;
4682 
4683 /**
4684  * @ingroup icp_qat_fw_mmp
4685  * @brief
4686  *    Output parameter list for DSA key generation G ,
4687  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4688  * #PKE_DSA_GEN_G_2048.
4689  */
4690 typedef struct icp_qat_fw_mmp_dsa_gen_g_2048_output_s {
4691 	uint64_t g; /**< DSA parameter  (32 qwords)*/
4692 } icp_qat_fw_mmp_dsa_gen_g_2048_output_t;
4693 
4694 /**
4695  * @ingroup icp_qat_fw_mmp
4696  * @brief
4697  *    Output parameter list for DSA Sign R ,
4698  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4699  * #PKE_DSA_SIGN_R_2048_256.
4700  */
4701 typedef struct icp_qat_fw_mmp_dsa_sign_r_2048_256_output_s {
4702 	uint64_t r; /**< DSA 256-bits signature  (4 qwords)*/
4703 } icp_qat_fw_mmp_dsa_sign_r_2048_256_output_t;
4704 
4705 /**
4706  * @ingroup icp_qat_fw_mmp
4707  * @brief
4708  *    Output parameter list for DSA Sign S ,
4709  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4710  * #PKE_DSA_SIGN_S_256.
4711  */
4712 typedef struct icp_qat_fw_mmp_dsa_sign_s_256_output_s {
4713 	uint64_t s; /**< s DSA 256-bits signature  (4 qwords)*/
4714 } icp_qat_fw_mmp_dsa_sign_s_256_output_t;
4715 
4716 /**
4717  * @ingroup icp_qat_fw_mmp
4718  * @brief
4719  *    Output parameter list for DSA Sign R S ,
4720  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4721  * #PKE_DSA_SIGN_R_S_2048_256.
4722  */
4723 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_2048_256_output_s {
4724 	uint64_t r; /**< DSA 256-bits signature  (4 qwords)*/
4725 	uint64_t s; /**< DSA 256-bits signature  (4 qwords)*/
4726 } icp_qat_fw_mmp_dsa_sign_r_s_2048_256_output_t;
4727 
4728 /**
4729  * @ingroup icp_qat_fw_mmp
4730  * @brief
4731  *    Output parameter list for DSA Verify ,
4732  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4733  * #PKE_DSA_VERIFY_2048_256.
4734  */
4735 typedef struct icp_qat_fw_mmp_dsa_verify_2048_256_output_s {
4736 	/* no output parameters */
4737 } icp_qat_fw_mmp_dsa_verify_2048_256_output_t;
4738 
4739 /**
4740  * @ingroup icp_qat_fw_mmp
4741  * @brief
4742  *    Output parameter list for DSA parameter generation P ,
4743  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4744  * #PKE_DSA_GEN_P_3072_256.
4745  */
4746 typedef struct icp_qat_fw_mmp_dsa_gen_p_3072_256_output_s {
4747 	uint64_t p; /**< candidate for DSA parameter p  (48 qwords)*/
4748 } icp_qat_fw_mmp_dsa_gen_p_3072_256_output_t;
4749 
4750 /**
4751  * @ingroup icp_qat_fw_mmp
4752  * @brief
4753  *    Output parameter list for DSA key generation G ,
4754  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4755  * #PKE_DSA_GEN_G_3072.
4756  */
4757 typedef struct icp_qat_fw_mmp_dsa_gen_g_3072_output_s {
4758 	uint64_t g; /**< DSA parameter  (48 qwords)*/
4759 } icp_qat_fw_mmp_dsa_gen_g_3072_output_t;
4760 
4761 /**
4762  * @ingroup icp_qat_fw_mmp
4763  * @brief
4764  *    Output parameter list for DSA key generation Y ,
4765  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4766  * #PKE_DSA_GEN_Y_3072.
4767  */
4768 typedef struct icp_qat_fw_mmp_dsa_gen_y_3072_output_s {
4769 	uint64_t y; /**< DSA parameter (48 qwords)*/
4770 } icp_qat_fw_mmp_dsa_gen_y_3072_output_t;
4771 
4772 /**
4773  * @ingroup icp_qat_fw_mmp
4774  * @brief
4775  *    Output parameter list for DSA Sign R ,
4776  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4777  * #PKE_DSA_SIGN_R_3072_256.
4778  */
4779 typedef struct icp_qat_fw_mmp_dsa_sign_r_3072_256_output_s {
4780 	uint64_t r; /**< DSA 256-bits signature  (4 qwords)*/
4781 } icp_qat_fw_mmp_dsa_sign_r_3072_256_output_t;
4782 
4783 /**
4784  * @ingroup icp_qat_fw_mmp
4785  * @brief
4786  *    Output parameter list for DSA Sign R S ,
4787  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4788  * #PKE_DSA_SIGN_R_S_3072_256.
4789  */
4790 typedef struct icp_qat_fw_mmp_dsa_sign_r_s_3072_256_output_s {
4791 	uint64_t r; /**< DSA 256-bits signature  (4 qwords)*/
4792 	uint64_t s; /**< DSA 256-bits signature  (4 qwords)*/
4793 } icp_qat_fw_mmp_dsa_sign_r_s_3072_256_output_t;
4794 
4795 /**
4796  * @ingroup icp_qat_fw_mmp
4797  * @brief
4798  *    Output parameter list for DSA Verify ,
4799  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4800  * #PKE_DSA_VERIFY_3072_256.
4801  */
4802 typedef struct icp_qat_fw_mmp_dsa_verify_3072_256_output_s {
4803 	/* no output parameters */
4804 } icp_qat_fw_mmp_dsa_verify_3072_256_output_t;
4805 
4806 /**
4807  * @ingroup icp_qat_fw_mmp
4808  * @brief
4809  *    Output parameter list for ECDSA Sign RS for curves B/K-163 and B/K-233 ,
4810  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4811  * #PKE_ECDSA_SIGN_RS_GF2_L256.
4812  */
4813 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l256_output_s {
4814 	uint64_t r; /**< ECDSA signature r &gt; 0 and &lt; n (4 qwords)*/
4815 	uint64_t s; /**< ECDSA signature s &gt; 0 and &lt; n (4 qwords)*/
4816 } icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l256_output_t;
4817 
4818 /**
4819  * @ingroup icp_qat_fw_mmp
4820  * @brief
4821  *    Output parameter list for ECDSA Sign R for curves B/K-163 and B/K-233 ,
4822  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4823  * #PKE_ECDSA_SIGN_R_GF2_L256.
4824  */
4825 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gf2_l256_output_s {
4826 	uint64_t r; /**< ECDSA signature r &gt; 0 and &lt; n (4 qwords)*/
4827 } icp_qat_fw_mmp_ecdsa_sign_r_gf2_l256_output_t;
4828 
4829 /**
4830  * @ingroup icp_qat_fw_mmp
4831  * @brief
4832  *    Output parameter list for ECDSA Sign S for curves with n &lt; 2^256 ,
4833  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4834  * #PKE_ECDSA_SIGN_S_GF2_L256.
4835  */
4836 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gf2_l256_output_s {
4837 	uint64_t s; /**< ECDSA signature s &gt; 0 and &lt; n (4 qwords)*/
4838 } icp_qat_fw_mmp_ecdsa_sign_s_gf2_l256_output_t;
4839 
4840 /**
4841  * @ingroup icp_qat_fw_mmp
4842  * @brief
4843  *    Output parameter list for ECDSA Verify for curves B/K-163 and B/K-233 ,
4844  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4845  * #PKE_ECDSA_VERIFY_GF2_L256.
4846  */
4847 typedef struct icp_qat_fw_mmp_ecdsa_verify_gf2_l256_output_s {
4848 	/* no output parameters */
4849 } icp_qat_fw_mmp_ecdsa_verify_gf2_l256_output_t;
4850 
4851 /**
4852  * @ingroup icp_qat_fw_mmp
4853  * @brief
4854  *    Output parameter list for ECDSA Sign RS ,
4855  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4856  * #PKE_ECDSA_SIGN_RS_GF2_L512.
4857  */
4858 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l512_output_s {
4859 	uint64_t r; /**<  (8 qwords)*/
4860 	uint64_t s; /**< ECDSA signature r &gt; 0 and &lt; n ECDSA signature s
4861 		       &gt; 0 and &lt; n (8 qwords)*/
4862 } icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l512_output_t;
4863 
4864 /**
4865  * @ingroup icp_qat_fw_mmp
4866  * @brief
4867  *    Output parameter list for ECDSA GF2 Sign R ,
4868  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4869  * #PKE_ECDSA_SIGN_R_GF2_L512.
4870  */
4871 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gf2_l512_output_s {
4872 	uint64_t r; /**< ECDSA signature r &gt; 0 and &lt; n (8 qwords)*/
4873 } icp_qat_fw_mmp_ecdsa_sign_r_gf2_l512_output_t;
4874 
4875 /**
4876  * @ingroup icp_qat_fw_mmp
4877  * @brief
4878  *    Output parameter list for ECDSA GF2 Sign S ,
4879  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4880  * #PKE_ECDSA_SIGN_S_GF2_L512.
4881  */
4882 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gf2_l512_output_s {
4883 	uint64_t s; /**< ECDSA signature s &gt; 0 and &lt; n (8 qwords)*/
4884 } icp_qat_fw_mmp_ecdsa_sign_s_gf2_l512_output_t;
4885 
4886 /**
4887  * @ingroup icp_qat_fw_mmp
4888  * @brief
4889  *    Output parameter list for ECDSA GF2 Verify ,
4890  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4891  * #PKE_ECDSA_VERIFY_GF2_L512.
4892  */
4893 typedef struct icp_qat_fw_mmp_ecdsa_verify_gf2_l512_output_s {
4894 	/* no output parameters */
4895 } icp_qat_fw_mmp_ecdsa_verify_gf2_l512_output_t;
4896 
4897 /**
4898  * @ingroup icp_qat_fw_mmp
4899  * @brief
4900  *    Output parameter list for ECDSA GF2 Sign RS for curves B-571/K-571 ,
4901  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4902  * #PKE_ECDSA_SIGN_RS_GF2_571.
4903  */
4904 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gf2_571_output_s {
4905 	uint64_t r; /**<  (9 qwords)*/
4906 	uint64_t s; /**< ECDSA signature r &gt; 0 and &lt; n ECDSA signature s
4907 		       &gt; 0 and &lt; n (9 qwords)*/
4908 } icp_qat_fw_mmp_ecdsa_sign_rs_gf2_571_output_t;
4909 
4910 /**
4911  * @ingroup icp_qat_fw_mmp
4912  * @brief
4913  *    Output parameter list for ECDSA GF2 Sign S for curves with deg(q) &lt; 576
4914  * ,
4915  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4916  * #PKE_ECDSA_SIGN_S_GF2_571.
4917  */
4918 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gf2_571_output_s {
4919 	uint64_t s; /**< ECDSA signature s &gt; 0 and &lt; n (9 qwords)*/
4920 } icp_qat_fw_mmp_ecdsa_sign_s_gf2_571_output_t;
4921 
4922 /**
4923  * @ingroup icp_qat_fw_mmp
4924  * @brief
4925  *    Output parameter list for ECDSA GF2 Sign R for degree 571 ,
4926  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4927  * #PKE_ECDSA_SIGN_R_GF2_571.
4928  */
4929 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gf2_571_output_s {
4930 	uint64_t r; /**< ECDSA signature r &gt; 0 and &lt; n (9 qwords)*/
4931 } icp_qat_fw_mmp_ecdsa_sign_r_gf2_571_output_t;
4932 
4933 /**
4934  * @ingroup icp_qat_fw_mmp
4935  * @brief
4936  *    Output parameter list for ECDSA GF2 Verify for degree 571 ,
4937  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4938  * #PKE_ECDSA_VERIFY_GF2_571.
4939  */
4940 typedef struct icp_qat_fw_mmp_ecdsa_verify_gf2_571_output_s {
4941 	/* no output parameters */
4942 } icp_qat_fw_mmp_ecdsa_verify_gf2_571_output_t;
4943 
4944 /**
4945  * @ingroup icp_qat_fw_mmp
4946  * @brief
4947  *    Output parameter list for MATHS GF2 Point Multiplication ,
4948  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4949  * #MATHS_POINT_MULTIPLICATION_GF2_L256.
4950  */
4951 typedef struct icp_qat_fw_maths_point_multiplication_gf2_l256_output_s {
4952 	uint64_t xk; /**< x coordinate of resultant point (&lt; degree(q)) (4
4953 			qwords)*/
4954 	uint64_t yk; /**< y coordinate of resultant point (&lt; degree(q)) (4
4955 			qwords)*/
4956 } icp_qat_fw_maths_point_multiplication_gf2_l256_output_t;
4957 
4958 /**
4959  * @ingroup icp_qat_fw_mmp
4960  * @brief
4961  *    Output parameter list for MATHS GF2 Point Verification ,
4962  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4963  * #MATHS_POINT_VERIFY_GF2_L256.
4964  */
4965 typedef struct icp_qat_fw_maths_point_verify_gf2_l256_output_s {
4966 	/* no output parameters */
4967 } icp_qat_fw_maths_point_verify_gf2_l256_output_t;
4968 
4969 /**
4970  * @ingroup icp_qat_fw_mmp
4971  * @brief
4972  *    Output parameter list for MATHS GF2 Point Multiplication ,
4973  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4974  * #MATHS_POINT_MULTIPLICATION_GF2_L512.
4975  */
4976 typedef struct icp_qat_fw_maths_point_multiplication_gf2_l512_output_s {
4977 	uint64_t xk; /**< x coordinate of resultant point (&lt; q) (8 qwords)*/
4978 	uint64_t yk; /**< y coordinate of resultant point (&lt; q) (8 qwords)*/
4979 } icp_qat_fw_maths_point_multiplication_gf2_l512_output_t;
4980 
4981 /**
4982  * @ingroup icp_qat_fw_mmp
4983  * @brief
4984  *    Output parameter list for MATHS GF2 Point Verification ,
4985  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4986  * #MATHS_POINT_VERIFY_GF2_L512.
4987  */
4988 typedef struct icp_qat_fw_maths_point_verify_gf2_l512_output_s {
4989 	/* no output parameters */
4990 } icp_qat_fw_maths_point_verify_gf2_l512_output_t;
4991 
4992 /**
4993  * @ingroup icp_qat_fw_mmp
4994  * @brief
4995  *    Output parameter list for ECC GF2 Point Multiplication for curves
4996  * B-571/K-571 ,
4997  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
4998  * #MATHS_POINT_MULTIPLICATION_GF2_571.
4999  */
5000 typedef struct icp_qat_fw_maths_point_multiplication_gf2_571_output_s {
5001 	uint64_t xk; /**< x coordinate of resultant point (degree &lt;
5002 			degree(q)) (9 qwords)*/
5003 	uint64_t yk; /**< y coordinate of resultant point (degree &lt;
5004 			degree(q)) (9 qwords)*/
5005 } icp_qat_fw_maths_point_multiplication_gf2_571_output_t;
5006 
5007 /**
5008  * @ingroup icp_qat_fw_mmp
5009  * @brief
5010  *    Output parameter list for ECC GF2 Point Verification for degree 571 ,
5011  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5012  * #MATHS_POINT_VERIFY_GF2_571.
5013  */
5014 typedef struct icp_qat_fw_maths_point_verify_gf2_571_output_s {
5015 	/* no output parameters */
5016 } icp_qat_fw_maths_point_verify_gf2_571_output_t;
5017 
5018 /**
5019  * @ingroup icp_qat_fw_mmp
5020  * @brief
5021  *    Output parameter list for ECDSA GFP Sign R ,
5022  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5023  * #PKE_ECDSA_SIGN_R_GFP_L256.
5024  */
5025 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gfp_l256_output_s {
5026 	uint64_t r; /**< ECDSA signature  (4 qwords)*/
5027 } icp_qat_fw_mmp_ecdsa_sign_r_gfp_l256_output_t;
5028 
5029 /**
5030  * @ingroup icp_qat_fw_mmp
5031  * @brief
5032  *    Output parameter list for ECDSA GFP Sign S ,
5033  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5034  * #PKE_ECDSA_SIGN_S_GFP_L256.
5035  */
5036 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gfp_l256_output_s {
5037 	uint64_t s; /**< ECDSA signature s  (4 qwords)*/
5038 } icp_qat_fw_mmp_ecdsa_sign_s_gfp_l256_output_t;
5039 
5040 /**
5041  * @ingroup icp_qat_fw_mmp
5042  * @brief
5043  *    Output parameter list for ECDSA GFP Sign RS ,
5044  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5045  * #PKE_ECDSA_SIGN_RS_GFP_L256.
5046  */
5047 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l256_output_s {
5048 	uint64_t r; /**< ECDSA signature r  (4 qwords)*/
5049 	uint64_t s; /**< ECDSA signature s  (4 qwords)*/
5050 } icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l256_output_t;
5051 
5052 /**
5053  * @ingroup icp_qat_fw_mmp
5054  * @brief
5055  *    Output parameter list for ECDSA GFP Verify ,
5056  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5057  * #PKE_ECDSA_VERIFY_GFP_L256.
5058  */
5059 typedef struct icp_qat_fw_mmp_ecdsa_verify_gfp_l256_output_s {
5060 	/* no output parameters */
5061 } icp_qat_fw_mmp_ecdsa_verify_gfp_l256_output_t;
5062 
5063 /**
5064  * @ingroup icp_qat_fw_mmp
5065  * @brief
5066  *    Output parameter list for ECDSA GFP Sign R ,
5067  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5068  * #PKE_ECDSA_SIGN_R_GFP_L512.
5069  */
5070 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gfp_l512_output_s {
5071 	uint64_t r; /**< ECDSA signature  (8 qwords)*/
5072 } icp_qat_fw_mmp_ecdsa_sign_r_gfp_l512_output_t;
5073 
5074 /**
5075  * @ingroup icp_qat_fw_mmp
5076  * @brief
5077  *    Output parameter list for ECDSA GFP Sign S ,
5078  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5079  * #PKE_ECDSA_SIGN_S_GFP_L512.
5080  */
5081 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gfp_l512_output_s {
5082 	uint64_t s; /**< ECDSA signature s  (8 qwords)*/
5083 } icp_qat_fw_mmp_ecdsa_sign_s_gfp_l512_output_t;
5084 
5085 /**
5086  * @ingroup icp_qat_fw_mmp
5087  * @brief
5088  *    Output parameter list for ECDSA GFP Sign RS ,
5089  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5090  * #PKE_ECDSA_SIGN_RS_GFP_L512.
5091  */
5092 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l512_output_s {
5093 	uint64_t r; /**< ECDSA signature r  (8 qwords)*/
5094 	uint64_t s; /**< ECDSA signature s  (8 qwords)*/
5095 } icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l512_output_t;
5096 
5097 /**
5098  * @ingroup icp_qat_fw_mmp
5099  * @brief
5100  *    Output parameter list for ECDSA GFP Verify ,
5101  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5102  * #PKE_ECDSA_VERIFY_GFP_L512.
5103  */
5104 typedef struct icp_qat_fw_mmp_ecdsa_verify_gfp_l512_output_s {
5105 	/* no output parameters */
5106 } icp_qat_fw_mmp_ecdsa_verify_gfp_l512_output_t;
5107 
5108 /**
5109  * @ingroup icp_qat_fw_mmp
5110  * @brief
5111  *    Output parameter list for ECDSA GFP Sign R ,
5112  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5113  * #PKE_ECDSA_SIGN_R_GFP_521.
5114  */
5115 typedef struct icp_qat_fw_mmp_ecdsa_sign_r_gfp_521_output_s {
5116 	uint64_t r; /**< ECDSA signature  (9 qwords)*/
5117 } icp_qat_fw_mmp_ecdsa_sign_r_gfp_521_output_t;
5118 
5119 /**
5120  * @ingroup icp_qat_fw_mmp
5121  * @brief
5122  *    Output parameter list for ECDSA GFP Sign S ,
5123  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5124  * #PKE_ECDSA_SIGN_S_GFP_521.
5125  */
5126 typedef struct icp_qat_fw_mmp_ecdsa_sign_s_gfp_521_output_s {
5127 	uint64_t s; /**< ECDSA signature s  (9 qwords)*/
5128 } icp_qat_fw_mmp_ecdsa_sign_s_gfp_521_output_t;
5129 
5130 /**
5131  * @ingroup icp_qat_fw_mmp
5132  * @brief
5133  *    Output parameter list for ECDSA GFP Sign RS ,
5134  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5135  * #PKE_ECDSA_SIGN_RS_GFP_521.
5136  */
5137 typedef struct icp_qat_fw_mmp_ecdsa_sign_rs_gfp_521_output_s {
5138 	uint64_t r; /**< ECDSA signature r  (9 qwords)*/
5139 	uint64_t s; /**< ECDSA signature s  (9 qwords)*/
5140 } icp_qat_fw_mmp_ecdsa_sign_rs_gfp_521_output_t;
5141 
5142 /**
5143  * @ingroup icp_qat_fw_mmp
5144  * @brief
5145  *    Output parameter list for ECDSA GFP Verify ,
5146  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5147  * #PKE_ECDSA_VERIFY_GFP_521.
5148  */
5149 typedef struct icp_qat_fw_mmp_ecdsa_verify_gfp_521_output_s {
5150 	/* no output parameters */
5151 } icp_qat_fw_mmp_ecdsa_verify_gfp_521_output_t;
5152 
5153 /**
5154  * @ingroup icp_qat_fw_mmp
5155  * @brief
5156  *    Output parameter list for ECC GFP Point Multiplication ,
5157  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5158  * #MATHS_POINT_MULTIPLICATION_GFP_L256.
5159  */
5160 typedef struct icp_qat_fw_maths_point_multiplication_gfp_l256_output_s {
5161 	uint64_t xk; /**< x coordinate of resultant EC point  (4 qwords)*/
5162 	uint64_t yk; /**< y coordinate of resultant EC point  (4 qwords)*/
5163 } icp_qat_fw_maths_point_multiplication_gfp_l256_output_t;
5164 
5165 /**
5166  * @ingroup icp_qat_fw_mmp
5167  * @brief
5168  *    Output parameter list for ECC GFP Partial Point Verification ,
5169  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5170  * #MATHS_POINT_VERIFY_GFP_L256.
5171  */
5172 typedef struct icp_qat_fw_maths_point_verify_gfp_l256_output_s {
5173 	/* no output parameters */
5174 } icp_qat_fw_maths_point_verify_gfp_l256_output_t;
5175 
5176 /**
5177  * @ingroup icp_qat_fw_mmp
5178  * @brief
5179  *    Output parameter list for ECC GFP Point Multiplication ,
5180  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5181  * #MATHS_POINT_MULTIPLICATION_GFP_L512.
5182  */
5183 typedef struct icp_qat_fw_maths_point_multiplication_gfp_l512_output_s {
5184 	uint64_t xk; /**< x coordinate of resultant EC point  (8 qwords)*/
5185 	uint64_t yk; /**< y coordinate of resultant EC point  (8 qwords)*/
5186 } icp_qat_fw_maths_point_multiplication_gfp_l512_output_t;
5187 
5188 /**
5189  * @ingroup icp_qat_fw_mmp
5190  * @brief
5191  *    Output parameter list for ECC GFP Partial Point ,
5192  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5193  * #MATHS_POINT_VERIFY_GFP_L512.
5194  */
5195 typedef struct icp_qat_fw_maths_point_verify_gfp_l512_output_s {
5196 	/* no output parameters */
5197 } icp_qat_fw_maths_point_verify_gfp_l512_output_t;
5198 
5199 /**
5200  * @ingroup icp_qat_fw_mmp
5201  * @brief
5202  *    Output parameter list for ECC GFP Point Multiplication ,
5203  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5204  * #MATHS_POINT_MULTIPLICATION_GFP_521.
5205  */
5206 typedef struct icp_qat_fw_maths_point_multiplication_gfp_521_output_s {
5207 	uint64_t xk; /**< x coordinate of resultant EC point  (9 qwords)*/
5208 	uint64_t yk; /**< y coordinate of resultant EC point  (9 qwords)*/
5209 } icp_qat_fw_maths_point_multiplication_gfp_521_output_t;
5210 
5211 /**
5212  * @ingroup icp_qat_fw_mmp
5213  * @brief
5214  *    Output parameter list for ECC GFP Partial Point Verification ,
5215  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5216  * #MATHS_POINT_VERIFY_GFP_521.
5217  */
5218 typedef struct icp_qat_fw_maths_point_verify_gfp_521_output_s {
5219 	/* no output parameters */
5220 } icp_qat_fw_maths_point_verify_gfp_521_output_t;
5221 
5222 /**
5223  * @ingroup icp_qat_fw_mmp
5224  * @brief
5225  *    Output parameter list for ECC curve25519 Variable Point Multiplication
5226  * [k]P(x), as specified in RFC7748 ,
5227  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5228  * #POINT_MULTIPLICATION_C25519.
5229  */
5230 typedef struct icp_qat_fw_point_multiplication_c25519_output_s {
5231 	uint64_t
5232 	    xr; /**< xR = Montgomery affine coordinate X of point [k]P  (4
5233 		   qwords)*/
5234 } icp_qat_fw_point_multiplication_c25519_output_t;
5235 
5236 /**
5237  * @ingroup icp_qat_fw_mmp
5238  * @brief
5239  *    Output parameter list for ECC curve25519 Generator Point Multiplication
5240  * [k]G(x), as specified in RFC7748 ,
5241  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5242  * #GENERATOR_MULTIPLICATION_C25519.
5243  */
5244 typedef struct icp_qat_fw_generator_multiplication_c25519_output_s {
5245 	uint64_t
5246 	    xr; /**< xR = Montgomery affine coordinate X of point [k]G  (4
5247 		   qwords)*/
5248 } icp_qat_fw_generator_multiplication_c25519_output_t;
5249 
5250 /**
5251  * @ingroup icp_qat_fw_mmp
5252  * @brief
5253  *    Output parameter list for ECC edwards25519 Variable Point Multiplication
5254  * [k]P, as specified in RFC8032 ,
5255  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5256  * #POINT_MULTIPLICATION_ED25519.
5257  */
5258 typedef struct icp_qat_fw_point_multiplication_ed25519_output_s {
5259 	uint64_t
5260 	    xr; /**< xR = Twisted Edwards affine coordinate X of point [k]P  (4
5261 		   qwords)*/
5262 	uint64_t
5263 	    yr; /**< yR = Twisted Edwards affine coordinate Y of point [k]P  (4
5264 		   qwords)*/
5265 } icp_qat_fw_point_multiplication_ed25519_output_t;
5266 
5267 /**
5268  * @ingroup icp_qat_fw_mmp
5269  * @brief
5270  *    Output parameter list for ECC edwards25519 Generator Point Multiplication
5271  * [k]G, as specified in RFC8032 ,
5272  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5273  * #GENERATOR_MULTIPLICATION_ED25519.
5274  */
5275 typedef struct icp_qat_fw_generator_multiplication_ed25519_output_s {
5276 	uint64_t
5277 	    xr; /**< xR = Twisted Edwards affine coordinate X of point [k]G  (4
5278 		   qwords)*/
5279 	uint64_t
5280 	    yr; /**< yR = Twisted Edwards affine coordinate Y of point [k]G  (4
5281 		   qwords)*/
5282 } icp_qat_fw_generator_multiplication_ed25519_output_t;
5283 
5284 /**
5285  * @ingroup icp_qat_fw_mmp
5286  * @brief
5287  *    Output parameter list for ECC curve448 Variable Point Multiplication
5288  * [k]P(x), as specified in RFC7748 ,
5289  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5290  * #POINT_MULTIPLICATION_C448.
5291  */
5292 typedef struct icp_qat_fw_point_multiplication_c448_output_s {
5293 	uint64_t
5294 	    xr; /**< xR = Montgomery affine coordinate X of point [k]P  (8
5295 		   qwords)*/
5296 } icp_qat_fw_point_multiplication_c448_output_t;
5297 
5298 /**
5299  * @ingroup icp_qat_fw_mmp
5300  * @brief
5301  *    Output parameter list for ECC curve448 Generator Point Multiplication
5302  * [k]G(x), as specified in RFC7748 ,
5303  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5304  * #GENERATOR_MULTIPLICATION_C448.
5305  */
5306 typedef struct icp_qat_fw_generator_multiplication_c448_output_s {
5307 	uint64_t
5308 	    xr; /**< xR = Montgomery affine coordinate X of point [k]G  (8
5309 		   qwords)*/
5310 } icp_qat_fw_generator_multiplication_c448_output_t;
5311 
5312 /**
5313  * @ingroup icp_qat_fw_mmp
5314  * @brief
5315  *    Output parameter list for ECC edwards448 Variable Point Multiplication
5316  * [k]P, as specified in RFC8032 ,
5317  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5318  * #POINT_MULTIPLICATION_ED448.
5319  */
5320 typedef struct icp_qat_fw_point_multiplication_ed448_output_s {
5321 	uint64_t xr; /**< xR = Edwards affine coordinate X of point [k]P  (8
5322 			qwords)*/
5323 	uint64_t yr; /**< yR = Edwards affine coordinate Y of point [k]P  (8
5324 			qwords)*/
5325 } icp_qat_fw_point_multiplication_ed448_output_t;
5326 
5327 /**
5328  * @ingroup icp_qat_fw_mmp
5329  * @brief
5330  *    Output parameter list for ECC edwards448 Generator Point Multiplication
5331  * [k]P, as specified in RFC8032 ,
5332  *      to be used when icp_qat_fw_pke_response_s::functionalityId is
5333  * #GENERATOR_MULTIPLICATION_ED448.
5334  */
5335 typedef struct icp_qat_fw_generator_multiplication_ed448_output_s {
5336 	uint64_t xr; /**< xR = Edwards affine coordinate X of point [k]G  (8
5337 			qwords)*/
5338 	uint64_t yr; /**< yR = Edwards affine coordinate Y of point [k]G  (8
5339 			qwords)*/
5340 } icp_qat_fw_generator_multiplication_ed448_output_t;
5341 
5342 /**
5343  * @ingroup icp_qat_fw_mmp
5344  * @brief
5345  *    MMP output parameters
5346  */
5347 typedef union icp_qat_fw_mmp_output_param_u {
5348 	/** Generic parameter structure : All members of this wrapper structure
5349 	 * are pointers to large integers.
5350 	 */
5351 	uint64_t flat_array[ICP_QAT_FW_PKE_OUTPUT_COUNT_MAX];
5352 
5353 	/** Initialisation sequence  */
5354 	icp_qat_fw_mmp_init_output_t mmp_init;
5355 
5356 	/** Diffie-Hellman Modular exponentiation base 2 for 768-bit numbers  */
5357 	icp_qat_fw_mmp_dh_g2_768_output_t mmp_dh_g2_768;
5358 
5359 	/** Diffie-Hellman Modular exponentiation for 768-bit numbers  */
5360 	icp_qat_fw_mmp_dh_768_output_t mmp_dh_768;
5361 
5362 	/** Diffie-Hellman Modular exponentiation base 2 for 1024-bit numbers */
5363 	icp_qat_fw_mmp_dh_g2_1024_output_t mmp_dh_g2_1024;
5364 
5365 	/** Diffie-Hellman Modular exponentiation for 1024-bit numbers  */
5366 	icp_qat_fw_mmp_dh_1024_output_t mmp_dh_1024;
5367 
5368 	/** Diffie-Hellman Modular exponentiation base 2 for 1536-bit numbers */
5369 	icp_qat_fw_mmp_dh_g2_1536_output_t mmp_dh_g2_1536;
5370 
5371 	/** Diffie-Hellman Modular exponentiation for 1536-bit numbers  */
5372 	icp_qat_fw_mmp_dh_1536_output_t mmp_dh_1536;
5373 
5374 	/** Diffie-Hellman Modular exponentiation base 2 for 2048-bit numbers */
5375 	icp_qat_fw_mmp_dh_g2_2048_output_t mmp_dh_g2_2048;
5376 
5377 	/** Diffie-Hellman Modular exponentiation for 2048-bit numbers  */
5378 	icp_qat_fw_mmp_dh_2048_output_t mmp_dh_2048;
5379 
5380 	/** Diffie-Hellman Modular exponentiation base 2 for 3072-bit numbers */
5381 	icp_qat_fw_mmp_dh_g2_3072_output_t mmp_dh_g2_3072;
5382 
5383 	/** Diffie-Hellman Modular exponentiation for 3072-bit numbers  */
5384 	icp_qat_fw_mmp_dh_3072_output_t mmp_dh_3072;
5385 
5386 	/** Diffie-Hellman Modular exponentiation base 2 for 4096-bit numbers */
5387 	icp_qat_fw_mmp_dh_g2_4096_output_t mmp_dh_g2_4096;
5388 
5389 	/** Diffie-Hellman Modular exponentiation for 4096-bit numbers  */
5390 	icp_qat_fw_mmp_dh_4096_output_t mmp_dh_4096;
5391 
5392 	/** RSA 512 key generation first form  */
5393 	icp_qat_fw_mmp_rsa_kp1_512_output_t mmp_rsa_kp1_512;
5394 
5395 	/** RSA 512 key generation second form  */
5396 	icp_qat_fw_mmp_rsa_kp2_512_output_t mmp_rsa_kp2_512;
5397 
5398 	/** RSA 512 Encryption  */
5399 	icp_qat_fw_mmp_rsa_ep_512_output_t mmp_rsa_ep_512;
5400 
5401 	/** RSA 512 Decryption  */
5402 	icp_qat_fw_mmp_rsa_dp1_512_output_t mmp_rsa_dp1_512;
5403 
5404 	/** RSA 1024 Decryption with CRT  */
5405 	icp_qat_fw_mmp_rsa_dp2_512_output_t mmp_rsa_dp2_512;
5406 
5407 	/** RSA 1024 key generation first form  */
5408 	icp_qat_fw_mmp_rsa_kp1_1024_output_t mmp_rsa_kp1_1024;
5409 
5410 	/** RSA 1024 key generation second form  */
5411 	icp_qat_fw_mmp_rsa_kp2_1024_output_t mmp_rsa_kp2_1024;
5412 
5413 	/** RSA 1024 Encryption  */
5414 	icp_qat_fw_mmp_rsa_ep_1024_output_t mmp_rsa_ep_1024;
5415 
5416 	/** RSA 1024 Decryption  */
5417 	icp_qat_fw_mmp_rsa_dp1_1024_output_t mmp_rsa_dp1_1024;
5418 
5419 	/** RSA 1024 Decryption with CRT  */
5420 	icp_qat_fw_mmp_rsa_dp2_1024_output_t mmp_rsa_dp2_1024;
5421 
5422 	/** RSA 1536 key generation first form  */
5423 	icp_qat_fw_mmp_rsa_kp1_1536_output_t mmp_rsa_kp1_1536;
5424 
5425 	/** RSA 1536 key generation second form  */
5426 	icp_qat_fw_mmp_rsa_kp2_1536_output_t mmp_rsa_kp2_1536;
5427 
5428 	/** RSA 1536 Encryption  */
5429 	icp_qat_fw_mmp_rsa_ep_1536_output_t mmp_rsa_ep_1536;
5430 
5431 	/** RSA 1536 Decryption  */
5432 	icp_qat_fw_mmp_rsa_dp1_1536_output_t mmp_rsa_dp1_1536;
5433 
5434 	/** RSA 1536 Decryption with CRT  */
5435 	icp_qat_fw_mmp_rsa_dp2_1536_output_t mmp_rsa_dp2_1536;
5436 
5437 	/** RSA 2048 key generation first form  */
5438 	icp_qat_fw_mmp_rsa_kp1_2048_output_t mmp_rsa_kp1_2048;
5439 
5440 	/** RSA 2048 key generation second form  */
5441 	icp_qat_fw_mmp_rsa_kp2_2048_output_t mmp_rsa_kp2_2048;
5442 
5443 	/** RSA 2048 Encryption  */
5444 	icp_qat_fw_mmp_rsa_ep_2048_output_t mmp_rsa_ep_2048;
5445 
5446 	/** RSA 2048 Decryption  */
5447 	icp_qat_fw_mmp_rsa_dp1_2048_output_t mmp_rsa_dp1_2048;
5448 
5449 	/** RSA 2048 Decryption with CRT  */
5450 	icp_qat_fw_mmp_rsa_dp2_2048_output_t mmp_rsa_dp2_2048;
5451 
5452 	/** RSA 3072 key generation first form  */
5453 	icp_qat_fw_mmp_rsa_kp1_3072_output_t mmp_rsa_kp1_3072;
5454 
5455 	/** RSA 3072 key generation second form  */
5456 	icp_qat_fw_mmp_rsa_kp2_3072_output_t mmp_rsa_kp2_3072;
5457 
5458 	/** RSA 3072 Encryption  */
5459 	icp_qat_fw_mmp_rsa_ep_3072_output_t mmp_rsa_ep_3072;
5460 
5461 	/** RSA 3072 Decryption  */
5462 	icp_qat_fw_mmp_rsa_dp1_3072_output_t mmp_rsa_dp1_3072;
5463 
5464 	/** RSA 3072 Decryption with CRT  */
5465 	icp_qat_fw_mmp_rsa_dp2_3072_output_t mmp_rsa_dp2_3072;
5466 
5467 	/** RSA 4096 key generation first form  */
5468 	icp_qat_fw_mmp_rsa_kp1_4096_output_t mmp_rsa_kp1_4096;
5469 
5470 	/** RSA 4096 key generation second form  */
5471 	icp_qat_fw_mmp_rsa_kp2_4096_output_t mmp_rsa_kp2_4096;
5472 
5473 	/** RSA 4096 Encryption  */
5474 	icp_qat_fw_mmp_rsa_ep_4096_output_t mmp_rsa_ep_4096;
5475 
5476 	/** RSA 4096 Decryption  */
5477 	icp_qat_fw_mmp_rsa_dp1_4096_output_t mmp_rsa_dp1_4096;
5478 
5479 	/** RSA 4096 Decryption with CRT  */
5480 	icp_qat_fw_mmp_rsa_dp2_4096_output_t mmp_rsa_dp2_4096;
5481 
5482 	/** GCD primality test for 192-bit numbers  */
5483 	icp_qat_fw_mmp_gcd_pt_192_output_t mmp_gcd_pt_192;
5484 
5485 	/** GCD primality test for 256-bit numbers  */
5486 	icp_qat_fw_mmp_gcd_pt_256_output_t mmp_gcd_pt_256;
5487 
5488 	/** GCD primality test for 384-bit numbers  */
5489 	icp_qat_fw_mmp_gcd_pt_384_output_t mmp_gcd_pt_384;
5490 
5491 	/** GCD primality test for 512-bit numbers  */
5492 	icp_qat_fw_mmp_gcd_pt_512_output_t mmp_gcd_pt_512;
5493 
5494 	/** GCD primality test for 768-bit numbers  */
5495 	icp_qat_fw_mmp_gcd_pt_768_output_t mmp_gcd_pt_768;
5496 
5497 	/** GCD primality test for 1024-bit numbers  */
5498 	icp_qat_fw_mmp_gcd_pt_1024_output_t mmp_gcd_pt_1024;
5499 
5500 	/** GCD primality test for 1536-bit numbers  */
5501 	icp_qat_fw_mmp_gcd_pt_1536_output_t mmp_gcd_pt_1536;
5502 
5503 	/** GCD primality test for 2048-bit numbers  */
5504 	icp_qat_fw_mmp_gcd_pt_2048_output_t mmp_gcd_pt_2048;
5505 
5506 	/** GCD primality test for 3072-bit numbers  */
5507 	icp_qat_fw_mmp_gcd_pt_3072_output_t mmp_gcd_pt_3072;
5508 
5509 	/** GCD primality test for 4096-bit numbers  */
5510 	icp_qat_fw_mmp_gcd_pt_4096_output_t mmp_gcd_pt_4096;
5511 
5512 	/** Fermat primality test for 160-bit numbers  */
5513 	icp_qat_fw_mmp_fermat_pt_160_output_t mmp_fermat_pt_160;
5514 
5515 	/** Fermat primality test for 512-bit numbers  */
5516 	icp_qat_fw_mmp_fermat_pt_512_output_t mmp_fermat_pt_512;
5517 
5518 	/** Fermat primality test for &lte; 512-bit numbers  */
5519 	icp_qat_fw_mmp_fermat_pt_l512_output_t mmp_fermat_pt_l512;
5520 
5521 	/** Fermat primality test for 768-bit numbers  */
5522 	icp_qat_fw_mmp_fermat_pt_768_output_t mmp_fermat_pt_768;
5523 
5524 	/** Fermat primality test for 1024-bit numbers  */
5525 	icp_qat_fw_mmp_fermat_pt_1024_output_t mmp_fermat_pt_1024;
5526 
5527 	/** Fermat primality test for 1536-bit numbers  */
5528 	icp_qat_fw_mmp_fermat_pt_1536_output_t mmp_fermat_pt_1536;
5529 
5530 	/** Fermat primality test for 2048-bit numbers  */
5531 	icp_qat_fw_mmp_fermat_pt_2048_output_t mmp_fermat_pt_2048;
5532 
5533 	/** Fermat primality test for 3072-bit numbers  */
5534 	icp_qat_fw_mmp_fermat_pt_3072_output_t mmp_fermat_pt_3072;
5535 
5536 	/** Fermat primality test for 4096-bit numbers  */
5537 	icp_qat_fw_mmp_fermat_pt_4096_output_t mmp_fermat_pt_4096;
5538 
5539 	/** Miller-Rabin primality test for 160-bit numbers  */
5540 	icp_qat_fw_mmp_mr_pt_160_output_t mmp_mr_pt_160;
5541 
5542 	/** Miller-Rabin primality test for 512-bit numbers  */
5543 	icp_qat_fw_mmp_mr_pt_512_output_t mmp_mr_pt_512;
5544 
5545 	/** Miller-Rabin primality test for 768-bit numbers  */
5546 	icp_qat_fw_mmp_mr_pt_768_output_t mmp_mr_pt_768;
5547 
5548 	/** Miller-Rabin primality test for 1024-bit numbers  */
5549 	icp_qat_fw_mmp_mr_pt_1024_output_t mmp_mr_pt_1024;
5550 
5551 	/** Miller-Rabin primality test for 1536-bit numbers  */
5552 	icp_qat_fw_mmp_mr_pt_1536_output_t mmp_mr_pt_1536;
5553 
5554 	/** Miller-Rabin primality test for 2048-bit numbers  */
5555 	icp_qat_fw_mmp_mr_pt_2048_output_t mmp_mr_pt_2048;
5556 
5557 	/** Miller-Rabin primality test for 3072-bit numbers  */
5558 	icp_qat_fw_mmp_mr_pt_3072_output_t mmp_mr_pt_3072;
5559 
5560 	/** Miller-Rabin primality test for 4096-bit numbers  */
5561 	icp_qat_fw_mmp_mr_pt_4096_output_t mmp_mr_pt_4096;
5562 
5563 	/** Miller-Rabin primality test for 512-bit numbers  */
5564 	icp_qat_fw_mmp_mr_pt_l512_output_t mmp_mr_pt_l512;
5565 
5566 	/** Lucas primality test for 160-bit numbers  */
5567 	icp_qat_fw_mmp_lucas_pt_160_output_t mmp_lucas_pt_160;
5568 
5569 	/** Lucas primality test for 512-bit numbers  */
5570 	icp_qat_fw_mmp_lucas_pt_512_output_t mmp_lucas_pt_512;
5571 
5572 	/** Lucas primality test for 768-bit numbers  */
5573 	icp_qat_fw_mmp_lucas_pt_768_output_t mmp_lucas_pt_768;
5574 
5575 	/** Lucas primality test for 1024-bit numbers  */
5576 	icp_qat_fw_mmp_lucas_pt_1024_output_t mmp_lucas_pt_1024;
5577 
5578 	/** Lucas primality test for 1536-bit numbers  */
5579 	icp_qat_fw_mmp_lucas_pt_1536_output_t mmp_lucas_pt_1536;
5580 
5581 	/** Lucas primality test for 2048-bit numbers  */
5582 	icp_qat_fw_mmp_lucas_pt_2048_output_t mmp_lucas_pt_2048;
5583 
5584 	/** Lucas primality test for 3072-bit numbers  */
5585 	icp_qat_fw_mmp_lucas_pt_3072_output_t mmp_lucas_pt_3072;
5586 
5587 	/** Lucas primality test for 4096-bit numbers  */
5588 	icp_qat_fw_mmp_lucas_pt_4096_output_t mmp_lucas_pt_4096;
5589 
5590 	/** Lucas primality test for L512-bit numbers  */
5591 	icp_qat_fw_mmp_lucas_pt_l512_output_t mmp_lucas_pt_l512;
5592 
5593 	/** Modular exponentiation for numbers less than 512-bits  */
5594 	icp_qat_fw_maths_modexp_l512_output_t maths_modexp_l512;
5595 
5596 	/** Modular exponentiation for numbers less than 1024-bit  */
5597 	icp_qat_fw_maths_modexp_l1024_output_t maths_modexp_l1024;
5598 
5599 	/** Modular exponentiation for numbers less than 1536-bits  */
5600 	icp_qat_fw_maths_modexp_l1536_output_t maths_modexp_l1536;
5601 
5602 	/** Modular exponentiation for numbers less than 2048-bit  */
5603 	icp_qat_fw_maths_modexp_l2048_output_t maths_modexp_l2048;
5604 
5605 	/** Modular exponentiation for numbers less than 2560-bits  */
5606 	icp_qat_fw_maths_modexp_l2560_output_t maths_modexp_l2560;
5607 
5608 	/** Modular exponentiation for numbers less than 3072-bits  */
5609 	icp_qat_fw_maths_modexp_l3072_output_t maths_modexp_l3072;
5610 
5611 	/** Modular exponentiation for numbers less than 3584-bits  */
5612 	icp_qat_fw_maths_modexp_l3584_output_t maths_modexp_l3584;
5613 
5614 	/** Modular exponentiation for numbers less than 4096-bit  */
5615 	icp_qat_fw_maths_modexp_l4096_output_t maths_modexp_l4096;
5616 
5617 	/** Modular multiplicative inverse for numbers less than 128 bits  */
5618 	icp_qat_fw_maths_modinv_odd_l128_output_t maths_modinv_odd_l128;
5619 
5620 	/** Modular multiplicative inverse for numbers less than 192 bits  */
5621 	icp_qat_fw_maths_modinv_odd_l192_output_t maths_modinv_odd_l192;
5622 
5623 	/** Modular multiplicative inverse for numbers less than 256 bits  */
5624 	icp_qat_fw_maths_modinv_odd_l256_output_t maths_modinv_odd_l256;
5625 
5626 	/** Modular multiplicative inverse for numbers less than 384 bits  */
5627 	icp_qat_fw_maths_modinv_odd_l384_output_t maths_modinv_odd_l384;
5628 
5629 	/** Modular multiplicative inverse for numbers less than 512 bits  */
5630 	icp_qat_fw_maths_modinv_odd_l512_output_t maths_modinv_odd_l512;
5631 
5632 	/** Modular multiplicative inverse for numbers less than 768 bits  */
5633 	icp_qat_fw_maths_modinv_odd_l768_output_t maths_modinv_odd_l768;
5634 
5635 	/** Modular multiplicative inverse for numbers less than 1024 bits  */
5636 	icp_qat_fw_maths_modinv_odd_l1024_output_t maths_modinv_odd_l1024;
5637 
5638 	/** Modular multiplicative inverse for numbers less than 1536 bits  */
5639 	icp_qat_fw_maths_modinv_odd_l1536_output_t maths_modinv_odd_l1536;
5640 
5641 	/** Modular multiplicative inverse for numbers less than 2048 bits  */
5642 	icp_qat_fw_maths_modinv_odd_l2048_output_t maths_modinv_odd_l2048;
5643 
5644 	/** Modular multiplicative inverse for numbers less than 3072 bits  */
5645 	icp_qat_fw_maths_modinv_odd_l3072_output_t maths_modinv_odd_l3072;
5646 
5647 	/** Modular multiplicative inverse for numbers less than 4096 bits  */
5648 	icp_qat_fw_maths_modinv_odd_l4096_output_t maths_modinv_odd_l4096;
5649 
5650 	/** Modular multiplicative inverse for numbers less than 128 bits  */
5651 	icp_qat_fw_maths_modinv_even_l128_output_t maths_modinv_even_l128;
5652 
5653 	/** Modular multiplicative inverse for numbers less than 192 bits  */
5654 	icp_qat_fw_maths_modinv_even_l192_output_t maths_modinv_even_l192;
5655 
5656 	/** Modular multiplicative inverse for numbers less than 256 bits  */
5657 	icp_qat_fw_maths_modinv_even_l256_output_t maths_modinv_even_l256;
5658 
5659 	/** Modular multiplicative inverse for numbers less than 384 bits  */
5660 	icp_qat_fw_maths_modinv_even_l384_output_t maths_modinv_even_l384;
5661 
5662 	/** Modular multiplicative inverse for numbers less than 512 bits  */
5663 	icp_qat_fw_maths_modinv_even_l512_output_t maths_modinv_even_l512;
5664 
5665 	/** Modular multiplicative inverse for numbers less than 768 bits  */
5666 	icp_qat_fw_maths_modinv_even_l768_output_t maths_modinv_even_l768;
5667 
5668 	/** Modular multiplicative inverse for numbers less than 1024 bits  */
5669 	icp_qat_fw_maths_modinv_even_l1024_output_t maths_modinv_even_l1024;
5670 
5671 	/** Modular multiplicative inverse for numbers less than 1536 bits  */
5672 	icp_qat_fw_maths_modinv_even_l1536_output_t maths_modinv_even_l1536;
5673 
5674 	/** Modular multiplicative inverse for numbers less than 2048 bits  */
5675 	icp_qat_fw_maths_modinv_even_l2048_output_t maths_modinv_even_l2048;
5676 
5677 	/** Modular multiplicative inverse for numbers less than 3072 bits  */
5678 	icp_qat_fw_maths_modinv_even_l3072_output_t maths_modinv_even_l3072;
5679 
5680 	/** Modular multiplicative inverse for numbers less than 4096 bits  */
5681 	icp_qat_fw_maths_modinv_even_l4096_output_t maths_modinv_even_l4096;
5682 
5683 	/** DSA parameter generation P  */
5684 	icp_qat_fw_mmp_dsa_gen_p_1024_160_output_t mmp_dsa_gen_p_1024_160;
5685 
5686 	/** DSA key generation G  */
5687 	icp_qat_fw_mmp_dsa_gen_g_1024_output_t mmp_dsa_gen_g_1024;
5688 
5689 	/** DSA key generation Y  */
5690 	icp_qat_fw_mmp_dsa_gen_y_1024_output_t mmp_dsa_gen_y_1024;
5691 
5692 	/** DSA Sign R  */
5693 	icp_qat_fw_mmp_dsa_sign_r_1024_160_output_t mmp_dsa_sign_r_1024_160;
5694 
5695 	/** DSA Sign S  */
5696 	icp_qat_fw_mmp_dsa_sign_s_160_output_t mmp_dsa_sign_s_160;
5697 
5698 	/** DSA Sign R S  */
5699 	icp_qat_fw_mmp_dsa_sign_r_s_1024_160_output_t mmp_dsa_sign_r_s_1024_160;
5700 
5701 	/** DSA Verify  */
5702 	icp_qat_fw_mmp_dsa_verify_1024_160_output_t mmp_dsa_verify_1024_160;
5703 
5704 	/** DSA parameter generation P  */
5705 	icp_qat_fw_mmp_dsa_gen_p_2048_224_output_t mmp_dsa_gen_p_2048_224;
5706 
5707 	/** DSA key generation Y  */
5708 	icp_qat_fw_mmp_dsa_gen_y_2048_output_t mmp_dsa_gen_y_2048;
5709 
5710 	/** DSA Sign R  */
5711 	icp_qat_fw_mmp_dsa_sign_r_2048_224_output_t mmp_dsa_sign_r_2048_224;
5712 
5713 	/** DSA Sign S  */
5714 	icp_qat_fw_mmp_dsa_sign_s_224_output_t mmp_dsa_sign_s_224;
5715 
5716 	/** DSA Sign R S  */
5717 	icp_qat_fw_mmp_dsa_sign_r_s_2048_224_output_t mmp_dsa_sign_r_s_2048_224;
5718 
5719 	/** DSA Verify  */
5720 	icp_qat_fw_mmp_dsa_verify_2048_224_output_t mmp_dsa_verify_2048_224;
5721 
5722 	/** DSA parameter generation P  */
5723 	icp_qat_fw_mmp_dsa_gen_p_2048_256_output_t mmp_dsa_gen_p_2048_256;
5724 
5725 	/** DSA key generation G  */
5726 	icp_qat_fw_mmp_dsa_gen_g_2048_output_t mmp_dsa_gen_g_2048;
5727 
5728 	/** DSA Sign R  */
5729 	icp_qat_fw_mmp_dsa_sign_r_2048_256_output_t mmp_dsa_sign_r_2048_256;
5730 
5731 	/** DSA Sign S  */
5732 	icp_qat_fw_mmp_dsa_sign_s_256_output_t mmp_dsa_sign_s_256;
5733 
5734 	/** DSA Sign R S  */
5735 	icp_qat_fw_mmp_dsa_sign_r_s_2048_256_output_t mmp_dsa_sign_r_s_2048_256;
5736 
5737 	/** DSA Verify  */
5738 	icp_qat_fw_mmp_dsa_verify_2048_256_output_t mmp_dsa_verify_2048_256;
5739 
5740 	/** DSA parameter generation P  */
5741 	icp_qat_fw_mmp_dsa_gen_p_3072_256_output_t mmp_dsa_gen_p_3072_256;
5742 
5743 	/** DSA key generation G  */
5744 	icp_qat_fw_mmp_dsa_gen_g_3072_output_t mmp_dsa_gen_g_3072;
5745 
5746 	/** DSA key generation Y  */
5747 	icp_qat_fw_mmp_dsa_gen_y_3072_output_t mmp_dsa_gen_y_3072;
5748 
5749 	/** DSA Sign R  */
5750 	icp_qat_fw_mmp_dsa_sign_r_3072_256_output_t mmp_dsa_sign_r_3072_256;
5751 
5752 	/** DSA Sign R S  */
5753 	icp_qat_fw_mmp_dsa_sign_r_s_3072_256_output_t mmp_dsa_sign_r_s_3072_256;
5754 
5755 	/** DSA Verify  */
5756 	icp_qat_fw_mmp_dsa_verify_3072_256_output_t mmp_dsa_verify_3072_256;
5757 
5758 	/** ECDSA Sign RS for curves B/K-163 and B/K-233  */
5759 	icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l256_output_t
5760 	    mmp_ecdsa_sign_rs_gf2_l256;
5761 
5762 	/** ECDSA Sign R for curves B/K-163 and B/K-233  */
5763 	icp_qat_fw_mmp_ecdsa_sign_r_gf2_l256_output_t mmp_ecdsa_sign_r_gf2_l256;
5764 
5765 	/** ECDSA Sign S for curves with n &lt; 2^256  */
5766 	icp_qat_fw_mmp_ecdsa_sign_s_gf2_l256_output_t mmp_ecdsa_sign_s_gf2_l256;
5767 
5768 	/** ECDSA Verify for curves B/K-163 and B/K-233  */
5769 	icp_qat_fw_mmp_ecdsa_verify_gf2_l256_output_t mmp_ecdsa_verify_gf2_l256;
5770 
5771 	/** ECDSA Sign RS  */
5772 	icp_qat_fw_mmp_ecdsa_sign_rs_gf2_l512_output_t
5773 	    mmp_ecdsa_sign_rs_gf2_l512;
5774 
5775 	/** ECDSA GF2 Sign R  */
5776 	icp_qat_fw_mmp_ecdsa_sign_r_gf2_l512_output_t mmp_ecdsa_sign_r_gf2_l512;
5777 
5778 	/** ECDSA GF2 Sign S  */
5779 	icp_qat_fw_mmp_ecdsa_sign_s_gf2_l512_output_t mmp_ecdsa_sign_s_gf2_l512;
5780 
5781 	/** ECDSA GF2 Verify  */
5782 	icp_qat_fw_mmp_ecdsa_verify_gf2_l512_output_t mmp_ecdsa_verify_gf2_l512;
5783 
5784 	/** ECDSA GF2 Sign RS for curves B-571/K-571  */
5785 	icp_qat_fw_mmp_ecdsa_sign_rs_gf2_571_output_t mmp_ecdsa_sign_rs_gf2_571;
5786 
5787 	/** ECDSA GF2 Sign S for curves with deg(q) &lt; 576  */
5788 	icp_qat_fw_mmp_ecdsa_sign_s_gf2_571_output_t mmp_ecdsa_sign_s_gf2_571;
5789 
5790 	/** ECDSA GF2 Sign R for degree 571  */
5791 	icp_qat_fw_mmp_ecdsa_sign_r_gf2_571_output_t mmp_ecdsa_sign_r_gf2_571;
5792 
5793 	/** ECDSA GF2 Verify for degree 571  */
5794 	icp_qat_fw_mmp_ecdsa_verify_gf2_571_output_t mmp_ecdsa_verify_gf2_571;
5795 
5796 	/** MATHS GF2 Point Multiplication  */
5797 	icp_qat_fw_maths_point_multiplication_gf2_l256_output_t
5798 	    maths_point_multiplication_gf2_l256;
5799 
5800 	/** MATHS GF2 Point Verification  */
5801 	icp_qat_fw_maths_point_verify_gf2_l256_output_t
5802 	    maths_point_verify_gf2_l256;
5803 
5804 	/** MATHS GF2 Point Multiplication  */
5805 	icp_qat_fw_maths_point_multiplication_gf2_l512_output_t
5806 	    maths_point_multiplication_gf2_l512;
5807 
5808 	/** MATHS GF2 Point Verification  */
5809 	icp_qat_fw_maths_point_verify_gf2_l512_output_t
5810 	    maths_point_verify_gf2_l512;
5811 
5812 	/** ECC GF2 Point Multiplication for curves B-571/K-571  */
5813 	icp_qat_fw_maths_point_multiplication_gf2_571_output_t
5814 	    maths_point_multiplication_gf2_571;
5815 
5816 	/** ECC GF2 Point Verification for degree 571  */
5817 	icp_qat_fw_maths_point_verify_gf2_571_output_t
5818 	    maths_point_verify_gf2_571;
5819 
5820 	/** ECDSA GFP Sign R  */
5821 	icp_qat_fw_mmp_ecdsa_sign_r_gfp_l256_output_t mmp_ecdsa_sign_r_gfp_l256;
5822 
5823 	/** ECDSA GFP Sign S  */
5824 	icp_qat_fw_mmp_ecdsa_sign_s_gfp_l256_output_t mmp_ecdsa_sign_s_gfp_l256;
5825 
5826 	/** ECDSA GFP Sign RS  */
5827 	icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l256_output_t
5828 	    mmp_ecdsa_sign_rs_gfp_l256;
5829 
5830 	/** ECDSA GFP Verify  */
5831 	icp_qat_fw_mmp_ecdsa_verify_gfp_l256_output_t mmp_ecdsa_verify_gfp_l256;
5832 
5833 	/** ECDSA GFP Sign R  */
5834 	icp_qat_fw_mmp_ecdsa_sign_r_gfp_l512_output_t mmp_ecdsa_sign_r_gfp_l512;
5835 
5836 	/** ECDSA GFP Sign S  */
5837 	icp_qat_fw_mmp_ecdsa_sign_s_gfp_l512_output_t mmp_ecdsa_sign_s_gfp_l512;
5838 
5839 	/** ECDSA GFP Sign RS  */
5840 	icp_qat_fw_mmp_ecdsa_sign_rs_gfp_l512_output_t
5841 	    mmp_ecdsa_sign_rs_gfp_l512;
5842 
5843 	/** ECDSA GFP Verify  */
5844 	icp_qat_fw_mmp_ecdsa_verify_gfp_l512_output_t mmp_ecdsa_verify_gfp_l512;
5845 
5846 	/** ECDSA GFP Sign R  */
5847 	icp_qat_fw_mmp_ecdsa_sign_r_gfp_521_output_t mmp_ecdsa_sign_r_gfp_521;
5848 
5849 	/** ECDSA GFP Sign S  */
5850 	icp_qat_fw_mmp_ecdsa_sign_s_gfp_521_output_t mmp_ecdsa_sign_s_gfp_521;
5851 
5852 	/** ECDSA GFP Sign RS  */
5853 	icp_qat_fw_mmp_ecdsa_sign_rs_gfp_521_output_t mmp_ecdsa_sign_rs_gfp_521;
5854 
5855 	/** ECDSA GFP Verify  */
5856 	icp_qat_fw_mmp_ecdsa_verify_gfp_521_output_t mmp_ecdsa_verify_gfp_521;
5857 
5858 	/** ECC GFP Point Multiplication  */
5859 	icp_qat_fw_maths_point_multiplication_gfp_l256_output_t
5860 	    maths_point_multiplication_gfp_l256;
5861 
5862 	/** ECC GFP Partial Point Verification  */
5863 	icp_qat_fw_maths_point_verify_gfp_l256_output_t
5864 	    maths_point_verify_gfp_l256;
5865 
5866 	/** ECC GFP Point Multiplication  */
5867 	icp_qat_fw_maths_point_multiplication_gfp_l512_output_t
5868 	    maths_point_multiplication_gfp_l512;
5869 
5870 	/** ECC GFP Partial Point  */
5871 	icp_qat_fw_maths_point_verify_gfp_l512_output_t
5872 	    maths_point_verify_gfp_l512;
5873 
5874 	/** ECC GFP Point Multiplication  */
5875 	icp_qat_fw_maths_point_multiplication_gfp_521_output_t
5876 	    maths_point_multiplication_gfp_521;
5877 
5878 	/** ECC GFP Partial Point Verification  */
5879 	icp_qat_fw_maths_point_verify_gfp_521_output_t
5880 	    maths_point_verify_gfp_521;
5881 
5882 	/** ECC curve25519 Variable Point Multiplication [k]P(x), as specified
5883 	 * in RFC7748  */
5884 	icp_qat_fw_point_multiplication_c25519_output_t
5885 	    point_multiplication_c25519;
5886 
5887 	/** ECC curve25519 Generator Point Multiplication [k]G(x), as specified
5888 	 * in RFC7748  */
5889 	icp_qat_fw_generator_multiplication_c25519_output_t
5890 	    generator_multiplication_c25519;
5891 
5892 	/** ECC edwards25519 Variable Point Multiplication [k]P, as specified in
5893 	 * RFC8032  */
5894 	icp_qat_fw_point_multiplication_ed25519_output_t
5895 	    point_multiplication_ed25519;
5896 
5897 	/** ECC edwards25519 Generator Point Multiplication [k]G, as specified
5898 	 * in RFC8032  */
5899 	icp_qat_fw_generator_multiplication_ed25519_output_t
5900 	    generator_multiplication_ed25519;
5901 
5902 	/** ECC curve448 Variable Point Multiplication [k]P(x), as specified in
5903 	 * RFC7748  */
5904 	icp_qat_fw_point_multiplication_c448_output_t point_multiplication_c448;
5905 
5906 	/** ECC curve448 Generator Point Multiplication [k]G(x), as specified in
5907 	 * RFC7748  */
5908 	icp_qat_fw_generator_multiplication_c448_output_t
5909 	    generator_multiplication_c448;
5910 
5911 	/** ECC edwards448 Variable Point Multiplication [k]P, as specified in
5912 	 * RFC8032  */
5913 	icp_qat_fw_point_multiplication_ed448_output_t
5914 	    point_multiplication_ed448;
5915 
5916 	/** ECC edwards448 Generator Point Multiplication [k]P, as specified in
5917 	 * RFC8032  */
5918 	icp_qat_fw_generator_multiplication_ed448_output_t
5919 	    generator_multiplication_ed448;
5920 } icp_qat_fw_mmp_output_param_t;
5921 
5922 #endif /* __ICP_QAT_FW_MMP__ */
5923 
5924 /* --- (Automatically generated (build v. 2.7), do not modify manually) --- */
5925 
5926 /* --- end of file --- */
5927