Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
libsnark::knowledge_commitment< T1, T2 > Struct Template Reference

#include <knowledge_commitment.hpp>

Public Member Functions

 knowledge_commitment (const T1 &g, const T2 &h)
 
 knowledge_commitment ()=default
 
 knowledge_commitment (const knowledge_commitment< T1, T2 > &other)=default
 
 knowledge_commitment (knowledge_commitment< T1, T2 > &&other)=default
 
knowledge_commitment< T1, T2 > & operator= (const knowledge_commitment< T1, T2 > &other)=default
 
knowledge_commitment< T1, T2 > & operator= (knowledge_commitment< T1, T2 > &&other)=default
 
knowledge_commitment< T1, T2 > add (const knowledge_commitment< T1, T2 > &other) const
 
knowledge_commitment< T1, T2 > mixed_add (const knowledge_commitment< T1, T2 > &other) const
 
knowledge_commitment< T1, T2 > dbl () const
 
knowledge_commitment< T1, T2 > operator+ (const knowledge_commitment< T1, T2 > &other) const
 
knowledge_commitment< T1, T2 > operator- () const
 
void to_special ()
 
bool is_special () const
 
bool is_zero () const
 
bool operator== (const knowledge_commitment< T1, T2 > &other) const
 
bool operator!= (const knowledge_commitment< T1, T2 > &other) const
 
void print () const
 

Static Public Member Functions

static knowledge_commitment< T1, T2 > zero ()
 
static knowledge_commitment< T1, T2 > one ()
 
static size_t size_in_bits ()
 
static void batch_to_special_all_non_zeros (std::vector< knowledge_commitment< T1, T2 >> &vec)
 

Public Attributes

T1 g
 
T2 h
 

Detailed Description

template<typename T1, typename T2>
struct libsnark::knowledge_commitment< T1, T2 >

A knowledge commitment is a pair (g,h) where g is in T1 and h in T2, and T1 and T2 are groups (written additively).

Such pairs form a group by defining:

Definition at line 34 of file knowledge_commitment.hpp.

Constructor & Destructor Documentation

◆ knowledge_commitment() [1/4]

template<typename T1 , typename T2 >
libsnark::knowledge_commitment< T1, T2 >::knowledge_commitment ( const T1 &  g,
const T2 &  h 
)

◆ knowledge_commitment() [2/4]

template<typename T1 , typename T2 >
libsnark::knowledge_commitment< T1, T2 >::knowledge_commitment ( )
default

◆ knowledge_commitment() [3/4]

template<typename T1 , typename T2 >
libsnark::knowledge_commitment< T1, T2 >::knowledge_commitment ( const knowledge_commitment< T1, T2 > &  other)
default

◆ knowledge_commitment() [4/4]

template<typename T1 , typename T2 >
libsnark::knowledge_commitment< T1, T2 >::knowledge_commitment ( knowledge_commitment< T1, T2 > &&  other)
default

Member Function Documentation

◆ add()

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::add ( const knowledge_commitment< T1, T2 > &  other) const

◆ batch_to_special_all_non_zeros()

template<typename T1 , typename T2 >
static void libsnark::knowledge_commitment< T1, T2 >::batch_to_special_all_non_zeros ( std::vector< knowledge_commitment< T1, T2 >> &  vec)
static

◆ dbl()

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::dbl ( ) const

◆ is_special()

template<typename T1 , typename T2 >
bool libsnark::knowledge_commitment< T1, T2 >::is_special ( ) const

◆ is_zero()

template<typename T1 , typename T2 >
bool libsnark::knowledge_commitment< T1, T2 >::is_zero ( ) const

◆ mixed_add()

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::mixed_add ( const knowledge_commitment< T1, T2 > &  other) const

◆ one()

template<typename T1 , typename T2 >
static knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::one ( )
static

◆ operator!=()

template<typename T1 , typename T2 >
bool libsnark::knowledge_commitment< T1, T2 >::operator!= ( const knowledge_commitment< T1, T2 > &  other) const

◆ operator+()

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::operator+ ( const knowledge_commitment< T1, T2 > &  other) const

◆ operator-()

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::operator- ( ) const

◆ operator=() [1/2]

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2>& libsnark::knowledge_commitment< T1, T2 >::operator= ( const knowledge_commitment< T1, T2 > &  other)
default

◆ operator=() [2/2]

template<typename T1 , typename T2 >
knowledge_commitment<T1, T2>& libsnark::knowledge_commitment< T1, T2 >::operator= ( knowledge_commitment< T1, T2 > &&  other)
default

◆ operator==()

template<typename T1 , typename T2 >
bool libsnark::knowledge_commitment< T1, T2 >::operator== ( const knowledge_commitment< T1, T2 > &  other) const

◆ print()

template<typename T1 , typename T2 >
void libsnark::knowledge_commitment< T1, T2 >::print ( ) const

◆ size_in_bits()

template<typename T1 , typename T2 >
static size_t libsnark::knowledge_commitment< T1, T2 >::size_in_bits ( )
static

◆ to_special()

template<typename T1 , typename T2 >
void libsnark::knowledge_commitment< T1, T2 >::to_special ( )

◆ zero()

template<typename T1 , typename T2 >
static knowledge_commitment<T1, T2> libsnark::knowledge_commitment< T1, T2 >::zero ( )
static

Member Data Documentation

◆ g

template<typename T1 , typename T2 >
T1 libsnark::knowledge_commitment< T1, T2 >::g

Definition at line 36 of file knowledge_commitment.hpp.

◆ h

template<typename T1 , typename T2 >
T2 libsnark::knowledge_commitment< T1, T2 >::h

Definition at line 37 of file knowledge_commitment.hpp.


The documentation for this struct was generated from the following file: