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.