Skip to content

Commit

Permalink
generator: speed up parsing
Browse files Browse the repository at this point in the history
Similar to speeding up serialization; in our parsing logic we did a
bunch of expensive stuff then expensively inverted it. Drop everything
except the essential checks and then memcpy.
  • Loading branch information
apoelstra committed May 21, 2024
1 parent 5e7c2c1 commit 6361266
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions src/modules/generator/main_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,6 @@ static void secp256k1_pedersen_commitment_save(secp256k1_pedersen_commitment* co

int secp256k1_pedersen_commitment_parse(const secp256k1_context* ctx, secp256k1_pedersen_commitment* commit, const unsigned char *input) {
secp256k1_fe x;
secp256k1_ge ge;

VERIFY_CHECK(ctx != NULL);
ARG_CHECK(commit != NULL);
Expand All @@ -285,13 +284,11 @@ int secp256k1_pedersen_commitment_parse(const secp256k1_context* ctx, secp256k1_

if ((input[0] & 0xFE) != 8 ||
!secp256k1_fe_set_b32_limit(&x, &input[1]) ||
!secp256k1_ge_set_xquad(&ge, &x)) {
!secp256k1_ge_x_on_curve_var(&x)) {
return 0;
}
if (input[0] & 1) {
secp256k1_ge_neg(&ge, &ge);
}
secp256k1_pedersen_commitment_save(commit, &ge);

memcpy(commit->data, input, 33);
return 1;
}

Expand Down

0 comments on commit 6361266

Please sign in to comment.