44 const unsigned char* generators33,
51 const unsigned char rho32[32],
const unsigned char* generators33,
size_t generators_count,
52 const unsigned char* n_vec32,
size_t n_vec_len,
const unsigned char* l_vec32,
53 size_t l_vec_len,
const unsigned char* c_vec32,
size_t c_vec_len,
54 unsigned char commitment_out33[33]);
56 const unsigned char rho32[32],
57 const unsigned char* n_vec32,
size_t n_vec_len,
58 const unsigned char* l_vec32,
size_t l_vec_len,
59 const unsigned char* c_vec32,
size_t c_vec_len,
60 unsigned char commitment_out33[33]);
64 const unsigned char* n_vec32,
size_t n_vec_len,
const unsigned char* l_vec32,
65 size_t l_vec_len,
unsigned char commitment_out33[33]);
67 const unsigned char* n_vec32,
size_t n_vec_len,
68 const unsigned char* l_vec32,
size_t l_vec_len,
69 unsigned char commitment_out33[33]);
72 const unsigned char commitment33[33],
const unsigned char scalar32[32],
73 unsigned char commitment_out33[33]);
76 const unsigned char point33[33],
const unsigned char scalar32[32],
77 unsigned char out33[33]);
80 const unsigned char lhs33[33],
const unsigned char rhs33[33],
81 unsigned char out33[33]);
93 const unsigned char blind32[32],
const unsigned char value32[32],
94 const unsigned char value_gen33[33],
const unsigned char blind_gen33[33],
95 unsigned char commitment_out33[33]);
114 const unsigned char rho32[32],
const unsigned char* generators33,
size_t generators_count,
115 const unsigned char* n_vec32,
size_t n_vec_len,
const unsigned char* l_vec32,
116 size_t l_vec_len,
const unsigned char* c_vec32,
size_t c_vec_len,
117 unsigned char commitment_out33[33],
unsigned char* proof_out,
size_t* proof_len);
119 const unsigned char rho32[32],
120 const unsigned char* n_vec32,
size_t n_vec_len,
121 const unsigned char* l_vec32,
size_t l_vec_len,
122 const unsigned char* c_vec32,
size_t c_vec_len,
123 unsigned char commitment_out33[33],
unsigned char* proof_out,
127 const unsigned char rho32[32],
const unsigned char* generators33,
size_t generators_count,
128 const unsigned char* n_vec32,
size_t n_vec_len,
const unsigned char* l_vec32,
129 size_t l_vec_len,
const unsigned char* c_vec32,
size_t c_vec_len,
130 const unsigned char commitment33[33],
unsigned char* proof_out,
size_t* proof_len);
132 const unsigned char rho32[32],
133 const unsigned char* n_vec32,
size_t n_vec_len,
134 const unsigned char* l_vec32,
size_t l_vec_len,
135 const unsigned char* c_vec32,
size_t c_vec_len,
136 const unsigned char commitment33[33],
137 unsigned char* proof_out,
size_t* proof_len);
153 const unsigned char rho32[32],
const unsigned char* generators33,
size_t generators_count,
154 const unsigned char* c_vec32,
size_t c_vec_len,
size_t n_vec_len,
155 const unsigned char commitment33[33],
const unsigned char* proof,
size_t proof_len);
157 const unsigned char rho32[32],
158 const unsigned char* c_vec32,
size_t c_vec_len,
size_t n_vec_len,
159 const unsigned char commitment33[33],
const unsigned char* proof,
202 const unsigned char* blind32,
203 const unsigned char value_gen33[33],
204 const unsigned char nonce32[32],
205 const unsigned char* extra_commit,
206 size_t extra_commit_len,
207 unsigned char commitment_out33[33],
208 unsigned char* proof_out,
213 const unsigned char* blind32,
214 const unsigned char value_gen33[33],
215 const unsigned char nonce32[32],
216 const unsigned char* extra_commit,
217 size_t extra_commit_len,
218 unsigned char commitment_out33[33],
219 unsigned char* proof_out,
225 const unsigned char* blind32,
226 const unsigned char value_gen33[33],
227 const unsigned char nonce32[32],
228 const unsigned char* extra_commit,
229 size_t extra_commit_len,
230 unsigned char commitment_out33[33],
231 unsigned char* proof_out,
236 const unsigned char* blind32,
237 const unsigned char value_gen33[33],
238 const unsigned char nonce32[32],
239 const unsigned char* extra_commit,
240 size_t extra_commit_len,
241 unsigned char commitment_out33[33],
242 unsigned char* proof_out,
247 const unsigned char commitment33[33],
248 const unsigned char value_gen33[33],
249 const unsigned char* extra_commit,
250 size_t extra_commit_len,
251 const unsigned char* proof,
255 const unsigned char commitment33[33],
256 const unsigned char value_gen33[33],
257 const unsigned char* extra_commit,
258 size_t extra_commit_len,
259 const unsigned char* proof,
int purify_bppp_prove_norm_arg_to_commitment_with_resources(purify_bppp_backend_resources *resources, const unsigned char rho32[32], const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, const unsigned char *c_vec32, size_t c_vec_len, const unsigned char commitment33[33], unsigned char *proof_out, size_t *proof_len)
int purify_bulletproof_prove_circuit(purify_secp_context *context, const purify_bulletproof_circuit_view *circuit, const purify_bulletproof_assignment_view *assignment, const unsigned char *blind32, const unsigned char value_gen33[33], const unsigned char nonce32[32], const unsigned char *extra_commit, size_t extra_commit_len, unsigned char commitment_out33[33], unsigned char *proof_out, size_t *proof_len)
int purify_bppp_commit_witness_only_with_resources(purify_bppp_backend_resources *resources, const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, unsigned char commitment_out33[33])
int purify_bulletproof_prove_circuit_with_resources(purify_bulletproof_backend_resources *resources, const purify_bulletproof_circuit_view *circuit, const purify_bulletproof_assignment_view *assignment, const unsigned char *blind32, const unsigned char value_gen33[33], const unsigned char nonce32[32], const unsigned char *extra_commit, size_t extra_commit_len, unsigned char commitment_out33[33], unsigned char *proof_out, size_t *proof_len)
int purify_bulletproof_verify_circuit(purify_secp_context *context, const purify_bulletproof_circuit_view *circuit, const unsigned char commitment33[33], const unsigned char value_gen33[33], const unsigned char *extra_commit, size_t extra_commit_len, const unsigned char *proof, size_t proof_len)
int purify_bulletproof_prove_circuit_assume_valid(purify_secp_context *context, const purify_bulletproof_circuit_view *circuit, const purify_bulletproof_assignment_view *assignment, const unsigned char *blind32, const unsigned char value_gen33[33], const unsigned char nonce32[32], const unsigned char *extra_commit, size_t extra_commit_len, unsigned char commitment_out33[33], unsigned char *proof_out, size_t *proof_len)
int purify_point_scale(purify_secp_context *context, const unsigned char point33[33], const unsigned char scalar32[32], unsigned char out33[33])
int purify_bulletproof_verify_circuit_with_resources(purify_bulletproof_backend_resources *resources, const purify_bulletproof_circuit_view *circuit, const unsigned char commitment33[33], const unsigned char value_gen33[33], const unsigned char *extra_commit, size_t extra_commit_len, const unsigned char *proof, size_t proof_len)
int purify_bppp_prove_norm_arg(purify_secp_context *context, const unsigned char rho32[32], const unsigned char *generators33, size_t generators_count, const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, const unsigned char *c_vec32, size_t c_vec_len, unsigned char commitment_out33[33], unsigned char *proof_out, size_t *proof_len)
Produces a standalone BPPP norm argument.
int purify_bppp_commit_witness_only(purify_secp_context *context, const unsigned char *generators33, size_t generators_count, const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, unsigned char commitment_out33[33])
int purify_bppp_commit_norm_arg(purify_secp_context *context, const unsigned char rho32[32], const unsigned char *generators33, size_t generators_count, const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, const unsigned char *c_vec32, size_t c_vec_len, unsigned char commitment_out33[33])
void purify_bppp_backend_resources_destroy(purify_bppp_backend_resources *resources)
int purify_bppp_value_generator_h(purify_secp_context *context, unsigned char out33[33])
Serializes the alternate value generator used by Pedersen commitments.
int purify_bppp_create_generators(purify_secp_context *context, size_t count, unsigned char *out, size_t *out_len)
Expands the generator list required by the BPPP prover and verifier.
purify_bppp_backend_resources * purify_bppp_backend_resources_clone(const purify_bppp_backend_resources *resources)
int purify_point_add(purify_secp_context *context, const unsigned char lhs33[33], const unsigned char rhs33[33], unsigned char out33[33])
int purify_bppp_verify_norm_arg(purify_secp_context *context, const unsigned char rho32[32], const unsigned char *generators33, size_t generators_count, const unsigned char *c_vec32, size_t c_vec_len, size_t n_vec_len, const unsigned char commitment33[33], const unsigned char *proof, size_t proof_len)
Verifies a standalone BPPP norm argument.
int purify_pedersen_commit_char(purify_secp_context *context, const unsigned char blind32[32], const unsigned char value32[32], const unsigned char value_gen33[33], const unsigned char blind_gen33[33], unsigned char commitment_out33[33])
Computes a Pedersen commitment to an arbitrary 32-byte scalar value.
int purify_bppp_prove_norm_arg_with_resources(purify_bppp_backend_resources *resources, const unsigned char rho32[32], const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, const unsigned char *c_vec32, size_t c_vec_len, unsigned char commitment_out33[33], unsigned char *proof_out, size_t *proof_len)
int purify_bulletproof_prove_circuit_assume_valid_with_resources(purify_bulletproof_backend_resources *resources, const purify_bulletproof_circuit_view *circuit, const purify_bulletproof_assignment_view *assignment, const unsigned char *blind32, const unsigned char value_gen33[33], const unsigned char nonce32[32], const unsigned char *extra_commit, size_t extra_commit_len, unsigned char commitment_out33[33], unsigned char *proof_out, size_t *proof_len)
int purify_bppp_offset_commitment(purify_secp_context *context, const unsigned char commitment33[33], const unsigned char scalar32[32], unsigned char commitment_out33[33])
void purify_bulletproof_backend_resources_destroy(purify_bulletproof_backend_resources *resources)
int purify_bppp_prove_norm_arg_to_commitment(purify_secp_context *context, const unsigned char rho32[32], const unsigned char *generators33, size_t generators_count, const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, const unsigned char *c_vec32, size_t c_vec_len, const unsigned char commitment33[33], unsigned char *proof_out, size_t *proof_len)
purify_bulletproof_backend_resources * purify_bulletproof_backend_resources_create(purify_secp_context *context, size_t n_gates)
purify_bulletproof_backend_resources * purify_bulletproof_backend_resources_clone(const purify_bulletproof_backend_resources *resources)
int purify_bppp_base_generator(purify_secp_context *context, unsigned char out33[33])
Serializes the secp256k1 base generator into compressed form.
int purify_bppp_commit_norm_arg_with_resources(purify_bppp_backend_resources *resources, const unsigned char rho32[32], const unsigned char *n_vec32, size_t n_vec_len, const unsigned char *l_vec32, size_t l_vec_len, const unsigned char *c_vec32, size_t c_vec_len, unsigned char commitment_out33[33])
size_t purify_bppp_required_proof_size(size_t n_vec_len, size_t c_vec_len)
Computes the maximum serialized size of a BPPP norm proof.
size_t purify_bulletproof_required_proof_size(size_t n_gates)
purify_bppp_backend_resources * purify_bppp_backend_resources_create(purify_secp_context *context, const unsigned char *generators33, size_t generators_count)
int purify_bppp_verify_norm_arg_with_resources(purify_bppp_backend_resources *resources, const unsigned char rho32[32], const unsigned char *c_vec32, size_t c_vec_len, size_t n_vec_len, const unsigned char commitment33[33], const unsigned char *proof, size_t proof_len)
Narrow C ABI exposing secp256k1 scalar and HMAC helpers to the C++ headers.
const unsigned char * ar32
const unsigned char * al32
const unsigned char * ao32
const unsigned char * v32
const purify_bulletproof_row_view * wr
const purify_bulletproof_row_view * wo
const purify_bulletproof_row_view * wl
const purify_bulletproof_row_view * wv
const unsigned char * c32
const unsigned char * scalars32