Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | Friends | List of all members
libsnark::r1cs_se_ppzksnark_proving_key< ppT > Class Template Reference

#include <r1cs_se_ppzksnark.hpp>

Public Member Functions

 r1cs_se_ppzksnark_proving_key ()
 
r1cs_se_ppzksnark_proving_key< ppT > & operator= (const r1cs_se_ppzksnark_proving_key< ppT > &other)=default
 
 r1cs_se_ppzksnark_proving_key (const r1cs_se_ppzksnark_proving_key< ppT > &other)=default
 
 r1cs_se_ppzksnark_proving_key (r1cs_se_ppzksnark_proving_key< ppT > &&other)=default
 
 r1cs_se_ppzksnark_proving_key (libff::G1_vector< ppT > &&A_query, libff::G2_vector< ppT > &&B_query, libff::G1_vector< ppT > &&C_query_1, libff::G1_vector< ppT > &&C_query_2, libff::G1< ppT > &G_gamma_Z, libff::G2< ppT > &H_gamma_Z, libff::G1< ppT > &G_ab_gamma_Z, libff::G1< ppT > &G_gamma2_Z2, libff::G1_vector< ppT > &&G_gamma2_Z_t, r1cs_se_ppzksnark_constraint_system< ppT > &&constraint_system)
 
size_t G1_size () const
 
size_t G2_size () const
 
size_t size_in_bits () const
 
void print_size () const
 
bool operator== (const r1cs_se_ppzksnark_proving_key< ppT > &other) const
 

Public Attributes

libff::G1_vector< ppT > A_query
 
libff::G2_vector< ppT > B_query
 
libff::G1_vector< ppT > C_query_1
 
libff::G1_vector< ppT > C_query_2
 
libff::G1< ppT > G_gamma_Z
 
libff::G2< ppT > H_gamma_Z
 
libff::G1< ppT > G_ab_gamma_Z
 
libff::G1< ppT > G_gamma2_Z2
 
libff::G1_vector< ppT > G_gamma2_Z_t
 
r1cs_se_ppzksnark_constraint_system< ppT > constraint_system
 

Friends

std::ostream & operator (std::ostream &out, const r1cs_se_ppzksnark_proving_key< ppT > &pk)
 
std::istream & operator>> (std::istream &in, r1cs_se_ppzksnark_proving_key< ppT > &pk)
 

Detailed Description

template<typename ppT>
class libsnark::r1cs_se_ppzksnark_proving_key< ppT >

A proving key for the R1CS SEppzkSNARK.

Definition at line 63 of file r1cs_se_ppzksnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_se_ppzksnark_proving_key() [1/4]

template<typename ppT >
libsnark::r1cs_se_ppzksnark_proving_key< ppT >::r1cs_se_ppzksnark_proving_key ( )
inline

Definition at line 109 of file r1cs_se_ppzksnark.hpp.

109 {};

◆ r1cs_se_ppzksnark_proving_key() [2/4]

template<typename ppT >
libsnark::r1cs_se_ppzksnark_proving_key< ppT >::r1cs_se_ppzksnark_proving_key ( const r1cs_se_ppzksnark_proving_key< ppT > &  other)
default

◆ r1cs_se_ppzksnark_proving_key() [3/4]

template<typename ppT >
libsnark::r1cs_se_ppzksnark_proving_key< ppT >::r1cs_se_ppzksnark_proving_key ( r1cs_se_ppzksnark_proving_key< ppT > &&  other)
default

◆ r1cs_se_ppzksnark_proving_key() [4/4]

template<typename ppT >
libsnark::r1cs_se_ppzksnark_proving_key< ppT >::r1cs_se_ppzksnark_proving_key ( libff::G1_vector< ppT > &&  A_query,
libff::G2_vector< ppT > &&  B_query,
libff::G1_vector< ppT > &&  C_query_1,
libff::G1_vector< ppT > &&  C_query_2,
libff::G1< ppT > &  G_gamma_Z,
libff::G2< ppT > &  H_gamma_Z,
libff::G1< ppT > &  G_ab_gamma_Z,
libff::G1< ppT > &  G_gamma2_Z2,
libff::G1_vector< ppT > &&  G_gamma2_Z_t,
r1cs_se_ppzksnark_constraint_system< ppT > &&  constraint_system 
)
inline

Definition at line 116 of file r1cs_se_ppzksnark.hpp.

127  : A_query(std::move(A_query))
128  , B_query(std::move(B_query))
129  , C_query_1(std::move(C_query_1))
130  , C_query_2(std::move(C_query_2))
135  , G_gamma2_Z_t(std::move(G_gamma2_Z_t))
136  , constraint_system(std::move(constraint_system)){};

Member Function Documentation

◆ G1_size()

template<typename ppT >
size_t libsnark::r1cs_se_ppzksnark_proving_key< ppT >::G1_size ( ) const
inline

Definition at line 138 of file r1cs_se_ppzksnark.hpp.

139  {
140  return A_query.size() + C_query_1.size() + C_query_2.size() + 3 +
141  G_gamma2_Z_t.size();
142  }
Here is the caller graph for this function:

◆ G2_size()

template<typename ppT >
size_t libsnark::r1cs_se_ppzksnark_proving_key< ppT >::G2_size ( ) const
inline

Definition at line 144 of file r1cs_se_ppzksnark.hpp.

144 { return B_query.size() + 1; }
Here is the caller graph for this function:

◆ operator=()

template<typename ppT >
r1cs_se_ppzksnark_proving_key<ppT>& libsnark::r1cs_se_ppzksnark_proving_key< ppT >::operator= ( const r1cs_se_ppzksnark_proving_key< ppT > &  other)
default

◆ operator==()

template<typename ppT >
bool libsnark::r1cs_se_ppzksnark_proving_key< ppT >::operator== ( const r1cs_se_ppzksnark_proving_key< ppT > &  other) const

◆ print_size()

template<typename ppT >
void libsnark::r1cs_se_ppzksnark_proving_key< ppT >::print_size ( ) const
inline

Definition at line 152 of file r1cs_se_ppzksnark.hpp.

153  {
154  libff::print_indent();
155  printf("* G1 elements in PK: %zu\n", this->G1_size());
156  libff::print_indent();
157  printf("* G2 elements in PK: %zu\n", this->G2_size());
158  libff::print_indent();
159  printf("* PK size in bits: %zu\n", this->size_in_bits());
160  }
Here is the call graph for this function:

◆ size_in_bits()

template<typename ppT >
size_t libsnark::r1cs_se_ppzksnark_proving_key< ppT >::size_in_bits ( ) const
inline

Definition at line 146 of file r1cs_se_ppzksnark.hpp.

147  {
148  return G1_size() * libff::G1<ppT>::size_in_bits() +
149  G2_size() * libff::G2<ppT>::size_in_bits();
150  }
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator

template<typename ppT >
std::ostream& operator ( std::ostream &  out,
const r1cs_se_ppzksnark_proving_key< ppT > &  pk 
)
friend

◆ operator>>

template<typename ppT >
std::istream& operator>> ( std::istream &  in,
r1cs_se_ppzksnark_proving_key< ppT > &  pk 
)
friend

Member Data Documentation

◆ A_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::A_query

Definition at line 80 of file r1cs_se_ppzksnark.hpp.

◆ B_query

template<typename ppT >
libff::G2_vector<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::B_query

Definition at line 83 of file r1cs_se_ppzksnark.hpp.

◆ C_query_1

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::C_query_1

Definition at line 87 of file r1cs_se_ppzksnark.hpp.

◆ C_query_2

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::C_query_2

Definition at line 90 of file r1cs_se_ppzksnark.hpp.

◆ constraint_system

template<typename ppT >
r1cs_se_ppzksnark_constraint_system<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::constraint_system

Definition at line 107 of file r1cs_se_ppzksnark.hpp.

◆ G_ab_gamma_Z

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::G_ab_gamma_Z

Definition at line 99 of file r1cs_se_ppzksnark.hpp.

◆ G_gamma2_Z2

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::G_gamma2_Z2

Definition at line 102 of file r1cs_se_ppzksnark.hpp.

◆ G_gamma2_Z_t

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::G_gamma2_Z_t

Definition at line 105 of file r1cs_se_ppzksnark.hpp.

◆ G_gamma_Z

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::G_gamma_Z

Definition at line 93 of file r1cs_se_ppzksnark.hpp.

◆ H_gamma_Z

template<typename ppT >
libff::G2<ppT> libsnark::r1cs_se_ppzksnark_proving_key< ppT >::H_gamma_Z

Definition at line 96 of file r1cs_se_ppzksnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_se_ppzksnark_proving_key::G_gamma2_Z_t
libff::G1_vector< ppT > G_gamma2_Z_t
Definition: r1cs_se_ppzksnark.hpp:105
libsnark::r1cs_se_ppzksnark_proving_key::constraint_system
r1cs_se_ppzksnark_constraint_system< ppT > constraint_system
Definition: r1cs_se_ppzksnark.hpp:107
libsnark::r1cs_se_ppzksnark_proving_key::G1_size
size_t G1_size() const
Definition: r1cs_se_ppzksnark.hpp:138
libsnark::r1cs_se_ppzksnark_proving_key::G_gamma_Z
libff::G1< ppT > G_gamma_Z
Definition: r1cs_se_ppzksnark.hpp:93
libsnark::r1cs_se_ppzksnark_proving_key::A_query
libff::G1_vector< ppT > A_query
Definition: r1cs_se_ppzksnark.hpp:80
libsnark::r1cs_se_ppzksnark_proving_key::G_ab_gamma_Z
libff::G1< ppT > G_ab_gamma_Z
Definition: r1cs_se_ppzksnark.hpp:99
libsnark::r1cs_se_ppzksnark_proving_key::B_query
libff::G2_vector< ppT > B_query
Definition: r1cs_se_ppzksnark.hpp:83
libsnark::r1cs_se_ppzksnark_proving_key::C_query_1
libff::G1_vector< ppT > C_query_1
Definition: r1cs_se_ppzksnark.hpp:87
libsnark::r1cs_se_ppzksnark_proving_key::H_gamma_Z
libff::G2< ppT > H_gamma_Z
Definition: r1cs_se_ppzksnark.hpp:96
libsnark::r1cs_se_ppzksnark_proving_key::G_gamma2_Z2
libff::G1< ppT > G_gamma2_Z2
Definition: r1cs_se_ppzksnark.hpp:102
libsnark::r1cs_se_ppzksnark_proving_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_se_ppzksnark.hpp:146
libsnark::r1cs_se_ppzksnark_proving_key::G2_size
size_t G2_size() const
Definition: r1cs_se_ppzksnark.hpp:144
libsnark::r1cs_se_ppzksnark_proving_key::C_query_2
libff::G1_vector< ppT > C_query_2
Definition: r1cs_se_ppzksnark.hpp:90