abdelrahman0w / hotpie

OATH HOTP/TOTP implementation in python

Home Page:https://blog.gingerlime.com/2010/once-upon-a-time/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

OATH HOTP/TOTP implementation in python

https://blog.gingerlime.com/2010/once-upon-a-time/

License:MIT License


Languages

Language:Python 100.0%