intel-ipsec-mb v1.4
Documentation of the Intel(R) IPSec Multi-Buffer library
 
Loading...
Searching...
No Matches
IMB_JOB Struct Reference

#include <intel-ipsec-mb.h>

Data Fields

const void * enc_keys
 
const void * dec_keys
 
uint64_t key_len_in_bytes
 
union { 
 
   const uint8_t *   src 
 
   const struct IMB_SGL_IOV *   sgl_io_segs 
 
};  
 
union { 
 
   uint8_t *   dst 
 
   uint64_t   num_sgl_io_segs 
 
};  
 
union { 
 
   uint64_t   cipher_start_src_offset_in_bytes 
 
   uint64_t   cipher_start_src_offset_in_bits 
 
   uint64_t   cipher_start_offset_in_bits 
 
};  
 
union { 
 
   uint64_t   msg_len_to_cipher_in_bytes 
 
   uint64_t   msg_len_to_cipher_in_bits 
 
};  
 
uint64_t hash_start_src_offset_in_bytes
 
union { 
 
   uint64_t   msg_len_to_hash_in_bytes 
 
   uint64_t   msg_len_to_hash_in_bits 
 
};  
 
const uint8_t * iv
 
uint64_t iv_len_in_bytes
 
uint8_t * auth_tag_output
 
uint64_t auth_tag_output_len_in_bytes
 
union { 
 
   struct _HMAC_specific_fields
 
      const uint8_t *   _hashed_auth_key_xor_ipad 
 
      const uint8_t *   _hashed_auth_key_xor_opad 
 
   }   HMAC 
 
   struct _AES_XCBC_specific_fields
 
      const uint32_t *   _k1_expanded 
 
      const uint8_t *   _k2 
 
      const uint8_t *   _k3 
 
   }   XCBC 
 
   struct _AES_CCM_specific_fields
 
      const void *   aad 
 
      uint64_t   aad_len_in_bytes 
 
   }   CCM 
 
   struct _AES_CMAC_specific_fields
 
      const void *   _key_expanded 
 
      const void *   _skey1 
 
      const void *   _skey2 
 
   }   CMAC 
 
   struct _AES_GCM_specific_fields
 
      const void *   aad 
 
      uint64_t   aad_len_in_bytes 
 
      struct gcm_context_data *   ctx 
 
   }   GCM 
 
   struct _ZUC_EIA3_specific_fields
 
      const uint8_t *   _key 
 
      const uint8_t *   _iv 
 
      const uint8_t *   _iv23 
 
   }   ZUC_EIA3 
 
   struct _SNOW3G_UIA2_specific_fields
 
      const void *   _key 
 
      const void *   _iv 
 
   }   SNOW3G_UIA2 
 
   struct _KASUMI_UIA1_specific_fields
 
      const void *   _key 
 
   }   KASUMI_UIA1 
 
   struct _AES_GMAC_specific_fields
 
      const struct gcm_key_data *   _key 
 
      const void *   _iv 
 
      uint64_t   iv_len_in_bytes 
 
   }   GMAC 
 
   struct _GHASH_specific_fields
 
      const struct gcm_key_data *   _key 
 
      const void *   _init_tag 
 
   }   GHASH 
 
   struct _POLY1305_specific_fields
 
      const void *   _key 
 
   }   POLY1305 
 
   struct _CHACHA20_POLY1305_specific_fields
 
      const void *   aad 
 
      uint64_t   aad_len_in_bytes 
 
      struct chacha20_poly1305_context_data *   ctx 
 
   }   CHACHA20_POLY1305 
 
   struct _SNOW_V_AEAD_specific_fields
 
      const void *   aad 
 
      uint64_t   aad_len_in_bytes 
 
      void *   reserved 
 
   }   SNOW_V_AEAD 
 
u 
 
IMB_STATUS status
 
IMB_CIPHER_MODE cipher_mode
 
IMB_CIPHER_DIRECTION cipher_direction
 
IMB_HASH_ALG hash_alg
 
IMB_CHAIN_ORDER chain_order
 
void * user_data
 
void * user_data2
 
int(* cipher_func )(struct IMB_JOB *)
 
int(* hash_func )(struct IMB_JOB *)
 
IMB_SGL_STATE sgl_state
 
union { 
 
   struct _CBCS_specific_fields
 
      void *   next_iv 
 
   }   CBCS 
 
cipher_fields 
 
void * suite_id [4]
 
uint32_t session_id
 

Detailed Description

Job structure.

For AES, enc_keys and dec_keys are expected to point to expanded keys structure.

  • AES-CTR, AES-ECB and AES-CCM, only enc_keys is used
  • DOCSIS (AES-CBC + AES-CFB), both pointers are used enc_keys has to be set always for the partial block

For DES, enc_keys and dec_keys are expected to point to DES key schedule.

  • same key schedule used for enc and dec operations

For 3DES, enc_keys and dec_keys are expected to point to an array of 3 pointers for the corresponding 3 key schedules.

  • same key schedule used for enc and dec operations

Field Documentation

◆ [union]

union { ... } IMB_JOB

◆ [union]

union { ... } IMB_JOB

◆ [union]

union { ... } IMB_JOB

Offset into input buffer to start ciphering

◆ [union]

union { ... } IMB_JOB

Length of message to cipher

◆ [union]

union { ... } IMB_JOB

Length of message to hash

◆ _hashed_auth_key_xor_ipad

const uint8_t* IMB_JOB::_hashed_auth_key_xor_ipad

Hashed result of HMAC key xor'd with ipad (0x36).

◆ _hashed_auth_key_xor_opad

const uint8_t* IMB_JOB::_hashed_auth_key_xor_opad

Hashed result of HMAC key xor'd with opad (0x5c).

◆ _init_tag

const void* IMB_JOB::_init_tag

initial tag value

◆ _iv [1/2]

const uint8_t* IMB_JOB::_iv

Authentication 25-byte IV (16-byte aligned)

◆ _iv [2/2]

const void* IMB_JOB::_iv

Authentication IV (16-byte aligned)

Authentication IV

◆ _iv23

const uint8_t* IMB_JOB::_iv23

Authentication 23-byte IV (16-byte aligned)

◆ _k1_expanded

const uint32_t* IMB_JOB::_k1_expanded

k1 expanded key pointer (16-byte aligned)

◆ _k2

const uint8_t* IMB_JOB::_k2

k2 expanded key pointer (16-byte aligned)

◆ _k3

const uint8_t* IMB_JOB::_k3

k3 expanded key pointer (16-byte aligned)

◆ _key [1/3]

const uint8_t* IMB_JOB::_key

Authentication key (16-byte aligned)

◆ _key [2/3]

const void* IMB_JOB::_key

Authentication key (16-byte aligned)

Poly1305 key

◆ _key [3/3]

const struct gcm_key_data* IMB_JOB::_key

Authentication key

Expanded GHASH key

◆ _key_expanded

const void* IMB_JOB::_key_expanded

Expanded key (16-byte aligned)

◆ _skey1

const void* IMB_JOB::_skey1

S key 1 (16-byte aligned)

◆ _skey2

const void* IMB_JOB::_skey2

S key 2 (16-byte aligned)

◆ aad

const void* IMB_JOB::aad

Additional Authentication Data (AAD)

◆ aad_len_in_bytes

uint64_t IMB_JOB::aad_len_in_bytes

Length of AAD

◆ auth_tag_output

uint8_t* IMB_JOB::auth_tag_output

Authentication tag output

◆ auth_tag_output_len_in_bytes

uint64_t IMB_JOB::auth_tag_output_len_in_bytes

Authentication tag output length in bytes

◆ [struct]

struct { ... } ::_CBCS_specific_fields IMB_JOB::CBCS

CBCS specific fields

◆ [struct]

struct { ... } ::_AES_CCM_specific_fields IMB_JOB::CCM

AES-CCM specific fields

◆ [struct]

struct { ... } ::_CHACHA20_POLY1305_specific_fields IMB_JOB::CHACHA20_POLY1305

Chacha20-Poly1305 specific fields

◆ chain_order

IMB_CHAIN_ORDER IMB_JOB::chain_order

Chain order (IMB_ORDER_CIPHER_HASH / IMB_ORDER_HASH_CIPHER).

◆ cipher_direction

IMB_CIPHER_DIRECTION IMB_JOB::cipher_direction

Cipher direction

◆ [union]

union { ... } IMB_JOB::cipher_fields

Cipher algorithm-specific fields

◆ cipher_func

int(* IMB_JOB::cipher_func) (struct IMB_JOB *)

Customer cipher function

◆ cipher_mode

IMB_CIPHER_MODE IMB_JOB::cipher_mode

Cipher mode

◆ cipher_start_offset_in_bits

uint64_t IMB_JOB::cipher_start_offset_in_bits

Offset into input buffer to start ciphering (in bits)

◆ cipher_start_src_offset_in_bits

uint64_t IMB_JOB::cipher_start_src_offset_in_bits

Offset into input buffer to start ciphering (in bits)

◆ cipher_start_src_offset_in_bytes

uint64_t IMB_JOB::cipher_start_src_offset_in_bytes

Offset into input buffer to start ciphering (in bytes)

◆ [struct]

struct { ... } ::_AES_CMAC_specific_fields IMB_JOB::CMAC

AES-CMAC specific fields

◆ ctx [1/2]

struct gcm_context_data* IMB_JOB::ctx

AES-GCM context (for SGL only)

◆ ctx [2/2]

struct chacha20_poly1305_context_data* IMB_JOB::ctx

Chacha20-Poly1305 context (for SGL only)

◆ dec_keys

const void* IMB_JOB::dec_keys

Decryption key pointer

◆ dst

uint8_t* IMB_JOB::dst

Output buffer. May be ciphertext or plaintext. In-place ciphering allowed, i.e. dst = src.

◆ enc_keys

const void* IMB_JOB::enc_keys

Encryption key pointer

◆ [struct]

struct { ... } ::_AES_GCM_specific_fields IMB_JOB::GCM

AES-GCM specific fields

◆ [struct]

struct { ... } ::_GHASH_specific_fields IMB_JOB::GHASH

GHASH specific fields

◆ [struct]

struct { ... } ::_AES_GMAC_specific_fields IMB_JOB::GMAC

AES-GMAC specific fields

◆ hash_alg

IMB_HASH_ALG IMB_JOB::hash_alg

Hashing algorithm

◆ hash_func

int(* IMB_JOB::hash_func) (struct IMB_JOB *)

Customer hash function

◆ hash_start_src_offset_in_bytes

uint64_t IMB_JOB::hash_start_src_offset_in_bytes

◆ [struct]

struct { ... } ::_HMAC_specific_fields IMB_JOB::HMAC

HMAC specific fields

◆ iv

const uint8_t* IMB_JOB::iv

Initialization Vector (IV)

◆ iv_len_in_bytes

uint64_t IMB_JOB::iv_len_in_bytes

IV length in bytes

Authentication IV length in bytes

◆ [struct]

struct { ... } ::_KASUMI_UIA1_specific_fields IMB_JOB::KASUMI_UIA1

KASUMI-UIA2 specific fields

◆ key_len_in_bytes

uint64_t IMB_JOB::key_len_in_bytes

Key length in bytes

◆ msg_len_to_cipher_in_bits

uint64_t IMB_JOB::msg_len_to_cipher_in_bits

Length of message to cipher (in bits)

◆ msg_len_to_cipher_in_bytes

uint64_t IMB_JOB::msg_len_to_cipher_in_bytes

Length of message to cipher (in bytes)

◆ msg_len_to_hash_in_bits

uint64_t IMB_JOB::msg_len_to_hash_in_bits

Length of message to hash (in bits)

◆ msg_len_to_hash_in_bytes

uint64_t IMB_JOB::msg_len_to_hash_in_bytes

Length of message to hash (in bytes)

◆ next_iv

void* IMB_JOB::next_iv

Pointer to next IV (last ciphertext block)

◆ num_sgl_io_segs

uint64_t IMB_JOB::num_sgl_io_segs

Number of input/output SGL segments

◆ [struct]

struct { ... } ::_POLY1305_specific_fields IMB_JOB::POLY1305

Poly1305 specific fields

◆ reserved

void* IMB_JOB::reserved

Reserved bytes

◆ session_id

uint32_t IMB_JOB::session_id

◆ sgl_io_segs

const struct IMB_SGL_IOV* IMB_JOB::sgl_io_segs

Pointer to array of input/output SGL segments

◆ sgl_state

IMB_SGL_STATE IMB_JOB::sgl_state

SGL state (IMB_SGL_INIT/IMB_SGL_UPDATE/IMB_SGL_COMPLETE/ IMB_SGL_ALL)

◆ [struct]

struct { ... } ::_SNOW3G_UIA2_specific_fields IMB_JOB::SNOW3G_UIA2

SNOW3G-UIA2 specific fields

◆ [struct]

struct { ... } ::_SNOW_V_AEAD_specific_fields IMB_JOB::SNOW_V_AEAD

SNOW-V AEAD specific fields

◆ src

const uint8_t* IMB_JOB::src

Input buffer. May be ciphertext or plaintext. In-place ciphering allowed.

◆ status

IMB_STATUS IMB_JOB::status

Job status

◆ suite_id

void* IMB_JOB::suite_id[4]

◆ [union]

union { ... } IMB_JOB::u

Hash algorithm-specific fields

◆ user_data

void* IMB_JOB::user_data

Pointer 1 to user data

◆ user_data2

void* IMB_JOB::user_data2

Pointer 2 to user data

◆ [struct]

struct { ... } ::_AES_XCBC_specific_fields IMB_JOB::XCBC

AES-XCBC specific fields

◆ [struct]

struct { ... } ::_ZUC_EIA3_specific_fields IMB_JOB::ZUC_EIA3

ZUC-EIA3 specific fields


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