1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
//! This library is for generating Time-based One-time Password (TOTP) //! codes/tokens, which is defined in [RFC 6238](https://tools.ietf.org/html/rfc6238). //! //! Features of this crate: //! * Both low-level and high-level APIs are provided. //! * The length of the codes, the initial counter time (T0), update time //! interval (period) and hash algorithm are configurable. //! * HMAC algorithms are implemented by [ring](https://crates.io/crates/ring). //! * Read or write "[Key Uri Format](https://github.com/google/google-authenticator/wiki/Key-Uri-Format)" //! (URIs start with `otpauth://totp/`) (the `oathuri` feature gate). //! * Read or write `key` from base32-encoded string (the `oathuri` feature //! gate). //! //! Note: This implementation does **NOT** consider the time earlier than the //! [Unix epoch (`1970-01-01T00:00:00Z`)](https://en.wikipedia.org/wiki/Unix_time). //! //! See [`high_level::TotpGenerator`] for an example. //! //! ---- //! Features that may be related to but **not** implemented in this crate: //! * Read or write QR codes. pub mod high_level; pub mod low_level; #[cfg(feature = "oathuri")] pub mod oath_uri; pub use high_level::TotpGenerator; pub use low_level::HashAlgorithm;