intel-ipsec-mb: gcm_key_data Struct Reference

intel-ipsec-mb Documentation of the Intel(R) IPSec Multi-Buffer library |

Data Fields
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]
} avx2_avx512
struct {
uint8_t shifted_hkey [IMB_GCM_ENC_KEY_LEN *48]
} vaes_avx512
} | 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 { ... } gcm_key_data::avx2_avx512

## ◆ expanded_keys

uint8_t gcm_key_data::expanded_keys[IMB_GCM_ENC_KEY_LEN *IMB_GCM_KEY_SETS]

## ◆

union { ... } gcm_key_data::ghash_keys

## ◆ shifted_hkey

uint8_t gcm_key_data::shifted_hkey[IMB_GCM_ENC_KEY_LEN *48]

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

(HashKey<<1 mod poly), (HashKey^2<<1 mod poly), ..., (Hashkey^48<<1 mod 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 { ... } gcm_key_data::sse_avx

< Storage for precomputed hash keys

## ◆

struct { ... } gcm_key_data::vaes_avx512

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

- intel-ipsec-mb.h