purify
C++ Purify implementation with native circuit and BPP support
Loading...
Searching...
No Matches
circuit_impl.h File Reference
#include "src/legacy_bulletproof/inner_product_impl.h"
#include "src/legacy_bulletproof/circuit_compress_impl.h"
#include "src/legacy_bulletproof/util.h"
#include "third_party/secp256k1-zkp/src/group.h"
#include <stdlib.h>

Go to the source code of this file.

Data Structures

struct  secp256k1_bulletproof_circuit_abgh_data
 
struct  secp256k1_bulletproof_circuit_vfy_ecmult_context
 

Functions

static int secp256k1_bulletproof_circuit_abgh_callback (secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *data)
 
static int secp256k1_bulletproof_relation66_prove_impl (const secp256k1_ecmult_context *ecmult_ctx, secp256k1_scratch *scratch, unsigned char *proof, size_t *plen, const secp256k1_bulletproof_circuit_assignment *assn, const secp256k1_ge *commitp, const secp256k1_scalar *blinds, size_t nc, const secp256k1_ge *value_gen, const secp256k1_bulletproof_circuit *circ, const secp256k1_bulletproof_generators *gens, const unsigned char *nonce, const unsigned char *extra_commit, size_t extra_commit_len)
 
static int secp256k1_bulletproof_circuit_same_batch_shape (const secp256k1_bulletproof_circuit *a, const secp256k1_bulletproof_circuit *b)
 
static int secp256k1_bulletproof_circuit_vfy_callback (secp256k1_scalar *sc, secp256k1_ge *pt, secp256k1_scalar *randomizer, size_t idx, void *data)
 
static int secp256k1_bulletproof_relation66_verify_impl (const secp256k1_ecmult_context *ecmult_ctx, secp256k1_scratch *scratch, const unsigned char *const *proof, size_t n_proofs, size_t plen, const secp256k1_ge *const *commitp, size_t *nc, const secp256k1_ge *value_gen, const secp256k1_bulletproof_circuit *const *circ, const secp256k1_bulletproof_generators *gens, const unsigned char **extra_commit, size_t *extra_commit_len)
 

Function Documentation

◆ secp256k1_bulletproof_circuit_abgh_callback()

◆ secp256k1_bulletproof_circuit_same_batch_shape()

◆ secp256k1_bulletproof_circuit_vfy_callback()

◆ secp256k1_bulletproof_relation66_prove_impl()

static int secp256k1_bulletproof_relation66_prove_impl ( const secp256k1_ecmult_context ecmult_ctx,
secp256k1_scratch *  scratch,
unsigned char *  proof,
size_t *  plen,
const secp256k1_bulletproof_circuit_assignment assn,
const secp256k1_ge *  commitp,
const secp256k1_scalar *  blinds,
size_t  nc,
const secp256k1_ge *  value_gen,
const secp256k1_bulletproof_circuit circ,
const secp256k1_bulletproof_generators gens,
const unsigned char *  nonce,
const unsigned char *  extra_commit,
size_t  extra_commit_len 
)
static

Definition at line 56 of file circuit_impl.h.

References secp256k1_bulletproof_circuit_assignment::al, secp256k1_bulletproof_circuit_assignment::ao, secp256k1_bulletproof_circuit_assignment::ar, secp256k1_bulletproof_circuit_abgh_data::assn, secp256k1_bulletproof_generators::blinding_gen, secp256k1_bulletproof_circuit_abgh_data::comp_circ, secp256k1_bulletproof_generators::gens, secp256k1_bulletproof_pf_compressed_circuit::l1, secp256k1_bulletproof_pf_compressed_circuit::l3, secp256k1_bulletproof_generators::n, secp256k1_bulletproof_circuit::n_bits, secp256k1_bulletproof_circuit::n_commits, secp256k1_bulletproof_circuit_assignment::n_commits, secp256k1_bulletproof_circuit::n_gates, secp256k1_bulletproof_circuit_assignment::n_gates, nonce, secp256k1_bulletproof_pf_compressed_circuit::r0, secp256k1_bulletproof_pf_compressed_circuit::r1, secp256k1_bulletproof_pf_compressed_circuit::r3, rho, secp256k1_bulletproof_circuit_abgh_callback(), secp256k1_bulletproof_inner_product_prove_impl(), secp256k1_bulletproof_pf_compress_circuit(), secp256k1_bulletproof_pf_compressed_circuit_allocate_frame(), secp256k1_bulletproof_pf_slsr(), secp256k1_bulletproof_serialize_points(), secp256k1_bulletproof_update_commit_circuit(), secp256k1_bulletproof_update_commit_n(), secp256k1_bulletproof_vector_commit(), secp256k1_scalar_chacha20(), secp256k1_scratch_deallocate_frame(), secp256k1_bulletproof_pf_compressed_circuit::wv, secp256k1_bulletproof_circuit_abgh_data::x, and secp256k1_bulletproof_circuit_abgh_data::x2.

Referenced by purify_bulletproof_prove_circuit_impl().

◆ secp256k1_bulletproof_relation66_verify_impl()

static int secp256k1_bulletproof_relation66_verify_impl ( const secp256k1_ecmult_context ecmult_ctx,
secp256k1_scratch *  scratch,
const unsigned char *const *  proof,
size_t  n_proofs,
size_t  plen,
const secp256k1_ge *const *  commitp,
size_t *  nc,
const secp256k1_ge *  value_gen,
const secp256k1_bulletproof_circuit *const *  circ,
const secp256k1_bulletproof_generators gens,
const unsigned char **  extra_commit,
size_t *  extra_commit_len 
)
static

Definition at line 403 of file circuit_impl.h.

References secp256k1_bulletproof_circuit_vfy_ecmult_context::age, secp256k1_bulletproof_circuit_vfy_ecmult_context::commits, secp256k1_bulletproof_circuit_vfy_ecmult_context::comp_circ, secp256k1_bulletproof_circuit_vfy_ecmult_context::count, secp256k1_bulletproof_circuit_vfy_ecmult_context::n_commits, secp256k1_bulletproof_innerproduct_context::n_extra_rangeproof_points, secp256k1_bulletproof_circuit_vfy_ecmult_context::n_gates, secp256k1_bulletproof_circuit::n_gates, secp256k1_bulletproof_innerproduct_context::p_offs, secp256k1_bulletproof_innerproduct_context::proof, secp256k1_bulletproof_innerproduct_context::rangeproof_cb, secp256k1_bulletproof_innerproduct_context::rangeproof_cb_data, secp256k1_bulletproof_circuit_same_batch_shape(), secp256k1_bulletproof_circuit_vfy_callback(), secp256k1_bulletproof_deserialize_point(), secp256k1_bulletproof_inner_product_verify_impl(), SECP256K1_BULLETPROOF_MAX_PROOF, secp256k1_bulletproof_update_commit_circuit(), secp256k1_bulletproof_update_commit_n(), secp256k1_bulletproof_vfy_compress_circuit(), secp256k1_bulletproof_vfy_compressed_circuit_allocate_frame(), secp256k1_scratch_alloc, secp256k1_scratch_allocate_frame(), secp256k1_scratch_deallocate_frame(), secp256k1_bulletproof_circuit_vfy_ecmult_context::tge, secp256k1_bulletproof_circuit_vfy_ecmult_context::value_gen, secp256k1_bulletproof_circuit_vfy_ecmult_context::y, secp256k1_bulletproof_circuit_vfy_ecmult_context::yinv, and secp256k1_bulletproof_innerproduct_context::yinv.

Referenced by purify_bulletproof_verify_circuit_impl().