Slot Struct

C

struct crm_pk_inops_mod_single_op_cmd {
   struct crm_pk_slot n; < Modulus *
   struct crm_pk_slot b; < Value *
};

Description

Input slots for ::CRM_PK_CMD_ODD_MOD_INV & ::CRM_PK_CMD_ODD_MOD_REDUCE & ::CRM_PK_CMD_MOD_SQRT & ::CRM_PK_CMD_EVEN_MOD_INV & ::CRM_PK_CMD_ODD_MOD_REDUCE

Slot Struct

C

struct crm_pk_inops_mod_cmd {
   struct crm_pk_slot n; < Modulus *
   struct crm_pk_slot a; < Operand A *
   struct crm_pk_slot b; < Operand B *
};

Description

Input slots for ::CRM_PK_CMD_MOD_ADD & ::CRM_PK_CMD_MOD_SUB & ::CRM_PK_CMD_ODD_MOD_MULT & ::CRM_PK_CMD_ODD_MOD_DIV

Slot Struct

C

struct crm_pk_inops_mult {
   struct crm_pk_slot a; < First scalar value *
   struct crm_pk_slot b; < Second scalar value *
};

Description

Input slots for ::CRM_PK_CMD_MULT

Slot Struct

C

struct crm_pk_inops_mod_exp {
   struct crm_pk_slot m; < Modulus *
   struct crm_pk_slot input; < Base *
   struct crm_pk_slot exp; < Exponent *
};

Description

Input slots for ::CRM_PK_CMD_MOD_EXP

Slot Struct

C

struct crm_pk_inops_rsa_mod_exp_cm {
   struct crm_pk_slot m; < Modulus *
   struct crm_pk_slot lambda_n; < Lambda_n *
   struct crm_pk_slot input; < Base *
   struct crm_pk_slot exp; < Exponent *
   struct crm_pk_slot blind; < Blinding factor *
};

Description

Input slots for ::CRM_PK_CMD_RSA_MOD_EXP_CM

Slot Struct

C

struct crm_pk_inops_crt_mod_exp {
   struct crm_pk_slot p; < Prime number p *
   struct crm_pk_slot q; < Prime number q *
   struct crm_pk_slot in; < Input *
   struct crm_pk_slot dp; < d mod (p-1), with d the private key *
   struct crm_pk_slot dq; < d mod (q-1), with d the private key *
   struct crm_pk_slot qinv; < q^(-1) mod p *
};

Description

Input slots for ::CRM_PK_CMD_MOD_EXP_CRT

Slot Struct

C

struct crm_pk_inops_rsa_keygen {
   struct crm_pk_slot p; < Prime number p *
   struct crm_pk_slot q; < Prime number q *
   struct crm_pk_slot e; < Public exponent *
};

Description

Input slots for ::CRM_PK_CMD_RSA_KEYGEN

Slot Struct

C

struct crm_pk_inops_rsa_crt_keyparams {
   struct crm_pk_slot p; < Prime number p *
   struct crm_pk_slot q; < Prime number q *
   struct crm_pk_slot privkey; < Private key *
};

Description

Input slots for ::CRM_PK_CMD_RSA_CRT_KEYPARAMS

Slot Struct

C

struct crm_pk_inops_srp_user_keyparams {
   struct crm_pk_slot n; < Safe prime number *
   struct crm_pk_slot g; < Generator of the multiplicative group *
   struct crm_pk_slot a; < Random value *
   struct crm_pk_slot b; < kg^x + g^t with t random salt, k value derived by both sides (for example k = H(n, g)) *
   struct crm_pk_slot x; < Hash of (s, p) with s a random salt and p the user password *
   struct crm_pk_slot k; < Hash of (n, g) *
   struct crm_pk_slot u; < Hash of (g^a, b) *
};

Description

Input slots for ::CRM_PK_CMD_SRP_USER_KEY_GEN

Slot Struct

C

struct crm_pk_inops_eckcdsa_sign {
   struct crm_pk_slot d; < Private key *
   struct crm_pk_slot k; < Random value *
   struct crm_pk_slot r; < First part of signature *
   struct crm_pk_slot h; < Hash digest *
};

Description

Input slots for ::CRM_PK_CMD_ECKCDSA_SIGN

Slot Struct

C

struct crm_pk_inops_montgomery_mult {
   struct crm_pk_slot p; < Point P *
   struct crm_pk_slot k; < Scalar *
};

Description

Input slots for ::CRM_PK_CMD_MONTGOMERY_PTMUL

Slot Struct

C

struct crm_pk_inops_ecp_add {
   struct crm_pk_slot p1x; < x-coordinate of point P1 *
   struct crm_pk_slot p1y; < y-coordinate of point P1 *
   struct crm_pk_slot p2x; < x-coordinate of point P2 *
   struct crm_pk_slot p2y; < y-coordinate of point P2 *
};

Description

Input slots for ::CRM_PK_CMD_ECC_PT_ADD

Slot Struct

C

struct crm_pk_inops_ecp_mult {
   struct crm_pk_slot k; < Scalar *
   struct crm_pk_slot px; < x-coordinate of point P *
   struct crm_pk_slot py; < y-coordinate of point P *
};

Description

Input slots for ::CRM_PK_CMD_ECC_PTMUL

Slot Struct

C

struct crm_pk_inops_ecp_double {
   struct crm_pk_slot px; < x-coordinate of point P *
   struct crm_pk_slot py; < y-coordinate of point P *
};

Description

Input slots for ::CRM_PK_CMD_ECC_PT_DOUBLE

Slot Struct

C

struct crm_pk_inops_ec_ptoncurve {
   struct crm_pk_slot px; < x-coordinate of point P *
   struct crm_pk_slot py; < y-coordinate of point P *
};

Description

Input slots for ::CRM_PK_CMD_ECC_PTONCURVE

Slot Struct

C

struct crm_pk_inops_ec_pt_decompression {
   struct crm_pk_slot x; < x-coordinate of compressed point *
};

Description

Input slots for ::CRM_PK_CMD_ECC_PT_DECOMP

Slot Struct

C

struct crm_pk_inops_ecdsa_verify {
   struct crm_pk_slot qx; < x-coordinate of public key *
   struct crm_pk_slot qy; < y-coordinate of public key *
   struct crm_pk_slot r; < First part of signature *
   struct crm_pk_slot s; < Second part of signature *
   struct crm_pk_slot h; < Hash digest *
};

Description

Input slots for ::CRM_PK_CMD_ECDSA_VER & ::CRM_PK_CMD_ECKCDSA_VER & ::CRM_PK_CMD_SM2_VER

Slot Struct

C

struct crm_pk_inops_ecdsa_generate {
   struct crm_pk_slot d; < Private key *
   struct crm_pk_slot k; < Random value *
   struct crm_pk_slot h; < Hash digest *
};

Description

Input slots for ::CRM_PK_CMD_ECDSA_GEN & ::CRM_PK_CMD_SM2_GEN

Slot Struct

C

struct crm_pk_inops_sm2_exchange {
   struct crm_pk_slot d; < Private key *
   struct crm_pk_slot k; < Random value *
   struct crm_pk_slot qx; < x-coordinate of public key *
   struct crm_pk_slot qy; < y-coordinate of public key *
   struct crm_pk_slot rbx; < x-coordinate of random value from B *
   struct crm_pk_slot rby; < y-coordinate of random value from B *
   struct crm_pk_slot cof; < Cofactor *
   struct crm_pk_slot rax; < x-coordinate of random value from A *
   struct crm_pk_slot w; < (log2(n)/2)-1, with n the curve order *
};

Description

Input slots for ::CRM_PK_CMD_SM2_EXCH

Slot Struct

C

struct crm_pk_inops_eckcdsa_generate {
   struct crm_pk_slot d; < Private key *
};

Description

Input slots for ::CRM_PK_CMD_ECKCDSA_PUBKEY_GEN

Slot Struct

C

struct crm_pk_inops_eddsa_ptmult {
   struct crm_pk_dblslot r; < Scalar *
};

Description

Input slots for ::CRM_PK_CMD_EDDSA_PTMUL

Slot Struct

C

struct crm_pk_inops_eddsa_sign {
   struct crm_pk_dblslot k; < Scalar with a size double of other operands *
   struct crm_pk_dblslot r; < Signature part 1 *
   struct crm_pk_slot s; < Signature part 2 *
};

Description

Input slots for ::CRM_PK_CMD_EDDSA_SIGN

Slot Struct

C

struct crm_pk_inops_eddsa_ver {
   struct crm_pk_dblslot k; < Scalar with a size double of other operands *
   struct crm_pk_slot ay; < Encoded public key  *
   struct crm_pk_slot sig_s; < Signature part 2 *
   struct crm_pk_slot ry; < y-coordinate of r *
};

Description

Input slots for ::CRM_PK_CMD_EDDSA_VER

Slot Struct

C

struct crm_pk_inops_miller_rabin {
   struct crm_pk_slot n; < Candidate prime value *
   struct crm_pk_slot a; < Random value *
};

Description

Input slots for ::CRM_PK_CMD_MILLER_RABIN

Slot Struct

C

struct crm_pk_inops_dsa_sign {
   struct crm_pk_slot p; < Prime modulus *
   struct crm_pk_slot q; < Prime divisor of p-1 *
   struct crm_pk_slot g; < Generator *
   struct crm_pk_slot k; < Random value *
   struct crm_pk_slot privkey; < Private key *
   struct crm_pk_slot h; < Hash digest *
};

Description

Input slots for ::CRM_PK_CMD_DSA_SIGN

Slot Struct

C

struct crm_pk_inops_dsa_ver {
   struct crm_pk_slot p; < Prime modulus *
   struct crm_pk_slot q; < Prime divisor of p-1 *
   struct crm_pk_slot g; < Generator *
   struct crm_pk_slot pubkey; < Public key *
   struct crm_pk_slot r; < First part of signature *
   struct crm_pk_slot s; < Second part of signature *
   struct crm_pk_slot h; < Hash digest *
};

Description

Input slots for ::CRM_PK_CMD_DSA_VER

Slot Struct

C

struct crm_pk_inops_sm9_exp {
   struct crm_pk_slot h; < exponent 
   struct crm_pk_slot t; < polynomial base 
   struct crm_pk_slot g[12]; < g in GT 
};

Description

Input slots for ::CRM_PK_CMD_SM9_EXP

Slot Struct

C

struct crm_pk_inops_sm9_pmulg1 {
   struct crm_pk_slot p1x0; < x-coordinate 
   struct crm_pk_slot p1y0; < y-coordinate 
   struct crm_pk_slot ke; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_PMULG1

Slot Struct

C

struct crm_pk_inops_sm9_pmulg2 {
   struct crm_pk_slot p2x0; < x-coordinate 0 
   struct crm_pk_slot p2x1; < x-coordinate 1 
   struct crm_pk_slot p2y0; < y-coordinate 0 
   struct crm_pk_slot p2y1; < y-coordinate 1 
   struct crm_pk_slot ke; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_PMULG2

Slot Struct

C

struct crm_pk_inops_sm9_pair {
   struct crm_pk_slot qx0; < Q x-coordinate 0 
   struct crm_pk_slot qx1; < Q x-coordinate 1 
   struct crm_pk_slot qy0; < Q y-coordinate 0 
   struct crm_pk_slot qy1; < Q y-coordinate 1 
   struct crm_pk_slot px0; < P x-coordinate 
   struct crm_pk_slot py0; < P y-coordinate 
   struct crm_pk_slot f; < frobenius constant 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_PAIR

Slot Struct

C

struct crm_pk_inops_sm9_sigpkgen {
   struct crm_pk_slot p1x0; < x-coordinate 
   struct crm_pk_slot p1y0; < y-coordinate 
   struct crm_pk_slot h; < scalar 
   struct crm_pk_slot ks; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_PRIVSIGKEYGEN

Slot Struct

C

struct crm_pk_inops_sm9_signaturegen {
   struct crm_pk_slot dcrm0; < x-coordinate 
   struct crm_pk_slot dsy0; < y-coordinate 
   struct crm_pk_slot h; < scalar 
   struct crm_pk_slot r; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_SIGNATUREGEN

Slot Struct

C

struct crm_pk_inops_sm9_signatureverify {
   struct crm_pk_slot h1; < scalar 
   struct crm_pk_slot p2x0; < x-coordinate 
   struct crm_pk_slot p2x1; < x-coordinate 
   struct crm_pk_slot p2y0; < y-coordinate 
   struct crm_pk_slot p2y1; < y-coordinate 
   struct crm_pk_slot ppubcrm0; < x-coordinate 0 
   struct crm_pk_slot ppubcrm1; < x-coordinate 1 
   struct crm_pk_slot ppubsy0; < y-coordinate 0 
   struct crm_pk_slot ppubsy1; < y-coordinate 1 
   struct crm_pk_slot crm0; < x-coordinate 
   struct crm_pk_slot sy0; < y-coordinate 
   struct crm_pk_slot h; < scalar 
   struct crm_pk_slot f; < frobenius constant 
   struct crm_pk_slot t; < polynomial base 
   struct crm_pk_slot g[12]; < input 
};

Description

Input slots for ::CRM_PK_CMD_SM9_SIGNATUREVERIFY

Slot Struct

C

struct crm_pk_inops_sm9_privencrkeygen {
   struct crm_pk_slot p2x0; < x-coordinate 0 
   struct crm_pk_slot p2x1; < x-coordinate 1 
   struct crm_pk_slot p2y0; < y-coordinate 0 
   struct crm_pk_slot p2y1; < y-coordinate 1 
   struct crm_pk_slot h; < scalar 
   struct crm_pk_slot ks; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_PRIVENCRKEYGEN

Slot Struct

C

struct crm_pk_inops_sm9_sendkey {
   struct crm_pk_slot p1x0; < x-coordinate 
   struct crm_pk_slot p1y0; < y-coordinate 
   struct crm_pk_slot ppubex0; < x-coordinate 
   struct crm_pk_slot ppubey0; < y-coordinate 
   struct crm_pk_slot h; < scalar 
   struct crm_pk_slot r; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_SENDKEY

Slot Struct

C

struct crm_pk_inops_sm9_reduceh {
   struct crm_pk_slot h; < scalar 
   struct crm_pk_slot t; < polynomial base 
};

Description

Input slots for ::CRM_PK_CMD_SM9_REDUCEH

Slot Struct

C

struct crm_pk_inops_ecjpake_generate_zkp {
   struct crm_pk_slot v; < Random input 
   struct crm_pk_slot x; < Exponent 
   struct crm_pk_slot h; < Hash digest 
};

Description

Input slots for ::CRM_PK_CMD_ECJPAKE_GENERATE_ZKP

Slot Struct

C

struct crm_pk_inops_ecjpake_verify_zkp {
   struct crm_pk_slot xv; < Point V on the curve, x-coordinate 
   struct crm_pk_slot yv; < Point V on the curve, y-coordinate 
   struct crm_pk_slot xx; < Point X on the curve, x-coordinate 
   struct crm_pk_slot yx; < Point X on the curve, y-coordinate 
   struct crm_pk_slot r; < Proof 
   struct crm_pk_slot h; < Hash digest 
   struct crm_pk_slot xg2; < Point G on the curve, x-coordinate 
   struct crm_pk_slot yg2; < Point G on the curve, y-coordinate 
};

Description

Input slots for ::CRM_PK_CMD_ECJPAKE_VERIFY_ZKP

Slot Struct

C

struct crm_pk_inops_ecjpake_3pt_add {
   struct crm_pk_slot x2_1; < Point X2 on the curve, x-coordinate 
   struct crm_pk_slot x2_2; < Point X2 on the curve, y-coordinate 
   struct crm_pk_slot x3_1; < Point X3 on the curve, x-coordinate 
   struct crm_pk_slot x3_2; < Point X3 on the curve, y-coordinate 
   struct crm_pk_slot x1_1; < Point X1 on the curve, x-coordinate 
   struct crm_pk_slot x1_2; < Point X1 on the curve, y-coordinate 
};

Description

Input slots for ::CRM_PK_CMD_ECJPAKE_3PT_ADD

Slot Struct

C

struct crm_pk_inops_ecjpake_gen_step_2 {
   struct crm_pk_slot x4_1; < Point X4 on the curve, x-coordinate 
   struct crm_pk_slot x4_2; < Point X4 on the curve, y-coordinate 
   struct crm_pk_slot x3_1; < Point X3 on the curve, x-coordinate 
   struct crm_pk_slot x3_2; < Point X3 on the curve, y-coordinate 
   struct crm_pk_slot x2s;  < Random valuePassword 
   struct crm_pk_slot x1_1; < Point X1 on the curve, x-coordinate 
   struct crm_pk_slot x1_2; < Point X1 on the curve, y-coordinate 
   struct crm_pk_slot s;    < Password 
};

Description

Input slots for ::CRM_PK_CMD_ECJPAKE_GEN_STEP_2

Slot Struct

C

struct crm_pk_inops_ecjpake_gen_sess_key {
   struct crm_pk_slot x4_1; < Point X4 on the curve, x-coordinate 
   struct crm_pk_slot x4_2; < Point X4 on the curve, y-coordinate 
   struct crm_pk_slot b_1; < Point B on the curve, x-coordinate 
   struct crm_pk_slot b_2; < Point B on the curve, y-coordinate 
   struct crm_pk_slot x2; < Random value 
   struct crm_pk_slot x2s; < Random valuePassword 
};

Description

Input slots for ::CRM_PK_CMD_ECJPAKE_GEN_SESS_KEY

Slot Struct

C

struct crm_pk_inops_srp_server_public_key_gen {
   struct crm_pk_slot n; < Safe prime 
   struct crm_pk_slot g; < Generator 
   struct crm_pk_slot k; < Hash digest 
   struct crm_pk_slot v; < Exponentiated hash digest 
   struct crm_pk_slot b; < Random 
};

Description

Inputs slots for ::CRM_PK_CMD_SRP_SERVER_PUBLIC_KEY_GEN

Slot Struct

C

struct crm_pk_inops_srp_server_session_key_gen {
   struct crm_pk_slot n; < Safe prime 
   struct crm_pk_slot a; < Random 
   struct crm_pk_slot u; < Hash digest 
   struct crm_pk_slot v; < Exponentiated hash digest 
   struct crm_pk_slot b; < Random 
};

Description

Inputs slots for ::CRM_PK_CMD_SRP_SERVER_SESSION_KEY_GEN

Slot Struct

C

struct crm_pk_inops_check_param_ab {
   struct crm_pk_slot p; < p parameter of curve 
   struct crm_pk_slot a; < a parameter of curve 
   struct crm_pk_slot b; < b parameter of curve 
};

Description

Inputs slots for ::CRM_PK_CMD_CHECK_PARAM_AB

Slot Struct

C

struct crm_pk_inops_check_param_n {
   struct crm_pk_slot p; < p parameter of curve 
   struct crm_pk_slot n; < n parameter of curve 
};

Description

Inputs slots for ::CRM_PK_CMD_CHECK_PARAM_N

Slot Struct

C

struct crm_pk_inops_check_xy {
   struct crm_pk_slot p; < p parameter of curve 
   struct crm_pk_slot x; < x-coordinate 
   struct crm_pk_slot y; < y-coordinate 
};

Description

Inputs slots for ::CRM_PK_CMD_CHECK_XY