FD.io VPP
v19.08.2-294-g37e99c22d
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | aes_gcm_key_data_t |
Macros | |
#define | foreach_aesni_gcm_handler_type _(128) _(192) _(256) |
Functions | |
static_always_inline __m128i | aesni_gcm_bswap (__m128i x) |
static_always_inline __m128i | aesni_gcm_byte_mask (__m128i x, u8 n_bytes) |
static_always_inline __m128i | aesni_gcm_load_partial (__m128i *p, int n_bytes) |
static_always_inline void | aesni_gcm_store_partial (void *p, __m128i r, int n_bytes) |
static_always_inline void | aesni_gcm_load (__m128i *d, __m128i *inv, int n, int n_bytes) |
static_always_inline void | aesni_gcm_store (__m128i *d, __m128i *outv, int n, int n_bytes) |
static_always_inline void | aesni_gcm_enc_first_round (__m128i *r, __m128i *Y, u32 *ctr, __m128i k, int n_blocks) |
static_always_inline void | aesni_gcm_enc_round (__m128i *r, __m128i k, int n_blocks) |
static_always_inline void | aesni_gcm_enc_last_round (__m128i *r, __m128i *d, const __m128i *k, int rounds, int n_blocks) |
static_always_inline __m128i | aesni_gcm_ghash_blocks (__m128i T, aes_gcm_key_data_t *kd, const __m128i *in, int n_blocks) |
static_always_inline __m128i | aesni_gcm_ghash (__m128i T, aes_gcm_key_data_t *kd, const __m128i *in, u32 n_left) |
static_always_inline __m128i | aesni_gcm_calc (__m128i T, aes_gcm_key_data_t *kd, __m128i *d, __m128i *Y, u32 *ctr, __m128i *inv, __m128i *outv, int rounds, int n, int last_block_bytes, int with_ghash, int is_encrypt) |
static_always_inline __m128i | aesni_gcm_calc_double (__m128i T, aes_gcm_key_data_t *kd, __m128i *d, __m128i *Y, u32 *ctr, __m128i *inv, __m128i *outv, int rounds, int is_encrypt) |
static_always_inline __m128i | aesni_gcm_ghash_last (__m128i T, aes_gcm_key_data_t *kd, __m128i *d, int n_blocks, int n_bytes) |
static_always_inline __m128i | aesni_gcm_enc (__m128i T, aes_gcm_key_data_t *kd, __m128i Y, const u8 *in, const u8 *out, u32 n_left, int rounds) |
static_always_inline __m128i | aesni_gcm_dec (__m128i T, aes_gcm_key_data_t *kd, __m128i Y, const u8 *in, const u8 *out, u32 n_left, int rounds) |
static_always_inline int | aes_gcm (const u8 *in, u8 *out, const u8 *addt, const u8 *iv, u8 *tag, u32 data_bytes, u32 aad_bytes, u8 tag_len, aes_gcm_key_data_t *kd, int aes_rounds, int is_encrypt) |
static_always_inline u32 | aesni_ops_enc_aes_gcm (vlib_main_t *vm, vnet_crypto_op_t *ops[], u32 n_ops, aesni_key_size_t ks) |
static_always_inline u32 | aesni_ops_dec_aes_gcm (vlib_main_t *vm, vnet_crypto_op_t *ops[], u32 n_ops, aesni_key_size_t ks) |
static_always_inline void * | aesni_gcm_key_exp (vnet_crypto_key_t *key, aesni_key_size_t ks) |
clib_error_t * | crypto_ia32_aesni_gcm_init_sse42 (vlib_main_t *vm) |
Variables | |
static const __m128i | last_byte_one = { 0, 1ULL << 56 } |
static const __m128i | zero = { 0, 0 } |
static const u8x16 | bswap_mask |
static const u8x16 | byte_mask_scale |
foreach_aesni_gcm_handler_type | |
#define foreach_aesni_gcm_handler_type _(128) _(192) _(256) |
static_always_inline int aes_gcm | ( | const u8 * | in, |
u8 * | out, | ||
const u8 * | addt, | ||
const u8 * | iv, | ||
u8 * | tag, | ||
u32 | data_bytes, | ||
u32 | aad_bytes, | ||
u8 | tag_len, | ||
aes_gcm_key_data_t * | kd, | ||
int | aes_rounds, | ||
int | is_encrypt | ||
) |
static_always_inline __m128i aesni_gcm_bswap | ( | __m128i | x | ) |
static_always_inline __m128i aesni_gcm_byte_mask | ( | __m128i | x, |
u8 | n_bytes | ||
) |
static_always_inline __m128i aesni_gcm_calc | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
__m128i * | d, | ||
__m128i * | Y, | ||
u32 * | ctr, | ||
__m128i * | inv, | ||
__m128i * | outv, | ||
int | rounds, | ||
int | n, | ||
int | last_block_bytes, | ||
int | with_ghash, | ||
int | is_encrypt | ||
) |
static_always_inline __m128i aesni_gcm_calc_double | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
__m128i * | d, | ||
__m128i * | Y, | ||
u32 * | ctr, | ||
__m128i * | inv, | ||
__m128i * | outv, | ||
int | rounds, | ||
int | is_encrypt | ||
) |
static_always_inline __m128i aesni_gcm_dec | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
__m128i | Y, | ||
const u8 * | in, | ||
const u8 * | out, | ||
u32 | n_left, | ||
int | rounds | ||
) |
static_always_inline __m128i aesni_gcm_enc | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
__m128i | Y, | ||
const u8 * | in, | ||
const u8 * | out, | ||
u32 | n_left, | ||
int | rounds | ||
) |
static_always_inline void aesni_gcm_enc_first_round | ( | __m128i * | r, |
__m128i * | Y, | ||
u32 * | ctr, | ||
__m128i | k, | ||
int | n_blocks | ||
) |
static_always_inline void aesni_gcm_enc_last_round | ( | __m128i * | r, |
__m128i * | d, | ||
const __m128i * | k, | ||
int | rounds, | ||
int | n_blocks | ||
) |
static_always_inline void aesni_gcm_enc_round | ( | __m128i * | r, |
__m128i | k, | ||
int | n_blocks | ||
) |
static_always_inline __m128i aesni_gcm_ghash | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
const __m128i * | in, | ||
u32 | n_left | ||
) |
static_always_inline __m128i aesni_gcm_ghash_blocks | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
const __m128i * | in, | ||
int | n_blocks | ||
) |
static_always_inline __m128i aesni_gcm_ghash_last | ( | __m128i | T, |
aes_gcm_key_data_t * | kd, | ||
__m128i * | d, | ||
int | n_blocks, | ||
int | n_bytes | ||
) |
static_always_inline void* aesni_gcm_key_exp | ( | vnet_crypto_key_t * | key, |
aesni_key_size_t | ks | ||
) |
static_always_inline void aesni_gcm_load | ( | __m128i * | d, |
__m128i * | inv, | ||
int | n, | ||
int | n_bytes | ||
) |
static_always_inline __m128i aesni_gcm_load_partial | ( | __m128i * | p, |
int | n_bytes | ||
) |
static_always_inline void aesni_gcm_store | ( | __m128i * | d, |
__m128i * | outv, | ||
int | n, | ||
int | n_bytes | ||
) |
static_always_inline void aesni_gcm_store_partial | ( | void * | p, |
__m128i | r, | ||
int | n_bytes | ||
) |
static_always_inline u32 aesni_ops_dec_aes_gcm | ( | vlib_main_t * | vm, |
vnet_crypto_op_t * | ops[], | ||
u32 | n_ops, | ||
aesni_key_size_t | ks | ||
) |
static_always_inline u32 aesni_ops_enc_aes_gcm | ( | vlib_main_t * | vm, |
vnet_crypto_op_t * | ops[], | ||
u32 | n_ops, | ||
aesni_key_size_t | ks | ||
) |
clib_error_t* crypto_ia32_aesni_gcm_init_sse42 | ( | vlib_main_t * | vm | ) |
|
static |
|
static |