wots_rs/
lib.rs

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