Crate totp_lite[−][src]
Expand description
A simple, correct TOTP library.
Time-based One-time Passwords are a useful way to authenticate a client, since a valid password expires long before it could ever be guessed by an attacker. This library provides an implementation of TOTP that matches its specification RFC6238, along with a simple interface.
Usage
The totp
function is likely what you need. It uses the default time step
of 30 seconds and produces 8 digits of output:
use std::time::{SystemTime, UNIX_EPOCH}; use totp_lite::{totp, Sha512}; // Negotiated between you and the authenticating service. let password: &[u8] = b"secret"; // The number of seconds since the Unix Epoch. let seconds: u64 = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs(); // Specify the desired Hash algorithm via a type parameter. // `Sha1` and `Sha256` are also available. let result: String = totp::<Sha512>(password, seconds); assert_eq!(8, result.len());
For full control over how the algorithm is configured, consider
totp_custom
.
Resources
Structs
Sha1 | Structure representing the state of a SHA-1 computation |
Sha256 | The SHA-256 hash algorithm with the SHA-256 initial hash value. |
Sha512 | The SHA-512 hash algorithm with the SHA-512 initial hash value. |
Constants
DEFAULT_DIGITS | 8 digits of output. |
DEFAULT_STEP | 30 seconds. |
Functions
totp | Produce a Time-based One-time Password with default settings. |
totp_custom | Produce a Time-based One-time Password with full control over algorithm parameters. |