DPDK  20.05.0
Data Fields
rte_crypto_auth_xform Struct Reference

#include <rte_crypto_sym.h>

Data Fields

enum rte_crypto_auth_operation op
 
enum rte_crypto_auth_algorithm algo
 
struct {
   const uint8_t *   data
 
   uint16_t   length
 
key
 
struct {
   uint16_t   offset
 
   uint16_t   length
 
iv
 
uint16_t digest_length
 

Detailed Description

Authentication / Hash transform data.

This structure contains data relating to an authentication/hash crypto transforms. The fields op, algo and digest_length are common to all authentication transforms and MUST be set.

Examples:
examples/fips_validation/fips_dev_self_test.c, and examples/fips_validation/main.c.

Definition at line 342 of file rte_crypto_sym.h.

Field Documentation

Authentication operation type

Examples:
examples/fips_validation/fips_dev_self_test.c, examples/fips_validation/main.c, and examples/ip_pipeline/cli.c.

Definition at line 343 of file rte_crypto_sym.h.

Authentication algorithm selection

Examples:
examples/fips_validation/fips_dev_self_test.c, examples/fips_validation/main.c, and examples/ip_pipeline/cli.c.

Definition at line 345 of file rte_crypto_sym.h.

const uint8_t* data
uint16_t length

key length in bytes

Length of valid IV data.

  • For SNOW3G in UIA2 mode, for ZUC in EIA3 mode and for AES-GMAC, this is the length of the IV.
  • For KASUMI in F9 mode and other authentication algorithms, this field is not used.
  • For GMAC mode, this is either: 1) Number greater or equal to one, which means that IV is used and J0 will be computed internally, a minimum of 16 bytes must be allocated. 2) Zero, in which case data points to J0. In this case 16 bytes of J0 should be passed where J0 is defined by NIST SP800-38D.
Examples:
examples/fips_validation/fips_dev_self_test.c, examples/fips_validation/main.c, and examples/ip_pipeline/cli.c.

Definition at line 350 of file rte_crypto_sym.h.

struct { ... } key

Authentication key data. The authentication key length MUST be less than or equal to the block size of the algorithm. It is the callers responsibility to ensure that the key length is compliant with the standard being used (for example RFC 2104, FIPS 198a).

Examples:
examples/fips_validation/fips_dev_self_test.c, examples/fips_validation/main.c, and examples/ip_pipeline/cli.c.
uint16_t offset

Starting point for Initialisation Vector or Counter, specified as number of bytes from start of crypto operation (rte_crypto_op).

  • For SNOW 3G in UIA2 mode, for ZUC in EIA3 mode this is the authentication Initialisation Vector (IV) value. For AES-GMAC IV description please refer to the field length in iv struct.
  • For KASUMI in F9 mode and other authentication algorithms, this field is not used.

For optimum performance, the data pointed to SHOULD be 8-byte aligned.

Definition at line 360 of file rte_crypto_sym.h.

struct { ... } iv

Initialisation vector parameters

uint16_t digest_length

Length of the digest to be returned. If the verify option is set, this specifies the length of the digest to be compared for the session.

It is the caller's responsibility to ensure that the digest length is compliant with the hash algorithm being used. If the value is less than the maximum length allowed by the hash, the result shall be truncated.

Examples:
examples/fips_validation/fips_dev_self_test.c, examples/fips_validation/main.c, and examples/ip_pipeline/cli.c.

Definition at line 396 of file rte_crypto_sym.h.


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