7 #ifndef SECP256K1_MODULE_RANGEPROOF_MAIN
8 #define SECP256K1_MODULE_RANGEPROOF_MAIN
18 uint64_t *min_value, uint64_t *max_value,
const unsigned char *proof,
size_t plen) {
29 return secp256k1_rangeproof_getheader_impl(&offset, exp, mantissa, &scale, min_value, max_value, proof, plen);
33 unsigned char *blind_out, uint64_t *value_out,
unsigned char *message_out,
size_t *outlen,
const unsigned char *nonce,
34 uint64_t *min_value, uint64_t *max_value,
43 ARG_CHECK(message_out != NULL || outlen == NULL);
45 ARG_CHECK(extra_commit != NULL || extra_commit_len == 0);
49 secp256k1_pedersen_commitment_load(&commitp, commit);
50 secp256k1_generator_load(&genp, gen);
52 blind_out, value_out, message_out, outlen, nonce, min_value, max_value, &commitp, proof, plen, extra_commit, extra_commit_len, &genp);
64 ARG_CHECK(extra_commit != NULL || extra_commit_len == 0);
67 secp256k1_pedersen_commitment_load(&commitp, commit);
68 secp256k1_generator_load(&genp, gen);
69 return secp256k1_rangeproof_verify_impl(&ctx->
ecmult_ctx, NULL,
70 NULL, NULL, NULL, NULL, NULL, min_value, max_value, &commitp, proof, plen, extra_commit, extra_commit_len, &genp);
75 const unsigned char *message,
size_t msg_len,
const unsigned char *extra_commit,
size_t extra_commit_len,
const secp256k1_generator* gen){
84 ARG_CHECK(message != NULL || msg_len == 0);
85 ARG_CHECK(extra_commit != NULL || extra_commit_len == 0);
89 secp256k1_pedersen_commitment_load(&commitp, commit);
90 secp256k1_generator_load(&genp, gen);
92 proof, plen, min_value, &commitp, blind, nonce, exp, min_bits, value, message, msg_len, extra_commit, extra_commit_len, &genp);