Merge ElementsProject/secp256k1-zkp#265: bppp: Fix test for invalid sign byte again

5bf57590bf2685fe46e6041faaaa5726585b5916 bppp: Fix test for invalid sign byte again (Jonas Nick)

Pull request description:

  The first byte provided to secp256k1_bppp_parse_one_of_points is allowed to be 0, 1, 2, or 3 since it encodes the Y coordinate of two points. In a previous fix we wrongly assumed it can only be 2 or 3.

ACKs for top commit:
  real-or-random:
    utACK 5bf57590bf2685fe46e6041faaaa5726585b5916

Tree-SHA512: 4dcc83a03691b8cb0cbe39da6e34311bde518e09fb02fb8648557eba435031eaee8acef9dc762e24c7d106b935b725981dcdaadbd1a3801026ee2b7b9bc34951
This commit is contained in:
Tim Ruffing 2023-08-06 02:25:27 +02:00
commit b911b3cbd5
No known key found for this signature in database
GPG Key ID: 8C461CCD293F6011

View File

@ -257,10 +257,8 @@ static void test_serialize_two_points(void) {
random_group_element_test(&R); random_group_element_test(&R);
secp256k1_bppp_serialize_points(buf, &X, &R); secp256k1_bppp_serialize_points(buf, &X, &R);
buf[0] = 4 + (unsigned char)secp256k1_testrandi64(0, 253); /* buf is valid if 0 <= buf[0] < 4. */
/* Assert that buf[0] is actually invalid. */ buf[0] = (unsigned char)secp256k1_testrandi64(4, 255);
CHECK(buf[0] != 0x02 && buf[0] != 0x03);
CHECK(!secp256k1_bppp_parse_one_of_points(&X_tmp, buf, 0)); CHECK(!secp256k1_bppp_parse_one_of_points(&X_tmp, buf, 0));
CHECK(!secp256k1_bppp_parse_one_of_points(&R_tmp, buf, 0)); CHECK(!secp256k1_bppp_parse_one_of_points(&R_tmp, buf, 0));
} }