1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
extern crate rand;
extern crate bigint;
extern crate rustc_hex;

mod key;

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn test_lamport_signature() {
        let plain_text = "secret message";
        let private_key = key::PrivateKey::new();
        let signature = private_key.sign(&plain_text);
        let public_key = private_key.to_public_key();
        let is_valid = public_key.verify(plain_text, signature);
        assert_eq!(key::PRIVATE_KEY_LENGT, private_key.pairs.len());
        assert_eq!(key::PRIVATE_KEY_LENGT, private_key.public_key.pairs.len());
        assert_eq!(true, is_valid);
    }
}