Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
bls12_381_pairing.hpp
Go to the documentation of this file.
1 
8 #ifndef BLS12_381_PAIRING_HPP_
9 #define BLS12_381_PAIRING_HPP_
11 #include <vector>
12 
13 namespace libff
14 {
15 
16 /* final exponentiation */
17 
19 
20 /* ate pairing */
21 
25 
26  bool operator==(const bls12_381_ate_G1_precomp &other) const;
27  friend std::ostream &operator<<(
28  std::ostream &out, const bls12_381_ate_G1_precomp &prec_P);
29  friend std::istream &operator>>(
30  std::istream &in, bls12_381_ate_G1_precomp &prec_P);
31 };
32 
37 
38  bool operator==(const bls12_381_ate_ell_coeffs &other) const;
39  friend std::ostream &operator<<(
40  std::ostream &out, const bls12_381_ate_ell_coeffs &c);
41  friend std::istream &operator>>(
42  std::istream &in, bls12_381_ate_ell_coeffs &c);
43 };
44 
48  std::vector<bls12_381_ate_ell_coeffs> coeffs;
49 
50  bool operator==(const bls12_381_ate_G2_precomp &other) const;
51  friend std::ostream &operator<<(
52  std::ostream &out, const bls12_381_ate_G2_precomp &prec_Q);
53  friend std::istream &operator>>(
54  std::istream &in, bls12_381_ate_G2_precomp &prec_Q);
55 };
56 
58  const bls12_381_Fq two_inv,
59  bls12_381_G2 &current,
62  const bls12_381_G2 base,
63  bls12_381_G2 &current,
65 
68 
70  const bls12_381_ate_G1_precomp &prec_P,
71  const bls12_381_ate_G2_precomp &prec_Q);
73  const bls12_381_ate_G1_precomp &prec_P1,
74  const bls12_381_ate_G2_precomp &prec_Q1,
75  const bls12_381_ate_G1_precomp &prec_P2,
76  const bls12_381_ate_G2_precomp &prec_Q2);
77 
79  const bls12_381_Fq12 &elt);
82  const bls12_381_Fq12 &elt);
83 
85  const bls12_381_G1 &P, const bls12_381_G2 &Q);
87  const bls12_381_G1 &P, const bls12_381_G2 &Q);
88 
89 /* choice of pairing */
90 
93 
95 
97 
99  const bls12_381_G1_precomp &prec_P, const bls12_381_G2_precomp &prec_Q);
100 
102  const bls12_381_G1_precomp &prec_P1,
103  const bls12_381_G2_precomp &prec_Q1,
104  const bls12_381_G1_precomp &prec_P2,
105  const bls12_381_G2_precomp &prec_Q2);
106 
108 
110  const bls12_381_G1 &P, const bls12_381_G2 &Q);
111 
113  const bls12_381_G1 &P, const bls12_381_G2 &Q);
114 
115 } // namespace libff
116 
117 #endif // BLS12_381_PAIRING_HPP_
libff::bls12_381_ate_ell_coeffs
Definition: bls12_381_pairing.hpp:33
libff::bls12_381_double_miller_loop
bls12_381_Fq12 bls12_381_double_miller_loop(const bls12_381_G1_precomp &prec_P1, const bls12_381_G2_precomp &prec_Q1, const bls12_381_G1_precomp &prec_P2, const bls12_381_G2_precomp &prec_Q2)
Definition: bls12_381_pairing.cpp:513
libff::bls12_381_ate_G1_precomp::PY
bls12_381_Fq PY
Definition: bls12_381_pairing.hpp:24
libff::bls12_381_GT
bls12_381_Fq12 bls12_381_GT
Definition: bls12_381_init.hpp:36
libff::bls12_381_ate_pairing
bls12_381_Fq12 bls12_381_ate_pairing(const bls12_381_G1 &P, const bls12_381_G2 &Q)
Definition: bls12_381_pairing.cpp:474
libff::bls12_381_ate_reduced_pairing
bls12_381_GT bls12_381_ate_reduced_pairing(const bls12_381_G1 &P, const bls12_381_G2 &Q)
Definition: bls12_381_pairing.cpp:485
libff::bls12_381_ate_G1_precomp
Definition: bls12_381_pairing.hpp:22
libff::bls12_381_ate_G2_precomp::QX
bls12_381_Fq2 QX
Definition: bls12_381_pairing.hpp:46
libff::bls12_381_G2_precomp
bls12_381_ate_G2_precomp bls12_381_G2_precomp
Definition: bls12_381_pairing.hpp:92
libff
Definition: ffi.cpp:8
libff::bls12_381_final_exponentiation_last_chunk
bls12_381_Fq12 bls12_381_final_exponentiation_last_chunk(const bls12_381_Fq12 &elt)
Definition: bls12_381_pairing.cpp:156
libff::bls12_381_G1
Definition: bls12_381_g1.hpp:21
libff::bls12_381_ate_ell_coeffs::operator>>
friend std::istream & operator>>(std::istream &in, bls12_381_ate_ell_coeffs &c)
Definition: bls12_381_pairing.cpp:56
libff::bls12_381_ate_G2_precomp::coeffs
std::vector< bls12_381_ate_ell_coeffs > coeffs
Definition: bls12_381_pairing.hpp:48
libff::bls12_381_ate_miller_loop
bls12_381_Fq12 bls12_381_ate_miller_loop(const bls12_381_ate_G1_precomp &prec_P, const bls12_381_ate_G2_precomp &prec_Q)
Definition: bls12_381_pairing.cpp:369
libff::bls12_381_ate_G1_precomp::operator>>
friend std::istream & operator>>(std::istream &in, bls12_381_ate_G1_precomp &prec_P)
Definition: bls12_381_pairing.cpp:32
libff::bls12_381_ate_ell_coeffs::ell_0
bls12_381_Fq2 ell_0
Definition: bls12_381_pairing.hpp:34
libff::bls12_381_ate_G2_precomp::operator<<
friend std::ostream & operator<<(std::ostream &out, const bls12_381_ate_G2_precomp &prec_Q)
Definition: bls12_381_pairing.cpp:75
libff::bls12_381_ate_G1_precomp::operator==
bool operator==(const bls12_381_ate_G1_precomp &other) const
Definition: bls12_381_pairing.cpp:18
libff::bls12_381_exp_by_z
bls12_381_Fq12 bls12_381_exp_by_z(const bls12_381_Fq12 &elt)
Definition: bls12_381_pairing.cpp:142
libff::bls12_381_ate_G2_precomp::QY
bls12_381_Fq2 QY
Definition: bls12_381_pairing.hpp:47
libff::bls12_381_doubling_step_for_miller_loop
void bls12_381_doubling_step_for_miller_loop(const bls12_381_Fq two_inv, bls12_381_G2 &current, bls12_381_ate_ell_coeffs &c)
Definition: bls12_381_pairing.cpp:230
libff::bls12_381_mixed_addition_step_for_miller_loop
void bls12_381_mixed_addition_step_for_miller_loop(const bls12_381_G2 base, bls12_381_G2 &current, bls12_381_ate_ell_coeffs &c)
Definition: bls12_381_pairing.cpp:274
libff::bls12_381_ate_G2_precomp::operator==
bool operator==(const bls12_381_ate_G2_precomp &other) const
Definition: bls12_381_pairing.cpp:67
libff::bls12_381_ate_ell_coeffs::operator==
bool operator==(const bls12_381_ate_ell_coeffs &other) const
Definition: bls12_381_pairing.cpp:41
libff::bls12_381_final_exponentiation_first_chunk
bls12_381_Fq12 bls12_381_final_exponentiation_first_chunk(const bls12_381_Fq12 &elt)
Definition: bls12_381_pairing.cpp:114
libff::bls12_381_ate_G2_precomp::operator>>
friend std::istream & operator>>(std::istream &in, bls12_381_ate_G2_precomp &prec_Q)
Definition: bls12_381_pairing.cpp:87
libff::Fp12_2over3over2_model
Definition: fp12_2over3over2.hpp:20
libff::bls12_381_G1_precomp
bls12_381_ate_G1_precomp bls12_381_G1_precomp
Definition: bls12_381_pairing.hpp:91
libff::bls12_381_ate_precompute_G1
bls12_381_ate_G1_precomp bls12_381_ate_precompute_G1(const bls12_381_G1 &P)
Definition: bls12_381_pairing.cpp:309
libff::bls12_381_pairing
bls12_381_Fq12 bls12_381_pairing(const bls12_381_G1 &P, const bls12_381_G2 &Q)
Definition: bls12_381_pairing.cpp:522
libff::Fp_model< bls12_381_q_limbs, bls12_381_modulus_q >
libff::bls12_381_reduced_pairing
bls12_381_GT bls12_381_reduced_pairing(const bls12_381_G1 &P, const bls12_381_G2 &Q)
Definition: bls12_381_pairing.cpp:527
libff::bls12_381_ate_G2_precomp
Definition: bls12_381_pairing.hpp:45
bls12_381_init.hpp
libff::bls12_381_ate_ell_coeffs::ell_VW
bls12_381_Fq2 ell_VW
Definition: bls12_381_pairing.hpp:35
libff::bls12_381_precompute_G2
bls12_381_G2_precomp bls12_381_precompute_G2(const bls12_381_G2 &Q)
Definition: bls12_381_pairing.cpp:502
libff::bls12_381_ate_G1_precomp::operator<<
friend std::ostream & operator<<(std::ostream &out, const bls12_381_ate_G1_precomp &prec_P)
Definition: bls12_381_pairing.cpp:24
libff::Fp2_model< bls12_381_q_limbs, bls12_381_modulus_q >
libff::bls12_381_precompute_G1
bls12_381_G1_precomp bls12_381_precompute_G1(const bls12_381_G1 &P)
Definition: bls12_381_pairing.cpp:497
libff::bls12_381_ate_precompute_G2
bls12_381_ate_G2_precomp bls12_381_ate_precompute_G2(const bls12_381_G2 &Q)
Definition: bls12_381_pairing.cpp:324
libff::bls12_381_Fq12
Fp12_2over3over2_model< bls12_381_q_limbs, bls12_381_modulus_q > bls12_381_Fq12
Definition: bls12_381_init.hpp:35
libff::bls12_381_ate_double_miller_loop
bls12_381_Fq12 bls12_381_ate_double_miller_loop(const bls12_381_ate_G1_precomp &prec_P1, const bls12_381_ate_G2_precomp &prec_Q1, const bls12_381_ate_G1_precomp &prec_P2, const bls12_381_ate_G2_precomp &prec_Q2)
Definition: bls12_381_pairing.cpp:415
libff::bls12_381_affine_reduced_pairing
bls12_381_GT bls12_381_affine_reduced_pairing(const bls12_381_G1 &P, const bls12_381_G2 &Q)
libff::bls12_381_ate_G1_precomp::PX
bls12_381_Fq PX
Definition: bls12_381_pairing.hpp:23
libff::bls12_381_miller_loop
bls12_381_Fq12 bls12_381_miller_loop(const bls12_381_G1_precomp &prec_P, const bls12_381_G2_precomp &prec_Q)
Definition: bls12_381_pairing.cpp:507
libff::bls12_381_ate_ell_coeffs::ell_VV
bls12_381_Fq2 ell_VV
Definition: bls12_381_pairing.hpp:36
libff::bls12_381_ate_ell_coeffs::operator<<
friend std::ostream & operator<<(std::ostream &out, const bls12_381_ate_ell_coeffs &c)
Definition: bls12_381_pairing.cpp:49
libff::bls12_381_final_exponentiation
bls12_381_GT bls12_381_final_exponentiation(const bls12_381_Fq12 &elt)
Definition: bls12_381_pairing.cpp:215
libff::bls12_381_G2
Definition: bls12_381_g2.hpp:21