Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
Go to the documentation of this file.
16 template<
typename ppT>
36 template<
typename ppT>
56 template<
typename ppT>
98 ppT::precompute_G1(a),
99 ppT::precompute_G2(b),
100 ppT::precompute_G1(c),
101 ppT::precompute_G2(d));
104 ppT::precompute_G1(e),
105 ppT::precompute_G2(f),
106 ppT::precompute_G1(g),
107 ppT::precompute_G2(h));
111 ppT::final_exponentiation(miller_abcd * miller_efgh);
138 return libff::ffi::g1_add<libff::bls12_377_pp>(
139 a_g1, a_g1_size, b_g1, b_g1_size, out_g1, out_g1_size);
151 return libff::ffi::g1_mul<libff::bls12_377_pp>(
152 p_g1, p_g1_size, s_fr, s_fr_size, out_g1, out_g1_size);
173 return libff::ffi::pairing<libff::bls12_377_pp>(
208 return libff::ffi::g1_add<libff::bw6_761_pp>(
209 a_g1, a_g1_size, b_g1, b_g1_size, out_g1, out_g1_size);
221 return libff::ffi::g1_mul<libff::bw6_761_pp>(
222 p_g1, p_g1_size, s_fr, s_fr_size, out_g1, out_g1_size);
243 return libff::ffi::pairing<libff::bw6_761_pp>(
bool bls12_377_g1_add(const void *a_g1, size_t a_g1_size, const void *b_g1, size_t b_g1_size, void *out_g1, size_t out_g1_size)
typename EC_ppT::GT_type GT
bool g1_add(const void *a_g1, size_t a_g1_size, const void *b_g1, size_t b_g1_size, void *out_g1, size_t out_g1_size)
bool bw6_761_pairing(const void *a_g1, size_t a_g1_size, const void *b_g2, size_t b_g2_size, const void *c_g1, size_t c_g1_size, const void *d_g2, size_t d_g2_size, const void *e_g1, size_t e_g1_size, const void *f_g2, size_t f_g2_size, const void *g_g1, size_t g_g1_size, const void *h_g2, size_t h_g2_size)
bool group_element_write(const GroupT &g, const void *buffer, size_t buffer_size)
bool bls12_377_g1_mul(const void *p_g1, size_t p_g1_size, const void *s_fr, size_t s_fr_size, void *out_g1, size_t out_g1_size)
typename EC_ppT::G1_type G1
static void init_public_params()
typename EC_ppT::G2_type G2
static void init_public_params()
typename EC_ppT::Fp_type Fr
bool pairing(const void *a_g1, size_t a_g1_size, const void *b_g2, size_t b_g2_size, const void *c_g1, size_t c_g1_size, const void *d_g2, size_t d_g2_size, const void *e_g1, size_t e_g1_size, const void *f_g2, size_t f_g2_size, const void *g_g1, size_t g_g1_size, const void *h_g2, size_t h_g2_size)
bool bls12_377_pairing(const void *a_g1, size_t a_g1_size, const void *b_g2, size_t b_g2_size, const void *c_g1, size_t c_g1_size, const void *d_g2, size_t d_g2_size, const void *e_g1, size_t e_g1_size, const void *f_g2, size_t f_g2_size, const void *g_g1, size_t g_g1_size, const void *h_g2, size_t h_g2_size)
bool bw6_761_g1_add(const void *a_g1, size_t a_g1_size, const void *b_g1, size_t b_g1_size, void *out_g1, size_t out_g1_size)
bool g1_mul(const void *p_g1, size_t p_g1_size, const void *s_fr, size_t s_fr_size, void *out_g1, size_t out_g1_size)
bool group_element_read(GroupT &g, const void *buffer, size_t buffer_size)
bool field_element_read(FieldT &f, const void *buffer, size_t buffer_size)
bool bw6_761_g1_mul(const void *p_g1, size_t p_g1_size, const void *s_fr, size_t s_fr_size, void *out_g1, size_t out_g1_size)