Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Classes | Namespaces | Typedefs
weierstrass_g2_gadget.hpp File Reference
#include "libsnark/gadgetlib1/gadget.hpp"
#include "libsnark/gadgetlib1/gadgets/curves/scalar_multiplication.hpp"
#include "libsnark/gadgetlib1/gadgets/fields/fp2_gadgets.hpp"
#include "libsnark/gadgetlib1/gadgets/pairing/pairing_params.hpp"
#include <libff/algebra/curves/public_params.hpp>
#include <libff/algebra/fields/fp2.hpp>
#include <memory>
#include <libsnark/gadgetlib1/gadgets/curves/weierstrass_g2_gadget.tcc>
Include dependency graph for weierstrass_g2_gadget.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  libsnark::G2_variable< ppT >
 Gadget that represents a G2 variable. More...
 
class  libsnark::G2_variable_selector_gadget< ppT >
 
class  libsnark::G2_checker_gadget< ppT >
 Gadget that creates constraints for the validity of a G2 variable. More...
 
class  libsnark::G2_add_gadget< wppT >
 Gadget to add 2 G2 points. More...
 
class  libsnark::G2_dbl_gadget< wppT >
 Double a G2 point. More...
 
class  libsnark::G2_equality_gadget< wppT >
 Check equality of 2 G2 points. More...
 

Namespaces

 libsnark
 

Typedefs

template<typename wppT , mp_size_t scalarLimbs>
using libsnark::G2_mul_by_const_scalar_gadget = point_mul_by_const_scalar_gadget< libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_add_gadget< wppT >, G2_dbl_gadget< wppT >, libff::bigint< scalarLimbs > >
 
template<typename wppT >
using libsnark::G2_variable_or_identity = variable_or_identity< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT > >
 
template<typename wppT >
using libsnark::G2_variable_or_identity_selector_gadget = variable_or_identity_selector< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_variable_selector_gadget< wppT > >
 
template<typename wppT >
using libsnark::G2_variable_and_variable_or_identity_selector_gadget = variable_and_variable_or_identity_selector< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_variable_selector_gadget< wppT > >
 
template<typename wppT >
using libsnark::G2_add_variable_or_identity_gadget = add_variable_or_identity< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_variable_selector_gadget< wppT >, G2_add_gadget< wppT > >
 
template<typename wppT >
using libsnark::G2_add_variable_and_variable_or_identity_gadget = add_variable_and_variable_or_identity< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_variable_selector_gadget< wppT >, G2_add_gadget< wppT > >
 
template<typename wppT >
using libsnark::G2_dbl_variable_or_identity_gadget = dbl_variable_or_identity< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_dbl_gadget< wppT > >
 
template<typename wppT >
using libsnark::G2_mul_by_scalar_gadget = point_mul_by_scalar_gadget< wppT, libff::G2< other_curve< wppT > >, G2_variable< wppT >, G2_variable_selector_gadget< wppT >, G2_add_gadget< wppT >, G2_dbl_gadget< wppT > >
 

Detailed Description

Declaration of interfaces for G2 gadgets.

The gadgets verify curve arithmetic in G2 = E'(F) where E'/F^e: y^2 = x^3 + A' X + B' is an elliptic curve over F^e in short Weierstrass form.

Author
This file is part of libsnark, developed by SCIPR Lab and contributors (see AUTHORS).

Definition in file weierstrass_g2_gadget.hpp.