1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-05-12 12:03:29 +00:00

BIP-0374: fix incorrect bit index and modernize CSV reader usage in test vector scripts (#1817)

* Update run_test_vectors.py

* Update gen_test_vectors.py

* Regenerate test vectors after fixing message tampering logic in gen_test_vectors.py
This commit is contained in:
Tronica 2025-04-16 16:10:16 +02:00 committed by GitHub
parent 05d546d581
commit 6ceafc51b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 4 additions and 4 deletions

View File

@ -111,7 +111,7 @@ def gen_all_verify_proof_vectors(f):
# modifying message should fail (flip one bit)
msg_damage_pos = random_scalar_int(idx, "damage_pos") % 256
msg_damaged = list(msg)
msg_damaged[proof_damage_pos // 8] ^= (1 << (msg_damage_pos % 8))
msg_damaged[msg_damage_pos // 8] ^= (1 << (msg_damage_pos % 8))
msg_damaged = bytes(msg_damaged)
writer.writerow((idx, G.to_bytes_compressed().hex(), A.to_bytes_compressed().hex(), B.to_bytes_compressed().hex(),
C.to_bytes_compressed().hex(), proof.hex(), msg_damaged.hex(), "FALSE", f"Tampered message (random bit-flip)"))

View File

@ -20,7 +20,7 @@ print("----- Proof generation test vectors -----")
print("-----------------------------------------")
with open(FILENAME_GENERATE_PROOF_TEST, newline='') as csvfile:
reader = csv.reader(csvfile)
reader.__next__()
next(reader)
for row in reader:
(index, point_G_hex, seckey_a_hex, point_B_hex, aux_rand_hex, msg_hex, result_str, comment) = row
print(seckey_a_hex)
@ -48,7 +48,7 @@ print("----- Proof verification test vectors -----")
print("-------------------------------------------")
with open(FILENAME_VERIFY_PROOF_TEST, newline='') as csvfile:
reader = csv.reader(csvfile)
reader.__next__()
next(reader)
for row in reader:
(index, point_G_hex, point_A_hex, point_B_hex, point_C_hex, proof_hex, msg_hex, result_success, comment) = row
G = GE() if point_G_hex == 'INFINITY' else GE.from_bytes(bytes.fromhex(point_G_hex))

View File

@ -13,4 +13,4 @@ index,point_G,point_A,point_B,point_C,proof,message,result_success,comment
11,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 4
12,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 5
13,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,78a5544afa75bf152653fe55fb76926f2f65131ff090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Tampered proof (random bit-flip)
14,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb,22616bb5fb2d7c68270f305122f2a09e83323984b1c9a04e285119fb606ac794,FALSE,Tampered message (random bit-flip)
14,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb,22616bb5fb6d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Tampered message (random bit-flip)

1 index point_G point_A point_B point_C proof message result_success comment
13 11 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Swapped points case 4
14 12 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Swapped points case 5
15 13 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 78a5544afa75bf152653fe55fb76926f2f65131ff090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Tampered proof (random bit-flip)
16 14 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 78a5544afa75bf152653fe55fb76926f2f65131bf090972a0b0b37d310c28a6bde0e7bfacc10ac12d36f55316ba134b6ba0b844a65ae05cad53c0b296c6639bb 22616bb5fb2d7c68270f305122f2a09e83323984b1c9a04e285119fb606ac794 22616bb5fb6d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Tampered message (random bit-flip)