Merge commits '9a8d65f0 75d7b7f5 665ba77e 3f57b9f7 eacad90f 01b819a8 31ed5386 2a39ac16 0eb30004 cbe41ac1 cc3b8a4f ' into temp-merge-1187
This commit is contained in:
@@ -15,21 +15,21 @@ void test_whitelist_end_to_end_internal(const unsigned char *summed_seckey, cons
|
||||
secp256k1_whitelist_signature sig;
|
||||
secp256k1_whitelist_signature sig1;
|
||||
|
||||
CHECK(secp256k1_whitelist_sign(ctx, &sig, online_pubkeys, offline_pubkeys, n_keys, sub_pubkey, online_seckey, summed_seckey, signer_i));
|
||||
CHECK(secp256k1_whitelist_verify(ctx, &sig, online_pubkeys, offline_pubkeys, n_keys, sub_pubkey) == 1);
|
||||
CHECK(secp256k1_whitelist_sign(CTX, &sig, online_pubkeys, offline_pubkeys, n_keys, sub_pubkey, online_seckey, summed_seckey, signer_i));
|
||||
CHECK(secp256k1_whitelist_verify(CTX, &sig, online_pubkeys, offline_pubkeys, n_keys, sub_pubkey) == 1);
|
||||
/* Check that exchanging keys causes a failure */
|
||||
CHECK(secp256k1_whitelist_verify(ctx, &sig, offline_pubkeys, online_pubkeys, n_keys, sub_pubkey) != 1);
|
||||
CHECK(secp256k1_whitelist_verify(CTX, &sig, offline_pubkeys, online_pubkeys, n_keys, sub_pubkey) != 1);
|
||||
/* Serialization round trip */
|
||||
CHECK(secp256k1_whitelist_signature_serialize(ctx, serialized, &slen, &sig) == 1);
|
||||
CHECK(secp256k1_whitelist_signature_serialize(CTX, serialized, &slen, &sig) == 1);
|
||||
CHECK(slen == 33 + 32 * n_keys);
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig1, serialized, slen) == 1);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig1, serialized, slen) == 1);
|
||||
/* (Check various bad-length conditions) */
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig1, serialized, slen + 32) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig1, serialized, slen + 1) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig1, serialized, slen - 1) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig1, serialized, 0) == 0);
|
||||
CHECK(secp256k1_whitelist_verify(ctx, &sig1, online_pubkeys, offline_pubkeys, n_keys, sub_pubkey) == 1);
|
||||
CHECK(secp256k1_whitelist_verify(ctx, &sig1, offline_pubkeys, online_pubkeys, n_keys, sub_pubkey) != 1);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig1, serialized, slen + 32) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig1, serialized, slen + 1) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig1, serialized, slen - 1) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig1, serialized, 0) == 0);
|
||||
CHECK(secp256k1_whitelist_verify(CTX, &sig1, online_pubkeys, offline_pubkeys, n_keys, sub_pubkey) == 1);
|
||||
CHECK(secp256k1_whitelist_verify(CTX, &sig1, offline_pubkeys, online_pubkeys, n_keys, sub_pubkey) != 1);
|
||||
|
||||
/* Test n_keys */
|
||||
CHECK(secp256k1_whitelist_signature_n_keys(&sig) == n_keys);
|
||||
@@ -37,7 +37,7 @@ void test_whitelist_end_to_end_internal(const unsigned char *summed_seckey, cons
|
||||
|
||||
/* Test bad number of keys in signature */
|
||||
sig.n_keys = n_keys + 1;
|
||||
CHECK(secp256k1_whitelist_verify(ctx, &sig, offline_pubkeys, online_pubkeys, n_keys, sub_pubkey) != 1);
|
||||
CHECK(secp256k1_whitelist_verify(CTX, &sig, offline_pubkeys, online_pubkeys, n_keys, sub_pubkey) != 1);
|
||||
sig.n_keys = n_keys;
|
||||
}
|
||||
|
||||
@@ -56,8 +56,8 @@ void test_whitelist_end_to_end(const size_t n_keys, int test_all_keys) {
|
||||
/* Start with subkey */
|
||||
random_scalar_order_test(&ssub);
|
||||
secp256k1_scalar_get_b32(csub, &ssub);
|
||||
CHECK(secp256k1_ec_seckey_verify(ctx, csub) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_create(ctx, &sub_pubkey, csub) == 1);
|
||||
CHECK(secp256k1_ec_seckey_verify(CTX, csub) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_create(CTX, &sub_pubkey, csub) == 1);
|
||||
/* Then offline and online whitelist keys */
|
||||
for (i = 0; i < n_keys; i++) {
|
||||
secp256k1_scalar son, soff;
|
||||
@@ -68,18 +68,18 @@ void test_whitelist_end_to_end(const size_t n_keys, int test_all_keys) {
|
||||
/* Create two keys */
|
||||
random_scalar_order_test(&son);
|
||||
secp256k1_scalar_get_b32(online_seckey[i], &son);
|
||||
CHECK(secp256k1_ec_seckey_verify(ctx, online_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_create(ctx, &online_pubkeys[i], online_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_seckey_verify(CTX, online_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_create(CTX, &online_pubkeys[i], online_seckey[i]) == 1);
|
||||
|
||||
random_scalar_order_test(&soff);
|
||||
secp256k1_scalar_get_b32(summed_seckey[i], &soff);
|
||||
CHECK(secp256k1_ec_seckey_verify(ctx, summed_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_create(ctx, &offline_pubkeys[i], summed_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_seckey_verify(CTX, summed_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_create(CTX, &offline_pubkeys[i], summed_seckey[i]) == 1);
|
||||
|
||||
/* Make summed_seckey correspond to the sum of offline_pubkey and sub_pubkey */
|
||||
secp256k1_scalar_add(&soff, &soff, &ssub);
|
||||
secp256k1_scalar_get_b32(summed_seckey[i], &soff);
|
||||
CHECK(secp256k1_ec_seckey_verify(ctx, summed_seckey[i]) == 1);
|
||||
CHECK(secp256k1_ec_seckey_verify(CTX, summed_seckey[i]) == 1);
|
||||
}
|
||||
|
||||
/* Sign/verify with each one */
|
||||
@@ -124,11 +124,11 @@ void test_whitelist_bad_parse(void) {
|
||||
};
|
||||
|
||||
/* Empty input */
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig, serialized0, 0) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig, serialized0, 0) == 0);
|
||||
/* Misses one byte of e0 */
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig, serialized1, sizeof(serialized1)) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig, serialized1, sizeof(serialized1)) == 0);
|
||||
/* Enough bytes for e0, but there is no s value */
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig, serialized2, sizeof(serialized2)) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig, serialized2, sizeof(serialized2)) == 0);
|
||||
}
|
||||
|
||||
void test_whitelist_bad_serialize(void) {
|
||||
@@ -142,17 +142,17 @@ void test_whitelist_bad_serialize(void) {
|
||||
size_t serialized_len;
|
||||
secp256k1_whitelist_signature sig;
|
||||
|
||||
CHECK(secp256k1_whitelist_signature_parse(ctx, &sig, serialized, sizeof(serialized)) == 1);
|
||||
CHECK(secp256k1_whitelist_signature_parse(CTX, &sig, serialized, sizeof(serialized)) == 1);
|
||||
serialized_len = sizeof(serialized) - 1;
|
||||
/* Output buffer is one byte too short */
|
||||
CHECK(secp256k1_whitelist_signature_serialize(ctx, serialized, &serialized_len, &sig) == 0);
|
||||
CHECK(secp256k1_whitelist_signature_serialize(CTX, serialized, &serialized_len, &sig) == 0);
|
||||
}
|
||||
|
||||
void run_whitelist_tests(void) {
|
||||
int i;
|
||||
test_whitelist_bad_parse();
|
||||
test_whitelist_bad_serialize();
|
||||
for (i = 0; i < count; i++) {
|
||||
for (i = 0; i < COUNT; i++) {
|
||||
test_whitelist_end_to_end(1, 1);
|
||||
test_whitelist_end_to_end(10, 1);
|
||||
test_whitelist_end_to_end(50, 1);
|
||||
|
||||
Reference in New Issue
Block a user