Python LibreAuth

Python bindings to the LibreAuth library. LibreAuth is a collection of tools for user authentication written in Rust.

Build status Documentation Status Project status Version Python versions CeCILL license

Features

This is a work in progress. Some features may not be available.

  • Password / passphrase authentication
    • ✓ no character-set limitation
    • ✓ reasonable lenth limit (security vs. DOS)
    • ✓ strong, evolutive and retro-compatible password hashing functions
    • ✓ optional NIST Special Publication 800-63B compatibility
  • HOTP - HMAC-based One-time Password Algorithm (OATH - RFC 4226)
    • ✗ the key can be passed as bytes, an ASCII string, an hexadicimal string or a base32 string
    • ✗ customizable counter
    • ✗ customizable hash function (sha1, sha256, sha512)
    • ✗ customizable output length
    • ✗ customizable output alphabet
  • TOTP - Time-based One-time Password Algorithm (OATH - RFC 6238)
    • ✗ the key can be passed as bytes, an ASCII string, an hexadicimal string or a base32 string
    • ✗ customizable timestamp
    • ✗ customizable period
    • ✗ customizable initial time (T0)
    • ✗ customizable hash function (sha1, sha256, sha512)
    • ✗ customizable output length
    • ✗ customizable output alphabet
    • ✗ customizable positive and negative period tolerance

Indices and tables