Skip to content

Commit 10cb8b1

Browse files
committed
Add shorter sig imports test
1 parent 9941dc2 commit 10cb8b1

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

packages/vm/src/imports.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,7 @@ mod tests {
10811081
}
10821082

10831083
#[test]
1084-
fn do_secp256k1_verify_wrong_sig_length_fails() {
1084+
fn do_secp256k1_verify_larger_sig_fails() {
10851085
let api = MockApi::default();
10861086
let (env, mut _instance) = make_instance(api.clone());
10871087

@@ -1105,6 +1105,31 @@ mod tests {
11051105
}
11061106
}
11071107

1108+
#[test]
1109+
fn do_secp256k1_verify_shorter_sig_fails() {
1110+
let api = MockApi::default();
1111+
let (env, mut _instance) = make_instance(api.clone());
1112+
1113+
let hash = hex::decode("5ae8317d34d1e595e3fa7247db80c0af4320cce1116de187f8f7e2e099c0d8d0")
1114+
.unwrap();
1115+
let hash_ptr = write_data(&env, &hash);
1116+
let mut sig = hex::decode("207082eb2c3dfa0b454e0906051270ba4074ac93760ba9e7110cd9471475111151eb0dbbc9920e72146fb564f99d039802bf6ef2561446eb126ef364d21ee9c4").unwrap();
1117+
// reduce / break sig
1118+
sig.pop();
1119+
let sig_ptr = write_data(&env, &sig);
1120+
let pubkey = hex::decode("04051c1ee2190ecfb174bfe4f90763f2b4ff7517b70a2aec1876ebcfd644c4633fb03f3cfbd94b1f376e34592d9d41ccaf640bb751b00a1fadeb0c01157769eb73").unwrap();
1121+
let pubkey_ptr = write_data(&env, &pubkey);
1122+
1123+
let result = do_secp256k1_verify::<MA, MS, MQ>(&env, hash_ptr, sig_ptr, pubkey_ptr);
1124+
match result.unwrap_err() {
1125+
VmError::CryptoErr {
1126+
source: CryptoError::GenericErr { msg, .. },
1127+
..
1128+
} => assert_eq!(msg, "signature error"),
1129+
e => panic!("Unexpected error: {:?}", e),
1130+
}
1131+
}
1132+
11081133
#[test]
11091134
fn do_secp256k1_verify_wrong_pubkey_fails() {
11101135
let api = MockApi::default();

0 commit comments

Comments
 (0)