Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
hash_io.hpp
Go to the documentation of this file.
1 
7 #ifndef HASH_IO_HPP_
8 #define HASH_IO_HPP_
9 #include <cstddef>
11 #include <vector>
12 
13 namespace libsnark
14 {
15 
16 template<typename FieldT> class digest_variable : public gadget<FieldT>
17 {
18 public:
19  size_t digest_size;
21 
24  const size_t digest_size,
25  const std::string &annotation_prefix);
26 
29  const size_t digest_size,
30  const pb_variable_array<FieldT> &partial_bits,
31  const pb_variable<FieldT> &padding,
32  const std::string &annotation_prefix);
33 
35  void generate_r1cs_witness(const libff::bit_vector &contents);
36  libff::bit_vector get_digest() const;
37 };
38 
39 template<typename FieldT> class block_variable : public gadget<FieldT>
40 {
41 public:
42  size_t block_size;
44 
47  const size_t block_size,
48  const std::string &annotation_prefix);
49 
52  const std::vector<pb_variable_array<FieldT>> &parts,
53  const std::string &annotation_prefix);
54 
57  const digest_variable<FieldT> &left,
58  const digest_variable<FieldT> &right,
59  const std::string &annotation_prefix);
60 
62  void generate_r1cs_witness(const libff::bit_vector &contents);
63  libff::bit_vector get_block() const;
64 };
65 
66 } // namespace libsnark
68 
69 #endif // HASH_IO_HPP_
hash_io.tcc
libsnark::block_variable::block_size
size_t block_size
Definition: hash_io.hpp:42
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark
Definition: accumulation_vector.hpp:18
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition: gadget.hpp:19
libsnark::block_variable::block_variable
block_variable(protoboard< FieldT > &pb, const size_t block_size, const std::string &annotation_prefix)
libsnark::gadget
Definition: gadget.hpp:16
libsnark::digest_variable::get_digest
libff::bit_vector get_digest() const
libsnark::block_variable::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::block_variable::generate_r1cs_witness
void generate_r1cs_witness(const libff::bit_vector &contents)
libsnark::block_variable::bits
pb_variable_array< FieldT > bits
Definition: hash_io.hpp:43
libsnark::block_variable::get_block
libff::bit_vector get_block() const
libsnark::block_variable
Definition: hash_io.hpp:39
libsnark::digest_variable
Definition: hash_io.hpp:16
libsnark::digest_variable::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::digest_variable::generate_r1cs_witness
void generate_r1cs_witness(const libff::bit_vector &contents)
libsnark::pb_variable
Definition: pb_variable.hpp:24
basic_gadgets.hpp
libsnark::digest_variable::digest_size
size_t digest_size
Definition: hash_io.hpp:19
libsnark::pb_variable_array
Definition: pb_variable.hpp:44
libsnark::digest_variable::bits
pb_variable_array< FieldT > bits
Definition: hash_io.hpp:20
libsnark::protoboard
Definition: pb_variable.hpp:22