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

#include <r1cs_se_ppzksnark.hpp>

Public Member Functions

 r1cs_se_ppzksnark_proof ()
 
 r1cs_se_ppzksnark_proof (libff::G1< ppT > &&A, libff::G2< ppT > &&B, libff::G1< ppT > &&C)
 
size_t G1_size () const
 
size_t G2_size () const
 
size_t size_in_bits () const
 
void print_size () const
 
bool is_well_formed () const
 
bool operator== (const r1cs_se_ppzksnark_proof< ppT > &other) const
 

Public Attributes

libff::G1< ppT > A
 
libff::G2< ppT > B
 
libff::G1< ppT > C
 

Friends

std::ostream & operator (std::ostream &out, const r1cs_se_ppzksnark_proof< ppT > &proof)
 
std::istream & operator>> (std::istream &in, r1cs_se_ppzksnark_proof< ppT > &proof)
 

Detailed Description

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

A proof for the R1CS SEppzkSNARK.

While the proof has a structure, externally one merely opaquely produces, serializes/deserializes, and verifies proofs. We only expose some information about the structure for statistics purposes.

Definition at line 321 of file r1cs_se_ppzksnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_se_ppzksnark_proof() [1/2]

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

Definition at line 344 of file r1cs_se_ppzksnark.hpp.

344 {}

◆ r1cs_se_ppzksnark_proof() [2/2]

template<typename ppT >
libsnark::r1cs_se_ppzksnark_proof< ppT >::r1cs_se_ppzksnark_proof ( libff::G1< ppT > &&  A,
libff::G2< ppT > &&  B,
libff::G1< ppT > &&  C 
)
inline

Definition at line 345 of file r1cs_se_ppzksnark.hpp.

347  : A(std::move(A)), B(std::move(B)), C(std::move(C)){};

Member Function Documentation

◆ G1_size()

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

Definition at line 349 of file r1cs_se_ppzksnark.hpp.

349 { return 2; }
Here is the caller graph for this function:

◆ G2_size()

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

Definition at line 351 of file r1cs_se_ppzksnark.hpp.

351 { return 1; }
Here is the caller graph for this function:

◆ is_well_formed()

template<typename ppT >
bool libsnark::r1cs_se_ppzksnark_proof< ppT >::is_well_formed ( ) const
inline

Definition at line 369 of file r1cs_se_ppzksnark.hpp.

370  {
371  return (A.is_well_formed() && B.is_well_formed() && C.is_well_formed());
372  }

◆ operator==()

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

◆ print_size()

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

Definition at line 359 of file r1cs_se_ppzksnark.hpp.

360  {
361  libff::print_indent();
362  printf("* G1 elements in proof: %zu\n", this->G1_size());
363  libff::print_indent();
364  printf("* G2 elements in proof: %zu\n", this->G2_size());
365  libff::print_indent();
366  printf("* Proof size in bits: %zu\n", this->size_in_bits());
367  }
Here is the call graph for this function:

◆ size_in_bits()

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

Definition at line 353 of file r1cs_se_ppzksnark.hpp.

354  {
355  return G1_size() * libff::G1<ppT>::size_in_bits() +
356  G2_size() * libff::G2<ppT>::size_in_bits();
357  }
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_proof< ppT > &  proof 
)
friend

◆ operator>>

template<typename ppT >
std::istream& operator>> ( std::istream &  in,
r1cs_se_ppzksnark_proof< ppT > &  proof 
)
friend

Member Data Documentation

◆ A

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_se_ppzksnark_proof< ppT >::A

Definition at line 340 of file r1cs_se_ppzksnark.hpp.

◆ B

template<typename ppT >
libff::G2<ppT> libsnark::r1cs_se_ppzksnark_proof< ppT >::B

Definition at line 341 of file r1cs_se_ppzksnark.hpp.

◆ C

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_se_ppzksnark_proof< ppT >::C

Definition at line 342 of file r1cs_se_ppzksnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_se_ppzksnark_proof::C
libff::G1< ppT > C
Definition: r1cs_se_ppzksnark.hpp:342
libsnark::r1cs_se_ppzksnark_proof::B
libff::G2< ppT > B
Definition: r1cs_se_ppzksnark.hpp:341
libsnark::r1cs_se_ppzksnark_proof::G1_size
size_t G1_size() const
Definition: r1cs_se_ppzksnark.hpp:349
libsnark::r1cs_se_ppzksnark_proof::G2_size
size_t G2_size() const
Definition: r1cs_se_ppzksnark.hpp:351
libsnark::r1cs_se_ppzksnark_proof::A
libff::G1< ppT > A
Definition: r1cs_se_ppzksnark.hpp:340
libsnark::r1cs_se_ppzksnark_proof::size_in_bits
size_t size_in_bits() const
Definition: r1cs_se_ppzksnark.hpp:353