Skip to content

Commit

Permalink
Fix some compile warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
dtebbs committed Aug 8, 2019
1 parent aa0f333 commit 6dcacd0
Show file tree
Hide file tree
Showing 17 changed files with 77 additions and 91 deletions.
7 changes: 5 additions & 2 deletions src/circuits/circuits-util.tcc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ namespace libzeth {

// This define directive is useless/redundant, as ONE is defined here:
// libsnark/gadgetlib1/pb_variable.hpp#74
#ifdef ONE
# undef ONE
#endif
#define ONE libsnark::pb_variable<FieldT>(0)
//
// We know that a pb_variable takes an index in the constructor:
Expand Down Expand Up @@ -43,7 +46,7 @@ std::vector<bool> convert_to_binary_LE(T x, int bitlen) {

/*
* This function reverses the byte endianness
*
*
* Example input/output:
*
* Before swap (in): After Swap (out):
Expand Down Expand Up @@ -97,4 +100,4 @@ libsnark::pb_variable_array<FieldT> from_bits(std::vector<bool> bits, libsnark::

} // libzeth

#endif // __ZETH_CIRCUITS_UTILS_TCC__
#endif // __ZETH_CIRCUITS_UTILS_TCC__
13 changes: 5 additions & 8 deletions src/circuits/commitments/commitments.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ class COMM_gadget : libsnark::gadget<FieldT> {

public:
COMM_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(x || y)
Expand Down Expand Up @@ -50,7 +49,6 @@ template<typename FieldT, typename HashT>
class COMM_inner_k_gadget : public COMM_gadget<FieldT, HashT> {
public:
COMM_inner_k_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& a_pk, // public address key, 256 bits
libsnark::pb_variable_array<FieldT>& rho, // 256 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(a_pk || rho)
Expand All @@ -66,7 +64,6 @@ template<typename FieldT, typename HashT>
class COMM_outer_k_gadget : public COMM_gadget<FieldT, HashT> {
public:
COMM_outer_k_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& trap_r, // 384 bits
libsnark::pb_variable_array<FieldT>& inner_k, // 256 bits, but we only keep 128 bits out of it
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(trap_r || [inner_k]_128)
Expand All @@ -78,11 +75,11 @@ template<typename FieldT, typename HashT>
class COMM_cm_gadget : public COMM_gadget<FieldT, HashT> {
public:
COMM_cm_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& outer_k, // 256 bits
libsnark::pb_variable_array<FieldT>& value_v, // 64 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(outer_k || 0^192 || value_v)
const std::string &annotation_prefix = "COMM_cm_gadget");
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& outer_k, // 256 bits
libsnark::pb_variable_array<FieldT>& value_v, // 64 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(outer_k || 0^192 || value_v)
const std::string &annotation_prefix = "COMM_cm_gadget");
};

} // libzeth
Expand Down
49 changes: 23 additions & 26 deletions src/circuits/commitments/commitments.tcc
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
#ifndef __ZETH_COMMITMENT_CIRCUITS_TCC__
#define __ZETH_COMMITMENT_CIRCUITS_TCC__

// DISCLAIMER:
// DISCLAIMER:
// Content Taken and adapted from Zcash
// https://github.com/zcash/zcash/blob/master/src/zcash/circuit/commitment.tcc

namespace libzeth {

template<typename FieldT, typename HashT>
COMM_gadget<FieldT, HashT>::COMM_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : libsnark::gadget<FieldT>(pb), result(result)
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : libsnark::gadget<FieldT>(pb), result(result)
{
const std::string annotation_block = std::string(" COMM_block-") + annotation_prefix;
const std::string annotation_hasher = std::string(" COMM_hasher-") + annotation_prefix;
Expand Down Expand Up @@ -101,12 +100,11 @@ libsnark::pb_variable_array<FieldT> getRightSideCMCOMM(
// as being the inner commitment of k
template<typename FieldT, typename HashT>
COMM_inner_k_gadget<FieldT, HashT>::COMM_inner_k_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& a_pk, // 256 bits
libsnark::pb_variable_array<FieldT>& rho, // 256 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : COMM_gadget<FieldT, HashT>(pb, ZERO, a_pk, rho, result, annotation_prefix)
libsnark::pb_variable_array<FieldT>& a_pk, // 256 bits
libsnark::pb_variable_array<FieldT>& rho, // 256 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : COMM_gadget<FieldT, HashT>(pb, a_pk, rho, result, annotation_prefix)
{
// Nothing
}
Expand All @@ -118,29 +116,28 @@ COMM_inner_k_gadget<FieldT, HashT>::COMM_inner_k_gadget(libsnark::protoboard<Fie
// We denote by trap_r the trapdoor r
template<typename FieldT, typename HashT>
COMM_outer_k_gadget<FieldT, HashT>::COMM_outer_k_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& trap_r, // 384 bits
libsnark::pb_variable_array<FieldT>& inner_k, // 256 bits, but we only keep 128 bits our of it
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : COMM_gadget<FieldT, HashT>(pb, ZERO, trap_r, get128bits(inner_k), result, annotation_prefix)
libsnark::pb_variable_array<FieldT>& trap_r, // 384 bits
libsnark::pb_variable_array<FieldT>& inner_k, // 256 bits, but we only keep 128 bits our of it
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : COMM_gadget<FieldT, HashT>(pb, trap_r, get128bits(inner_k), result, annotation_prefix)
{
// Nothing
}

// cm = sha256(outer_k || 0^192 || value_v)
template<typename FieldT, typename HashT>
COMM_cm_gadget<FieldT, HashT>::COMM_cm_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& outer_k, // 256 bits
libsnark::pb_variable_array<FieldT>& value_v, // 64 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : COMM_gadget<FieldT, HashT>(pb, ZERO, outer_k, getRightSideCMCOMM(ZERO, value_v), result, annotation_prefix)
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& outer_k, // 256 bits
libsnark::pb_variable_array<FieldT>& value_v, // 64 bits
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix
) : COMM_gadget<FieldT, HashT>(pb, outer_k, getRightSideCMCOMM(ZERO, value_v), result, annotation_prefix)
{
// Nothing
}

} // libzeth

#endif // __ZETH_COMMITMENT_CIRCUITS_TCC__
#endif // __ZETH_COMMITMENT_CIRCUITS_TCC__
4 changes: 2 additions & 2 deletions src/circuits/joinsplit.tcc
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ class joinsplit_gadget : libsnark::gadget<FieldT> {

// Primary inputs are packed to be added to the extended proof and given to the verifier on-chain
joinsplit_gadget(protoboard<FieldT> &pb,
const std::string &annotation_prefix = "joinsplit_gadget"
) : gadget<FieldT>(pb) {
const std::string &annotation_prefix = "joinsplit_gadget"
) : gadget<FieldT>(pb, annotation_prefix) {
// Block dedicated to generate the verifier inputs
{
// The verification inputs are, except for the root, all bit-strings of various
Expand Down
6 changes: 1 addition & 5 deletions src/circuits/notes/note.tcc
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,12 @@ input_note_gadget<FieldT, HashT, HashTreeT>::input_note_gadget(libsnark::protobo
// affect the public state and leak data)).
commit_to_inputs_inner_k.reset(new COMM_inner_k_gadget<FieldT, HashT>(
pb,
ZERO,
a_pk->bits,
rho,
inner_k
));
commit_to_inputs_outer_k.reset(new COMM_outer_k_gadget<FieldT, HashT>(
pb,
ZERO,
this->r,
inner_k->bits,
outer_k
Expand Down Expand Up @@ -312,7 +310,7 @@ void input_note_gadget<FieldT, HashT, HashTreeT>::generate_r1cs_witness(
address_bits_va.fill_with_bits(this->pb, address_bits);
// Make sure `address_bits` and `address` represent the same
// value encoded on different bases (binary and decimal)
assert(address_bits_va.get_field_element_from_bits(pb).as_ulong() == address);
assert(address_bits_va.get_field_element_from_bits(this->pb).as_ulong() == address);
// Set auth_path values
auth_path->fill_with_field_elements(this->pb, merkle_path);

Expand All @@ -335,14 +333,12 @@ output_note_gadget<FieldT, HashT>::output_note_gadget(libsnark::protoboard<Field
// Commit to the output notes publicly without disclosing them.
commit_to_outputs_inner_k.reset(new COMM_inner_k_gadget<FieldT, HashT>(
pb,
ZERO,
a_pk->bits,
rho,
inner_k
));
commit_to_outputs_outer_k.reset(new COMM_outer_k_gadget<FieldT, HashT>(
pb,
ZERO,
this->r,
inner_k->bits,
outer_k
Expand Down
15 changes: 7 additions & 8 deletions src/circuits/prfs/prfs.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef __ZETH_PRFS_CIRCUITS_HPP__
#define __ZETH_PRFS_CIRCUITS_HPP__

// DISCLAIMER:
// DISCLAIMER:
// Content Taken and adapted from Zcash
// https://github.com/zcash/zcash/blob/master/src/zcash/circuit/prfs.tcc

Expand All @@ -20,11 +20,10 @@ class PRF_gadget : public libsnark::gadget<FieldT> {

public:
PRF_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO, // needed in case x or y needs to be appended with 0s
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(x || y)
const std::string &annotation_prefix = " base_PRF_gadget");
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result, // sha256(x || y)
const std::string &annotation_prefix = " base_PRF_gadget");

void generate_r1cs_constraints();
void generate_r1cs_witness();
Expand All @@ -41,7 +40,7 @@ template<typename FieldT, typename HashT> libsnark::pb_variable_array<FieldT> ge
libsnark::pb_variable_array<FieldT>& rho
);

// a_pk = sha256(a_sk || 0^256): See Zerocash extended paper, page 22,
// a_pk = sha256(a_sk || 0^256): See Zerocash extended paper, page 22,
// paragraph "Instantiating the NP statement POUR"
template<typename FieldT, typename HashT>
class PRF_addr_a_pk_gadget : public PRF_gadget<FieldT, HashT> {
Expand Down Expand Up @@ -69,4 +68,4 @@ class PRF_nf_gadget : public PRF_gadget<FieldT, HashT> {
} // libzeth
#include "circuits/prfs/prfs.tcc"

#endif // __ZETH_PRFS_CIRCUITS_HPP__
#endif // __ZETH_PRFS_CIRCUITS_HPP__
27 changes: 13 additions & 14 deletions src/circuits/prfs/prfs.tcc
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
#ifndef __ZETH_PRFS_CIRCUITS_TCC__
#define __ZETH_PRFS_CIRCUITS_TCC__

// DISCLAIMER:
// DISCLAIMER:
// Content Taken and adapted from Zcash
// https://github.com/zcash/zcash/blob/master/src/zcash/circuit/prfs.tcc

namespace libzeth {

template<typename FieldT, typename HashT>
PRF_gadget<FieldT, HashT>::PRF_gadget(libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix) :
libsnark::gadget<FieldT>(pb, annotation_prefix), result(result)
libsnark::pb_variable_array<FieldT> x,
libsnark::pb_variable_array<FieldT> y,
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix) :
libsnark::gadget<FieldT>(pb, annotation_prefix), result(result)
{

block.reset(new libsnark::block_variable<FieldT>(pb, {
Expand Down Expand Up @@ -83,18 +82,18 @@ libsnark::pb_variable_array<FieldT> getRightSideNFPRF(
return right_side;
}

// a_pk = sha256(a_sk || 0^256): See Zerocash extended paper, page 22,
// a_pk = sha256(a_sk || 0^256): See Zerocash extended paper, page 22,
// paragraph "Instantiating the NP statement POUR"
template<typename FieldT, typename HashT>
PRF_addr_a_pk_gadget<FieldT, HashT>::PRF_addr_a_pk_gadget(
libsnark::protoboard<FieldT>& pb,
libsnark::pb_variable<FieldT>& ZERO,
libsnark::pb_variable_array<FieldT>& a_sk,
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix) :
PRF_gadget<FieldT, HashT>(pb, ZERO, a_sk, gen256zeroes<FieldT, HashT>(ZERO), result, annotation_prefix)
const std::string &annotation_prefix) :
PRF_gadget<FieldT, HashT>(pb, a_sk, gen256zeroes<FieldT, HashT>(ZERO), result, annotation_prefix)
{
// Nothing
// Nothing
}

// PRF to generate the nullifier
Expand All @@ -106,12 +105,12 @@ PRF_nf_gadget<FieldT, HashT>::PRF_nf_gadget(
libsnark::pb_variable_array<FieldT>& a_sk,
libsnark::pb_variable_array<FieldT>& rho,
std::shared_ptr<libsnark::digest_variable<FieldT>> result,
const std::string &annotation_prefix) :
PRF_gadget<FieldT, HashT>(pb, ZERO, a_sk, getRightSideNFPRF<FieldT, HashT>(ZERO, rho), result, annotation_prefix)
const std::string &annotation_prefix) :
PRF_gadget<FieldT, HashT>(pb, a_sk, getRightSideNFPRF<FieldT, HashT>(ZERO, rho), result, annotation_prefix)
{
// Nothing
}

} // libzeth

#endif // __ZETH_PRFS_CIRCUITS_TCC__
#endif // __ZETH_PRFS_CIRCUITS_TCC__
8 changes: 4 additions & 4 deletions src/circuits/sha256/sha256_ethereum.tcc
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ namespace libzeth {

template<typename FieldT>
sha256_ethereum<FieldT>::sha256_ethereum(libsnark::protoboard<FieldT> &pb,
const size_t block_length,
const libsnark::block_variable<FieldT> &input_block,
const libsnark::digest_variable<FieldT> &output,
const std::string &annotation_prefix) :
const size_t /* block_length */,
const libsnark::block_variable<FieldT> &input_block,
const libsnark::digest_variable<FieldT> &output,
const std::string &annotation_prefix) :
libsnark::gadget<FieldT>(pb, annotation_prefix)
{
intermediate_hash.reset(new libsnark::digest_variable<FieldT>(pb, 256, "intermediate"));
Expand Down
8 changes: 3 additions & 5 deletions src/libsnark_helpers/debug_helpers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ std::string outputPointG2AffineAsHex(libff::alt_bn128_G2 _p)

boost::filesystem::path getPathToSetupDir()
{
char* pathToSetupFolder;
pathToSetupFolder = std::getenv("ZETH_TRUSTED_SETUP_DIR");
const char* pathToSetupFolder = std::getenv("ZETH_TRUSTED_SETUP_DIR");
if (pathToSetupFolder == NULL)
{
// Fallback destination if the ZETH_TRUSTED_SETUP_DIR env var is not set
Expand All @@ -83,8 +82,7 @@ boost::filesystem::path getPathToSetupDir()

boost::filesystem::path getPathToDebugDir()
{
char* pathToDebugFolder;
pathToDebugFolder = std::getenv("ZETH_DEBUG_DIR");
const char* pathToDebugFolder = std::getenv("ZETH_DEBUG_DIR");
if (pathToDebugFolder == NULL)
{
// Fallback destination if the ZETH_DEBUG_DIR env var is not set
Expand All @@ -108,4 +106,4 @@ bool replace(std::string& str, const std::string& from, const std::string& to)
return true;
}

} // libzeth
} // libzeth
4 changes: 2 additions & 2 deletions src/libsnark_helpers/debug_helpers.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ZETH_DEBUG_HELPERS_HPP__
#define __ZETH_DEBUG_HELPERS_HPP
#define __ZETH_DEBUG_HELPERS_HPP__

#include <stdbool.h>
#include <stdint.h>
Expand Down Expand Up @@ -30,4 +30,4 @@ bool replace(std::string& str, const std::string& from, const std::string& to);

} // libzeth

#endif
#endif // __ZETH_DEBUG_HELPERS_HPP__
2 changes: 1 addition & 1 deletion src/libsnark_helpers/libsnark_helpers.tcc
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ void fillJsonConstraintsInSs(libsnark::linear_combination<libff::Fr<ppT> > const
};

template <typename ppT>
void arrayToJson(libsnark::protoboard<libff::Fr<ppT> > pb, uint input_variables, boost::filesystem::path path) {
void arrayToJson(libsnark::protoboard<libff::Fr<ppT> > pb, uint, boost::filesystem::path path) {
if (path.empty())
{
boost::filesystem::path tmp_path = getPathToDebugDir(); // Used for a debug purpose
Expand Down
Loading

0 comments on commit 6dcacd0

Please sign in to comment.