---
name: "rte_crypto_auth_xform"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_crypto_auth_xform"
---

# rte\_crypto\_auth\_xform(3)

## NAME

rte\_crypto\_auth\_xform

## SYNOPSIS

`#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.

Definition at line **406** of file **rte\_crypto\_sym.h**.

## Field Documentation

### enum rte\_crypto\_auth\_operation op

Authentication operation type

Definition at line **407** of file **rte\_crypto\_sym.h**.

### enum rte\_crypto\_auth\_algorithm algo

Authentication algorithm selection

Definition at line **409** of file **rte\_crypto\_sym.h**.

### const uint8\_t\* data

pointer to key data

Definition at line **413** of file **rte\_crypto\_sym.h**.

### 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.

Definition at line **414** 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).

### 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 **424** 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.

Definition at line **460** of file **rte\_crypto\_sym.h**.

## Author

Generated automatically by Doxygen for DPDK from the source code.
