Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
edwards_pairing.hpp
Go to the documentation of this file.
1 
8 #ifndef EDWARDS_PAIRING_HPP_
9 #define EDWARDS_PAIRING_HPP_
11 #include <vector>
12 
13 namespace libff
14 {
15 
16 /* final exponentiation */
17 
19  const edwards_Fq6 &elt, const edwards_Fq6 &elt_inv);
21  const edwards_Fq6 &elt, const edwards_Fq6 &elt_inv);
23 
24 /* Tate pairing */
25 
30 
31  bool operator==(const edwards_Fq_conic_coefficients &other) const;
32  friend std::ostream &operator<<(
33  std::ostream &out, const edwards_Fq_conic_coefficients &cc);
34  friend std::istream &operator>>(
35  std::istream &in, edwards_Fq_conic_coefficients &cc);
36 };
37 typedef std::vector<edwards_Fq_conic_coefficients> edwards_tate_G1_precomp;
38 
39 std::ostream &operator<<(
40  std::ostream &out, const edwards_tate_G1_precomp &prec_P);
41 std::istream &operator>>(std::istream &in, edwards_tate_G1_precomp &prec_P);
42 
45 
46  bool operator==(const edwards_tate_G2_precomp &other) const;
47  friend std::ostream &operator<<(
48  std::ostream &out, const edwards_tate_G2_precomp &prec_Q);
49  friend std::istream &operator>>(
50  std::istream &in, edwards_tate_G2_precomp &prec_Q);
51 };
52 
55 
57  const edwards_tate_G1_precomp &prec_P,
58  const edwards_tate_G2_precomp &prec_Q);
59 
62  const edwards_G1 &P, const edwards_G2 &Q);
63 
64 /* ate pairing */
65 
70 
71  bool operator==(const edwards_Fq3_conic_coefficients &other) const;
72  friend std::ostream &operator<<(
73  std::ostream &out, const edwards_Fq3_conic_coefficients &cc);
74  friend std::istream &operator>>(
75  std::istream &in, edwards_Fq3_conic_coefficients &cc);
76 };
77 typedef std::vector<edwards_Fq3_conic_coefficients> edwards_ate_G2_precomp;
78 
79 std::ostream &operator<<(
80  std::ostream &out, const edwards_ate_G2_precomp &prec_Q);
81 std::istream &operator>>(std::istream &in, edwards_ate_G2_precomp &prec_Q);
82 
87 
88  bool operator==(const edwards_ate_G1_precomp &other) const;
89  friend std::ostream &operator<<(
90  std::ostream &out, const edwards_ate_G1_precomp &prec_P);
91  friend std::istream &operator>>(
92  std::istream &in, edwards_ate_G1_precomp &prec_P);
93 };
94 
97 
99  const edwards_ate_G1_precomp &prec_P, const edwards_ate_G2_precomp &prec_Q);
101  const edwards_ate_G1_precomp &prec_P1,
102  const edwards_ate_G2_precomp &prec_Q1,
103  const edwards_ate_G1_precomp &prec_P2,
104  const edwards_ate_G2_precomp &prec_Q2);
105 
108  const edwards_G1 &P, const edwards_G2 &Q);
109 
110 /* choice of pairing */
111 
114 
117 
119  const edwards_G1_precomp &prec_P, const edwards_G2_precomp &prec_Q);
120 
122  const edwards_G1_precomp &prec_P1,
123  const edwards_G2_precomp &prec_Q1,
124  const edwards_G1_precomp &prec_P2,
125  const edwards_G2_precomp &prec_Q2);
126 
128 
130 
131 } // namespace libff
132 #endif // EDWARDS_PAIRING_HPP_
libff::edwards_final_exponentiation_last_chunk
edwards_Fq6 edwards_final_exponentiation_last_chunk(const edwards_Fq6 &elt, const edwards_Fq6 &elt_inv)
Definition: edwards_pairing.cpp:179
libff::edwards_G2
Definition: edwards_g2.hpp:22
libff::edwards_Fq_conic_coefficients::c_XY
edwards_Fq c_XY
Definition: edwards_pairing.hpp:28
libff::edwards_GT
edwards_Fq6 edwards_GT
Definition: edwards_init.hpp:33
libff
Definition: ffi.cpp:8
libff::edwards_Fq_conic_coefficients::c_XZ
edwards_Fq c_XZ
Definition: edwards_pairing.hpp:29
libff::edwards_ate_G2_precomp
std::vector< edwards_Fq3_conic_coefficients > edwards_ate_G2_precomp
Definition: edwards_pairing.hpp:77
libff::edwards_pairing
edwards_Fq6 edwards_pairing(const edwards_G1 &P, const edwards_G2 &Q)
Definition: edwards_pairing.cpp:801
libff::operator>>
std::istream & operator>>(std::istream &in, alt_bn128_G1 &g)
Definition: alt_bn128_g1.cpp:446
libff::edwards_tate_G2_precomp::eta
edwards_Fq3 eta
Definition: edwards_pairing.hpp:44
libff::edwards_precompute_G2
edwards_G2_precomp edwards_precompute_G2(const edwards_G2 &Q)
Definition: edwards_pairing.cpp:781
libff::edwards_G2_precomp
edwards_ate_G2_precomp edwards_G2_precomp
Definition: edwards_pairing.hpp:113
libff::edwards_tate_G2_precomp
Definition: edwards_pairing.hpp:43
libff::edwards_tate_precompute_G2
edwards_tate_G2_precomp edwards_tate_precompute_G2(const edwards_G2 &Q)
Definition: edwards_pairing.cpp:234
libff::edwards_ate_precompute_G2
edwards_ate_G2_precomp edwards_ate_precompute_G2(const edwards_G2 &Q)
Definition: edwards_pairing.cpp:623
libff::edwards_miller_loop
edwards_Fq6 edwards_miller_loop(const edwards_G1_precomp &prec_P, const edwards_G2_precomp &prec_Q)
Definition: edwards_pairing.cpp:786
libff::edwards_ate_G1_precomp::operator==
bool operator==(const edwards_ate_G1_precomp &other) const
Definition: edwards_pairing.cpp:154
libff::edwards_Fq_conic_coefficients::operator==
bool operator==(const edwards_Fq_conic_coefficients &other) const
Definition: edwards_pairing.cpp:18
libff::edwards_tate_pairing
edwards_Fq6 edwards_tate_pairing(const edwards_G1 &P, const edwards_G2 &Q)
Definition: edwards_pairing.cpp:451
libff::edwards_ate_G1_precomp::P_XY
edwards_Fq P_XY
Definition: edwards_pairing.hpp:84
libff::edwards_tate_reduced_pairing
edwards_GT edwards_tate_reduced_pairing(const edwards_G1 &P, const edwards_G2 &Q)
Definition: edwards_pairing.cpp:461
libff::edwards_G1_precomp
edwards_ate_G1_precomp edwards_G1_precomp
Definition: edwards_pairing.hpp:112
libff::edwards_tate_precompute_G1
edwards_tate_G1_precomp edwards_tate_precompute_G1(const edwards_G1 &P)
Definition: edwards_pairing.cpp:367
edwards_init.hpp
libff::edwards_Fq3_conic_coefficients::c_XY
edwards_Fq3 c_XY
Definition: edwards_pairing.hpp:68
libff::edwards_Fq3_conic_coefficients::c_XZ
edwards_Fq3 c_XZ
Definition: edwards_pairing.hpp:69
libff::edwards_ate_double_miller_loop
edwards_Fq6 edwards_ate_double_miller_loop(const edwards_ate_G1_precomp &prec_P1, const edwards_ate_G2_precomp &prec_Q1, const edwards_ate_G1_precomp &prec_P2, const edwards_ate_G2_precomp &prec_Q2)
Definition: edwards_pairing.cpp:702
libff::edwards_Fq3_conic_coefficients
Definition: edwards_pairing.hpp:66
libff::edwards_precompute_G1
edwards_G1_precomp edwards_precompute_G1(const edwards_G1 &P)
Definition: edwards_pairing.cpp:776
libff::edwards_Fq3_conic_coefficients::operator<<
friend std::ostream & operator<<(std::ostream &out, const edwards_Fq3_conic_coefficients &cc)
Definition: edwards_pairing.cpp:104
libff::edwards_ate_miller_loop
edwards_Fq6 edwards_ate_miller_loop(const edwards_ate_G1_precomp &prec_P, const edwards_ate_G2_precomp &prec_Q)
Definition: edwards_pairing.cpp:662
libff::edwards_ate_precompute_G1
edwards_ate_G1_precomp edwards_ate_precompute_G1(const edwards_G1 &P)
Definition: edwards_pairing.cpp:609
libff::edwards_tate_G2_precomp::operator==
bool operator==(const edwards_tate_G2_precomp &other) const
Definition: edwards_pairing.cpp:75
libff::Fp3_model< edwards_q_limbs, edwards_modulus_q >
libff::edwards_tate_miller_loop
edwards_Fq6 edwards_tate_miller_loop(const edwards_tate_G1_precomp &prec_P, const edwards_tate_G2_precomp &prec_Q)
Definition: edwards_pairing.cpp:409
libff::edwards_final_exponentiation
edwards_GT edwards_final_exponentiation(const edwards_Fq6 &elt)
Definition: edwards_pairing.cpp:219
libff::edwards_final_exponentiation_first_chunk
edwards_Fq6 edwards_final_exponentiation_first_chunk(const edwards_Fq6 &elt, const edwards_Fq6 &elt_inv)
Definition: edwards_pairing.cpp:200
libff::Fp_model< edwards_q_limbs, edwards_modulus_q >
libff::edwards_Fq_conic_coefficients::c_ZZ
edwards_Fq c_ZZ
Definition: edwards_pairing.hpp:27
libff::operator<<
std::ostream & operator<<(std::ostream &out, const alt_bn128_G1 &g)
Definition: alt_bn128_g1.cpp:436
libff::edwards_reduced_pairing
edwards_GT edwards_reduced_pairing(const edwards_G1 &P, const edwards_G2 &Q)
Definition: edwards_pairing.cpp:806
libff::edwards_ate_G1_precomp::operator>>
friend std::istream & operator>>(std::istream &in, edwards_ate_G1_precomp &prec_P)
Definition: edwards_pairing.cpp:171
libff::edwards_Fq3_conic_coefficients::c_ZZ
edwards_Fq3 c_ZZ
Definition: edwards_pairing.hpp:67
libff::edwards_tate_G2_precomp::operator<<
friend std::ostream & operator<<(std::ostream &out, const edwards_tate_G2_precomp &prec_Q)
Definition: edwards_pairing.cpp:81
libff::edwards_Fq_conic_coefficients::operator<<
friend std::ostream & operator<<(std::ostream &out, const edwards_Fq_conic_coefficients &cc)
Definition: edwards_pairing.cpp:26
libff::edwards_ate_G1_precomp::P_ZZplusYZ
edwards_Fq P_ZZplusYZ
Definition: edwards_pairing.hpp:86
libff::edwards_Fq3_conic_coefficients::operator>>
friend std::istream & operator>>(std::istream &in, edwards_Fq3_conic_coefficients &cc)
Definition: edwards_pairing.cpp:112
libff::edwards_tate_G2_precomp::operator>>
friend std::istream & operator>>(std::istream &in, edwards_tate_G2_precomp &prec_Q)
Definition: edwards_pairing.cpp:88
libff::edwards_ate_G1_precomp::P_XZ
edwards_Fq P_XZ
Definition: edwards_pairing.hpp:85
libff::edwards_ate_G1_precomp
Definition: edwards_pairing.hpp:83
libff::edwards_G1
Definition: edwards_g1.hpp:21
libff::edwards_Fq3_conic_coefficients::operator==
bool operator==(const edwards_Fq3_conic_coefficients &other) const
Definition: edwards_pairing.cpp:96
libff::edwards_Fq6
Fp6_2over3_model< edwards_q_limbs, edwards_modulus_q > edwards_Fq6
Definition: edwards_init.hpp:32
libff::Fp6_2over3_model
Definition: fp6_2over3.hpp:26
libff::edwards_ate_pairing
edwards_Fq6 edwards_ate_pairing(const edwards_G1 &P, const edwards_G2 &Q)
Definition: edwards_pairing.cpp:757
libff::edwards_double_miller_loop
edwards_Fq6 edwards_double_miller_loop(const edwards_G1_precomp &prec_P1, const edwards_G2_precomp &prec_Q1, const edwards_G1_precomp &prec_P2, const edwards_G2_precomp &prec_Q2)
Definition: edwards_pairing.cpp:792
libff::edwards_tate_G2_precomp::y0
edwards_Fq3 y0
Definition: edwards_pairing.hpp:44
libff::edwards_tate_G1_precomp
std::vector< edwards_Fq_conic_coefficients > edwards_tate_G1_precomp
Definition: edwards_pairing.hpp:37
libff::edwards_ate_G1_precomp::operator<<
friend std::ostream & operator<<(std::ostream &out, const edwards_ate_G1_precomp &prec_P)
Definition: edwards_pairing.cpp:162
libff::edwards_ate_reduced_pairing
edwards_GT edwards_ate_reduced_pairing(const edwards_G1 &P, const edwards_G2 &Q)
Definition: edwards_pairing.cpp:767
libff::edwards_Fq_conic_coefficients
Definition: edwards_pairing.hpp:26
libff::edwards_Fq_conic_coefficients::operator>>
friend std::istream & operator>>(std::istream &in, edwards_Fq_conic_coefficients &cc)
Definition: edwards_pairing.cpp:34