Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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,
	   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,
	   RTE_CRYPTO_AEAD_SM4_GCM }
       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

       RTE_CRYPTO_AEAD_SM4_GCM
	      SM4 cipher in GCM	mode

       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 492 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 564 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 887 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 904 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 927 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 954 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.

Version	25.11.0			Thu Jun	11 2026		   rte_crypto_sym.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_crypto_auth_algorithm&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help