DPDK  20.11.6
Data Structures | Typedefs | Enumerations | Variables
rte_crypto_asym.h File Reference
#include <string.h>
#include <stdint.h>
#include <rte_memory.h>
#include <rte_mempool.h>
#include <rte_common.h>
#include "rte_crypto_sym.h"

Go to the source code of this file.

Data Structures

struct  rte_crypto_param_t
 
struct  rte_crypto_rsa_priv_key_qt
 
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_point
 
struct  rte_crypto_ec_xform
 
struct  rte_crypto_mod_op_param
 
struct  rte_crypto_asym_xform
 
struct  rte_crypto_rsa_op_param
 
struct  rte_crypto_dh_op_param
 
struct  rte_crypto_dsa_op_param
 
struct  rte_crypto_ecdsa_op_param
 
struct  rte_crypto_ecpm_op_param
 
struct  rte_crypto_asym_op
 

Typedefs

typedef struct rte_crypto_param_t rte_crypto_param
 

Enumerations

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_ECPM, 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_PRIVATE_KEY_GENERATE, RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE, RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE
}
 
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 }
 
enum  rte_crypto_rsa_priv_key_type { RTE_RSA_KEY_TYPE_EXP, RTE_RSA_KEY_TYPE_QT, RTE_RSA_KET_TYPE_QT = RTE_RSA_KEY_TYPE_QT }
 
enum  rte_crypto_ec_group
 

Variables

const char * rte_crypto_asym_xform_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.

Typedef Documentation

◆ 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.

Enumeration Type Documentation

◆ 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_ECPM 

Elliptic Curve Point Multiplication

RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END 

End of list

Definition at line 60 of file rte_crypto_asym.h.

◆ 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

RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE 

DH Private Key generation operation

RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE 

DH Public Key generation operation

RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE 

DH Shared Secret compute operation

Definition at line 104 of file rte_crypto_asym.h.

◆ 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 125 of file rte_crypto_asym.h.

◆ 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

RTE_RSA_KET_TYPE_QT 

Backward-compatible definition of old name

Definition at line 146 of file rte_crypto_asym.h.

◆ rte_crypto_ec_group

TLS named curves https://tools.ietf.org/html/rfc8422

Definition at line 340 of file rte_crypto_asym.h.

Variable Documentation

◆ rte_crypto_asym_xform_strings

const char* rte_crypto_asym_xform_strings[]

asym xform type name strings

◆ rte_crypto_asym_op_strings

const char* rte_crypto_asym_op_strings[]

asym operations type name strings