DPDK 22.11.4
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
18extern "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
30struct rte_cryptodev_asym_session;
31
33extern const char *
35
37extern const char *
39
41extern const char *
43
44#define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING RTE_BIT32(0)
50#define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING RTE_BIT32(1)
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
124
137 RTE_CRYPTO_ASYM_OP_LIST_END
138};
139
155
170 RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END
171};
172
187};
188
201typedef struct rte_crypto_param_t {
202 uint8_t *data;
206 size_t length;
209
212
221};
222
238};
239
279 uint16_t pss_saltlen;
294};
295
308 enum rte_crypto_rsa_priv_key_type key_type;
309
311 union {
316 };
317};
318
330};
331
341};
342
354};
355
371};
372
382};
383
394};
395
451};
452
487};
488
523};
524
556};
557
591};
592
605};
606
619 union {
639 };
640};
641
650 union {
651 struct rte_cryptodev_asym_session *session;
655 };
656
658 union {
659 struct rte_crypto_rsa_op_param rsa;
660 struct rte_crypto_mod_op_param modex;
661 struct rte_crypto_mod_op_param modinv;
662 struct rte_crypto_dh_op_param dh;
663 struct rte_crypto_ecdh_op_param ecdh;
664 struct rte_crypto_dsa_op_param dsa;
665 struct rte_crypto_ecdsa_op_param ecdsa;
666 struct rte_crypto_ecpm_op_param ecpm;
667 };
668 uint16_t flags;
673};
674
675#ifdef __cplusplus
676}
677#endif
678
679#endif /* _RTE_CRYPTO_ASYM_H_ */
uint64_t rte_iova_t
Definition: rte_common.h:458
#define RTE_STD_C11
Definition: rte_common.h:39
rte_crypto_asym_op_type
@ RTE_CRYPTO_ASYM_OP_ENCRYPT
@ RTE_CRYPTO_ASYM_OP_SIGN
@ RTE_CRYPTO_ASYM_OP_DECRYPT
@ RTE_CRYPTO_ASYM_OP_VERIFY
rte_crypto_asym_xform_type
@ RTE_CRYPTO_ASYM_XFORM_NONE
@ RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED
@ RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
@ RTE_CRYPTO_ASYM_XFORM_MODEX
@ RTE_CRYPTO_ASYM_XFORM_ECPM
@ RTE_CRYPTO_ASYM_XFORM_DH
@ RTE_CRYPTO_ASYM_XFORM_ECDH
@ RTE_CRYPTO_ASYM_XFORM_DSA
@ RTE_CRYPTO_ASYM_XFORM_RSA
@ RTE_CRYPTO_ASYM_XFORM_ECDSA
@ RTE_CRYPTO_ASYM_XFORM_MODINV
@ RTE_CRYPTO_ASYM_XFORM_ECFPM
const char * rte_crypto_asym_xform_strings[]
rte_crypto_asym_ke_type
@ RTE_CRYPTO_ASYM_KE_PRIV_KEY_GENERATE
@ RTE_CRYPTO_ASYM_KE_PUB_KEY_VERIFY
@ RTE_CRYPTO_ASYM_KE_PUB_KEY_GENERATE
@ RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE
const char * rte_crypto_asym_op_strings[]
struct rte_crypto_param_t rte_crypto_param
rte_crypto_rsa_padding_type
@ RTE_CRYPTO_RSA_PADDING_PKCS1_5
@ RTE_CRYPTO_RSA_PADDING_OAEP
@ RTE_CRYPTO_RSA_PADDING_NONE
@ RTE_CRYPTO_RSA_PADDING_PSS
rte_crypto_param rte_crypto_uint
rte_crypto_curve_id
const char * rte_crypto_asym_ke_strings[]
rte_crypto_rsa_priv_key_type
@ RTE_RSA_KEY_TYPE_QT
@ RTE_RSA_KEY_TYPE_EXP
rte_crypto_auth_algorithm
struct rte_cryptodev_asym_session * session
struct rte_crypto_asym_xform * xform
struct rte_crypto_dh_xform dh
struct rte_crypto_modex_xform modex
struct rte_crypto_modinv_xform modinv
struct rte_crypto_asym_xform * next
struct rte_crypto_rsa_xform rsa
struct rte_crypto_ec_xform ec
enum rte_crypto_asym_xform_type xform_type
struct rte_crypto_dsa_xform dsa
enum rte_crypto_asym_ke_type ke_type
rte_crypto_uint priv_key
rte_crypto_uint shared_secret
rte_crypto_uint pub_key
rte_crypto_uint g
rte_crypto_uint p
enum rte_crypto_asym_op_type op_type
rte_crypto_param message
rte_crypto_param y
rte_crypto_param x
enum rte_crypto_curve_id curve_id
enum rte_crypto_asym_ke_type ke_type
struct rte_crypto_ec_point shared_secret
struct rte_crypto_ec_point pub_key
enum rte_crypto_asym_op_type op_type
struct rte_crypto_ec_point q
struct rte_crypto_ec_point p
struct rte_crypto_ec_point r
rte_crypto_uint modulus
rte_crypto_uint exponent
enum rte_crypto_asym_op_type op_type
rte_crypto_param message
struct rte_crypto_rsa_padding padding
rte_crypto_param cipher
enum rte_crypto_auth_algorithm mgf1hash
rte_crypto_param oaep_label
enum rte_crypto_auth_algorithm hash
enum rte_crypto_rsa_padding_type type
struct rte_crypto_rsa_priv_key_qt qt