The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/qat/qat_api/firmware/include/icp_qat_fw_mmp.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 4f92e926ab244c6af3d85347a7d1a592


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.