MOTION  0.01
Framework for mixed-protocol multi-party computation
Classes | Namespaces | Typedefs | Functions
sb_impl.h File Reference
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <set>
#include <type_traits>
#include <vector>
#include "sp_provider.h"
#include "utility/helpers.h"
Include dependency graph for sb_impl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  encrypto::motion::detail::get_expanded_type< T >
 
struct  encrypto::motion::detail::get_expanded_type< std::uint8_t >
 
struct  encrypto::motion::detail::get_expanded_type< std::uint16_t >
 
struct  encrypto::motion::detail::get_expanded_type< std::uint32_t >
 
struct  encrypto::motion::detail::get_expanded_type< std::uint64_t >
 

Namespaces

 encrypto
 
 encrypto::motion
 
 encrypto::motion::detail
 

Typedefs

template<typename T >
using encrypto::motion::detail::get_expanded_type_t = typename get_expanded_type< T >::type
 

Functions

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
encrypto::motion::detail::sqrt (size_t k, T a)
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
encrypto::motion::detail::invert (std::size_t k, T a)
 
template<typename T >
constexpr std::size_t encrypto::motion::detail::GetBitSize ()
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
constexpr U encrypto::motion::detail::GetModMask ()
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static std::pair< std::vector< U >, std::vector< U > > encrypto::motion::detail::compute_sbs_phase_1 (std::size_t number_of_sbs, std::size_t my_id, SpVector< U > &sps)
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static void encrypto::motion::detail::compute_sbs_phase_2 (std::vector< U > &wb1, std::vector< U > &wb2, std::size_t my_id, SpVector< U > &sps)
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static void encrypto::motion::detail::compute_sbs_phase_3 (std::vector< U > &wb1, std::vector< U > &wb2, std::vector< T > &sbs, std::size_t my_id)