Skip to content

Commit bf7bf8a

Browse files
committed
norm arg: split norm_arg_zero into prove_edge and verify_zero_len
One function tests prover edge cases, the other tests verifier edge cases.
1 parent a70c4d4 commit bf7bf8a

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

src/modules/bppp/tests_impl.h

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ static int secp256k1_norm_arg_verify(
436436
return res;
437437
}
438438

439-
void norm_arg_zero(void) {
439+
void norm_arg_prove_edge(void) {
440440
secp256k1_scalar n_vec[64], l_vec[64], c_vec[64];
441441
secp256k1_scalar rho, mu;
442442
secp256k1_ge commit;
@@ -495,23 +495,32 @@ void norm_arg_zero(void) {
495495
CHECK(secp256k1_norm_arg_verify(scratch, proof, plen, &rho, gs, n_vec_len, c_vec, c_vec_len, &commit));
496496
secp256k1_bppp_generators_destroy(ctx, gs);
497497
}
498+
}
498499

499-
/* Verify |c| = 0 */
500-
{
501-
unsigned int n_vec_len = 1;
502-
unsigned int c_vec_len = 1;
503-
secp256k1_bppp_generators *gs = secp256k1_bppp_generators_create(ctx, n_vec_len + c_vec_len);
504-
size_t plen = sizeof(proof);
505-
random_scalar_order(&n_vec[0]);
506-
random_scalar_order(&c_vec[0]);
507-
random_scalar_order(&l_vec[0]);
508-
CHECK(secp256k1_bppp_commit(ctx, scratch, &commit, gs, n_vec, n_vec_len, l_vec, c_vec_len, c_vec, c_vec_len, &mu));
509-
CHECK(secp256k1_norm_arg_prove(scratch, proof, &plen, &rho, gs, n_vec, n_vec_len, l_vec, c_vec_len, c_vec, c_vec_len, &commit));
510-
CHECK(secp256k1_norm_arg_verify(scratch, proof, plen, &rho, gs, n_vec_len, c_vec, c_vec_len, &commit));
511-
CHECK(!secp256k1_norm_arg_verify(scratch, proof, plen, &rho, gs, n_vec_len, c_vec, 0, &commit));
500+
/* Verify |c| = 0 */
501+
void norm_arg_verify_zero_len(void) {
502+
secp256k1_scalar n_vec[64], l_vec[64], c_vec[64];
503+
secp256k1_scalar rho, mu;
504+
secp256k1_ge commit;
505+
secp256k1_scratch *scratch = secp256k1_scratch_space_create(ctx, 1000*10); /* shouldn't need much */
506+
unsigned char proof[1000];
507+
unsigned int n_vec_len = 1;
508+
unsigned int c_vec_len = 1;
509+
secp256k1_bppp_generators *gs = secp256k1_bppp_generators_create(ctx, n_vec_len + c_vec_len);
510+
size_t plen = sizeof(proof);
512511

513-
secp256k1_bppp_generators_destroy(ctx, gs);
514-
}
512+
random_scalar_order(&rho);
513+
secp256k1_scalar_sqr(&mu, &rho);
514+
515+
random_scalar_order(&n_vec[0]);
516+
random_scalar_order(&c_vec[0]);
517+
random_scalar_order(&l_vec[0]);
518+
CHECK(secp256k1_bppp_commit(ctx, scratch, &commit, gs, n_vec, n_vec_len, l_vec, c_vec_len, c_vec, c_vec_len, &mu));
519+
CHECK(secp256k1_norm_arg_prove(scratch, proof, &plen, &rho, gs, n_vec, n_vec_len, l_vec, c_vec_len, c_vec, c_vec_len, &commit));
520+
CHECK(secp256k1_norm_arg_verify(scratch, proof, plen, &rho, gs, n_vec_len, c_vec, c_vec_len, &commit));
521+
CHECK(!secp256k1_norm_arg_verify(scratch, proof, plen, &rho, gs, n_vec_len, c_vec, 0, &commit));
522+
523+
secp256k1_bppp_generators_destroy(ctx, gs);
515524

516525
secp256k1_scratch_space_destroy(ctx, scratch);
517526
}
@@ -650,7 +659,8 @@ void run_bppp_tests(void) {
650659
test_bppp_generators_fixed();
651660
test_bppp_tagged_hash();
652661

653-
norm_arg_zero();
662+
norm_arg_prove_edge();
663+
norm_arg_verify_zero_len();
654664
norm_arg_test(1, 1);
655665
norm_arg_test(1, 64);
656666
norm_arg_test(64, 1);

0 commit comments

Comments
 (0)