Merge commits '2286f809 751c4354 477f02c4 e3f84777 5c789dcd 8c949f56 21ffe4b2 ' into temp-merge-1055
This commit is contained in:
@@ -17,9 +17,6 @@
|
||||
#include "test_vectors/prove.h"
|
||||
|
||||
static void test_bppp_generators_api(void) {
|
||||
/* The BP generator API requires no precomp */
|
||||
secp256k1_context *none = secp256k1_context_create(SECP256K1_CONTEXT_NONE);
|
||||
|
||||
secp256k1_bppp_generators *gens;
|
||||
secp256k1_bppp_generators *gens_orig;
|
||||
unsigned char gens_ser[330];
|
||||
@@ -27,51 +24,52 @@ static void test_bppp_generators_api(void) {
|
||||
|
||||
int32_t ecount = 0;
|
||||
|
||||
secp256k1_context_set_error_callback(none, counting_illegal_callback_fn, &ecount);
|
||||
secp256k1_context_set_illegal_callback(none, counting_illegal_callback_fn, &ecount);
|
||||
/* The BP generator API requires no precomp */
|
||||
secp256k1_context_set_error_callback(ctx, counting_illegal_callback_fn, &ecount);
|
||||
secp256k1_context_set_illegal_callback(ctx, counting_illegal_callback_fn, &ecount);
|
||||
|
||||
/* Create */
|
||||
gens = secp256k1_bppp_generators_create(none, 10);
|
||||
gens = secp256k1_bppp_generators_create(ctx, 10);
|
||||
CHECK(gens != NULL && ecount == 0);
|
||||
gens_orig = gens; /* Preserve for round-trip test */
|
||||
|
||||
/* Serialize */
|
||||
ecount = 0;
|
||||
CHECK(!secp256k1_bppp_generators_serialize(none, NULL, gens_ser, &len));
|
||||
CHECK(!secp256k1_bppp_generators_serialize(ctx, NULL, gens_ser, &len));
|
||||
CHECK(ecount == 1);
|
||||
CHECK(!secp256k1_bppp_generators_serialize(none, gens, NULL, &len));
|
||||
CHECK(!secp256k1_bppp_generators_serialize(ctx, gens, NULL, &len));
|
||||
CHECK(ecount == 2);
|
||||
CHECK(!secp256k1_bppp_generators_serialize(none, gens, gens_ser, NULL));
|
||||
CHECK(!secp256k1_bppp_generators_serialize(ctx, gens, gens_ser, NULL));
|
||||
CHECK(ecount == 3);
|
||||
len = 0;
|
||||
CHECK(!secp256k1_bppp_generators_serialize(none, gens, gens_ser, &len));
|
||||
CHECK(!secp256k1_bppp_generators_serialize(ctx, gens, gens_ser, &len));
|
||||
CHECK(ecount == 4);
|
||||
len = sizeof(gens_ser) - 1;
|
||||
CHECK(!secp256k1_bppp_generators_serialize(none, gens, gens_ser, &len));
|
||||
CHECK(!secp256k1_bppp_generators_serialize(ctx, gens, gens_ser, &len));
|
||||
CHECK(ecount == 5);
|
||||
len = sizeof(gens_ser);
|
||||
{
|
||||
/* Output buffer can be greater than minimum needed */
|
||||
unsigned char gens_ser_tmp[331];
|
||||
size_t len_tmp = sizeof(gens_ser_tmp);
|
||||
CHECK(secp256k1_bppp_generators_serialize(none, gens, gens_ser_tmp, &len_tmp));
|
||||
CHECK(secp256k1_bppp_generators_serialize(ctx, gens, gens_ser_tmp, &len_tmp));
|
||||
CHECK(len_tmp == sizeof(gens_ser_tmp) - 1);
|
||||
CHECK(ecount == 5);
|
||||
}
|
||||
|
||||
/* Parse */
|
||||
CHECK(secp256k1_bppp_generators_serialize(none, gens, gens_ser, &len));
|
||||
CHECK(secp256k1_bppp_generators_serialize(ctx, gens, gens_ser, &len));
|
||||
ecount = 0;
|
||||
gens = secp256k1_bppp_generators_parse(none, NULL, sizeof(gens_ser));
|
||||
gens = secp256k1_bppp_generators_parse(ctx, NULL, sizeof(gens_ser));
|
||||
CHECK(gens == NULL && ecount == 1);
|
||||
/* Not a multiple of 33 */
|
||||
gens = secp256k1_bppp_generators_parse(none, gens_ser, sizeof(gens_ser) - 1);
|
||||
gens = secp256k1_bppp_generators_parse(ctx, gens_ser, sizeof(gens_ser) - 1);
|
||||
CHECK(gens == NULL && ecount == 1);
|
||||
gens = secp256k1_bppp_generators_parse(none, gens_ser, sizeof(gens_ser));
|
||||
gens = secp256k1_bppp_generators_parse(ctx, gens_ser, sizeof(gens_ser));
|
||||
CHECK(gens != NULL && ecount == 1);
|
||||
/* Not valid generators */
|
||||
memset(gens_ser, 1, sizeof(gens_ser));
|
||||
CHECK(secp256k1_bppp_generators_parse(none, gens_ser, sizeof(gens_ser)) == NULL);
|
||||
CHECK(secp256k1_bppp_generators_parse(ctx, gens_ser, sizeof(gens_ser)) == NULL);
|
||||
CHECK(ecount == 1);
|
||||
|
||||
/* Check that round-trip succeeded */
|
||||
@@ -82,12 +80,10 @@ static void test_bppp_generators_api(void) {
|
||||
|
||||
/* Destroy (we allow destroying a NULL context, it's just a noop. like free().) */
|
||||
ecount = 0;
|
||||
secp256k1_bppp_generators_destroy(none, NULL);
|
||||
secp256k1_bppp_generators_destroy(none, gens);
|
||||
secp256k1_bppp_generators_destroy(none, gens_orig);
|
||||
secp256k1_bppp_generators_destroy(ctx, NULL);
|
||||
secp256k1_bppp_generators_destroy(ctx, gens);
|
||||
secp256k1_bppp_generators_destroy(ctx, gens_orig);
|
||||
CHECK(ecount == 0);
|
||||
|
||||
secp256k1_context_destroy(none);
|
||||
}
|
||||
|
||||
static void test_bppp_generators_fixed(void) {
|
||||
|
||||
Reference in New Issue
Block a user