Merge pull request #50 from apoelstra/2019-generator-fix

generator: remove `CHECK` abort calls exposed by public API
This commit is contained in:
Jonas Nick 2019-04-02 20:29:18 +00:00 committed by GitHub
commit 7bc3f29348
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View File

@ -175,7 +175,6 @@ static int secp256k1_generator_generate_internal(const secp256k1_context* ctx, s
secp256k1_scalar blind; secp256k1_scalar blind;
secp256k1_scalar_set_b32(&blind, blind32, &overflow); secp256k1_scalar_set_b32(&blind, blind32, &overflow);
ret = !overflow; ret = !overflow;
CHECK(ret);
secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &accum, &blind); secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &accum, &blind);
} }
@ -184,7 +183,6 @@ static int secp256k1_generator_generate_internal(const secp256k1_context* ctx, s
secp256k1_sha256_write(&sha256, key32, 32); secp256k1_sha256_write(&sha256, key32, 32);
secp256k1_sha256_finalize(&sha256, b32); secp256k1_sha256_finalize(&sha256, b32);
ret &= secp256k1_fe_set_b32(&t, b32); ret &= secp256k1_fe_set_b32(&t, b32);
CHECK(ret);
shallue_van_de_woestijne(&add, &t); shallue_van_de_woestijne(&add, &t);
if (blind32) { if (blind32) {
secp256k1_gej_add_ge(&accum, &accum, &add); secp256k1_gej_add_ge(&accum, &accum, &add);
@ -197,7 +195,6 @@ static int secp256k1_generator_generate_internal(const secp256k1_context* ctx, s
secp256k1_sha256_write(&sha256, key32, 32); secp256k1_sha256_write(&sha256, key32, 32);
secp256k1_sha256_finalize(&sha256, b32); secp256k1_sha256_finalize(&sha256, b32);
ret &= secp256k1_fe_set_b32(&t, b32); ret &= secp256k1_fe_set_b32(&t, b32);
CHECK(ret);
shallue_van_de_woestijne(&add, &t); shallue_van_de_woestijne(&add, &t);
secp256k1_gej_add_ge(&accum, &accum, &add); secp256k1_gej_add_ge(&accum, &accum, &add);

View File

@ -173,7 +173,7 @@ void test_generator_generate(void) {
secp256k1_ge_storage ges; secp256k1_ge_storage ges;
int i; int i;
unsigned char v[32]; unsigned char v[32];
static const unsigned char s[32] = {0}; unsigned char s[32] = {0};
secp256k1_scalar sc; secp256k1_scalar sc;
secp256k1_scalar_set_b32(&sc, s, NULL); secp256k1_scalar_set_b32(&sc, s, NULL);
for (i = 1; i <= 32; i++) { for (i = 1; i <= 32; i++) {
@ -188,6 +188,14 @@ void test_generator_generate(void) {
secp256k1_ge_to_storage(&ges, &ge); secp256k1_ge_to_storage(&ges, &ge);
CHECK(memcmp(&ges, &results[i - 1], sizeof(secp256k1_ge_storage)) == 0); CHECK(memcmp(&ges, &results[i - 1], sizeof(secp256k1_ge_storage)) == 0);
} }
/* There is no range restriction on the value, but the blinder must be a
* valid scalar. Check that an invalid blinder causes the call to fail
* but not crash. */
memset(v, 0xff, 32);
CHECK(secp256k1_generator_generate(ctx, &gen, v));
memset(s, 0xff, 32);
CHECK(!secp256k1_generator_generate_blinded(ctx, &gen, v, s));
} }
void test_generator_fixed_vector(void) { void test_generator_fixed_vector(void) {