Lugnut
A One-time Password Crate for Rust
[![MIT/Apache-2 licensed](https://img.shields.io/crates/l/reqwest.svg)](./LICENSE-APACHE)
> Lugnut is still experimental and under construction.
Lugnut is a one-time password generator that supports specification compliant HOTP and TOTP generation and verification.
Examples
Add to Cargo.toml
```toml
[dependencies]
lugnut = "0.1.0
```
HOTP
```rust
use lugnut::hotp::Hotp;
let key = String::from("SuperSecretKey");
let counter = 100;
let mut hotp = Hotp::new();
let code = hotp.generate(key, counter).expect("error generating hotp");
let verified = hotp.verify(code, key, counter).expect("error verifying hotp");
assert!(verified);
```
TOTP
```rust
use lugnut::totp::Totp;
let key = String::from("SuperSecretKey");
let mut totp = Totp::new();
let code = totp.generate(key).expect("error generating totp");
let verified = totp.verify(code, key).expect("error verifying totp");
assert!(verified);
```
Upcoming for Lugnut
- Better Test Coverage
- Support for OTP Auth Url generation
- Support for forward and backward window configuration for TOTP (currently only support one value that is used for both
License
This project is licensed under the MIT License