{ "info": { "author": "Hsiaoming Yang", "author_email": "me@lepture.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: Microsoft", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Security", "Topic :: Utilities" ], "description": "otpauth\n=======\n\ncryptography_ has built-in two factor support now.\n\n.. _cryptography: https://github.com/pyca/cryptography\n\notpauth is One Time Password Authentication, which is usually called as\ntwo steps verification. You may have heard it from Google, Dropbox and\netc.\n\n.. image:: https://pypip.in/wheel/otpauth/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/otpauth/\n :alt: Wheel Status\n.. image:: https://pypip.in/version/otpauth/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/otpauth/\n :alt: Latest Version\n.. image:: https://travis-ci.org/lepture/otpauth.svg?branch=master\n :target: https://travis-ci.org/lepture/otpauth\n :alt: Travis CI Status\n.. image:: https://coveralls.io/repos/lepture/otpauth/badge.svg?branch=master\n :target: https://coveralls.io/r/lepture/otpauth\n :alt: Coverage Status\n.. image:: https://ci.appveyor.com/api/projects/status/x1rqksux15hicutq/branch/master\n :target: https://ci.appveyor.com/project/lepture/otpauth\n :alt: App Veyor CI Status\n\nInstallation\n------------\n\nInstalling otpauth is simple with pip_::\n\n $ pip install otpauth\n\nor, with easy_install_::\n\n $ easy_install otpauth\n\n\n.. _pip: http://www.pip-installer.org/\n.. _easy_install: http://pypi.python.org/pypi/setuptools\n\n\nUsage\n-----\n\nGenerate and validate an otp code is very simple::\n\n >>> from otpauth import OtpAuth\n >>> auth = OtpAuth('secret') # a secret string\n >>> auth.hotp() # generate a count based code, default count is 4\n 330810\n >>> auth.valid_hotp(330810)\n 4\n >>> auth.hotp(2) # generate a count based code, count is 2\n 720111\n >>> auth.valid_hotp(720111)\n 2\n >>> auth.totp() # generate a time based code\n 828657\n >>> auth.valid_totp(828657)\n True\n\n\nAuthenticator\n-------------\n\nYou can create a QR code for Google Authenticator to scan::\n\n >>> from otpauth import OtpAuth\n >>> auth = OtpAuth('secret') # a secret string\n >>> s = auth.to_uri('totp', 'Example:foo@bar.baz', 'Foo')\n >>> import qrcode\n >>> img = qrcode.make(s)", "description_content_type": null, "docs_url": "https://pythonhosted.org/otpauth/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lepture/otpauth", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "otpauth", "package_url": "https://pypi.org/project/otpauth/", "platform": "any", "project_url": "https://pypi.org/project/otpauth/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/lepture/otpauth" }, "release_url": "https://pypi.org/project/otpauth/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Implements two-step verification of HOTP/TOTP", "version": "1.0.1" }, "last_serial": 1562527, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c67647013a5b5cf1392104ec9483c00a", "sha256": "4885571ef0a82f5f4ef49de2ed0bb2ffcaee1a8d8ca75fc4e456a4dfe027d626" }, "downloads": -1, "filename": "otpauth-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c67647013a5b5cf1392104ec9483c00a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3543, "upload_time": "2013-06-09T11:11:07", "url": "https://files.pythonhosted.org/packages/20/7b/d3d9e45dc12c7dc3eb86b32b9d90622e654efcd14b5c89005dd4dd6e3544/otpauth-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5769775cbcffbe5092dd2e6d55f286fd", "sha256": "abb79d8383575ccd3dfeea348f173d021e1dfb494659f4196e0753a9ca7369b7" }, "downloads": -1, "filename": "otpauth-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5769775cbcffbe5092dd2e6d55f286fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3990, "upload_time": "2013-07-04T06:45:16", "url": "https://files.pythonhosted.org/packages/24/9d/e7607f7a8c7df5a45ec7e2adac40994fe95b31bd24458b008df7e02b1e3a/otpauth-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "feef76d08102bd95243d595eff163b8c", "sha256": "777ee5c6ddc6922dc02a0762dd014a7135959cb88f8238deb6492c1fab38ade7" }, "downloads": -1, "filename": "otpauth-0.1.2.tar.gz", "has_sig": false, "md5_digest": "feef76d08102bd95243d595eff163b8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4249, "upload_time": "2013-08-16T08:06:27", "url": "https://files.pythonhosted.org/packages/bc/a9/e26a436460292ebd1233fb7f41fd4fc77c7d6bc5e255fdc69721db2a2edc/otpauth-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e392ce3757ea335a008a71746d7f5a44", "sha256": "ac815a7283f76446afc56f0dea1f273ffb3907e86f53f83026fa85a1410b0e2e" }, "downloads": -1, "filename": "otpauth-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e392ce3757ea335a008a71746d7f5a44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4435, "upload_time": "2013-11-14T12:14:58", "url": "https://files.pythonhosted.org/packages/32/df/01751809a98d5e2d27812404d3b80ae6bfba3fdfae8712421c157d09ad65/otpauth-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5101757f9558f0fe12370b6a10e9ee93", "sha256": "0a4c9540668169ba63aefd83311990d902ce8af38a620e5da583622cf27f3aa4" }, "downloads": -1, "filename": "otpauth-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5101757f9558f0fe12370b6a10e9ee93", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5312, "upload_time": "2014-12-18T06:01:11", "url": "https://files.pythonhosted.org/packages/ec/04/cf127292b71b6c9450ab5458d08b2e91592412e021c0f6ea4fdaf84b4853/otpauth-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e3b6d63aae22ad6cb326a53db1a7670", "sha256": "2b1296d3f6104c79c117f6c483f31f3fba853cbaf985a22a8f3bcfc11008880f" }, "downloads": -1, "filename": "otpauth-0.3.0.tar.gz", "has_sig": false, "md5_digest": "4e3b6d63aae22ad6cb326a53db1a7670", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4565, "upload_time": "2014-12-18T06:01:14", "url": "https://files.pythonhosted.org/packages/0b/0e/f91bd104443e9f8ff77d7a8e173f62696ee248088e925afc82c41b6c4620/otpauth-0.3.0.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "e0e73aa45b896fcc4af3e660e87f983b", "sha256": "b0deab9c9cd1be891baa60b1af5b6e6260d4b82d82d43ddd1530f14d1358e91a" }, "downloads": -1, "filename": "otpauth-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e0e73aa45b896fcc4af3e660e87f983b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5461, "upload_time": "2015-01-25T07:55:28", "url": "https://files.pythonhosted.org/packages/cb/8e/2af8d5d03050275ba799418f56ece6b227027fb9c0c51f5d1388492911a6/otpauth-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30fee1d2cdb14359e9bc625fb0fda748", "sha256": "215e3a54d43ae74dc94d8737a3c28ff3f6824bf670ff8f678364c84e66e15350" }, "downloads": -1, "filename": "otpauth-1.0.tar.gz", "has_sig": false, "md5_digest": "30fee1d2cdb14359e9bc625fb0fda748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4745, "upload_time": "2015-01-25T07:55:36", "url": "https://files.pythonhosted.org/packages/f5/de/4ce8b93240810cb891cb01ae319331cbfc541c9c9c7ea5e750ac48b73376/otpauth-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "26cce65db440d3b52793fdacf652e3d6", "sha256": "35bcf1a08caf91e4356505744fcd7e3ce646e8491905e2bd335ef9f340e4db4b" }, "downloads": -1, "filename": "otpauth-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26cce65db440d3b52793fdacf652e3d6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5752, "upload_time": "2015-05-26T08:53:19", "url": "https://files.pythonhosted.org/packages/ae/e3/dbb3b26358f9ff9701dd905cc9bf919ea31ec8822dbfd9e34451707901dd/otpauth-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdda7d3be8ac113e4510beea68468299", "sha256": "dd0813cb5c0ac1c98d888f9a96e587254829a61e856550ebf334187f601ff9fc" }, "downloads": -1, "filename": "otpauth-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cdda7d3be8ac113e4510beea68468299", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5000, "upload_time": "2015-05-26T08:53:14", "url": "https://files.pythonhosted.org/packages/bb/ee/9ac4c6032ac76a1f739ac488809337fb55bad8e6ba4325bfc415f1b59aa1/otpauth-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "26cce65db440d3b52793fdacf652e3d6", "sha256": "35bcf1a08caf91e4356505744fcd7e3ce646e8491905e2bd335ef9f340e4db4b" }, "downloads": -1, "filename": "otpauth-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26cce65db440d3b52793fdacf652e3d6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5752, "upload_time": "2015-05-26T08:53:19", "url": "https://files.pythonhosted.org/packages/ae/e3/dbb3b26358f9ff9701dd905cc9bf919ea31ec8822dbfd9e34451707901dd/otpauth-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdda7d3be8ac113e4510beea68468299", "sha256": "dd0813cb5c0ac1c98d888f9a96e587254829a61e856550ebf334187f601ff9fc" }, "downloads": -1, "filename": "otpauth-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cdda7d3be8ac113e4510beea68468299", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5000, "upload_time": "2015-05-26T08:53:14", "url": "https://files.pythonhosted.org/packages/bb/ee/9ac4c6032ac76a1f739ac488809337fb55bad8e6ba4325bfc415f1b59aa1/otpauth-1.0.1.tar.gz" } ] }