UltrafastSecp256k1 3.50.0
Ultra high-performance secp256k1 elliptic curve cryptography library
Loading...
Searching...
No Matches
secp256k1::zk Namespace Reference

Classes

struct  DLEQProof
 
struct  GeneratorVectors
 
struct  KnowledgeProof
 
struct  RangeProof
 

Functions

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)
 
bool knowledge_verify (const KnowledgeProof &proof, const fast::Point &pubkey, 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_base (const KnowledgeProof &proof, const fast::Point &point, const fast::Point &base, const std::array< std::uint8_t, 32 > &msg)
 
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 dleq_verify (const DLEQProof &proof, const fast::Point &G, const fast::Point &H, const fast::Point &P, const fast::Point &Q)
 
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)
 
const GeneratorVectorsget_generator_vectors ()
 
bool batch_range_verify (const PedersenCommitment *commitments, const RangeProof *proofs, std::size_t count)
 
void batch_commit (const fast::Scalar *values, const fast::Scalar *blindings, PedersenCommitment *commitments_out, std::size_t count)
 

Variables

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

Function Documentation

◆ batch_commit()

void secp256k1::zk::batch_commit ( const fast::Scalar values,
const fast::Scalar blindings,
PedersenCommitment commitments_out,
std::size_t  count 
)

◆ batch_range_verify()

bool secp256k1::zk::batch_range_verify ( const PedersenCommitment commitments,
const RangeProof proofs,
std::size_t  count 
)

◆ dleq_prove()

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 
)

Referenced by ufsecp_zk_dleq_prove().

◆ dleq_verify()

bool secp256k1::zk::dleq_verify ( const DLEQProof proof,
const fast::Point G,
const fast::Point H,
const fast::Point P,
const fast::Point Q 
)

Referenced by ufsecp_zk_dleq_verify().

◆ get_generator_vectors()

const GeneratorVectors & secp256k1::zk::get_generator_vectors ( )

◆ knowledge_prove()

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 
)

◆ knowledge_prove_base()

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 
)

◆ knowledge_verify()

bool secp256k1::zk::knowledge_verify ( const KnowledgeProof proof,
const fast::Point pubkey,
const std::array< std::uint8_t, 32 > &  msg 
)

◆ knowledge_verify_base()

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 
)

◆ range_prove()

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 
)

Referenced by ufsecp_zk_range_prove().

◆ range_verify()

bool secp256k1::zk::range_verify ( const PedersenCommitment commitment,
const RangeProof proof 
)

Referenced by ufsecp_zk_range_verify().

Variable Documentation

◆ RANGE_PROOF_BITS

constexpr std::size_t secp256k1::zk::RANGE_PROOF_BITS = 64
staticconstexpr

Definition at line 141 of file zk.hpp.

◆ RANGE_PROOF_LOG2

constexpr std::size_t secp256k1::zk::RANGE_PROOF_LOG2 = 6
staticconstexpr

Definition at line 142 of file zk.hpp.