Sponsor:

Your company here, and a link to your site. Click to find out more.

rte_crypto_asym.h - Man Page

Synopsis

#include <string.h>
#include <stdint.h>
#include <rte_memory.h>
#include <rte_mempool.h>
#include <rte_common.h>
#include 'rte_crypto_sym.h'

Data Structures

struct rte_crypto_param_t
struct rte_crypto_ec_point
struct rte_crypto_rsa_priv_key_qt
struct rte_crypto_rsa_padding
struct rte_crypto_rsa_xform
struct rte_crypto_modex_xform
struct rte_crypto_modinv_xform
struct rte_crypto_dh_xform
struct rte_crypto_dsa_xform
struct rte_crypto_ec_xform
struct rte_crypto_mod_op_param
struct rte_crypto_rsa_op_param
struct rte_crypto_dh_op_param
struct rte_crypto_ecdh_op_param
struct rte_crypto_dsa_op_param
struct rte_crypto_ecdsa_op_param
struct rte_crypto_ecpm_op_param
struct rte_crypto_asym_xform
struct rte_crypto_sm2_op_param
struct rte_crypto_asym_op

Macros

#define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING   RTE_BIT32(0)
#define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING   RTE_BIT32(1)

Typedefs

typedef struct rte_crypto_param_t rte_crypto_param
typedef rte_crypto_param rte_crypto_uint

Enumerations

enum rte_crypto_curve_id
enum rte_crypto_asym_xform_type { RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED = 0, RTE_CRYPTO_ASYM_XFORM_NONE, RTE_CRYPTO_ASYM_XFORM_RSA, RTE_CRYPTO_ASYM_XFORM_DH, RTE_CRYPTO_ASYM_XFORM_DSA, RTE_CRYPTO_ASYM_XFORM_MODINV, RTE_CRYPTO_ASYM_XFORM_MODEX, RTE_CRYPTO_ASYM_XFORM_ECDSA, RTE_CRYPTO_ASYM_XFORM_ECDH, RTE_CRYPTO_ASYM_XFORM_ECPM, RTE_CRYPTO_ASYM_XFORM_ECFPM, RTE_CRYPTO_ASYM_XFORM_SM2, RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END }
enum rte_crypto_asym_op_type { RTE_CRYPTO_ASYM_OP_ENCRYPT, RTE_CRYPTO_ASYM_OP_DECRYPT, RTE_CRYPTO_ASYM_OP_SIGN, RTE_CRYPTO_ASYM_OP_VERIFY, RTE_CRYPTO_ASYM_OP_LIST_END }
enum rte_crypto_asym_ke_type { RTE_CRYPTO_ASYM_KE_PRIV_KEY_GENERATE, RTE_CRYPTO_ASYM_KE_PUB_KEY_GENERATE, RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE, RTE_CRYPTO_ASYM_KE_PUB_KEY_VERIFY }
enum rte_crypto_rsa_padding_type { RTE_CRYPTO_RSA_PADDING_NONE = 0, RTE_CRYPTO_RSA_PADDING_PKCS1_5, RTE_CRYPTO_RSA_PADDING_OAEP, RTE_CRYPTO_RSA_PADDING_PSS, RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END }
enum rte_crypto_rsa_priv_key_type { RTE_RSA_KEY_TYPE_EXP, RTE_RSA_KEY_TYPE_QT }

Variables

const char * rte_crypto_asym_ke_strings []
const char * rte_crypto_asym_op_strings []

Detailed Description

RTE Definitions for Asymmetric Cryptography

Defines asymmetric algorithms and modes, as well as supported asymmetric crypto operations.

Definition in file rte_crypto_asym.h.

Macro Definition Documentation

#define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING   RTE_BIT32(0)

Flag to denote public key will be returned without leading zero bytes and if the flag is not set, public key will be padded to the left with zeros to the size of the underlying algorithm (default)

Definition at line 40 of file rte_crypto_asym.h.

#define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING   RTE_BIT32(1)

Flag to denote shared secret will be returned without leading zero bytes and if the flag is not set, shared secret will be padded to the left with zeros to the size of the underlying algorithm (default)

Definition at line 46 of file rte_crypto_asym.h.

Typedef Documentation

typedef struct rte_crypto_param_t rte_crypto_param

Buffer to hold crypto params required for asym operations.

These buffers can be used for both input to PMD and output from PMD. When used for output from PMD, application has to ensure the buffer is large enough to hold the target data.

If an operation requires the PMD to generate a random number, and the device supports CSRNG, 'data' should be set to NULL. The crypto parameter in question will not be used by the PMD, as it is internally generated.

typedef rte_crypto_param rte_crypto_uint

Unsigned big-integer in big-endian format

Definition at line 211 of file rte_crypto_asym.h.

Enumeration Type Documentation

enum rte_crypto_curve_id

List of elliptic curves. This enum aligns with TLS 'Supported Groups' registry (previously known as NamedCurve registry). FFDH groups are not, and will not be included in this list. Deprecation for selected curve in TLS does not deprecate the selected curve in Cryptodev. https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml

Definition at line 62 of file rte_crypto_asym.h.

enum rte_crypto_asym_xform_type

Asymmetric crypto transformation types. Each xform type maps to one asymmetric algorithm performing specific operation

Enumerator

RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED

Invalid xform.

RTE_CRYPTO_ASYM_XFORM_NONE

Xform type None. May be supported by PMD to support passthrough op for debugging purpose. if xform_type none , op_type is disregarded.

RTE_CRYPTO_ASYM_XFORM_RSA

RSA. Performs Encrypt, Decrypt, Sign and Verify. Refer to rte_crypto_asym_op_type

RTE_CRYPTO_ASYM_XFORM_DH

Diffie-Hellman. Performs Key Generate and Shared Secret Compute. Refer to rte_crypto_asym_op_type

RTE_CRYPTO_ASYM_XFORM_DSA

Digital Signature Algorithm Performs Signature Generation and Verification. Refer to rte_crypto_asym_op_type

RTE_CRYPTO_ASYM_XFORM_MODINV

Modular Multiplicative Inverse Perform Modular Multiplicative Inverse b^(-1) mod n

RTE_CRYPTO_ASYM_XFORM_MODEX

Modular Exponentiation Perform Modular Exponentiation b^e mod n

RTE_CRYPTO_ASYM_XFORM_ECDSA

Elliptic Curve Digital Signature Algorithm Perform Signature Generation and Verification.

RTE_CRYPTO_ASYM_XFORM_ECDH

Elliptic Curve Diffie Hellman

RTE_CRYPTO_ASYM_XFORM_ECPM

Elliptic Curve Point Multiplication

RTE_CRYPTO_ASYM_XFORM_ECFPM

Elliptic Curve Fixed Point Multiplication

RTE_CRYPTO_ASYM_XFORM_SM2

ShangMi 2 Performs Encrypt, Decrypt, Sign and Verify. Refer to rte_crypto_asym_op_type.

RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END

End of list

Definition at line 76 of file rte_crypto_asym.h.

enum rte_crypto_asym_op_type

Asymmetric crypto operation type variants

Enumerator

RTE_CRYPTO_ASYM_OP_ENCRYPT

Asymmetric Encrypt operation

RTE_CRYPTO_ASYM_OP_DECRYPT

Asymmetric Decrypt operation

RTE_CRYPTO_ASYM_OP_SIGN

Signature Generation operation

RTE_CRYPTO_ASYM_OP_VERIFY

Signature Verification operation

Definition at line 129 of file rte_crypto_asym.h.

enum rte_crypto_asym_ke_type

Asymmetric crypto key exchange operation type

Enumerator

RTE_CRYPTO_ASYM_KE_PRIV_KEY_GENERATE

Private Key generation operation

RTE_CRYPTO_ASYM_KE_PUB_KEY_GENERATE

Public Key generation operation

RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE

Shared Secret compute operation

RTE_CRYPTO_ASYM_KE_PUB_KEY_VERIFY

Public Key Verification - can be used for elliptic curve point validation.

Definition at line 144 of file rte_crypto_asym.h.

enum rte_crypto_rsa_padding_type

Padding types for RSA signature.

Enumerator

RTE_CRYPTO_RSA_PADDING_NONE

RSA no padding scheme

RTE_CRYPTO_RSA_PADDING_PKCS1_5

RSA PKCS#1 PKCS1-v1_5 padding scheme. For signatures block type 01, for encryption block type 02 are used.

RTE_CRYPTO_RSA_PADDING_OAEP

RSA PKCS#1 OAEP padding scheme

RTE_CRYPTO_RSA_PADDING_PSS

RSA PKCS#1 PSS padding scheme

Definition at line 160 of file rte_crypto_asym.h.

enum rte_crypto_rsa_priv_key_type

RSA private key type enumeration

enumerates private key format required to perform RSA crypto transform.

Enumerator

RTE_RSA_KEY_TYPE_EXP

RSA private key is an exponent

RTE_RSA_KEY_TYPE_QT

RSA private key is in quintuple format See rte_crypto_rsa_priv_key_qt

Definition at line 180 of file rte_crypto_asym.h.

Variable Documentation

const char* rte_crypto_asym_ke_strings[] [extern]

asym key exchange operation type name strings

const char* rte_crypto_asym_op_strings[] [extern]

asym operations type name strings

Author

Generated automatically by Doxygen for DPDK from the source code.

Referenced By

The man pages RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING(3), RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING(3), RTE_CRYPTO_ASYM_KE_PRIV_KEY_GENERATE(3), RTE_CRYPTO_ASYM_KE_PUB_KEY_GENERATE(3), RTE_CRYPTO_ASYM_KE_PUB_KEY_VERIFY(3), RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE(3), rte_crypto_asym_ke_strings(3), rte_crypto_asym_ke_type(3), RTE_CRYPTO_ASYM_OP_DECRYPT(3), RTE_CRYPTO_ASYM_OP_ENCRYPT(3), RTE_CRYPTO_ASYM_OP_SIGN(3), rte_crypto_asym_op_strings(3), rte_crypto_asym_op_type(3), RTE_CRYPTO_ASYM_OP_VERIFY(3), RTE_CRYPTO_ASYM_XFORM_DH(3), RTE_CRYPTO_ASYM_XFORM_DSA(3), RTE_CRYPTO_ASYM_XFORM_ECDH(3), RTE_CRYPTO_ASYM_XFORM_ECDSA(3), RTE_CRYPTO_ASYM_XFORM_ECFPM(3), RTE_CRYPTO_ASYM_XFORM_ECPM(3), RTE_CRYPTO_ASYM_XFORM_MODEX(3), RTE_CRYPTO_ASYM_XFORM_MODINV(3), RTE_CRYPTO_ASYM_XFORM_NONE(3), RTE_CRYPTO_ASYM_XFORM_RSA(3), RTE_CRYPTO_ASYM_XFORM_SM2(3), rte_crypto_asym_xform_type(3), RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END(3), RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED(3), rte_crypto_curve_id(3), rte_crypto_param(3), RTE_CRYPTO_RSA_PADDING_NONE(3), RTE_CRYPTO_RSA_PADDING_OAEP(3), RTE_CRYPTO_RSA_PADDING_PKCS1_5(3), RTE_CRYPTO_RSA_PADDING_PSS(3), rte_crypto_rsa_padding_type(3), rte_crypto_rsa_priv_key_type(3), rte_crypto_uint(3), RTE_RSA_KEY_TYPE_EXP(3) and RTE_RSA_KEY_TYPE_QT(3) are aliases of rte_crypto_asym.h(3).

Version 23.11.0 DPDK