Merge commits 'b314cf28 1f1bb78b 40f50d0f c891c5c2 ea47c82e e7210393 c1b49664 5814d848 07687e81 10e6d29b d3e29db8 e2c9888e 4197d667 5e9a4d7a 77af1da9 1a81df82 1ad5185c efe85c70 79e09451 d373bf6d 74b7c3b5 a9db9f2d 44378867 3bf4d68f e4af41c6 ' into temp-merge-1249
This commit is contained in:
@@ -118,7 +118,11 @@ static int secp256k1_bppp_commit(
|
||||
secp256k1_scalar v, l_c;
|
||||
/* First n_vec_len generators are Gs, rest are Hs*/
|
||||
VERIFY_CHECK(g_vec->n == (n_vec_len + l_vec_len));
|
||||
#ifdef VERIFY
|
||||
VERIFY_CHECK(l_vec_len == c_vec_len);
|
||||
#else
|
||||
(void)c_vec_len;
|
||||
#endif
|
||||
|
||||
/* It is possible to extend to support n_vec and c_vec to not be power of
|
||||
two. For the initial iterations of the code, we stick to powers of two for simplicity.*/
|
||||
@@ -238,17 +242,23 @@ static int secp256k1_bppp_rangeproof_norm_product_prove(
|
||||
ecmult_r_cb_data r_cb_data;
|
||||
size_t g_len = n_vec_len, h_len = l_vec_len;
|
||||
const size_t G_GENS_LEN = g_len;
|
||||
size_t log_g_len, log_h_len;
|
||||
size_t num_rounds;
|
||||
|
||||
VERIFY_CHECK(g_len > 0 && h_len > 0);
|
||||
log_g_len = secp256k1_bppp_log2(g_len);
|
||||
log_h_len = secp256k1_bppp_log2(h_len);
|
||||
num_rounds = log_g_len > log_h_len ? log_g_len : log_h_len;
|
||||
/* Check proof sizes.*/
|
||||
VERIFY_CHECK(*proof_len >= 65 * num_rounds + 64);
|
||||
VERIFY_CHECK(g_vec_len == (n_vec_len + l_vec_len) && l_vec_len == c_vec_len);
|
||||
VERIFY_CHECK(secp256k1_is_power_of_two(n_vec_len) && secp256k1_is_power_of_two(c_vec_len));
|
||||
#ifdef VERIFY
|
||||
{
|
||||
size_t log_g_len_ver, log_h_len_ver, num_rounds_ver;
|
||||
VERIFY_CHECK(g_len > 0 && h_len > 0); /* Precondition for secp256k1_bppp_log2() */
|
||||
log_g_len_ver = secp256k1_bppp_log2(g_len);
|
||||
log_h_len_ver = secp256k1_bppp_log2(h_len);
|
||||
num_rounds_ver = log_g_len_ver > log_h_len_ver ? log_g_len_ver : log_h_len_ver;
|
||||
/* Check proof sizes.*/
|
||||
VERIFY_CHECK(*proof_len >= 65 * num_rounds_ver + 64);
|
||||
VERIFY_CHECK(g_vec_len == (n_vec_len + l_vec_len) && l_vec_len == c_vec_len);
|
||||
VERIFY_CHECK(secp256k1_is_power_of_two(n_vec_len) && secp256k1_is_power_of_two(c_vec_len));
|
||||
}
|
||||
#else
|
||||
(void)g_vec_len;
|
||||
(void)c_vec_len;
|
||||
#endif
|
||||
|
||||
x_cb_data.n = n_vec;
|
||||
x_cb_data.g = g_vec;
|
||||
@@ -536,9 +546,6 @@ static int secp256k1_bppp_rangeproof_norm_product_verify(
|
||||
|
||||
secp256k1_scratch_apply_checkpoint(&ctx->error_callback, scratch, scratch_checkpoint);
|
||||
|
||||
/* res1 and res2 should be equal. Could not find a simpler way to compare them */
|
||||
secp256k1_gej_neg(&res1, &res1);
|
||||
secp256k1_gej_add_var(&res1, &res1, &res2, NULL);
|
||||
return secp256k1_gej_is_infinity(&res1);
|
||||
return secp256k1_gej_eq_var(&res1, &res2);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -60,7 +60,7 @@ static void test_bppp_generators_api(void) {
|
||||
/* Check that round-trip succeeded */
|
||||
CHECK(gens->n == gens_orig->n);
|
||||
for (len = 0; len < gens->n; len++) {
|
||||
ge_equals_ge(&gens->gens[len], &gens_orig->gens[len]);
|
||||
secp256k1_ge_eq_var(&gens->gens[len], &gens_orig->gens[len]);
|
||||
}
|
||||
|
||||
/* Destroy (we allow destroying a NULL context, it's just a noop. like free().) */
|
||||
@@ -199,8 +199,8 @@ static void test_serialize_two_points_roundtrip(secp256k1_ge *X, secp256k1_ge *R
|
||||
secp256k1_bppp_serialize_points(buf, X, R);
|
||||
CHECK(secp256k1_bppp_parse_one_of_points(&X_tmp, buf, 0));
|
||||
CHECK(secp256k1_bppp_parse_one_of_points(&R_tmp, buf, 1));
|
||||
ge_equals_ge(X, &X_tmp);
|
||||
ge_equals_ge(R, &R_tmp);
|
||||
secp256k1_ge_eq_var(X, &X_tmp);
|
||||
secp256k1_ge_eq_var(R, &R_tmp);
|
||||
}
|
||||
|
||||
static void test_serialize_two_points(void) {
|
||||
|
||||
Reference in New Issue
Block a user