OATH HOTP/TOTP implementation in python
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
MANIFEST.in
README.md
VERSION
hotpie.py
setup.py

README.md

hotpie

Build Status PyPI

read more

OATH HOTP/TOTP implementation in python

based on http://tools.ietf.org/html/rfc4226 http://tools.ietf.org/html/rfc6238

parameter and function names kept inline with the rfc (e.g. hotp, truncate, k, c etc)

also including a simple unit test based on test vectors in the RFC

usage

pip install hotpie
from hotpie import HOTP, TOTP

key = 'secret'
HOTP(key, 0)             # '814628'
HOTP(key, 0, digits=8)   # '31814628'
HOTP(key, 13, digits=8)  # '81315566'
TOTP(key, digits=6)      # <time-based-value>

# you can also use different hash implementations by passing `digestmod`
# (RFC4226 only specifies SHA-1,
#  but RFC6238 explicitly mentions SHA-256 and SHA-512)
from hashlib import sha512, sha256

HOTP(key, 0, digits=8, digestmod=sha512)
TOTP(key, digits=8, digestmod=sha256)

tests

To run the tests, simply run python ./hotpie.py