From 39b01ab0bea0a6f3380a6bd8117f1e38da32d578 Mon Sep 17 00:00:00 2001 From: Joshy Orndorff Date: Thu, 20 Apr 2023 13:02:09 -0400 Subject: [PATCH 1/2] add another multisig test --- tuxedo-core/src/verifier.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tuxedo-core/src/verifier.rs b/tuxedo-core/src/verifier.rs index 932651109..4aeb41d5e 100644 --- a/tuxedo-core/src/verifier.rs +++ b/tuxedo-core/src/verifier.rs @@ -252,6 +252,32 @@ mod test { assert!(!threshold_multisig.verify(simplified_tx, redeemer)); } + #[test] + fn threshold_multisig_extra_sigs_still_passes() { + let threshold = 2; + let pairs = generate_n_pairs(threshold + 1); + + let signatories: Vec = pairs.iter().map(|p| H256::from(p.public())).collect(); + + let simplified_tx = b"hello_world".as_slice(); + let sigs: Vec<_> = pairs + .iter() + .enumerate() + .map(|(i, p)| SignatureAndIndex { + signature: p.sign(simplified_tx), + index: i.try_into().unwrap(), + }) + .collect(); + + let redeemer: &[u8] = &sigs.encode()[..]; + let threshold_multisig = ThresholdMultiSignature { + threshold, + signatories, + }; + + assert!(!threshold_multisig.verify(simplified_tx, redeemer)); + } + #[test] fn threshold_multisig_replay_sig_attack_fails() { let threshold = 2; From 360376ae67682d505066f51030af3e0319f81263 Mon Sep 17 00:00:00 2001 From: Joshy Orndorff Date: Thu, 20 Apr 2023 13:43:45 -0400 Subject: [PATCH 2/2] Update tuxedo-core/src/verifier.rs Co-authored-by: Andrew --- tuxedo-core/src/verifier.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tuxedo-core/src/verifier.rs b/tuxedo-core/src/verifier.rs index 4aeb41d5e..33fabe7c6 100644 --- a/tuxedo-core/src/verifier.rs +++ b/tuxedo-core/src/verifier.rs @@ -275,7 +275,7 @@ mod test { signatories, }; - assert!(!threshold_multisig.verify(simplified_tx, redeemer)); + assert!(threshold_multisig.verify(simplified_tx, redeemer)); } #[test]