DPDK  22.03.0
rte_crypto_asym.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Cavium Networks
3  */
4 
5 #ifndef _RTE_CRYPTO_ASYM_H_
6 #define _RTE_CRYPTO_ASYM_H_
7 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include <string.h>
22 #include <stdint.h>
23 
24 #include <rte_memory.h>
25 #include <rte_mempool.h>
26 #include <rte_common.h>
27 
28 #include "rte_crypto_sym.h"
29 
30 struct rte_cryptodev_asym_session;
31 
33 extern const char *
35 
37 extern const char *
39 
45  RTE_CRYPTO_EC_GROUP_UNKNOWN = 0,
46  RTE_CRYPTO_EC_GROUP_SECP192R1 = 19,
47  RTE_CRYPTO_EC_GROUP_SECP224R1 = 21,
48  RTE_CRYPTO_EC_GROUP_SECP256R1 = 23,
49  RTE_CRYPTO_EC_GROUP_SECP384R1 = 24,
50  RTE_CRYPTO_EC_GROUP_SECP521R1 = 25,
51 };
52 
98 };
99 
118  RTE_CRYPTO_ASYM_OP_LIST_END
119 };
120 
135  RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END
136 };
137 
152 };
153 
166 typedef struct rte_crypto_param_t {
167  uint8_t *data;
171  size_t length;
174 
177 
186 };
187 
193  rte_crypto_uint p;
195  rte_crypto_uint q;
197  rte_crypto_uint dP;
199  rte_crypto_uint dQ;
201  rte_crypto_uint qInv;
203 };
204 
212  rte_crypto_uint n;
214  rte_crypto_uint e;
217  enum rte_crypto_rsa_priv_key_type key_type;
218 
220  union {
221  rte_crypto_uint d;
225  };
226 };
227 
235  rte_crypto_uint modulus;
237  rte_crypto_uint exponent;
239 };
240 
248  rte_crypto_uint modulus;
250 };
251 
261  rte_crypto_uint p;
263  rte_crypto_uint g;
265 };
266 
274  rte_crypto_uint p;
276  rte_crypto_uint q;
278  rte_crypto_uint g;
280  rte_crypto_uint x;
288 };
289 
297  enum rte_crypto_ec_group curve_id;
299 };
300 
307  rte_crypto_uint base;
309  rte_crypto_uint result;
311 };
312 
387 };
388 
394  rte_crypto_uint pub_key;
403  rte_crypto_uint priv_key;
411  rte_crypto_uint shared_secret;
417 };
418 
428  rte_crypto_uint k;
434  rte_crypto_uint r;
440  rte_crypto_uint s;
446  rte_crypto_uint y;
450 };
451 
459  rte_crypto_uint pkey;
468  rte_crypto_uint k;
475  rte_crypto_uint r;
480  rte_crypto_uint s;
485 };
486 
499 };
500 
513  union {
520  struct rte_crypto_modinv_xform modinv;
533  };
534 };
535 
544  union {
545  struct rte_cryptodev_asym_session *session;
549  };
550 
552  union {
553  struct rte_crypto_rsa_op_param rsa;
554  struct rte_crypto_mod_op_param modex;
555  struct rte_crypto_mod_op_param modinv;
556  struct rte_crypto_dh_op_param dh;
557  struct rte_crypto_dsa_op_param dsa;
558  struct rte_crypto_ecdsa_op_param ecdsa;
559  struct rte_crypto_ecpm_op_param ecpm;
560  };
561 };
562 
563 #ifdef __cplusplus
564 }
565 #endif
566 
567 #endif /* _RTE_CRYPTO_ASYM_H_ */
rte_crypto_param cipher
rte_crypto_rsa_padding_type
rte_crypto_param message
uint64_t rte_iova_t
Definition: rte_common.h:420
rte_crypto_asym_xform_type
rte_crypto_uint shared_secret
struct rte_crypto_asym_xform * xform
rte_crypto_rsa_priv_key_type
const char * rte_crypto_asym_xform_strings[]
rte_crypto_ec_group
rte_crypto_param message
rte_crypto_asym_op_type
rte_crypto_uint priv_key
rte_crypto_param rte_crypto_uint
rte_crypto_uint pub_key
rte_crypto_uint exponent
const char * rte_crypto_asym_op_strings[]
rte_crypto_uint modulus
enum rte_crypto_asym_xform_type xform_type
#define RTE_STD_C11
Definition: rte_common.h:42
rte_crypto_uint p
rte_crypto_auth_algorithm
struct rte_crypto_asym_xform * next
struct rte_cryptodev_asym_session * session
rte_crypto_uint g
struct rte_crypto_param_t rte_crypto_param
rte_crypto_param y
rte_crypto_param x