Skip to content

Commit 2844f5e

Browse files
committed
Add some test vector from curl
Double checks the algorithm we wish to implement in elements Script
1 parent 6042fd4 commit 2844f5e

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/extensions/arith.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,7 @@ impl fmt::Display for EvalError {
10351035

10361036
#[cfg(test)]
10371037
mod tests {
1038+
use bitcoin::hashes::Hash;
10381039
use bitcoin::XOnlyPublicKey;
10391040

10401041
use super::*;
@@ -1111,4 +1112,26 @@ mod tests {
11111112
// script rtt
11121113
assert_eq!(ms, MsExt::parse_insane(&ms.encode()).unwrap());
11131114
}
1115+
1116+
#[test]
1117+
fn test_fuji_fixed_signs() {
1118+
// Test Vector obtained from curl queries
1119+
let sig = elements::secp256k1_zkp::schnorr::Signature::from_str("8fc6e217b0e1d3481855cdb97cfe333999d4cf48b9f58b4f299ad86fd768a345e97a953d6efa1ca5971f18810deedcfddc4c2bd4e8f9d1431c1ad6ebafa013a9").unwrap();
1120+
let pk = elements::secp256k1_zkp::XOnlyPublicKey::from_str(
1121+
"c304c3b5805eecff054c319c545dc6ac2ad44eb70f79dd9570e284c5a62c0f9e",
1122+
)
1123+
.unwrap();
1124+
1125+
let timestamp: u64 = 1679531858733;
1126+
let price: u64 = 27365;
1127+
1128+
let mut buf = Vec::with_capacity(16);
1129+
buf.extend(&timestamp.to_le_bytes());
1130+
buf.extend(&price.to_le_bytes());
1131+
let sha_msg = elements::hashes::sha256::Hash::hash(&buf);
1132+
1133+
let msg = elements::secp256k1_zkp::Message::from_slice(&sha_msg[..]).unwrap();
1134+
let secp = elements::secp256k1_zkp::Secp256k1::new();
1135+
secp.verify_schnorr(&sig, &msg, &pk).unwrap();
1136+
}
11141137
}

0 commit comments

Comments
 (0)