RFC-complaint one-time password algorithms written in Rust.
The HMAC-based one-time password algorithm is implemented as per RFC4226. The time-based one-time password algorithm is implemented as per RFC 6238.
[dependencies]
otp-rs= "0.1"
let otp = HOTP::new("secret");
/// Generate code with counter 0 input
let code = otp.generate(0).unwrap();
println!("{}", code);
let otp = TOTP::new("secret");
/// Generate code with period and current timestamp
let timestamp = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs();
let code = otp.generate(30, timestamp);
println!("{}", code);