Metadata-Version: 2.0
Name: otpauth
Version: 0.3.0
Summary: Implements two-step verification of HOTP/TOTP
Home-page: https://github.com/lepture/otpauth
Author: Hsiaoming Yang
Author-email: me@lepture.com
License: BSD
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy

otpauth
=======

otpauth is One Time Password Authentication, which is usually called as
two steps verification. You may have heard it from Google, Dropbox and
etc.

.. image:: https://badge.fury.io/py/otpauth.png
    :target: http://badge.fury.io/py/otpauth
.. image:: https://travis-ci.org/lepture/otpauth.png?branch=master
    :target: https://travis-ci.org/lepture/otpauth
.. image:: https://coveralls.io/repos/lepture/otpauth/badge.png?branch=master
    :target: https://coveralls.io/r/lepture/otpauth


Installation
------------

Installing otpauth is simple with pip_::

    $ pip install otpauth

or, with easy_install_::

    $ easy_install otpauth


.. _pip: http://www.pip-installer.org/
.. _easy_install: http://pypi.python.org/pypi/setuptools


Usage
-----

Generate and validate an otp code is very simple::

    >>> from otpauth import OtpAuth
    >>> auth = OtpAuth('secret')  # a secret string
    >>> auth.hotp()  # generate a count based code, default count is 4
    330810
    >>> auth.valid_hotp(330810)
    4
    >>> auth.hotp(2)  # generate a count based code, count is 2
    720111
    >>> auth.valid_hotp(720111)
    2
    >>> auth.totp()  # generate a time based code
    828657
    >>> auth.valid_totp(828657)
    True


Authenticator
-------------

You can create a QR code for Google Authenticator to scan::

    >>> from otpauth import OtpAuth
    >>> auth = OtpAuth('secret')  # a secret string
    >>> s = auth.to_uri('totp', 'Example:foo@bar.baz', 'Foo')
    >>> import qrcode
    >>> img = qrcode.make(s)


Since Google Authenticator was not maintained well. There is a good
replacement: Duo Mobile.

You should try this one.


