DPDK  23.07.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 __rte_deprecated
34 extern const char *
36 
38 extern const char *
40 
42 extern const char *
44 
45 #define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING RTE_BIT32(0)
46 
51 #define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING RTE_BIT32(1)
52 
68  RTE_CRYPTO_EC_GROUP_SECP192R1 = 19,
69  RTE_CRYPTO_EC_GROUP_SECP224R1 = 21,
70  RTE_CRYPTO_EC_GROUP_SECP256R1 = 23,
71  RTE_CRYPTO_EC_GROUP_SECP384R1 = 24,
72  RTE_CRYPTO_EC_GROUP_SECP521R1 = 25
73 };
74 
128 };
129 
142  RTE_CRYPTO_ASYM_OP_LIST_END
143 };
144 
159 };
160 
175  RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END
176 };
177 
191 };
192 
205 typedef struct rte_crypto_param_t {
206  uint8_t *data;
210  size_t length;
213 
216 
225 };
226 
232  rte_crypto_uint p;
234  rte_crypto_uint q;
236  rte_crypto_uint dP;
238  rte_crypto_uint dQ;
240  rte_crypto_uint qInv;
242 };
243 
283  uint16_t pss_saltlen;
298 };
299 
306  rte_crypto_uint n;
308  rte_crypto_uint e;
311  enum rte_crypto_rsa_priv_key_type key_type;
312 
314  union {
315  rte_crypto_uint d;
319  };
320 };
321 
328  rte_crypto_uint modulus;
330  rte_crypto_uint exponent;
332 };
333 
340  rte_crypto_uint modulus;
342 };
343 
350  rte_crypto_uint p;
352  rte_crypto_uint g;
354 };
355 
362  rte_crypto_uint p;
364  rte_crypto_uint q;
366  rte_crypto_uint g;
368  rte_crypto_uint x;
370 };
371 
378  enum rte_crypto_curve_id curve_id;
380 };
381 
390 };
391 
397  rte_crypto_uint base;
399  rte_crypto_uint result;
401 };
402 
460  struct rte_crypto_rsa_padding padding;
462 };
463 
471  rte_crypto_uint priv_key;
485  rte_crypto_uint pub_key;
493  rte_crypto_uint shared_secret;
498 };
499 
506  rte_crypto_uint priv_key;
520  struct rte_crypto_ec_point pub_key;
529  struct rte_crypto_ec_point shared_secret;
534 };
535 
544  rte_crypto_uint k;
550  rte_crypto_uint r;
556  rte_crypto_uint s;
562  rte_crypto_uint y;
566 };
567 
575  rte_crypto_uint pkey;
584  rte_crypto_uint k;
591  rte_crypto_uint r;
596  rte_crypto_uint s;
601 };
602 
615 };
616 
629  union {
636  struct rte_crypto_modinv_xform modinv;
652  };
653 };
654 
662  rte_crypto_uint pkey;
698  rte_crypto_uint id;
701  rte_crypto_uint k;
708  rte_crypto_uint r;
714  rte_crypto_uint s;
720 };
721 
729  union {
730  struct rte_cryptodev_asym_session *session;
734  };
735 
737  union {
738  struct rte_crypto_rsa_op_param rsa;
739  struct rte_crypto_mod_op_param modex;
740  struct rte_crypto_mod_op_param modinv;
741  struct rte_crypto_dh_op_param dh;
742  struct rte_crypto_ecdh_op_param ecdh;
743  struct rte_crypto_dsa_op_param dsa;
744  struct rte_crypto_ecdsa_op_param ecdsa;
745  struct rte_crypto_ecpm_op_param ecpm;
746  struct rte_crypto_sm2_op_param sm2;
747  };
748  uint16_t flags;
753 };
754 
755 #ifdef __cplusplus
756 }
757 #endif
758 
759 #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
uint64_t rte_iova_t
Definition: rte_common.h:458
rte_crypto_asym_xform_type
rte_crypto_uint shared_secret
struct rte_crypto_asym_xform * xform
rte_crypto_rsa_priv_key_type
__rte_deprecated const char * rte_crypto_asym_xform_strings[]
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_param cipher
#define RTE_STD_C11
Definition: rte_common.h:39
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