rte_crypto_sym.h(3) | DPDK | rte_crypto_sym.h(3) |
NAME¶
rte_crypto_sym.h
SYNOPSIS¶
#include <string.h>
#include <rte_compat.h>
#include <rte_mbuf.h>
#include <rte_memory.h>
#include <rte_mempool.h>
#include <rte_common.h>
Data Structures¶
struct rte_crypto_vec
struct rte_crypto_sgl
struct rte_crypto_va_iova_ptr
struct rte_crypto_sym_vec
union rte_crypto_sym_ofs
struct rte_crypto_cipher_xform
struct rte_crypto_auth_xform
struct rte_crypto_sym_xform
struct rte_crypto_sym_op
Enumerations¶
enum rte_crypto_cipher_algorithm {
RTE_CRYPTO_CIPHER_NULL = 1, RTE_CRYPTO_CIPHER_3DES_CBC,
RTE_CRYPTO_CIPHER_3DES_CTR, RTE_CRYPTO_CIPHER_3DES_ECB,
RTE_CRYPTO_CIPHER_AES_CBC, RTE_CRYPTO_CIPHER_AES_CTR,
RTE_CRYPTO_CIPHER_AES_ECB, RTE_CRYPTO_CIPHER_AES_F8,
RTE_CRYPTO_CIPHER_AES_XTS, RTE_CRYPTO_CIPHER_ARC4,
RTE_CRYPTO_CIPHER_KASUMI_F8, RTE_CRYPTO_CIPHER_SNOW3G_UEA2,
RTE_CRYPTO_CIPHER_ZUC_EEA3, RTE_CRYPTO_CIPHER_DES_CBC,
RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
RTE_CRYPTO_CIPHER_DES_DOCSISBPI, RTE_CRYPTO_CIPHER_SM4_ECB,
RTE_CRYPTO_CIPHER_SM4_CBC, RTE_CRYPTO_CIPHER_SM4_CTR,
RTE_CRYPTO_CIPHER_SM4_OFB, RTE_CRYPTO_CIPHER_SM4_CFB }
enum rte_crypto_cipher_operation { RTE_CRYPTO_CIPHER_OP_ENCRYPT,
RTE_CRYPTO_CIPHER_OP_DECRYPT }
enum rte_crypto_auth_algorithm { RTE_CRYPTO_AUTH_NULL = 1,
RTE_CRYPTO_AUTH_AES_CBC_MAC, RTE_CRYPTO_AUTH_AES_CMAC,
RTE_CRYPTO_AUTH_AES_GMAC, RTE_CRYPTO_AUTH_AES_XCBC_MAC,
RTE_CRYPTO_AUTH_KASUMI_F9, RTE_CRYPTO_AUTH_MD5,
RTE_CRYPTO_AUTH_MD5_HMAC, RTE_CRYPTO_AUTH_SHA1,
RTE_CRYPTO_AUTH_SHA1_HMAC, RTE_CRYPTO_AUTH_SHA224,
RTE_CRYPTO_AUTH_SHA224_HMAC, RTE_CRYPTO_AUTH_SHA256,
RTE_CRYPTO_AUTH_SHA256_HMAC, RTE_CRYPTO_AUTH_SHA384,
RTE_CRYPTO_AUTH_SHA384_HMAC, RTE_CRYPTO_AUTH_SHA512,
RTE_CRYPTO_AUTH_SHA512_HMAC, RTE_CRYPTO_AUTH_SNOW3G_UIA2,
RTE_CRYPTO_AUTH_ZUC_EIA3, RTE_CRYPTO_AUTH_SHA3_224,
RTE_CRYPTO_AUTH_SHA3_224_HMAC, RTE_CRYPTO_AUTH_SHA3_256,
RTE_CRYPTO_AUTH_SHA3_256_HMAC, RTE_CRYPTO_AUTH_SHA3_384,
RTE_CRYPTO_AUTH_SHA3_384_HMAC, RTE_CRYPTO_AUTH_SHA3_512,
RTE_CRYPTO_AUTH_SHA3_512_HMAC, RTE_CRYPTO_AUTH_SM3,
RTE_CRYPTO_AUTH_SHAKE_128, RTE_CRYPTO_AUTH_SHAKE_256 }
enum rte_crypto_auth_operation { RTE_CRYPTO_AUTH_OP_VERIFY,
RTE_CRYPTO_AUTH_OP_GENERATE }
enum rte_crypto_aead_algorithm { RTE_CRYPTO_AEAD_AES_CCM = 1,
RTE_CRYPTO_AEAD_AES_GCM, RTE_CRYPTO_AEAD_CHACHA20_POLY1305 }
enum rte_crypto_aead_operation { RTE_CRYPTO_AEAD_OP_ENCRYPT,
RTE_CRYPTO_AEAD_OP_DECRYPT }
enum rte_crypto_sym_xform_type {
RTE_CRYPTO_SYM_XFORM_NOT_SPECIFIED = 0,
RTE_CRYPTO_SYM_XFORM_AUTH, RTE_CRYPTO_SYM_XFORM_CIPHER,
RTE_CRYPTO_SYM_XFORM_AEAD }
Functions¶
static void __rte_crypto_sym_op_reset (struct
rte_crypto_sym_op *op)
static struct rte_crypto_sym_xform *
__rte_crypto_sym_op_sym_xforms_alloc (struct rte_crypto_sym_op
*sym_op, void *priv_data, uint8_t nb_xforms)
static int __rte_crypto_sym_op_attach_sym_session (struct
rte_crypto_sym_op *sym_op, void *sess)
static __rte_experimental int rte_crypto_mbuf_to_vec (const struct
rte_mbuf *mb, uint32_t ofs, uint32_t len, struct
rte_crypto_vec vec[], uint32_t num)
Variables¶
const char * rte_crypto_cipher_operation_strings []
const char * rte_crypto_auth_operation_strings []
const char * rte_crypto_aead_operation_strings []
Detailed Description¶
RTE Definitions for Symmetric Cryptography
Defines symmetric cipher and authentication algorithms and modes, as well as supported symmetric crypto operation combinations.
Definition in file rte_crypto_sym.h.
Enumeration Type Documentation¶
enum rte_crypto_cipher_algorithm¶
Symmetric Cipher Algorithms
Note, to avoid ABI breakage across releases
- LIST_END should not be added to this enum
- the order of enums should not be changed
- new algorithms should only be added to the end
Enumerator
- RTE_CRYPTO_CIPHER_NULL
- NULL cipher algorithm. No mode applies to the NULL algorithm.
- RTE_CRYPTO_CIPHER_3DES_CBC
- Triple DES algorithm in CBC mode
- RTE_CRYPTO_CIPHER_3DES_CTR
- Triple DES algorithm in CTR mode
- RTE_CRYPTO_CIPHER_3DES_ECB
- Triple DES algorithm in ECB mode
- RTE_CRYPTO_CIPHER_AES_CBC
- AES algorithm in CBC mode
- RTE_CRYPTO_CIPHER_AES_CTR
- AES algorithm in Counter mode
- RTE_CRYPTO_CIPHER_AES_ECB
- AES algorithm in ECB mode
- RTE_CRYPTO_CIPHER_AES_F8
- AES algorithm in F8 mode
- RTE_CRYPTO_CIPHER_AES_XTS
- AES algorithm in XTS mode
- RTE_CRYPTO_CIPHER_ARC4
- (A)RC4 cipher algorithm
- RTE_CRYPTO_CIPHER_KASUMI_F8
- KASUMI algorithm in F8 mode
- RTE_CRYPTO_CIPHER_SNOW3G_UEA2
- SNOW 3G algorithm in UEA2 mode
- RTE_CRYPTO_CIPHER_ZUC_EEA3
- ZUC algorithm in EEA3 mode
- RTE_CRYPTO_CIPHER_DES_CBC
- DES algorithm in CBC mode
- RTE_CRYPTO_CIPHER_AES_DOCSISBPI
- AES algorithm using modes required by DOCSIS Baseline Privacy Plus Spec. Chained mbufs are not supported in this mode, i.e. rte_mbuf.next for m_src and m_dst in the rte_crypto_sym_op must be NULL.
- RTE_CRYPTO_CIPHER_DES_DOCSISBPI
- DES algorithm using modes required by DOCSIS Baseline Privacy Plus Spec. Chained mbufs are not supported in this mode, i.e. rte_mbuf.next for m_src and m_dst in the rte_crypto_sym_op must be NULL.
- RTE_CRYPTO_CIPHER_SM4_ECB
- ShangMi 4 (SM4) algorithm in ECB mode
- RTE_CRYPTO_CIPHER_SM4_CBC
- ShangMi 4 (SM4) algorithm in CBC mode
- RTE_CRYPTO_CIPHER_SM4_CTR
- ShangMi 4 (SM4) algorithm in CTR mode
- RTE_CRYPTO_CIPHER_SM4_OFB
- ShangMi 4 (SM4) algorithm in OFB mode
- RTE_CRYPTO_CIPHER_SM4_CFB
- ShangMi 4 (SM4) algorithm in CFB mode
Definition at line 120 of file rte_crypto_sym.h.
enum rte_crypto_cipher_operation¶
Symmetric Cipher Direction
Enumerator
- RTE_CRYPTO_CIPHER_OP_ENCRYPT
- Encrypt cipher operation
- RTE_CRYPTO_CIPHER_OP_DECRYPT
- Decrypt cipher operation
Definition at line 184 of file rte_crypto_sym.h.
enum rte_crypto_auth_algorithm¶
Symmetric Authentication / Hash Algorithms
Note, to avoid ABI breakage across releases
- LIST_END should not be added to this enum
- the order of enums should not be changed
- new algorithms should only be added to the end
Enumerator
- RTE_CRYPTO_AUTH_NULL
- NULL hash algorithm.
- RTE_CRYPTO_AUTH_AES_CBC_MAC
- AES-CBC-MAC algorithm. Only 128-bit keys are supported.
- RTE_CRYPTO_AUTH_AES_CMAC
- AES CMAC algorithm.
- RTE_CRYPTO_AUTH_AES_GMAC
- AES GMAC algorithm.
- RTE_CRYPTO_AUTH_AES_XCBC_MAC
- AES XCBC algorithm.
- RTE_CRYPTO_AUTH_KASUMI_F9
- KASUMI algorithm in F9 mode.
- RTE_CRYPTO_AUTH_MD5
- MD5 algorithm
- RTE_CRYPTO_AUTH_MD5_HMAC
- HMAC using MD5 algorithm
- RTE_CRYPTO_AUTH_SHA1
- 160 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA1_HMAC
- HMAC using 160 bit SHA algorithm. HMAC-SHA-1-96 can be generated by setting digest_length to 12 bytes in auth/aead xforms.
- RTE_CRYPTO_AUTH_SHA224
- 224 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA224_HMAC
- HMAC using 224 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA256
- 256 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA256_HMAC
- HMAC using 256 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA384
- 384 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA384_HMAC
- HMAC using 384 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA512
- 512 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SHA512_HMAC
- HMAC using 512 bit SHA algorithm.
- RTE_CRYPTO_AUTH_SNOW3G_UIA2
- SNOW 3G algorithm in UIA2 mode.
- RTE_CRYPTO_AUTH_ZUC_EIA3
- ZUC algorithm in EIA3 mode
- RTE_CRYPTO_AUTH_SHA3_224
- 224 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_224_HMAC
- HMAC using 224 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_256
- 256 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_256_HMAC
- HMAC using 256 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_384
- 384 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_384_HMAC
- HMAC using 384 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_512
- 512 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SHA3_512_HMAC
- HMAC using 512 bit SHA3 algorithm.
- RTE_CRYPTO_AUTH_SM3
- ShangMi 3 (SM3) algorithm
- RTE_CRYPTO_AUTH_SHAKE_128
- 128 bit SHAKE algorithm.
- RTE_CRYPTO_AUTH_SHAKE_256
- 256 bit SHAKE algorithm.
Definition at line 309 of file rte_crypto_sym.h.
enum rte_crypto_auth_operation¶
Symmetric Authentication / Hash Operations
Enumerator
- RTE_CRYPTO_AUTH_OP_VERIFY
- Verify authentication digest
- RTE_CRYPTO_AUTH_OP_GENERATE
- Generate authentication digest
Definition at line 388 of file rte_crypto_sym.h.
enum rte_crypto_aead_algorithm¶
Symmetric AEAD Algorithms
Note, to avoid ABI breakage across releases
- LIST_END should not be added to this enum
- the order of enums should not be changed
- new algorithms should only be added to the end
Enumerator
- RTE_CRYPTO_AEAD_AES_CCM
- AES algorithm in CCM mode.
- RTE_CRYPTO_AEAD_AES_GCM
- AES algorithm in GCM mode.
- RTE_CRYPTO_AEAD_CHACHA20_POLY1305
- Chacha20 cipher with poly1305 authenticator
Definition at line 478 of file rte_crypto_sym.h.
enum rte_crypto_aead_operation¶
Symmetric AEAD Operations
Enumerator
- RTE_CRYPTO_AEAD_OP_ENCRYPT
- Encrypt and generate digest
- RTE_CRYPTO_AEAD_OP_DECRYPT
- Verify digest and decrypt
Definition at line 488 of file rte_crypto_sym.h.
enum rte_crypto_sym_xform_type¶
Crypto transformation types
Enumerator
- RTE_CRYPTO_SYM_XFORM_NOT_SPECIFIED
- No xform specified
- RTE_CRYPTO_SYM_XFORM_AUTH
- Authentication xform
- RTE_CRYPTO_SYM_XFORM_CIPHER
- Cipher xform
- RTE_CRYPTO_SYM_XFORM_AEAD
- AEAD xform
Definition at line 560 of file rte_crypto_sym.h.
Function Documentation¶
static void __rte_crypto_sym_op_reset (struct rte_crypto_sym_op * op) [inline], [static]¶
Reset the fields of a symmetric operation to their default values.
Parameters:
Definition at line 883 of file rte_crypto_sym.h.
static struct rte_crypto_sym_xform* __rte_crypto_sym_op_sym_xforms_alloc (struct rte_crypto_sym_op * sym_op, void * priv_data, uint8_t nb_xforms) [inline], [static]¶
Allocate space for symmetric crypto xforms in the private data space of the crypto operation. This also defaults the crypto xform type to RTE_CRYPTO_SYM_XFORM_NOT_SPECIFIED and configures the chaining of the xforms in the crypto operation
Returns:
- On success returns pointer to first crypto xform in crypto operations chain
- On failure returns NULL
Definition at line 900 of file rte_crypto_sym.h.
static int __rte_crypto_sym_op_attach_sym_session (struct rte_crypto_sym_op * sym_op, void * sess) [inline], [static]¶
Attach a session to a symmetric crypto operation
Parameters:
sess cryptodev session
Definition at line 923 of file rte_crypto_sym.h.
static __rte_experimental int rte_crypto_mbuf_to_vec (const struct rte_mbuf * mb, uint32_t ofs, uint32_t len, struct rte_crypto_vec vec[], uint32_t num) [inline], [static]¶
Converts portion of mbuf data into a vector representation. Each segment will be represented as a separate entry in vec array. Expects that provided ofs + len not to exceed mbuf's pkt_len.
Parameters:
ofs Offset within mbuf data to start with.
len Length of data to represent.
vec Pointer to an output array of IO vectors.
num Size of an output array.
Returns:
- number of successfully filled entries in vec array.
- negative number of elements in vec array required.
Definition at line 950 of file rte_crypto_sym.h.
Variable Documentation¶
const char* rte_crypto_cipher_operation_strings[]¶
Cipher operation name strings
const char* rte_crypto_auth_operation_strings[]¶
Authentication operation name strings
const char* rte_crypto_aead_operation_strings[]¶
Authentication operation name strings
Author¶
Generated automatically by Doxygen for DPDK from the source code.
Thu May 23 2024 | Version 23.11.0 |