UltrafastSecp256k1 3.50.0
Ultra high-performance secp256k1 elliptic curve cryptography library
Loading...
Searching...
No Matches
zk.hpp File Reference
#include <array>
#include <cstdint>
#include <cstddef>
#include "secp256k1/scalar.hpp"
#include "secp256k1/point.hpp"
#include "secp256k1/pedersen.hpp"

Go to the source code of this file.

Classes

struct  secp256k1::zk::KnowledgeProof
 
struct  secp256k1::zk::DLEQProof
 
struct  secp256k1::zk::RangeProof
 
struct  secp256k1::zk::GeneratorVectors
 

Namespaces

namespace  secp256k1
 
namespace  secp256k1::zk
 

Functions

KnowledgeProof secp256k1::zk::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)
 
bool secp256k1::zk::knowledge_verify (const KnowledgeProof &proof, const fast::Point &pubkey, const std::array< std::uint8_t, 32 > &msg)
 
KnowledgeProof secp256k1::zk::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 secp256k1::zk::knowledge_verify_base (const KnowledgeProof &proof, const fast::Point &point, const fast::Point &base, const std::array< std::uint8_t, 32 > &msg)
 
DLEQProof secp256k1::zk::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 secp256k1::zk::dleq_verify (const DLEQProof &proof, const fast::Point &G, const fast::Point &H, const fast::Point &P, const fast::Point &Q)
 
RangeProof secp256k1::zk::range_prove (std::uint64_t value, const fast::Scalar &blinding, const PedersenCommitment &commitment, const std::array< std::uint8_t, 32 > &aux_rand)
 
bool secp256k1::zk::range_verify (const PedersenCommitment &commitment, const RangeProof &proof)
 
const GeneratorVectorssecp256k1::zk::get_generator_vectors ()
 
bool secp256k1::zk::batch_range_verify (const PedersenCommitment *commitments, const RangeProof *proofs, std::size_t count)
 
void secp256k1::zk::batch_commit (const fast::Scalar *values, const fast::Scalar *blindings, PedersenCommitment *commitments_out, std::size_t count)
 

Variables

static constexpr std::size_t secp256k1::zk::RANGE_PROOF_BITS = 64
 
static constexpr std::size_t secp256k1::zk::RANGE_PROOF_LOG2 = 6