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