test: Add non-NULL checks for "pointer of array" API functions
This commit is contained in:
1 parent
5a08c1bcdc
commit
8bcda186d2
2 files changed
+38
No files matched your search
@@ -201,6 +201,13 @@ static void musig_api_tests(void) {
|
||||
CHECK(secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, pk_ptr, 2) == 1);
|
||||
CHECK(secp256k1_musig_pubkey_agg(CTX, NULL, &keyagg_cache, pk_ptr, 2) == 1);
|
||||
CHECK(secp256k1_musig_pubkey_agg(CTX, &agg_pk, NULL, pk_ptr, 2) == 1);
|
||||
/* check that NULL in array of public key pointers is not allowed */
|
||||
for (i = 0; i < 2; i++) {
|
||||
const secp256k1_pubkey *original_ptr = pk_ptr[i];
|
||||
pk_ptr[i] = NULL;
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, NULL, pk_ptr, 2));
|
||||
pk_ptr[i] = original_ptr;
|
||||
}
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, NULL, 2));
|
||||
CHECK(memcmp_and_randomize(agg_pk.data, zeros132, sizeof(agg_pk.data)) == 0);
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, invalid_pk_ptr2, 2));
|
||||
@@ -350,6 +357,13 @@ static void musig_api_tests(void) {
|
||||
|
||||
/** Receive nonces and aggregate **/
|
||||
CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2) == 1);
|
||||
/* check that NULL in array of public nonce pointers is not allowed */
|
||||
for (i = 0; i < 2; i++) {
|
||||
const secp256k1_musig_pubnonce *original_ptr = pubnonce_ptr[i];
|
||||
pubnonce_ptr[i] = NULL;
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2));
|
||||
pubnonce_ptr[i] = original_ptr;
|
||||
}
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, NULL, pubnonce_ptr, 2));
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, &aggnonce, NULL, 2));
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 0));
|
||||
@@ -474,6 +488,13 @@ static void musig_api_tests(void) {
|
||||
|
||||
/** Signature aggregation and verification */
|
||||
CHECK(secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, partial_sig_ptr, 2) == 1);
|
||||
/* check that NULL in array of partial signature pointers is not allowed */
|
||||
for (i = 0; i < 2; i++) {
|
||||
const secp256k1_musig_partial_sig *original_ptr = partial_sig_ptr[i];
|
||||
partial_sig_ptr[i] = NULL;
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, partial_sig_ptr, 2));
|
||||
partial_sig_ptr[i] = original_ptr;
|
||||
}
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, NULL, &session, partial_sig_ptr, 2));
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, NULL, partial_sig_ptr, 2));
|
||||
CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, &invalid_session, partial_sig_ptr, 2));
|
||||
|
||||
+17
@@ -6052,6 +6052,7 @@ static void run_eckey_edge_case_test(void) {
|
||||
secp256k1_pubkey pubkey_negone;
|
||||
const secp256k1_pubkey *pubkeys[3];
|
||||
size_t len;
|
||||
int i;
|
||||
/* Group order is too large, reject. */
|
||||
CHECK(secp256k1_ec_seckey_verify(CTX, orderc) == 0);
|
||||
SECP256K1_CHECKMEM_UNDEFINE(&pubkey, sizeof(pubkey));
|
||||
@@ -6245,6 +6246,14 @@ static void run_eckey_edge_case_test(void) {
|
||||
CHECK(secp256k1_ec_pubkey_combine(CTX, &pubkey, pubkeys, 3) == 1);
|
||||
SECP256K1_CHECKMEM_CHECK(&pubkey, sizeof(secp256k1_pubkey));
|
||||
CHECK(secp256k1_memcmp_var(&pubkey, zeros, sizeof(secp256k1_pubkey)) > 0);
|
||||
/* check that NULL in array of pubkey pointers is not allowed */
|
||||
for (i = 0; i < 3; i++) {
|
||||
const secp256k1_pubkey *original_ptr = pubkeys[i];
|
||||
secp256k1_pubkey result;
|
||||
pubkeys[i] = NULL;
|
||||
CHECK_ILLEGAL(CTX, secp256k1_ec_pubkey_combine(CTX, &result, pubkeys, 3));
|
||||
pubkeys[i] = original_ptr;
|
||||
}
|
||||
len = 33;
|
||||
CHECK(secp256k1_ec_pubkey_serialize(CTX, ctmp, &len, &pubkey, SECP256K1_EC_COMPRESSED) == 1);
|
||||
CHECK(secp256k1_ec_pubkey_serialize(CTX, ctmp2, &len, &pubkey_one, SECP256K1_EC_COMPRESSED) == 1);
|
||||
@@ -6640,6 +6649,7 @@ static void permute(size_t *arr, size_t n) {
|
||||
static void test_sort_api(void) {
|
||||
secp256k1_pubkey pks[2];
|
||||
const secp256k1_pubkey *pks_ptr[2];
|
||||
int i;
|
||||
|
||||
pks_ptr[0] = &pks[0];
|
||||
pks_ptr[1] = &pks[1];
|
||||
@@ -6648,6 +6658,13 @@ static void test_sort_api(void) {
|
||||
testutil_random_pubkey_test(&pks[1]);
|
||||
|
||||
CHECK(secp256k1_ec_pubkey_sort(CTX, pks_ptr, 2) == 1);
|
||||
/* check that NULL in array of public key pointers is not allowed */
|
||||
for (i = 0; i < 2; i++) {
|
||||
const secp256k1_pubkey *original_ptr = pks_ptr[i];
|
||||
pks_ptr[i] = NULL;
|
||||
CHECK_ILLEGAL(CTX, secp256k1_ec_pubkey_sort(CTX, pks_ptr, 2));
|
||||
pks_ptr[i] = original_ptr;
|
||||
}
|
||||
CHECK_ILLEGAL(CTX, secp256k1_ec_pubkey_sort(CTX, NULL, 2));
|
||||
CHECK(secp256k1_ec_pubkey_sort(CTX, pks_ptr, 0) == 1);
|
||||
/* Test illegal public keys */
|
||||
|
||||
Reference in new issue
Block a user