Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
libzeth::BLAKE2s_256_comp< FieldT > Class Template Reference

#include <blake2s_comp.hpp>

Inheritance diagram for libzeth::BLAKE2s_256_comp< FieldT >:
Inheritance graph
[legend]
Collaboration diagram for libzeth::BLAKE2s_256_comp< FieldT >:
Collaboration graph
[legend]

Public Member Functions

 BLAKE2s_256_comp (libsnark::protoboard< FieldT > &pb, const libsnark::digest_variable< FieldT > &h, const libsnark::block_variable< FieldT > &input_block, const libsnark::digest_variable< FieldT > &output, const std::string &annotation_prefix="BLAKE2sCompression_gadget")
 
void generate_r1cs_constraints (const bool ensure_output_bitness=true)
 
void generate_r1cs_witness (size_t len_byte_total=32, bool is_last_block=true)
 
void setup_h ()
 
void setup_counter (size_t len_byte_total)
 
void setup_v (bool is_last_block)
 
void setup_mixing_gadgets ()
 

Static Public Member Functions

static size_t get_block_len ()
 
static size_t get_digest_len ()
 
static libff::bit_vector get_hash (const libff::bit_vector &input)
 
static size_t expected_constraints (const bool ensure_output_bitness)
 

Public Attributes

libsnark::digest_variable< FieldT > output
 

Detailed Description

template<typename FieldT>
class libzeth::BLAKE2s_256_comp< FieldT >

BLAKE2s_256_comp is the gadget implementing the BLAKE2s compression function for digests of length 256

Definition at line 33 of file blake2s_comp.hpp.

Constructor & Destructor Documentation

◆ BLAKE2s_256_comp()

template<typename FieldT >
libzeth::BLAKE2s_256_comp< FieldT >::BLAKE2s_256_comp ( libsnark::protoboard< FieldT > &  pb,
const libsnark::digest_variable< FieldT > &  h,
const libsnark::block_variable< FieldT > &  input_block,
const libsnark::digest_variable< FieldT > &  output,
const std::string &  annotation_prefix = "BLAKE2sCompression_gadget" 
)

Member Function Documentation

◆ expected_constraints()

template<typename FieldT >
static size_t libzeth::BLAKE2s_256_comp< FieldT >::expected_constraints ( const bool  ensure_output_bitness)
static

◆ generate_r1cs_constraints()

template<typename FieldT >
void libzeth::BLAKE2s_256_comp< FieldT >::generate_r1cs_constraints ( const bool  ensure_output_bitness = true)

◆ generate_r1cs_witness()

template<typename FieldT >
void libzeth::BLAKE2s_256_comp< FieldT >::generate_r1cs_witness ( size_t  len_byte_total = 32,
bool  is_last_block = true 
)

◆ get_block_len()

template<typename FieldT >
static size_t libzeth::BLAKE2s_256_comp< FieldT >::get_block_len ( )
static

◆ get_digest_len()

template<typename FieldT >
static size_t libzeth::BLAKE2s_256_comp< FieldT >::get_digest_len ( )
static

◆ get_hash()

template<typename FieldT >
static libff::bit_vector libzeth::BLAKE2s_256_comp< FieldT >::get_hash ( const libff::bit_vector &  input)
static

◆ setup_counter()

template<typename FieldT >
void libzeth::BLAKE2s_256_comp< FieldT >::setup_counter ( size_t  len_byte_total)

◆ setup_h()

template<typename FieldT >
void libzeth::BLAKE2s_256_comp< FieldT >::setup_h ( )

◆ setup_mixing_gadgets()

template<typename FieldT >
void libzeth::BLAKE2s_256_comp< FieldT >::setup_mixing_gadgets ( )

◆ setup_v()

template<typename FieldT >
void libzeth::BLAKE2s_256_comp< FieldT >::setup_v ( bool  is_last_block)

Member Data Documentation

◆ output

template<typename FieldT >
libsnark::digest_variable<FieldT> libzeth::BLAKE2s_256_comp< FieldT >::output

Definition at line 71 of file blake2s_comp.hpp.


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