DPDK  22.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 extern const char *
35 
37 extern const char *
39 
41 extern const char *
43 
44 #define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING RTE_BIT32(0)
45 
50 #define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING RTE_BIT32(1)
51 
67  RTE_CRYPTO_EC_GROUP_SECP192R1 = 19,
68  RTE_CRYPTO_EC_GROUP_SECP224R1 = 21,
69  RTE_CRYPTO_EC_GROUP_SECP256R1 = 23,
70  RTE_CRYPTO_EC_GROUP_SECP384R1 = 24,
71  RTE_CRYPTO_EC_GROUP_SECP521R1 = 25
72 };
73 
121 };
122 
135  RTE_CRYPTO_ASYM_OP_LIST_END
136 };
137 
152 };
153 
168  RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END
169 };
170 
185 };
186 
199 typedef struct rte_crypto_param_t {
200  uint8_t *data;
204  size_t length;
207 
210 
219 };
220 
226  rte_crypto_uint p;
228  rte_crypto_uint q;
230  rte_crypto_uint dP;
232  rte_crypto_uint dQ;
234  rte_crypto_uint qInv;
236 };
237 
277  uint16_t pss_saltlen;
292 };
293 
301  rte_crypto_uint n;
303  rte_crypto_uint e;
306  enum rte_crypto_rsa_priv_key_type key_type;
307 
309  union {
310  rte_crypto_uint d;
314  };
315 };
316 
324  rte_crypto_uint modulus;
326  rte_crypto_uint exponent;
328 };
329 
337  rte_crypto_uint modulus;
339 };
340 
348  rte_crypto_uint p;
350  rte_crypto_uint g;
352 };
353 
361  rte_crypto_uint p;
363  rte_crypto_uint q;
365  rte_crypto_uint g;
367  rte_crypto_uint x;
369 };
370 
378  enum rte_crypto_curve_id curve_id;
380 };
381 
388  rte_crypto_uint base;
390  rte_crypto_uint result;
392 };
393 
447  struct rte_crypto_rsa_padding padding;
449 };
450 
458  rte_crypto_uint priv_key;
472  rte_crypto_uint pub_key;
480  rte_crypto_uint shared_secret;
485 };
486 
493  rte_crypto_uint priv_key;
507  struct rte_crypto_ec_point pub_key;
516  struct rte_crypto_ec_point shared_secret;
521 };
522 
532  rte_crypto_uint k;
538  rte_crypto_uint r;
544  rte_crypto_uint s;
550  rte_crypto_uint y;
554 };
555 
563  rte_crypto_uint pkey;
572  rte_crypto_uint k;
579  rte_crypto_uint r;
584  rte_crypto_uint s;
589 };
590 
603 };
604 
617  union {
624  struct rte_crypto_modinv_xform modinv;
637  };
638 };
639 
648  union {
649  struct rte_cryptodev_asym_session *session;
653  };
654 
656  union {
657  struct rte_crypto_rsa_op_param rsa;
658  struct rte_crypto_mod_op_param modex;
659  struct rte_crypto_mod_op_param modinv;
660  struct rte_crypto_dh_op_param dh;
661  struct rte_crypto_ecdh_op_param ecdh;
662  struct rte_crypto_dsa_op_param dsa;
663  struct rte_crypto_ecdsa_op_param ecdsa;
664  struct rte_crypto_ecpm_op_param ecpm;
665  };
666  uint16_t flags;
671 };
672 
673 #ifdef __cplusplus
674 }
675 #endif
676 
677 #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:463
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_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
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
#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