API Reference Manual  1.45.0
odp_ipsec_crypto_param_t Struct Reference

IPSEC crypto parameters. More...

#include <ipsec_types.h>

Collaboration diagram for odp_ipsec_crypto_param_t:
[legend]

Data Fields

odp_cipher_alg_t cipher_alg
 Cipher algorithm. More...
 
odp_crypto_key_t cipher_key
 Cipher key.
 
odp_crypto_key_t cipher_key_extra
 Extra keying material for cipher algorithm. More...
 
odp_auth_alg_t auth_alg
 Authentication algorithm. More...
 
odp_crypto_key_t auth_key
 Authentication key.
 
odp_crypto_key_t auth_key_extra
 Extra keying material for authentication algorithm. More...
 
uint32_t icv_len
 Length of integrity check value (ICV) in bytes. More...
 

Detailed Description

IPSEC crypto parameters.

Examples
odp_ipsec.c.

Definition at line 521 of file api/spec/ipsec_types.h.

Field Documentation

◆ cipher_alg

odp_cipher_alg_t odp_ipsec_crypto_param_t::cipher_alg

Cipher algorithm.

Select cipher algorithm to be used. ODP_CIPHER_ALG_NULL indicates that ciphering is disabled. See 'ciphers' field of odp_ipsec_capability_t for supported cipher algorithms. Algorithm descriptions can be found from odp_cipher_alg_t documentation. Note that some algorithms restrict choice of the pairing authentication algorithm. When ciphering is enabled, cipher key and potential extra key material (cipher_key_extra) need to be set. The default value is ODP_CIPHER_ALG_NULL.

Examples
odp_ipsec.c.

Definition at line 533 of file api/spec/ipsec_types.h.

◆ cipher_key_extra

odp_crypto_key_t odp_ipsec_crypto_param_t::cipher_key_extra

Extra keying material for cipher algorithm.

Additional data used as salt or nonce if the algorithm requires it, other algorithms ignore this field. These algorithms require this field to be set:

  • ODP_CIPHER_ALG_AES_CTR: 4 bytes of nonce
  • ODP_CIPHER_ALG_AES_GCM: 4 bytes of salt
  • ODP_CIPHER_ALG_AES_CCM: 3 bytes of salt
  • ODP_CIPHER_ALG_CHACHA20_POLY1305: 4 bytes of salt

Definition at line 548 of file api/spec/ipsec_types.h.

◆ auth_alg

odp_auth_alg_t odp_ipsec_crypto_param_t::auth_alg

Authentication algorithm.

Select authentication algorithm to be used. ODP_AUTH_ALG_NULL indicates that authentication is disabled. See 'auths' field of odp_ipsec_capability_t for supported authentication algorithms. Algorithm descriptions can be found from odp_auth_alg_t documentation. Note that some algorithms restrict choice of the pairing cipher algorithm. When single algorithm provides both ciphering and authentication (i.e. Authenticated Encryption), authentication side key information ('auth_key' and 'auth_key_extra') is ignored, and cipher side values are used instead. These algorithms ignore authentication side key information: ODP_AUTH_ALG_AES_GCM, ODP_AUTH_ALG_AES_CCM and ODP_AUTH_ALG_CHACHA20_POLY1305. Otherwise, authentication side parameters must be set when authentication is enabled. The default value is ODP_AUTH_ALG_NULL.

Definition at line 567 of file api/spec/ipsec_types.h.

◆ auth_key_extra

odp_crypto_key_t odp_ipsec_crypto_param_t::auth_key_extra

Extra keying material for authentication algorithm.

Additional data used as salt or nonce if the algorithm requires it, other algorithms ignore this field. These algorithms require this field to be set:

  • ODP_AUTH_ALG_AES_GMAC: 4 bytes of salt

Definition at line 579 of file api/spec/ipsec_types.h.

◆ icv_len

uint32_t odp_ipsec_crypto_param_t::icv_len

Length of integrity check value (ICV) in bytes.

Some algorithms support multiple ICV lengths when used with IPsec. This field can be used to select a non-default ICV length.

Zero value indicates that the default ICV length shall be used. The default length depends on the selected algorithm as follows:

Algorithm Default length Other lengths

ODP_AUTH_ALG_NULL 0 ODP_AUTH_ALG_MD5_HMAC 12 ODP_AUTH_ALG_SHA1_HMAC 12 ODP_AUTH_ALG_SHA256_HMAC 16 ODP_AUTH_ALG_SHA384_HMAC 24 ODP_AUTH_ALG_SHA512_HMAC 32 ODP_AUTH_ALG_AES_GCM 16 8, 12 ODP_AUTH_ALG_AES_GMAC 16 ODP_AUTH_ALG_AES_CCM 16 8, 12 ODP_AUTH_ALG_AES_CMAC 12 ODP_AUTH_ALG_AES_XCBC_MAC 12 ODP_AUTH_ALG_CHACHA20_POLY1305 16

The requested ICV length must be supported for the selected algorithm as indicated by odp_ipsec_auth_capability().

The default value is 0.

Definition at line 610 of file api/spec/ipsec_types.h.


The documentation for this struct was generated from the following file: