Replace boost::array with std::array
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef ZC_INCREMENTALMERKLETREE_H_
|
||||
#define ZC_INCREMENTALMERKLETREE_H_
|
||||
|
||||
#include <array>
|
||||
#include <deque>
|
||||
#include <boost/optional.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
@@ -69,7 +70,7 @@ public:
|
||||
friend bool operator==(const EmptyMerkleRoots<D, H>& a,
|
||||
const EmptyMerkleRoots<D, H>& b);
|
||||
private:
|
||||
boost::array<Hash, Depth+1> empty_roots;
|
||||
std::array<Hash, Depth+1> empty_roots;
|
||||
};
|
||||
|
||||
template<size_t Depth, typename Hash>
|
||||
|
||||
@@ -106,9 +106,9 @@ public:
|
||||
ProofVerifier& verifier,
|
||||
const uint256& pubKeyHash,
|
||||
const uint256& randomSeed,
|
||||
const boost::array<uint256, NumInputs>& macs,
|
||||
const boost::array<uint256, NumInputs>& nullifiers,
|
||||
const boost::array<uint256, NumOutputs>& commitments,
|
||||
const std::array<uint256, NumInputs>& macs,
|
||||
const std::array<uint256, NumInputs>& nullifiers,
|
||||
const std::array<uint256, NumOutputs>& commitments,
|
||||
uint64_t vpub_old,
|
||||
uint64_t vpub_new,
|
||||
const uint256& rt
|
||||
@@ -141,16 +141,16 @@ public:
|
||||
|
||||
SproutProof prove(
|
||||
bool makeGrothProof,
|
||||
const boost::array<JSInput, NumInputs>& inputs,
|
||||
const boost::array<JSOutput, NumOutputs>& outputs,
|
||||
boost::array<SproutNote, NumOutputs>& out_notes,
|
||||
boost::array<ZCNoteEncryption::Ciphertext, NumOutputs>& out_ciphertexts,
|
||||
const std::array<JSInput, NumInputs>& inputs,
|
||||
const std::array<JSOutput, NumOutputs>& outputs,
|
||||
std::array<SproutNote, NumOutputs>& out_notes,
|
||||
std::array<ZCNoteEncryption::Ciphertext, NumOutputs>& out_ciphertexts,
|
||||
uint256& out_ephemeralKey,
|
||||
const uint256& pubKeyHash,
|
||||
uint256& out_randomSeed,
|
||||
boost::array<uint256, NumInputs>& out_macs,
|
||||
boost::array<uint256, NumInputs>& out_nullifiers,
|
||||
boost::array<uint256, NumOutputs>& out_commitments,
|
||||
std::array<uint256, NumInputs>& out_macs,
|
||||
std::array<uint256, NumInputs>& out_nullifiers,
|
||||
std::array<uint256, NumOutputs>& out_commitments,
|
||||
uint64_t vpub_old,
|
||||
uint64_t vpub_new,
|
||||
const uint256& rt,
|
||||
@@ -388,7 +388,7 @@ JoinSplit<NumInputs, NumOutputs>* JoinSplit<NumInputs, NumOutputs>::Prepared(con
|
||||
template<size_t NumInputs, size_t NumOutputs>
|
||||
uint256 JoinSplit<NumInputs, NumOutputs>::h_sig(
|
||||
const uint256& randomSeed,
|
||||
const boost::array<uint256, NumInputs>& nullifiers,
|
||||
const std::array<uint256, NumInputs>& nullifiers,
|
||||
const uint256& pubKeyHash
|
||||
) {
|
||||
const unsigned char personalization[crypto_generichash_blake2b_PERSONALBYTES]
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "uint256.h"
|
||||
#include "uint252.h"
|
||||
|
||||
#include <boost/array.hpp>
|
||||
#include <array>
|
||||
|
||||
namespace libzcash {
|
||||
|
||||
@@ -20,7 +20,7 @@ static constexpr size_t GROTH_PROOF_SIZE = (
|
||||
96 + // π_B
|
||||
48); // π_C
|
||||
|
||||
typedef boost::array<unsigned char, GROTH_PROOF_SIZE> GrothProof;
|
||||
typedef std::array<unsigned char, GROTH_PROOF_SIZE> GrothProof;
|
||||
typedef boost::variant<ZCProof, GrothProof> SproutProof;
|
||||
|
||||
class JSInput {
|
||||
@@ -43,7 +43,7 @@ class JSOutput {
|
||||
public:
|
||||
SproutPaymentAddress addr;
|
||||
uint64_t value;
|
||||
boost::array<unsigned char, ZC_MEMO_SIZE> memo = {{0xF6}}; // 0xF6 is invalid UTF8 as per spec, rest of array is 0x00
|
||||
std::array<unsigned char, ZC_MEMO_SIZE> memo = {{0xF6}}; // 0xF6 is invalid UTF8 as per spec, rest of array is 0x00
|
||||
|
||||
JSOutput();
|
||||
JSOutput(SproutPaymentAddress addr, uint64_t value) : addr(addr), value(value) { }
|
||||
@@ -63,22 +63,22 @@ public:
|
||||
const std::string pkPath);
|
||||
|
||||
static uint256 h_sig(const uint256& randomSeed,
|
||||
const boost::array<uint256, NumInputs>& nullifiers,
|
||||
const std::array<uint256, NumInputs>& nullifiers,
|
||||
const uint256& pubKeyHash
|
||||
);
|
||||
|
||||
virtual SproutProof prove(
|
||||
bool makeGrothProof,
|
||||
const boost::array<JSInput, NumInputs>& inputs,
|
||||
const boost::array<JSOutput, NumOutputs>& outputs,
|
||||
boost::array<SproutNote, NumOutputs>& out_notes,
|
||||
boost::array<ZCNoteEncryption::Ciphertext, NumOutputs>& out_ciphertexts,
|
||||
const std::array<JSInput, NumInputs>& inputs,
|
||||
const std::array<JSOutput, NumOutputs>& outputs,
|
||||
std::array<SproutNote, NumOutputs>& out_notes,
|
||||
std::array<ZCNoteEncryption::Ciphertext, NumOutputs>& out_ciphertexts,
|
||||
uint256& out_ephemeralKey,
|
||||
const uint256& pubKeyHash,
|
||||
uint256& out_randomSeed,
|
||||
boost::array<uint256, NumInputs>& out_hmacs,
|
||||
boost::array<uint256, NumInputs>& out_nullifiers,
|
||||
boost::array<uint256, NumOutputs>& out_commitments,
|
||||
std::array<uint256, NumInputs>& out_hmacs,
|
||||
std::array<uint256, NumInputs>& out_nullifiers,
|
||||
std::array<uint256, NumOutputs>& out_commitments,
|
||||
uint64_t vpub_old,
|
||||
uint64_t vpub_new,
|
||||
const uint256& rt,
|
||||
@@ -94,9 +94,9 @@ public:
|
||||
ProofVerifier& verifier,
|
||||
const uint256& pubKeyHash,
|
||||
const uint256& randomSeed,
|
||||
const boost::array<uint256, NumInputs>& hmacs,
|
||||
const boost::array<uint256, NumInputs>& nullifiers,
|
||||
const boost::array<uint256, NumOutputs>& commitments,
|
||||
const std::array<uint256, NumInputs>& hmacs,
|
||||
const std::array<uint256, NumInputs>& nullifiers,
|
||||
const std::array<uint256, NumOutputs>& commitments,
|
||||
uint64_t vpub_old,
|
||||
uint64_t vpub_new,
|
||||
const uint256& rt
|
||||
|
||||
@@ -40,7 +40,7 @@ uint256 SproutNote::nullifier(const SproutSpendingKey& a_sk) const {
|
||||
|
||||
SproutNotePlaintext::SproutNotePlaintext(
|
||||
const SproutNote& note,
|
||||
boost::array<unsigned char, ZC_MEMO_SIZE> memo) : BaseNotePlaintext(note, memo)
|
||||
std::array<unsigned char, ZC_MEMO_SIZE> memo) : BaseNotePlaintext(note, memo)
|
||||
{
|
||||
rho = note.rho;
|
||||
r = note.r;
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "Address.hpp"
|
||||
#include "NoteEncryption.hpp"
|
||||
|
||||
#include <array>
|
||||
|
||||
namespace libzcash {
|
||||
|
||||
class BaseNote {
|
||||
@@ -41,15 +43,15 @@ public:
|
||||
class BaseNotePlaintext {
|
||||
protected:
|
||||
uint64_t value_ = 0;
|
||||
boost::array<unsigned char, ZC_MEMO_SIZE> memo_;
|
||||
std::array<unsigned char, ZC_MEMO_SIZE> memo_;
|
||||
public:
|
||||
BaseNotePlaintext() {}
|
||||
BaseNotePlaintext(const BaseNote& note, boost::array<unsigned char, ZC_MEMO_SIZE> memo)
|
||||
BaseNotePlaintext(const BaseNote& note, std::array<unsigned char, ZC_MEMO_SIZE> memo)
|
||||
: value_(note.value()), memo_(memo) {}
|
||||
virtual ~BaseNotePlaintext() {}
|
||||
|
||||
inline uint64_t value() const { return value_; }
|
||||
inline const boost::array<unsigned char, ZC_MEMO_SIZE> & memo() const { return memo_; }
|
||||
inline const std::array<unsigned char, ZC_MEMO_SIZE> & memo() const { return memo_; }
|
||||
};
|
||||
|
||||
class SproutNotePlaintext : public BaseNotePlaintext {
|
||||
@@ -59,7 +61,7 @@ public:
|
||||
|
||||
SproutNotePlaintext() {}
|
||||
|
||||
SproutNotePlaintext(const SproutNote& note, boost::array<unsigned char, ZC_MEMO_SIZE> memo);
|
||||
SproutNotePlaintext(const SproutNote& note, std::array<unsigned char, ZC_MEMO_SIZE> memo);
|
||||
|
||||
SproutNote note(const SproutPaymentAddress& addr) const;
|
||||
|
||||
|
||||
@@ -6,12 +6,13 @@ https://github.com/zcash/zips/blob/master/protocol/protocol.pdf
|
||||
#ifndef ZC_NOTE_ENCRYPTION_H_
|
||||
#define ZC_NOTE_ENCRYPTION_H_
|
||||
|
||||
#include <boost/array.hpp>
|
||||
#include "uint256.h"
|
||||
#include "uint252.h"
|
||||
|
||||
#include "zcash/Zcash.h"
|
||||
|
||||
#include <array>
|
||||
|
||||
namespace libzcash {
|
||||
|
||||
#define NOTEENCRYPTION_AUTH_BYTES 16
|
||||
@@ -26,8 +27,8 @@ protected:
|
||||
uint256 hSig;
|
||||
|
||||
public:
|
||||
typedef boost::array<unsigned char, CLEN> Ciphertext;
|
||||
typedef boost::array<unsigned char, MLEN> Plaintext;
|
||||
typedef std::array<unsigned char, CLEN> Ciphertext;
|
||||
typedef std::array<unsigned char, MLEN> Plaintext;
|
||||
|
||||
NoteEncryption(uint256 hSig);
|
||||
|
||||
@@ -63,8 +64,8 @@ protected:
|
||||
uint256 pk_enc;
|
||||
|
||||
public:
|
||||
typedef boost::array<unsigned char, CLEN> Ciphertext;
|
||||
typedef boost::array<unsigned char, MLEN> Plaintext;
|
||||
typedef std::array<unsigned char, CLEN> Ciphertext;
|
||||
typedef std::array<unsigned char, MLEN> Plaintext;
|
||||
|
||||
NoteDecryption() { }
|
||||
NoteDecryption(uint256 sk_enc);
|
||||
@@ -100,8 +101,8 @@ class PaymentDisclosureNoteDecryption : public NoteDecryption<MLEN> {
|
||||
protected:
|
||||
public:
|
||||
enum { CLEN=MLEN+NOTEENCRYPTION_AUTH_BYTES };
|
||||
typedef boost::array<unsigned char, CLEN> Ciphertext;
|
||||
typedef boost::array<unsigned char, MLEN> Plaintext;
|
||||
typedef std::array<unsigned char, CLEN> Ciphertext;
|
||||
typedef std::array<unsigned char, MLEN> Plaintext;
|
||||
|
||||
PaymentDisclosureNoteDecryption() : NoteDecryption<MLEN>() {}
|
||||
PaymentDisclosureNoteDecryption(uint256 sk_enc) : NoteDecryption<MLEN>(sk_enc) {}
|
||||
|
||||
@@ -14,9 +14,9 @@ private:
|
||||
|
||||
std::shared_ptr<digest_variable<FieldT>> zk_merkle_root;
|
||||
std::shared_ptr<digest_variable<FieldT>> zk_h_sig;
|
||||
boost::array<std::shared_ptr<digest_variable<FieldT>>, NumInputs> zk_input_nullifiers;
|
||||
boost::array<std::shared_ptr<digest_variable<FieldT>>, NumInputs> zk_input_macs;
|
||||
boost::array<std::shared_ptr<digest_variable<FieldT>>, NumOutputs> zk_output_commitments;
|
||||
std::array<std::shared_ptr<digest_variable<FieldT>>, NumInputs> zk_input_nullifiers;
|
||||
std::array<std::shared_ptr<digest_variable<FieldT>>, NumInputs> zk_input_macs;
|
||||
std::array<std::shared_ptr<digest_variable<FieldT>>, NumOutputs> zk_output_commitments;
|
||||
pb_variable_array<FieldT> zk_vpub_old;
|
||||
pb_variable_array<FieldT> zk_vpub_new;
|
||||
|
||||
@@ -26,11 +26,11 @@ private:
|
||||
pb_variable_array<FieldT> zk_total_uint64;
|
||||
|
||||
// Input note gadgets
|
||||
boost::array<std::shared_ptr<input_note_gadget<FieldT>>, NumInputs> zk_input_notes;
|
||||
boost::array<std::shared_ptr<PRF_pk_gadget<FieldT>>, NumInputs> zk_mac_authentication;
|
||||
std::array<std::shared_ptr<input_note_gadget<FieldT>>, NumInputs> zk_input_notes;
|
||||
std::array<std::shared_ptr<PRF_pk_gadget<FieldT>>, NumInputs> zk_mac_authentication;
|
||||
|
||||
// Output note gadgets
|
||||
boost::array<std::shared_ptr<output_note_gadget<FieldT>>, NumOutputs> zk_output_notes;
|
||||
std::array<std::shared_ptr<output_note_gadget<FieldT>>, NumOutputs> zk_output_notes;
|
||||
|
||||
public:
|
||||
// PRF_pk only has a 1-bit domain separation "nonce"
|
||||
@@ -190,8 +190,8 @@ public:
|
||||
const uint252& phi,
|
||||
const uint256& rt,
|
||||
const uint256& h_sig,
|
||||
const boost::array<JSInput, NumInputs>& inputs,
|
||||
const boost::array<SproutNote, NumOutputs>& outputs,
|
||||
const std::array<JSInput, NumInputs>& inputs,
|
||||
const std::array<SproutNote, NumOutputs>& outputs,
|
||||
uint64_t vpub_old,
|
||||
uint64_t vpub_new
|
||||
) {
|
||||
@@ -280,9 +280,9 @@ public:
|
||||
static r1cs_primary_input<FieldT> witness_map(
|
||||
const uint256& rt,
|
||||
const uint256& h_sig,
|
||||
const boost::array<uint256, NumInputs>& macs,
|
||||
const boost::array<uint256, NumInputs>& nullifiers,
|
||||
const boost::array<uint256, NumOutputs>& commitments,
|
||||
const std::array<uint256, NumInputs>& macs,
|
||||
const std::array<uint256, NumInputs>& nullifiers,
|
||||
const std::array<uint256, NumOutputs>& commitments,
|
||||
uint64_t vpub_old,
|
||||
uint64_t vpub_new
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user