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 --- */ 5927