1#ifndef SECP256K1_ZK_HPP
2#define SECP256K1_ZK_HPP
52 std::array<std::uint8_t, 32>
rx;
64 const std::array<std::uint8_t, 32>& msg,
65 const std::array<std::uint8_t, 32>& aux_rand);
70 const std::array<std::uint8_t, 32>& msg);
76 const std::array<std::uint8_t, 32>& msg,
77 const std::array<std::uint8_t, 32>& aux_rand);
83 const std::array<std::uint8_t, 32>& msg);
115 const std::array<std::uint8_t, 32>& aux_rand);
159 std::array<fast::Point, RANGE_PROOF_LOG2>
L;
160 std::array<fast::Point, RANGE_PROOF_LOG2>
R;
175 const std::array<std::uint8_t, 32>& aux_rand);
190 std::array<fast::Point, RANGE_PROOF_BITS>
G;
191 std::array<fast::Point, RANGE_PROOF_BITS>
H;
void batch_commit(const fast::Scalar *values, const fast::Scalar *blindings, PedersenCommitment *commitments_out, std::size_t count)
const GeneratorVectors & get_generator_vectors()
static constexpr std::size_t RANGE_PROOF_LOG2
RangeProof range_prove(std::uint64_t value, const fast::Scalar &blinding, const PedersenCommitment &commitment, const std::array< std::uint8_t, 32 > &aux_rand)
bool range_verify(const PedersenCommitment &commitment, const RangeProof &proof)
DLEQProof dleq_prove(const fast::Scalar &secret, const fast::Point &G, const fast::Point &H, const fast::Point &P, const fast::Point &Q, const std::array< std::uint8_t, 32 > &aux_rand)
bool batch_range_verify(const PedersenCommitment *commitments, const RangeProof *proofs, std::size_t count)
bool dleq_verify(const DLEQProof &proof, const fast::Point &G, const fast::Point &H, const fast::Point &P, const fast::Point &Q)
KnowledgeProof knowledge_prove(const fast::Scalar &secret, const fast::Point &pubkey, const std::array< std::uint8_t, 32 > &msg, const std::array< std::uint8_t, 32 > &aux_rand)
static constexpr std::size_t RANGE_PROOF_BITS
bool knowledge_verify_base(const KnowledgeProof &proof, const fast::Point &point, const fast::Point &base, const std::array< std::uint8_t, 32 > &msg)
KnowledgeProof knowledge_prove_base(const fast::Scalar &secret, const fast::Point &point, const fast::Point &base, const std::array< std::uint8_t, 32 > &msg, const std::array< std::uint8_t, 32 > &aux_rand)
bool knowledge_verify(const KnowledgeProof &proof, const fast::Point &pubkey, const std::array< std::uint8_t, 32 > &msg)
std::array< std::uint8_t, 64 > serialize() const
static bool deserialize(const std::uint8_t *data64, DLEQProof &out)
std::array< fast::Point, RANGE_PROOF_BITS > H
std::array< fast::Point, RANGE_PROOF_BITS > G
std::array< std::uint8_t, 64 > serialize() const
std::array< std::uint8_t, 32 > rx
static bool deserialize(const std::uint8_t *data64, KnowledgeProof &out)
std::array< fast::Point, RANGE_PROOF_LOG2 > R
std::array< fast::Point, RANGE_PROOF_LOG2 > L