Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
bw6_761_pairing_params.hpp
Go to the documentation of this file.
1 
9 #ifndef LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_PAIRING_PARAMS_HPP_
10 #define LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_PAIRING_PARAMS_HPP_
11 
19 
20 #include <libff/algebra/curves/bls12_377/bls12_377_pp.hpp>
21 #include <libff/algebra/curves/bw6_761/bw6_761_pp.hpp>
22 
23 namespace libsnark
24 {
25 
26 template<typename ppT> class bls12_377_G1_precomputation;
27 template<typename ppT> class bls12_377_G1_precompute_gadget;
28 template<typename ppT> class bls12_377_G2_precomputation;
29 template<typename ppT> class bls12_377_G2_precompute_gadget;
30 template<typename ppT> class bls12_377_miller_loop_gadget;
31 template<typename ppT>
32 class bls12_377_e_times_e_times_e_over_e_miller_loop_gadget;
33 template<typename ppT> class bls12_377_final_exp_gadget;
34 
35 // Parameters for creating BW6-761 proofs that include statements about
36 // BLS12_377 pairings.
37 template<> class pairing_selector<libff::bw6_761_pp>
38 {
39 public:
40  static_assert(
41  std::is_same<
42  libff::Fr<libff::bw6_761_pp>,
43  libff::Fq<libff::bls12_377_pp>>::value,
44  "Field types do not match");
45 
46  typedef libff::Fr<libff::bw6_761_pp> FieldT;
47  typedef libff::Fqe<libff::bls12_377_pp> FqeT;
48  typedef libff::Fqk<libff::bls12_377_pp> FqkT;
49 
54 
58 
59  typedef libff::bls12_377_pp other_curve_type;
60 
65 
70 
75 
78 
81 
82  // Not implemented:
83  // typedef bls12_377_e_times_e_over_e_miller_loop_gadget
84  // e_times_e_over_e_miller_loop_gadget_type;
85 
87  libff::bw6_761_pp>
89 
91 };
92 
93 } // namespace libsnark
94 
95 #endif // LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_PAIRING_PARAMS_HPP_
libsnark::pairing_selector< libff::bw6_761_pp >::Fqe_mul_gadget_type
Fp2_mul_gadget< FqeT > Fqe_mul_gadget_type
Definition: bw6_761_pairing_params.hpp:51
libsnark::pairing_selector< libff::bw6_761_pp >::miller_loop_gadget_type
bls12_377_miller_loop_gadget< libff::bw6_761_pp > miller_loop_gadget_type
Definition: bw6_761_pairing_params.hpp:77
libsnark::bls12_377_e_over_e_miller_loop_gadget
Definition: bls12_377_miller_loop.hpp:86
libsnark::pairing_selector< libff::bw6_761_pp >::G1_precomputation_type
bls12_377_G1_precomputation< libff::bw6_761_pp > G1_precomputation_type
Definition: bw6_761_pairing_params.hpp:67
libsnark
Definition: accumulation_vector.hpp:18
libsnark::pairing_selector
Definition: pairing_params.hpp:84
libsnark::bls12_377_G2_precompute_gadget
Definition: bls12_377_precomputation.hpp:261
libsnark::bls12_377_G1_precompute_gadget
Definition: bls12_377_precomputation.hpp:97
libsnark::Fp2_variable
Definition: fp2_gadgets.hpp:27
fp2_gadgets.hpp
libsnark::bls12_377_miller_loop_gadget
Definition: bls12_377_miller_loop.hpp:56
libsnark::Fp2_mul_by_lc_gadget
Definition: fp2_gadgets.hpp:102
bls12_377_miller_loop.hpp
libsnark::pairing_selector< libff::bw6_761_pp >::e_over_e_miller_loop_gadget_type
bls12_377_e_over_e_miller_loop_gadget< libff::bw6_761_pp > e_over_e_miller_loop_gadget_type
Definition: bw6_761_pairing_params.hpp:80
libsnark::pairing_selector< libff::bw6_761_pp >::precompute_G2_gadget_type
bls12_377_G2_precompute_gadget< libff::bw6_761_pp > precompute_G2_gadget_type
Definition: bw6_761_pairing_params.hpp:74
libsnark::pairing_selector< libff::bw6_761_pp >::Fqk_mul_gadget_type
Fp12_2over3over2_mul_gadget< FqkT > Fqk_mul_gadget_type
Definition: bw6_761_pairing_params.hpp:56
libsnark::pairing_selector< libff::bw6_761_pp >::FqkT
libff::Fqk< libff::bls12_377_pp > FqkT
Definition: bw6_761_pairing_params.hpp:48
bls12_377_precomputation.hpp
libsnark::pairing_selector< libff::bw6_761_pp >::Fqk_variable_type
Fp12_2over3over2_variable< FqkT > Fqk_variable_type
Definition: bw6_761_pairing_params.hpp:55
libsnark::Fp12_2over3over2_square_gadget< FqkT >
fp12_2over3over2_gadgets.hpp
libsnark::pairing_selector< libff::bw6_761_pp >::precompute_G1_gadget_type
bls12_377_G1_precompute_gadget< libff::bw6_761_pp > precompute_G1_gadget_type
Definition: bw6_761_pairing_params.hpp:69
libsnark::pairing_selector< libff::bw6_761_pp >::FieldT
libff::Fr< libff::bw6_761_pp > FieldT
Definition: bw6_761_pairing_params.hpp:44
libsnark::pairing_selector< libff::bw6_761_pp >::final_exp_gadget_type
bls12_377_final_exp_gadget< libff::bw6_761_pp > final_exp_gadget_type
Definition: bw6_761_pairing_params.hpp:90
pairing_params.hpp
libsnark::pairing_selector< libff::bw6_761_pp >::Fqe_mul_by_lc_gadget_type
Fp2_mul_by_lc_gadget< FqeT > Fqe_mul_by_lc_gadget_type
Definition: bw6_761_pairing_params.hpp:52
libsnark::bls12_377_G2_membership_check_gadget
Definition: bls12_377_membership_check_gadgets.hpp:61
libsnark::pairing_selector< libff::bw6_761_pp >::Fqe_sqr_gadget_type
Fp2_sqr_gadget< FqeT > Fqe_sqr_gadget_type
Definition: bw6_761_pairing_params.hpp:53
libsnark::pairing_selector< libff::bw6_761_pp >::G2_checker_type
bls12_377_G2_membership_check_gadget< libff::bw6_761_pp > G2_checker_type
Definition: bw6_761_pairing_params.hpp:64
libsnark::pairing_selector< libff::bw6_761_pp >::G1_checker_type
bls12_377_G1_membership_check_gadget< libff::bw6_761_pp > G1_checker_type
Definition: bw6_761_pairing_params.hpp:62
libsnark::bls12_377_final_exp_gadget
Definition: bls12_377_final_exponentiation.hpp:150
libsnark::pairing_selector< libff::bw6_761_pp >::Fqk_sqr_gadget_type
Fp12_2over3over2_square_gadget< FqkT > Fqk_sqr_gadget_type
Definition: bw6_761_pairing_params.hpp:57
bls12_377_final_exponentiation.hpp
libsnark::bls12_377_G2_precomputation
Definition: bls12_377_precomputation.hpp:79
libsnark::pairing_selector< libff::bw6_761_pp >::other_curve_type
libff::bls12_377_pp other_curve_type
Definition: bw6_761_pairing_params.hpp:59
libsnark::pairing_selector< libff::bw6_761_pp >::e_times_e_times_e_over_e_miller_loop_gadget_type
bls12_377_e_times_e_times_e_over_e_miller_loop_gadget< libff::bw6_761_pp > e_times_e_times_e_over_e_miller_loop_gadget_type
Definition: bw6_761_pairing_params.hpp:88
libsnark::bls12_377_e_times_e_times_e_over_e_miller_loop_gadget
Definition: bls12_377_miller_loop.hpp:115
libsnark::bls12_377_G1_membership_check_gadget
Definition: bls12_377_membership_check_gadgets.hpp:24
libsnark::Fp12_2over3over2_mul_gadget< FqkT >
libsnark::pairing_selector< libff::bw6_761_pp >::Fqe_variable_type
Fp2_variable< FqeT > Fqe_variable_type
Definition: bw6_761_pairing_params.hpp:50
libsnark::Fp2_sqr_gadget
Definition: fp2_gadgets.hpp:125
libsnark::Fp12_2over3over2_variable< FqkT >
bls12_377_membership_check_gadgets.hpp
libsnark::bls12_377_G1_precomputation
Definition: bls12_377_precomputation.hpp:15
libsnark::pairing_selector< libff::bw6_761_pp >::G2_precomputation_type
bls12_377_G2_precomputation< libff::bw6_761_pp > G2_precomputation_type
Definition: bw6_761_pairing_params.hpp:72
libsnark::pairing_selector< libff::bw6_761_pp >::FqeT
libff::Fqe< libff::bls12_377_pp > FqeT
Definition: bw6_761_pairing_params.hpp:47
libsnark::Fp2_mul_gadget
Definition: fp2_gadgets.hpp:76