DPDK  24.11.0-rc3
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 #include <string.h>
18 #include <stdint.h>
19 
20 #include <rte_memory.h>
21 #include <rte_mempool.h>
22 #include <rte_common.h>
23 
24 #include "rte_crypto_sym.h"
25 
26 struct rte_cryptodev_asym_session;
27 
29 extern const char *
31 
33 extern const char *
35 
36 #define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING RTE_BIT32(0)
37 
42 #define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING RTE_BIT32(1)
43 
48 #define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_COMPRESSED RTE_BIT32(2)
49 
63  RTE_CRYPTO_EC_GROUP_SECP192R1 = 19,
64  RTE_CRYPTO_EC_GROUP_SECP224R1 = 21,
65  RTE_CRYPTO_EC_GROUP_SECP256R1 = 23,
66  RTE_CRYPTO_EC_GROUP_SECP384R1 = 24,
67  RTE_CRYPTO_EC_GROUP_SECP521R1 = 25,
68  RTE_CRYPTO_EC_GROUP_ED25519 = 29,
69  RTE_CRYPTO_EC_GROUP_ED448 = 30,
70  RTE_CRYPTO_EC_GROUP_SM2 = 41,
71 };
72 
77  RTE_CRYPTO_EDCURVE_25519,
78  RTE_CRYPTO_EDCURVE_25519CTX,
79  RTE_CRYPTO_EDCURVE_25519PH,
80  RTE_CRYPTO_EDCURVE_448,
81  RTE_CRYPTO_EDCURVE_448PH
82 };
83 
139 };
140 
153  RTE_CRYPTO_ASYM_OP_LIST_END
154 };
155 
170 };
171 
186 };
187 
201 };
202 
215 typedef struct rte_crypto_param_t {
216  uint8_t *data;
220  size_t length;
223 
226 
235 };
236 
252 };
253 
293  uint16_t pss_saltlen;
308 };
309 
321  enum rte_crypto_rsa_priv_key_type key_type;
322 
323  struct {
328  };
329 
330  struct rte_crypto_rsa_padding padding;
332 };
333 
344 };
345 
354 };
355 
366 };
367 
382 };
383 
390  enum rte_crypto_curve_id curve_id;
398 };
399 
409 };
410 
467 };
468 
503 };
504 
525  struct rte_crypto_ec_point pub_key;
534  struct rte_crypto_ec_point shared_secret;
539 };
540 
571 };
572 
600 };
601 
625 };
626 
639 };
640 
649 };
650 
713 };
714 
726  union {
733  struct rte_crypto_modinv_xform modinv;
746  };
747 };
748 
755  union {
756  struct rte_cryptodev_asym_session *session;
760  };
761 
762  union {
763  struct rte_crypto_rsa_op_param rsa;
764  struct rte_crypto_mod_op_param modex;
765  struct rte_crypto_mod_op_param modinv;
766  struct rte_crypto_dh_op_param dh;
767  struct rte_crypto_ecdh_op_param ecdh;
768  struct rte_crypto_dsa_op_param dsa;
769  struct rte_crypto_ecdsa_op_param ecdsa;
770  struct rte_crypto_ecpm_op_param ecpm;
771  struct rte_crypto_sm2_op_param sm2;
772  struct rte_crypto_eddsa_op_param eddsa;
773  };
774  uint16_t flags;
779 };
780 
781 #endif /* _RTE_CRYPTO_ASYM_H_ */
rte_crypto_curve_id
rte_crypto_param cipher
rte_crypto_rsa_padding_type
const char * rte_crypto_asym_ke_strings[]
rte_crypto_param message
rte_crypto_uint pkey
uint64_t rte_iova_t
Definition: rte_common.h:658
rte_crypto_asym_xform_type
rte_crypto_uint shared_secret
struct rte_crypto_asym_xform * xform
rte_crypto_rsa_priv_key_type
rte_crypto_param message
rte_crypto_asym_op_type
rte_crypto_uint priv_key
rte_crypto_param rte_crypto_uint
rte_crypto_param message
rte_crypto_uint pub_key
rte_crypto_uint exponent
rte_crypto_asym_ke_type
const char * rte_crypto_asym_op_strings[]
rte_crypto_uint modulus
rte_crypto_param oaep_label
enum rte_crypto_asym_xform_type xform_type
rte_crypto_sm2_op_capa
rte_crypto_param cipher
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_edward_instance
rte_crypto_param x