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}