MOTION  0.01
Framework for mixed-protocol multi-party computation
Functions
aesni_primitives.cpp File Reference
#include "aesni_primitives.h"
#include <immintrin.h>
#include <algorithm>
#include <array>
Include dependency graph for aesni_primitives.cpp:

Functions

template<int round_constant>
static __m128i AesKeyExpand (__m128i xmm1)
 
void AesniKeyExpansion128 (void *round_keys_input)
 
void AesniCtrStreamBlocks128 (const void *round_keys_input, std::uint64_t *counter_input_pointer, void *output_input_pointer, std::size_t number_of_blocks)
 
void AesniCtrStreamBlocks128Unaligned (const void *round_keys_input, std::uint64_t *counter_input_pointer, void *output_input_pointer, std::size_t number_of_blocks)
 
void AesniCtrStreamSingleBlock128Unaligned (const void *round_keys_input, std::uint64_t *counter, void *output)
 
void AesniTmmoBatch4 (const void *round_keys_input, void *input, __uint128_t tweak)
 
void AesniMmoSingle (const void *round_keys_input, void *input)
 
static __m128i AesniMixKeys (__m128i key_a, __m128i key_b)
 
static __m128i AesniXorEncrypt (const __m128i *round_keys, __m128i in)
 
void AesniBmrDkc (const void *round_keys_input, const void *key_a, const void *key_b, std::uint64_t gate_id, std::size_t number_of_parties, void *output_input_pointer)
 

Function Documentation

◆ AesKeyExpand()

template<int round_constant>
static __m128i AesKeyExpand ( __m128i  xmm1)
static

◆ AesniBmrDkc()

void AesniBmrDkc ( const void *  round_keys_input,
const void *  key_a,
const void *  key_b,
std::uint64_t  gate_id,
std::size_t  number_of_parties,
void *  output_input_pointer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ AesniCtrStreamBlocks128()

void AesniCtrStreamBlocks128 ( const void *  round_keys_input,
std::uint64_t *  counter_input_pointer,
void *  output_input_pointer,
std::size_t  number_of_blocks 
)
Here is the caller graph for this function:

◆ AesniCtrStreamBlocks128Unaligned()

void AesniCtrStreamBlocks128Unaligned ( const void *  round_keys_input,
std::uint64_t *  counter_input_pointer,
void *  output_input_pointer,
std::size_t  number_of_blocks 
)
Here is the caller graph for this function:

◆ AesniCtrStreamSingleBlock128Unaligned()

void AesniCtrStreamSingleBlock128Unaligned ( const void *  round_keys_input,
std::uint64_t *  counter,
void *  output 
)
Here is the caller graph for this function:

◆ AesniKeyExpansion128()

void AesniKeyExpansion128 ( void *  round_keys_input)
Here is the caller graph for this function:

◆ AesniMixKeys()

static __m128i AesniMixKeys ( __m128i  key_a,
__m128i  key_b 
)
static
Here is the caller graph for this function:

◆ AesniMmoSingle()

void AesniMmoSingle ( const void *  round_keys_input,
void *  input 
)
Here is the caller graph for this function:

◆ AesniTmmoBatch4()

void AesniTmmoBatch4 ( const void *  round_keys_input,
void *  input,
__uint128_t  tweak 
)
Here is the caller graph for this function:

◆ AesniXorEncrypt()

static __m128i AesniXorEncrypt ( const __m128i *  round_keys,
__m128i  in 
)
static
Here is the caller graph for this function: