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 > 0 and < 2^768 (12 qwords)*/
56 uint64_t m; /**< modulus ≥ 2^767 and < 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 ≥ 0 and < 2^768 (12 qwords)*/
69 uint64_t e; /**< exponent > 0 and < 2^768 (12 qwords)*/
70 uint64_t m; /**< modulus ≥ 2^767 and < 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 > 0 and < 2^1024 (16 qwords)*/
83 uint64_t m; /**< modulus ≥ 2^1023 and < 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 ≥ 0 and < 2^1024 (16 qwords)*/
96 uint64_t e; /**< exponent > 0 and < 2^1024 (16 qwords)*/
97 uint64_t m; /**< modulus ≥ 2^1023 and < 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 > 0 and < 2^1536 (24 qwords)*/
110 uint64_t m; /**< modulus ≥ 2^1535 and < 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 ≥ 0 and < 2^1536 (24 qwords)*/
123 uint64_t e; /**< exponent > 0 and < 2^1536 (24 qwords)*/
124 uint64_t m; /**< modulus ≥ 2^1535 and < 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 > 0 and < 2^2048 (32 qwords)*/
137 uint64_t m; /**< modulus ≥ 2^2047 and < 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 ≥ 0 and < 2^2048 (32 qwords)*/
150 uint64_t e; /**< exponent > 0 and < 2^2048 (32 qwords)*/
151 uint64_t m; /**< modulus ≥ 2^2047 and < 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 > 0 and < 2^3072 (48 qwords)*/
164 uint64_t m; /**< modulus ≥ 2^3071 and < 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 ≥ 0 and < 2^3072 (48 qwords)*/
177 uint64_t e; /**< exponent > 0 and < 2^3072 (48 qwords)*/
178 uint64_t m; /**< modulus ≥ 2^3071 and < 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 > 0 and < 2^4096 (64 qwords)*/
191 uint64_t m; /**< modulus ≥ 2^4095 and < 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 ≥ 0 and < 2^4096 (64 qwords)*/
204 uint64_t e; /**< exponent > 0 and < 2^4096 (64 qwords)*/
205 uint64_t m; /**< modulus ≥ 2^4095 and < 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, 2 < p < 2^256 (4 qwords)*/
218 uint64_t
219 q; /**< RSA parameter, prime, 2 < q < 2^256 (4 qwords)*/
220 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
221 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, 2^255 < p < 2^256 (4
234 qwords)*/
235 uint64_t
236 q; /**< RSA parameter, prime, 2^255 < q < 2^256 (4
237 qwords)*/
238 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
239 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, < n (8 qwords)*/
251 uint64_t e; /**< RSA public key, ≥ 3 and ≤ n-1 (8 qwords)*/
252 uint64_t n; /**< RSA key, > 0 and < 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, < n (8 qwords)*/
264 uint64_t d; /**< RSA private key (RSADP first form) (8 qwords)*/
265 uint64_t n; /**< RSA key > 0 and < 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, < (p*q) (8 qwords)*/
277 uint64_t
278 p; /**< RSA parameter, prime, 2^255 < p < 2^256 (4
279 qwords)*/
280 uint64_t
281 q; /**< RSA parameter, prime, 2^255 < q < 2^256 (4
282 qwords)*/
283 uint64_t dp; /**< RSA private key, 0 < dp < p-1 (4 qwords)*/
284 uint64_t dq; /**< RSA private key 0 < dq < q-1 (4 qwords)*/
285 uint64_t qinv; /**< RSA private key 0 < qInv < 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, 2 < p < 2^512 (8 qwords)*/
298 uint64_t
299 q; /**< RSA parameter, prime, 2 < q < 2^512 (8 qwords)*/
300 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
301 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, 2^511 < p < 2^512 (8
314 qwords)*/
315 uint64_t
316 q; /**< RSA parameter, prime, 2^511 < q < 2^512 (8
317 qwords)*/
318 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
319 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, < n (16 qwords)*/
331 uint64_t e; /**< RSA public key, ≥ 3 and ≤ n-1 (16 qwords)*/
332 uint64_t n; /**< RSA key, > 0 and < 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, < n (16 qwords)*/
344 uint64_t d; /**< RSA private key (RSADP first form) (16 qwords)*/
345 uint64_t n; /**< RSA key > 0 and < 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, < (p*q) (16 qwords)*/
357 uint64_t
358 p; /**< RSA parameter, prime, 2^511 < p < 2^512 (8
359 qwords)*/
360 uint64_t
361 q; /**< RSA parameter, prime, 2^511 < q < 2^512 (8
362 qwords)*/
363 uint64_t dp; /**< RSA private key, 0 < dp < p-1 (8 qwords)*/
364 uint64_t dq; /**< RSA private key 0 < dq < q-1 (8 qwords)*/
365 uint64_t qinv; /**< RSA private key 0 < qInv < 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, 2 < p < 2^768 (12
377 qwords)*/
378 uint64_t q; /**< RSA parameter, prime, 2 < q < 2^768 (12
379 qwords)*/
380 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
381 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, 2^767 < p < 2^768 (12
394 qwords)*/
395 uint64_t
396 q; /**< RSA parameter, prime, 2^767 < q < 2^768 (12
397 qwords)*/
398 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
399 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, < n (24 qwords)*/
411 uint64_t e; /**< RSA public key, ≥ 3 and ≤ (p*q)-1 (24 qwords)*/
412 uint64_t n; /**< RSA key > 0 and < 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, < n (24 qwords)*/
424 uint64_t d; /**< RSA private key (24 qwords)*/
425 uint64_t n; /**< RSA key, > 0 and < 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, < (p*q) (24 qwords)*/
437 uint64_t
438 p; /**< RSA parameter, prime, 2^767 < p < 2^768 (12
439 qwords)*/
440 uint64_t
441 q; /**< RSA parameter, prime, 2^767 < p < 2^768 (12
442 qwords)*/
443 uint64_t dp; /**< RSA private key, 0 < dp < p-1 (12 qwords)*/
444 uint64_t dq; /**< RSA private key, 0 < dq < q-1 (12 qwords)*/
445 uint64_t qinv; /**< RSA private key, 0 < qInv < 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, 2 < p < 2^1024 (16
457 qwords)*/
458 uint64_t q; /**< RSA parameter, prime, 2 < q < 2^1024 (16
459 qwords)*/
460 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
461 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, 2^1023 < p < 2^1024
473 (16 qwords)*/
474 uint64_t q; /**< RSA parameter, prime, 2^1023 < q < 2^1024
475 (16 qwords)*/
476 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
477 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, < n (32 qwords)*/
489 uint64_t e; /**< RSA public key, ≥ 3 and ≤ n-1 (32 qwords)*/
490 uint64_t n; /**< RSA key > 0 and < 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, < n (32 qwords)*/
502 uint64_t d; /**< RSA private key (32 qwords)*/
503 uint64_t n; /**< RSA key > 0 and < 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, < (p*q) (32 qwords)*/
515 uint64_t p; /**< RSA parameter, prime, 2^1023 < p < 2^1024
516 (16 qwords)*/
517 uint64_t q; /**< RSA parameter, prime, 2^1023 < q < 2^1024
518 (16 qwords)*/
519 uint64_t dp; /**< RSA private key, 0 < dp < p-1 (16 qwords)*/
520 uint64_t dq; /**< RSA private key, 0 < dq < q-1 (16 qwords)*/
521 uint64_t qinv; /**< RSA private key, 0 < qInv < 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, 2 < p < 2^1536 (24
533 qwords)*/
534 uint64_t q; /**< RSA parameter, prime, 2 < q < 2^1536 (24
535 qwords)*/
536 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
537 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, 2^1535 < p < 2^1536
549 (24 qwords)*/
550 uint64_t q; /**< RSA parameter, prime, 2^1535 < q < 2^1536
551 (24 qwords)*/
552 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
553 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, < n (48 qwords)*/
565 uint64_t e; /**< RSA public key, ≥ 3 and ≤ n-1 (48 qwords)*/
566 uint64_t n; /**< RSA key > 0 and < 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, < n (48 qwords)*/
578 uint64_t d; /**< RSA private key (48 qwords)*/
579 uint64_t n; /**< RSA key > 0 and < 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, < (p*q) (48 qwords)*/
591 uint64_t p; /**< RSA parameter, prime, 2^1535 < p < 2^1536
592 (24 qwords)*/
593 uint64_t q; /**< RSA parameter, prime, 2^1535 < q < 2^1536
594 (24 qwords)*/
595 uint64_t dp; /**< RSA private key, 0 < dp < p-1 (24 qwords)*/
596 uint64_t dq; /**< RSA private key, 0 < dq < q-1 (24 qwords)*/
597 uint64_t qinv; /**< RSA private key, 0 < qInv < 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, 2 < p < 2^2048 (32
609 qwords)*/
610 uint64_t q; /**< RSA parameter, prime, 2 < q < 2^2048 (32
611 qwords)*/
612 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
613 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, 2^2047 < p < 2^2048
625 (32 qwords)*/
626 uint64_t q; /**< RSA parameter, prime, 2^2047 < q < 2^2048
627 (32 qwords)*/
628 uint64_t e; /**< RSA public key, must be odd, ≥ 3 and ≤ (p*q)-1,
629 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, < n (64 qwords)*/
641 uint64_t e; /**< RSA public key, ≥ 3 and ≤ n-1 (64 qwords)*/
642 uint64_t n; /**< RSA key, > 0 and < 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, < n (64 qwords)*/
654 uint64_t d; /**< RSA private key (64 qwords)*/
655 uint64_t n; /**< RSA key, > 0 and < 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, < (p*q) (64 qwords)*/
667 uint64_t p; /**< RSA parameter, prime, 2^2047 < p < 2^2048
668 (32 qwords)*/
669 uint64_t q; /**< RSA parameter, prime, 2^2047 < q < 2^2048
670 (32 qwords)*/
671 uint64_t dp; /**< RSA private key, 0 < dp < p-1 (32 qwords)*/
672 uint64_t dq; /**< RSA private key, 0 < dq < q-1 (32 qwords)*/
673 uint64_t qinv; /**< RSA private key, 0 < qInv < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 > 1 and < 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 < m < 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 < m < 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 <e; 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 < m < 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 < m < 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 < m < 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 < m < 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 < m < 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 < m < 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 < m < 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 > 1 and < m-1 (3 qwords)*/
899 uint64_t m; /**< prime candidate > 2^159 and < 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 > 1 and < m-1 (8 qwords)*/
911 uint64_t m; /**< prime candidate > 2^511 and < 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 > 1 and < m-1 (12 qwords)*/
923 uint64_t m; /**< prime candidate > 2^767 and < 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 > 1 and < m-1 (16 qwords)*/
936 uint64_t
937 m; /**< prime candidate > 2^1023 and < 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 > 1 and < m-1 (24 qwords)*/
950 uint64_t
951 m; /**< prime candidate > 2^1535 and < 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 > 1 and <m-1 (32 qwords)*/
964 uint64_t
965 m; /**< prime candidate > 2^2047 and < 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 > 1 and < m-1 (48 qwords)*/
978 uint64_t
979 m; /**< prime candidate > 2^3071 and < 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 > 1 and < m-1 (64 qwords)*/
992 uint64_t
993 m; /**< prime candidate > 2^4095 and < 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 > 1 and < m-1 (8 qwords)*/
1005 uint64_t m; /**< prime candidate > 1 and < 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 > 2^159 and < 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 > 2^511 and < 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 > 2^767 and < 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 > 2^1023 and < 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 > 2^1535 and < 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 > 2^2047 and < 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 > 2^3071 and < 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 > 2^4096 and < 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 > 5 and < 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 ≥ 0 and < 2^512 (8 qwords)*/
1125 uint64_t e; /**< exponent ≥ 0 and < 2^512 (8 qwords)*/
1126 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^1024 (16 qwords)*/
1139 uint64_t e; /**< exponent ≥ 0 and < 2^1024 (16 qwords)*/
1140 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^1536 (24 qwords)*/
1153 uint64_t e; /**< exponent ≥ 0 and < 2^1536 (24 qwords)*/
1154 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^2048 (32 qwords)*/
1167 uint64_t e; /**< exponent ≥ 0 and < 2^2048 (32 qwords)*/
1168 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^2560 (40 qwords)*/
1181 uint64_t e; /**< exponent ≥ 0 and < 2^2560 (40 qwords)*/
1182 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^3072 (48 qwords)*/
1195 uint64_t e; /**< exponent ≥ 0 and < 2^3072 (48 qwords)*/
1196 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^3584 (56 qwords)*/
1209 uint64_t e; /**< exponent ≥ 0 and < 2^3584 (56 qwords)*/
1210 uint64_t m; /**< modulus > 0 and < 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 ≥ 0 and < 2^4096 (64 qwords)*/
1223 uint64_t e; /**< exponent ≥ 0 and < 2^4096 (64 qwords)*/
1224 uint64_t m; /**< modulus > 0 and < 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 > 0 and < 2^128 (2 qwords)*/
1237 uint64_t
1238 b; /**< odd modulus > 0 and < 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 > 0 and < 2^192 (3 qwords)*/
1251 uint64_t
1252 b; /**< odd modulus > 0 and < 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 > 0 and < 2^256 (4 qwords)*/
1265 uint64_t
1266 b; /**< odd modulus > 0 and < 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 > 0 and < 2^384 (6 qwords)*/
1279 uint64_t
1280 b; /**< odd modulus > 0 and < 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 > 0 and < 2^512 (8 qwords)*/
1293 uint64_t
1294 b; /**< odd modulus > 0 and < 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 > 0 and < 2^768 (12 qwords)*/
1307 uint64_t b; /**< odd modulus > 0 and < 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 > 0 and < 2^1024 (16 qwords)*/
1321 uint64_t b; /**< odd modulus > 0 and < 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 > 0 and < 2^1536 (24 qwords)*/
1335 uint64_t b; /**< odd modulus > 0 and < 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 > 0 and < 2^2048 (32 qwords)*/
1349 uint64_t b; /**< odd modulus > 0 and < 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 > 0 and < 2^3072 (48 qwords)*/
1363 uint64_t b; /**< odd modulus > 0 and < 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 > 0 and < 2^4096 (64 qwords)*/
1377 uint64_t b; /**< odd modulus > 0 and < 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 > 0 and < 2^128 (2 qwords)*/
1391 uint64_t
1392 b; /**< even modulus > 0 and < 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 > 0 and < 2^192 (3 qwords)*/
1406 uint64_t
1407 b; /**< even modulus > 0 and < 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 > 0 and < 2^256 (4 qwords)*/
1421 uint64_t
1422 b; /**< even modulus > 0 and < 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 > 0 and < 2^384 (6 qwords)*/
1436 uint64_t
1437 b; /**< even modulus > 0 and < 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 > 0 and < 2^512 (8 qwords)*/
1451 uint64_t
1452 b; /**< even modulus > 0 and < 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 > 0 and < 2^768 (12 qwords)*/
1466 uint64_t b; /**< even modulus > 0 and < 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 > 0 and < 2^1024 (16 qwords)*/
1480 uint64_t b; /**< even modulus > 0 and < 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 > 0 and < 2^1536 (24 qwords)*/
1494 uint64_t b; /**< even modulus > 0 and < 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 > 0 and < 2^2048 (32 qwords)*/
1508 uint64_t b; /**< even modulus > 0 and < 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 > 0 and < 2^3072 (48 qwords)*/
1522 uint64_t b; /**< even modulus > 0 and < 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 > 0 and < 2^4096 (64 qwords)*/
1536 uint64_t b; /**< even modulus > 0 and < 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 > 0 and < 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 < 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 < e < 2^256) (4 qwords)*/
1947 uint64_t d; /**< private key (>0 and < n) (4 qwords)*/
1948 uint64_t
1949 r; /**< ECDSA r signature value (>0 and < n) (4 qwords)*/
1950 uint64_t k; /**< random value > 0 and < n (4 qwords)*/
1951 uint64_t n; /**< order of the base point G (2 < n < 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 (> 0 and
1989 degree(x(G)) < degree(q)) (8 qwords)*/
1990 uint64_t yg; /**< y coordinate of verified base point (> 0 and
1991 degree(y(G)) < 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 < 2^512) (8 qwords)*/
1994 uint64_t
1995 q; /**< field polynomial of degree > 2 and < 512 (8 qwords)*/
1996 uint64_t a; /**< a equation coefficient (degree(a) < degree(q)) (8
1997 qwords)*/
1998 uint64_t b; /**< b equation coefficient (degree(b) < degree(q)) (8
1999 qwords)*/
2000 uint64_t k; /**< random value > 0 and < 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 < e < 2^512) (8 qwords)*/
2012 uint64_t d; /**< private key (>0 and < n) (8 qwords)*/
2013 uint64_t
2014 r; /**< ECDSA r signature value (>0 and < n) (8 qwords)*/
2015 uint64_t k; /**< random value > 0 and < n (8 qwords)*/
2016 uint64_t n; /**< order of the base point G, which must be prime and a
2017 divisor of #E and < 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) < 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 < 2^576 (9 qwords)*/
2056 uint64_t d; /**< private key (> 0 and < n) (9 qwords)*/
2057 uint64_t
2058 r; /**< ECDSA r signature value (> 0 and < n) (9 qwords)*/
2059 uint64_t k; /**< random value (> 0 and < n) (9 qwords)*/
2060 uint64_t
2061 n; /**< order of the base point of the curve (n < 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) <
2080 degree(q)) (9 qwords)*/
2081 uint64_t b; /**< b coefficient of curve B/K-571 (degree(b) <
2082 degree(q)) (9 qwords)*/
2083 uint64_t k; /**< random value > 0 and < 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 > 0 and < 2^256 (4 qwords)*/
2107 uint64_t xg; /**< x coordinate of curve point (degree(xG) < 256) (4
2108 qwords)*/
2109 uint64_t yg; /**< y coordinate of curve point (degree(yG) < 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) < 256 (4 qwords)*/
2131 uint64_t
2132 a; /**< a equation coefficient of curve, degree(a) < 256 (4
2133 qwords)*/
2134 uint64_t
2135 b; /**< b equation coefficient of curve, degree(b) < 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 > 0 and < 2^512 (8 qwords)*/
2148 uint64_t xg; /**< x coordinate of curve point (degree(xG) < 512) (8
2149 qwords)*/
2150 uint64_t yg; /**< y coordinate of curve point (degree(yG) < 512) (8
2151 qwords)*/
2152 uint64_t
2153 a; /**< a equation coefficient (degree(a) < 512) (8 qwords)*/
2154 uint64_t
2155 b; /**< b equation coefficient (degree(b) < 512) (8 qwords)*/
2156 uint64_t
2157 q; /**< field polynomial of degree > 2 and < 512 (8 qwords)*/
2158 uint64_t h; /**< cofactor (< 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 > 2 and < 512 (8 qwords)*/
2173 uint64_t
2174 a; /**< a equation coefficient (degree(a) < 512) (8 qwords)*/
2175 uint64_t
2176 b; /**< b equation coefficient (degree(a) < 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 > 0 and < 2^576 (9 qwords)*/
2189 uint64_t xg; /**< x coordinate of curve point (degree(xG) <
2190 degree(q)) (9 qwords)*/
2191 uint64_t yg; /**< y coordinate of curve point (degree(xG) <
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 <e; 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 < 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) < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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, < 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, < 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, < (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, < 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, < 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, < (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, < 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, < 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, < (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, < 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, < 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, < (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, < 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, < 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, < (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, < 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, < 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, < (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 <e; 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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 ≥ 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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, > 0 and < 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 > 0 and < n (4 qwords)*/
4815 uint64_t s; /**< ECDSA signature s > 0 and < 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 > 0 and < 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 < 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 > 0 and < 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 > 0 and < n ECDSA signature s
4861 > 0 and < 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 > 0 and < 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 > 0 and < 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 > 0 and < n ECDSA signature s
4907 > 0 and < 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) < 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 > 0 and < 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 > 0 and < 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 (< degree(q)) (4
4953 qwords)*/
4954 uint64_t yk; /**< y coordinate of resultant point (< 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 (< q) (8 qwords)*/
4978 uint64_t yk; /**< y coordinate of resultant point (< 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 <
5002 degree(q)) (9 qwords)*/
5003 uint64_t yk; /**< y coordinate of resultant point (degree <
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 <e; 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 < 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) < 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 --- */
Cache object: 4f92e926ab244c6af3d85347a7d1a592
|