An Erlang library for generating Google Authenticator compatible HMAC-based (HOTP) and time-based (TOTP) one-time passwords.
POT is an Erlang library for generating one-time passwords (OTPs) that are compatible with Google Authenticator. It implements the HMAC-based (HOTP) and time-based (TOTP) algorithms as defined in RFC 4226 and RFC 6238, providing a reliable solution for two-factor authentication in Erlang and Elixir applications.
Erlang and Elixir developers building applications that require two-factor authentication (2FA) or secure one-time password generation, such as authentication systems, APIs, or services needing OTP compatibility with standards like Google Authenticator.
Developers choose POT for its strict compliance with RFC standards, cross-language compatibility within the Erlang VM ecosystem, and its direct translation from the well-regarded Python OneTimePass library, ensuring reliability and ease of integration.
POT is an Erlang library for generating Google Authenticator compatible one time passwords
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements HOTP and TOTP as per RFC 4226 and 6238, ensuring compatibility with standards like Google Authenticator, as stated in the introduction and function reference.
Works seamlessly with Erlang, Elixir, and other BEAM-based languages, making it versatile for projects in this ecosystem, per the usage section and examples.
Includes configurable parameters like window, addwindow, and trials for handling clock drift and validation tolerance, demonstrated in the token validation functions and examples.
Supports SHA, SHA256, and SHA512 digest methods for signing, allowing alignment with different security requirements, as detailed in the hotp/2,3 options.
Past releases introduced breaking changes, such as renaming the base32 module in version 0.10.1, which could disrupt existing codebases and require updates.
As an Erlang-focused library, it has a smaller community and fewer third-party extensions compared to OTP solutions in more popular languages like Python or JavaScript.
Lacks features for OTP setup, such as QR code generation or secret key management, requiring additional libraries or custom code for a complete user experience.