Provided by: dpdk-doc_24.11.2-2_all 

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, RTE_CRYPTO_CIPHER_SM4_XTS } 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, RTE_CRYPTO_AUTH_SM3_HMAC } 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 RTE_CRYPTO_CIPHER_SM4_XTS ShangMi 4 (SM4) algorithm in XTS 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 186 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 311 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 390 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 480 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 490 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 562 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 op The crypto operation to be reset. Definition at line 885 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 902 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 sym_op crypto operation sess cryptodev session Definition at line 925 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 mb Pointer to the rte_mbuf object. 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 952 of file rte_crypto_sym.h.
Variable Documentation
const char* rte_crypto_cipher_operation_strings[] [extern] Cipher operation name strings const char* rte_crypto_auth_operation_strings[] [extern] Authentication operation name strings const char* rte_crypto_aead_operation_strings[] [extern] Authentication operation name strings
Author
Generated automatically by Doxygen for DPDK from the source code. DPDK Version 24.11.2 rte_crypto_sym.h(3)