1extern crate libsm;
2extern crate bip39;
3extern crate num_bigint;
4
5pub mod mc;
6pub mod sm;
7
8#[cfg(test)]
9mod tests {
10 use crate::mc::Mc;
11 use crate::sm::Sm;
12
13 #[test]
14 fn mc_test1() {
15 Mc::new_mnemonic();
16 }
17
18 #[test]
19 fn sm_test1() {
20 let b = Sm::new_master_key();
21 println!("{} {}", b.0, b.1)
22 }
23
24 #[test]
25 fn sm_test2() {
26 let bytes = b"ced586c083cb59fe11b6bde0984a2411d471bcc564e9a8667c4c4c0b02cae9e7";
27 let b = Sm::pri_to_pub(bytes);
28 println!("{}", b)
29 }
30
31 #[test]
32 fn sm_test3() {
33 let pri_key = b"bf0a4549f58d1d436764b6d758a7aabd243081d0580efa04a6707d6950669d7d";
34 let msg = b"123";
35 let b = Sm::sign(pri_key, msg);
36 println!("{}", b);
37 }
38
39 #[test]
40 fn sm_test4() {
41 let pub_key = b"039cae08b2f6f0d02cf600fd7f36698e07968571e9aa33006db24e5eb70aad6800";
42 let msg = b"123";
43 let signature = b"30450221008651c47d596cdcfc47875295ba77459f59afcb126efee5e0798f1ea5b8f58201022010cfbe005492eb3ac400c5ff9ec126624fb4826e41d438f28f9a5f5275c0751a";
44 let sig = hex::decode(signature).unwrap();
45 let _pub = hex::decode(pub_key).unwrap();
46 let b = Sm::verify(msg, &_pub, &sig);
47 println!("{:?}", b);
48 }
49}