nil::crypto3::zk::components Namespace Reference

Namespaces

 detail
 

Classes

struct  as_waksman_routing_component
 
class  basic_curve_component_policy
 
class  basic_curve_component_policy< curves::mnt4< Version > >
 
class  basic_curve_component_policy< curves::mnt6< Version > >
 
class  benes_routing_component
 
class  big_sigma_component
 
class  bit_vector_copy_component
 
class  block_variable
 
class  blueprint
 
class  blueprint_linear_combination
 
class  blueprint_linear_combination_vector
 
class  blueprint_variable
 
class  blueprint_variable_vector
 
class  check_e_equals_e_component
 
class  check_e_equals_ee_component
 
class  choice_component
 
class  comparison
 
class  component
 
class  component_from_r1cs
 
class  conjunction
 
class  digest_selector_component
 
class  digest_variable
 
class  disjunction
 
class  dual_variable_component
 
struct  element_fp2
 
struct  element_fp2_mul
 
struct  element_fp2_mul_by_lc
 
struct  element_fp2_squared
 
struct  element_fp3
 
struct  element_fp3_mul
 
struct  element_fp3_mul_by_lc
 
struct  element_fp3_squared
 
struct  element_fp4
 
class  element_fp4_cyclotomic_squared
 
class  element_fp4_direct_mul
 
class  element_fp4_squared
 
class  element_fp4_tower_mul
 
class  element_fp6_2over3
 
class  element_fp6_2over3_cyclotomic_squared
 
class  element_fp6_2over3_mul
 
class  element_fp6_2over3_mul_by_2345
 
class  element_fp6_2over3_squared
 
class  element_g1
 
class  element_g1_add
 
class  element_g1_conditional_add
 
class  element_g1_doubled
 
class  element_g1_is_well_formed
 
class  element_g2
 
class  element_g2_is_well_formed
 
class  exponentiation_component
 
class  field_vector_copy_component
 
struct  final_exp_component
 
class  final_exp_component< curves::mnt4< Version > >
 
class  final_exp_component< curves::mnt6< Version > >
 
class  g1_precomputation
 
class  g2_precomputation
 
class  hmac_component
 
class  inner_product
 
class  knapsack_crh_with_bit_out_component
 
class  knapsack_crh_with_field_out_component
 
struct  knapsack_dimension
 
class  lastbits_component
 
class  loose_multiplexing
 
class  majority_component
 
struct  merkle_authentication_path_variable
 
class  merkle_damagard_padding
 
class  merkle_tree_check_read_component
 
class  merkle_tree_check_update_components
 
class  mnt_e_over_e_miller_loop_component
 
class  mnt_e_times_e_over_e_miller_loop_component
 
class  mnt_miller_loop_add_line_eval
 
class  mnt_miller_loop_component
 
class  mnt_miller_loop_dbl_line_eval
 
class  multipacking_component
 
class  packing_component
 
class  precompute_G1_component
 
class  precompute_G2_component
 
class  precompute_G2_component_addition_step
 
class  precompute_G2_component_coeffs
 
class  precompute_G2_component_doubling_step
 
class  scalar_mul
 
class  sha256_compression_function_component
 
class  sha256_hash_component
 
class  sha256_message_schedule_component
 
class  sha256_round_function_component
 
class  sha256_two_to_one_hash_component
 
class  small_sigma_component
 
class  XOR3_component
 

Typedefs

template<typename FieldType >
using element_fp = blueprint_linear_combination< FieldType >
 
template<typename Fp4T >
using element_fp4_mul = element_fp4_direct_mul< Fp4T >
 
using lc_index_t = std::size_t
 

Functions

template<typename FieldType >
snark::linear_combination< FieldType > blueprint_coeff_sum (const blueprint_linear_combination_vector< FieldType > &v, const std::vector< typename FieldType::value_type > &coeffs)
 
template<typename FieldType >
snark::linear_combination< FieldType > blueprint_packing_sum (const blueprint_linear_combination_vector< FieldType > &v)
 
template<typename FieldType >
snark::linear_combination< FieldType > blueprint_sum (const blueprint_linear_combination_vector< FieldType > &v)
 
template<typename FieldType , typename VarT >
void create_linear_combination_constraints (blueprint< FieldType > &bp, const std::vector< typename FieldType::value_type > &base, const std::vector< std::pair< VarT, typename FieldType::value_type >> &v, const VarT &target)
 
template<typename FieldType , typename VarT >
void create_linear_combination_witness (blueprint< FieldType > &bp, const std::vector< typename FieldType::value_type > &base, const std::vector< std::pair< VarT, typename FieldType::value_type >> &v, const VarT &target)
 
template<typename FieldType >
void generate_boolean_r1cs_constraint (blueprint< FieldType > &bp, const blueprint_linear_combination< FieldType > &lc)
 
template<typename FieldType >
void generate_r1cs_equals_const_constraint (blueprint< FieldType > &bp, const blueprint_linear_combination< FieldType > &lc, const typename FieldType::value_type &c)
 
template<typename FieldType >
std::size_t multipacking_num_chunks (const std::size_t num_bits)
 
template<typename FieldType >
blueprint_linear_combination_vector< FieldType > SHA256_default_IV (blueprint< FieldType > &bp)
 
template<typename FieldType >
void test_as_waksman_routing_component (const std::size_t num_packets, const std::size_t packet_size)
 

Typedef Documentation

◆ element_fp

template<typename FieldType >
using nil::crypto3::zk::components::element_fp = typedef blueprint_linear_combination<FieldType>

Component that represents an element_fp.

◆ element_fp4_mul

template<typename Fp4T >
using nil::crypto3::zk::components::element_fp4_mul = typedef element_fp4_direct_mul<Fp4T>

Alias default multiplication component

◆ lc_index_t

using nil::crypto3::zk::components::lc_index_t = typedef std::size_t

Function Documentation

◆ blueprint_coeff_sum()

template<typename FieldType >
snark::linear_combination<FieldType> nil::crypto3::zk::components::blueprint_coeff_sum ( const blueprint_linear_combination_vector< FieldType > &  v,
const std::vector< typename FieldType::value_type > &  coeffs 
)

◆ blueprint_packing_sum()

template<typename FieldType >
snark::linear_combination<FieldType> nil::crypto3::zk::components::blueprint_packing_sum ( const blueprint_linear_combination_vector< FieldType > &  v)

◆ blueprint_sum()

template<typename FieldType >
snark::linear_combination<FieldType> nil::crypto3::zk::components::blueprint_sum ( const blueprint_linear_combination_vector< FieldType > &  v)

◆ create_linear_combination_constraints()

template<typename FieldType , typename VarT >
void nil::crypto3::zk::components::create_linear_combination_constraints ( blueprint< FieldType > &  bp,
const std::vector< typename FieldType::value_type > &  base,
const std::vector< std::pair< VarT, typename FieldType::value_type >> &  v,
const VarT &  target 
)

◆ create_linear_combination_witness()

template<typename FieldType , typename VarT >
void nil::crypto3::zk::components::create_linear_combination_witness ( blueprint< FieldType > &  bp,
const std::vector< typename FieldType::value_type > &  base,
const std::vector< std::pair< VarT, typename FieldType::value_type >> &  v,
const VarT &  target 
)

◆ generate_boolean_r1cs_constraint()

template<typename FieldType >
void nil::crypto3::zk::components::generate_boolean_r1cs_constraint ( blueprint< FieldType > &  bp,
const blueprint_linear_combination< FieldType > &  lc 
)

◆ generate_r1cs_equals_const_constraint()

template<typename FieldType >
void nil::crypto3::zk::components::generate_r1cs_equals_const_constraint ( blueprint< FieldType > &  bp,
const blueprint_linear_combination< FieldType > &  lc,
const typename FieldType::value_type &  c 
)

◆ multipacking_num_chunks()

template<typename FieldType >
std::size_t nil::crypto3::zk::components::multipacking_num_chunks ( const std::size_t  num_bits)

◆ SHA256_default_IV()

template<typename FieldType >
blueprint_linear_combination_vector<FieldType> nil::crypto3::zk::components::SHA256_default_IV ( blueprint< FieldType > &  bp)

◆ test_as_waksman_routing_component()

template<typename FieldType >
void nil::crypto3::zk::components::test_as_waksman_routing_component ( const std::size_t  num_packets,
const std::size_t  packet_size 
)