1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! wots-rs
//!
//! Implementation of the Winternitz One-time Signature Scheme made using Rust
//!
//! # Example
//!
//! ```
//! use rand::rngs::OsRng;
//! use wots_rs::Keypair;
//!
//! let mut csprng = OsRng{};
//! let keypair: Keypair = Keypair::generate(&mut csprng);
//!
//! let message = b"hello";
//! let signature = keypair.sign(message);
//!
//! assert!(keypair.verify(message, signature));
//!
//! ```
mod keypair;
mod public;
mod secret;
mod signature;

pub use keypair::*;
pub use public::*;
pub use secret::*;
pub use signature::*;

#[cfg(test)]
mod tests {
    use super::*;
    use rand::rngs::OsRng;

    #[test]
    fn it_works() {
        let message = b"hello";

        let mut csprng = OsRng {};
        let keypair = Keypair::generate(&mut csprng);

        let signature = keypair.sign(message);
        assert!(keypair.verify(message, signature));
    }
}