1 #ifndef __ZETH_CIRCUITS_COMMITMENT_HPP__
2 #define __ZETH_CIRCUITS_COMMITMENT_HPP__
10 #include <libsnark/gadgetlib1/gadget.hpp>
11 #include <libsnark/gadgetlib1/gadgets/hashes/hash_io.hpp>
16 template<
typename FieldT,
typename HashT>
21 std::shared_ptr<libsnark::block_variable<FieldT>> block;
24 std::shared_ptr<HashT> hasher;
27 std::shared_ptr<libsnark::digest_variable<FieldT>> result;
31 libsnark::protoboard<FieldT> &pb,
32 const libsnark::pb_variable_array<FieldT> &x,
33 const libsnark::pb_variable_array<FieldT> &y,
34 std::shared_ptr<libsnark::digest_variable<FieldT>> result,
35 const std::string &annotation_prefix =
"COMM_gadget");
44 template<
typename FieldT,
typename HashT>
49 libsnark::pb_variable_array<FieldT> input;
50 libsnark::pb_variable_array<FieldT> a_pk;
51 libsnark::pb_variable_array<FieldT> rho;
52 libsnark::pb_variable_array<FieldT> trap_r;
53 libsnark::pb_variable_array<FieldT> value_v;
54 std::shared_ptr<libsnark::digest_variable<FieldT>> temp_result;
57 std::shared_ptr<COMM_gadget<FieldT, HashT>> com_gadget;
60 std::shared_ptr<libsnark::packing_gadget<FieldT>> bits_to_field;
64 libsnark::protoboard<FieldT> &pb,
66 const libsnark::pb_variable_array<FieldT> &a_pk,
68 const libsnark::pb_variable_array<FieldT> &rho,
70 const libsnark::pb_variable_array<FieldT> &trap_r,
72 const libsnark::pb_variable_array<FieldT> &value_v,
73 libsnark::pb_variable<FieldT> result,
74 const std::string &annotation_prefix =
"COMM_cm_gadget");
84 #endif // __ZETH_CIRCUITS_COMMITMENT_HPP__