intel-ipsec-mb v2.0
Documentation of the Intel(R) IPSec Multi-Buffer library
 
Loading...
Searching...
No Matches
gcm_key_data Struct Reference

holds intermediate key data needed to improve performance More...

#include <intel-ipsec-mb.h>

Data Fields

uint8_t expanded_keys [IMB_GCM_ENC_KEY_LEN *IMB_GCM_KEY_SETS]
 
union { 
 
   struct { 
 
      uint8_t   shifted_hkey [IMB_GCM_ENC_KEY_LEN *8] 
 
      uint8_t   shifted_hkey_k [IMB_GCM_ENC_KEY_LEN *8] 
 
   }   sse_avx 
 
   struct { 
 
      uint8_t   shifted_hkey [IMB_GCM_ENC_KEY_LEN *8 *2] 
 
   }   avx2_avx512 
 
   struct { 
 
      uint8_t   shifted_hkey [IMB_GCM_ENC_KEY_LEN *32 *2] 
 
   }   vaes_avx512 
 
   struct { 
 
      uint8_t   shifted_hkey [IMB_GCM_ENC_KEY_LEN *16 *2] 
 
   }   vaes_avx2 
 
ghash_keys 
 

Detailed Description

holds intermediate key data needed to improve performance

gcm_key_data hold internal key information used by gcm128, gcm192 and gcm256.

Field Documentation

◆ [struct]

struct { ... } gcm_key_data::avx2_avx512

◆ expanded_keys

uint8_t gcm_key_data::expanded_keys[IMB_GCM_ENC_KEY_LEN *IMB_GCM_KEY_SETS]

◆ [union]

union { ... } gcm_key_data::ghash_keys

◆ shifted_hkey

uint8_t gcm_key_data::shifted_hkey[IMB_GCM_ENC_KEY_LEN *16 *2]

This is needed for schoolbook multiply purposes. (HashKey<<1 mod poly), (HashKey^2<<1 mod poly), ..., (Hashkey^48<<1 mod poly)

This is needed for schoolbook multiply purposes. (HashKey<<1 mod poly), (HashKey<<1 mod poly) x POLY, (HashKey^2<<1 mod poly), (HashKey^2<<1 mod poly) x POLY, ..., (Hashkey^8<<1 mod poly), (Hashkey^8<<1 mod poly) x POLY

Start with: (HashKey<<1 mod poly), (HashKey^2<<1 mod poly), ..., (Hashkey^32<<1 mod poly)

Followed by: (HashKey<<1 mod poly) x POLY, (HashKey^2<<1 mod poly) x POLY, ..., (Hashkey^32<<1 mod poly) x POLY

Start with: (HashKey<<1 mod poly), (HashKey^2<<1 mod poly), ..., (Hashkey^16<<1 mod poly)

Followed by: (HashKey<<1 mod poly) x POLY, (HashKey^2<<1 mod poly) x POLY, ..., (Hashkey^16<<1 mod poly) x POLY

◆ shifted_hkey_k

uint8_t gcm_key_data::shifted_hkey_k[IMB_GCM_ENC_KEY_LEN *8]

This is needed for Karatsuba multiply purposes. Storage for XOR of High 64 bits and low 64 bits of HashKey mod poly.

(HashKey<<1 mod poly), (HashKey^2<<1 mod poly), ..., (Hashkey^128<<1 mod poly)

◆ [struct]

struct { ... } gcm_key_data::sse_avx

< Storage for precomputed hash keys

◆ [struct]

struct { ... } gcm_key_data::vaes_avx2

◆ [struct]

struct { ... } gcm_key_data::vaes_avx512

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