minotp

Crates.iominotp
lib.rsminotp
version1.2.1
sourcesrc
created_at2024-02-04 16:42:51.663024
updated_at2024-11-11 00:47:32.337229
descriptionSimple OTP library for Rust.
homepagehttps://github.com/chardoncs/minotp
repositoryhttps://github.com/chardoncs/minotp.git
max_upload_size
id1126500
size21,790
Charles Dong (chardoncs)

documentation

README

minotp

GitHub Release

Simple OTP library for Rust.

Usage

Installation

Add minotp into your project.

cargo add minotp@1

Also all hash libraries you want (e.g., SHA1 of Rust Crypto).

cargo add sha1

TOTP (commonly used)

use minotp::*;
use sha1::Sha1;

let secret = b"test";

let totp = Totp::<Sha1>::from_bytes(secret, 30).unwrap();

// Get remaining seconds
let _remaining_seconds = totp.remaining_sec();

// Get token as a 6-digit owned string
let _token = totp.gen_6_str();

// -- snip -- //

Use an encoding crate to decode a Base32 encoded secret if you have to deal with one.

For example, using data_encoding.

use data_encoding::BASE32;
use minotp::*;
use sha1::Sha1;

let secret_base32_str = "ORSXG5A=";

let secret = BASE32.decode(secret_base32_str.as_bytes()).unwrap();

let totp = Totp::<Sha1>::from_bytes(&secret, 30).unwrap();

let _token = totp.gen_6_str();

// -- snip -- //

Found any bug?

You must be kidding. Fire an issue right now if you found one!

Commit count: 41

cargo fmt