nil::crypto3::pubkey::weighted_shamir_sss< Group > Struct Template Reference

#include <weighted_shamir.hpp>

+ Inheritance diagram for nil::crypto3::pubkey::weighted_shamir_sss< Group >:
+ Collaboration diagram for nil::crypto3::pubkey::weighted_shamir_sss< Group >:

Public Types

typedef shamir_sss< Group > base_type
 
typedef sss_weighted_basic_policy< Group > basic_policy
 
using coeff_type = private_element_type
 
typedef std::vector< typename basic_policy::coeff_typecoeffs_type
 
typedef Group group_type
 
using indexed_private_element_type = std::pair< std::size_t, private_element_type >
 
using indexed_public_element_type = std::pair< std::size_t, public_element_type >
 
using indexes_type = std::set< std::size_t >
 
using private_element_type = typename Group::curve_type::scalar_field_type::value_type
 
using public_coeff_type = public_element_type
 
typedef std::vector< typename basic_policy::public_coeff_typepublic_coeffs_type
 
using public_element_type = typename Group::value_type
 
using weights_type = std::map< std::size_t, std::size_t >
 

Static Public Member Functions

static bool check_exp (std::size_t exp)
 
static bool check_minimal_size (std::size_t size)
 
static bool check_participant_index (std::size_t i)
 
static bool check_participant_index (std::size_t i, std::size_t n)
 
static bool check_threshold_value (std::size_t t, std::size_t n)
 
template<typename Weight >
static std::enable_if< std::is_unsigned< typename Weight::first_type >::value &&std::is_unsigned< typename Weight::second_type >::value, bool >::type check_weight (const Weight &w)
 
static bool check_weight (std::size_t i, std::size_t w)
 
static basic_policy::private_element_type eval_basis_poly (const typename basic_policy::indexes_type &indexes, std::size_t i)
 
static base_type::indexes_type get_indexes (const weights_type &weights, std::size_t t)
 
template<typename IndexedElementIt >
static indexes_type get_indexes (IndexedElementIt first, IndexedElementIt last)
 
template<typename IndexedElementIt >
static indexes_type get_indexes (IndexedElementIt first, IndexedElementIt last)
 
static std::size_t get_min_threshold_value (std::size_t n)
 
template<typename Generator = random::algebraic_random_device<typename basic_policy::coeff_type::field_type>, typename Distribution = void>
static coeffs_type get_poly (std::size_t t)
 
static coeffs_type get_poly (std::size_t t, std::size_t n)
 
template<typename CoeffsIt >
static public_coeffs_type get_public_coeffs (CoeffsIt first, CoeffsIt last)
 
template<typename Coeffs >
static public_coeffs_type get_public_coeffs (const Coeffs &coeffs)
 
static public_element_type get_public_element (const private_element_type &e)
 

Member Typedef Documentation

◆ base_type

template<typename Group >
typedef shamir_sss<Group> nil::crypto3::pubkey::weighted_shamir_sss< Group >::base_type

◆ basic_policy

template<typename Group >
typedef sss_weighted_basic_policy<Group> nil::crypto3::pubkey::weighted_shamir_sss< Group >::basic_policy

◆ coeff_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::coeff_type = private_element_type
inherited

◆ coeffs_type

template<typename Group >
typedef std::vector<typename basic_policy::coeff_type> nil::crypto3::pubkey::shamir_sss< Group >::coeffs_type
inherited

◆ group_type

template<typename Group >
typedef Group nil::crypto3::pubkey::shamir_sss< Group >::group_type
inherited

◆ indexed_private_element_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::indexed_private_element_type = std::pair<std::size_t, private_element_type>
inherited

◆ indexed_public_element_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::indexed_public_element_type = std::pair<std::size_t, public_element_type>
inherited

◆ indexes_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::indexes_type = std::set<std::size_t>
inherited

◆ private_element_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::private_element_type = typename Group::curve_type::scalar_field_type::value_type
inherited

◆ public_coeff_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::public_coeff_type = public_element_type
inherited

◆ public_coeffs_type

template<typename Group >
typedef std::vector<typename basic_policy::public_coeff_type> nil::crypto3::pubkey::shamir_sss< Group >::public_coeffs_type
inherited

◆ public_element_type

template<typename Group >
using nil::crypto3::pubkey::sss_basic_policy< Group >::public_element_type = typename Group::value_type
inherited

◆ weights_type

template<typename Group >
using nil::crypto3::pubkey::sss_weighted_basic_policy< Group >::weights_type = std::map<std::size_t, std::size_t>
inherited

Member Function Documentation

◆ check_exp()

template<typename Group >
static bool nil::crypto3::pubkey::sss_basic_policy< Group >::check_exp ( std::size_t  exp)
inlinestaticinherited

◆ check_minimal_size()

template<typename Group >
static bool nil::crypto3::pubkey::sss_basic_policy< Group >::check_minimal_size ( std::size_t  size)
inlinestaticinherited

◆ check_participant_index() [1/2]

template<typename Group >
static bool nil::crypto3::pubkey::sss_basic_policy< Group >::check_participant_index ( std::size_t  i)
inlinestaticinherited

◆ check_participant_index() [2/2]

template<typename Group >
static bool nil::crypto3::pubkey::sss_basic_policy< Group >::check_participant_index ( std::size_t  i,
std::size_t  n 
)
inlinestaticinherited

◆ check_threshold_value()

template<typename Group >
static bool nil::crypto3::pubkey::sss_basic_policy< Group >::check_threshold_value ( std::size_t  t,
std::size_t  n 
)
inlinestaticinherited

◆ check_weight() [1/2]

template<typename Group >
template<typename Weight >
static std::enable_if<std::is_unsigned<typename Weight::first_type>::value && std::is_unsigned<typename Weight::second_type>::value, bool>::type nil::crypto3::pubkey::sss_weighted_basic_policy< Group >::check_weight ( const Weight &  w)
inlinestaticinherited

◆ check_weight() [2/2]

template<typename Group >
static bool nil::crypto3::pubkey::sss_weighted_basic_policy< Group >::check_weight ( std::size_t  i,
std::size_t  w 
)
inlinestaticinherited

◆ eval_basis_poly()

template<typename Group >
static basic_policy::private_element_type nil::crypto3::pubkey::shamir_sss< Group >::eval_basis_poly ( const typename basic_policy::indexes_type indexes,
std::size_t  i 
)
inlinestaticinherited

◆ get_indexes() [1/3]

template<typename Group >
static base_type::indexes_type nil::crypto3::pubkey::sss_weighted_basic_policy< Group >::get_indexes ( const weights_type weights,
std::size_t  t 
)
inlinestaticinherited

◆ get_indexes() [2/3]

template<typename Group >
template<typename IndexedElementIt >
static indexes_type nil::crypto3::pubkey::sss_basic_policy< Group >::get_indexes ( IndexedElementIt  first,
IndexedElementIt  last 
)
inlinestaticinherited

◆ get_indexes() [3/3]

template<typename Group >
template<typename IndexedElementIt >
static indexes_type nil::crypto3::pubkey::sss_basic_policy< Group >::get_indexes ( typename IndexedElementIt  )
inlinestaticinherited

◆ get_min_threshold_value()

template<typename Group >
static std::size_t nil::crypto3::pubkey::sss_basic_policy< Group >::get_min_threshold_value ( std::size_t  n)
inlinestaticinherited

◆ get_poly() [1/2]

template<typename Group >
template<typename Generator = random::algebraic_random_device<typename basic_policy::coeff_type::field_type>, typename Distribution = void>
static coeffs_type nil::crypto3::pubkey::shamir_sss< Group >::get_poly ( std::size_t  t)
inlinestaticinherited

◆ get_poly() [2/2]

template<typename Group >
static coeffs_type nil::crypto3::pubkey::shamir_sss< Group >::get_poly ( std::size_t  t,
std::size_t  n 
)
inlinestaticinherited

◆ get_public_coeffs() [1/2]

template<typename Group >
template<typename CoeffsIt >
static public_coeffs_type nil::crypto3::pubkey::shamir_sss< Group >::get_public_coeffs ( CoeffsIt  first,
CoeffsIt  last 
)
inlinestaticinherited

◆ get_public_coeffs() [2/2]

template<typename Group >
template<typename Coeffs >
static public_coeffs_type nil::crypto3::pubkey::shamir_sss< Group >::get_public_coeffs ( const Coeffs &  coeffs)
inlinestaticinherited

◆ get_public_element()

template<typename Group >
static public_element_type nil::crypto3::pubkey::sss_basic_policy< Group >::get_public_element ( const private_element_type e)
inlinestaticinherited

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