{ "info": { "author": "Tomasz Jaskowski", "author_email": "tadeck@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 6 - Mature", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Financial and Insurance Industry", "Intended Audience :: Healthcare Industry", "Intended Audience :: Information Technology", "Intended Audience :: Legal Industry", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "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", "Topic :: Internet :: WWW/HTTP :: Session", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: Security", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Versions\n========\n\nCurrent development release: `onetimepass-master.tar.gz`_ |otp-status-dev|_\n\n.. |otp-status-dev| image::\n https://api.travis-ci.org/tadeck/onetimepass.png?branch=master\n.. _otp-status-dev: https://travis-ci.org/tadeck/onetimepass\n.. _onetimepass-master.tar.gz:\n https://github.com/tadeck/onetimepass/archive/master.tar.gz\n\nChangelog\n---------\n\n+---------+------------+------------------------------------------------------+\n| Version | Date | Changes |\n+=========+============+======================================================+\n| 1.0.1 | 2015-07-31 | - fixed tests and build system, |\n| | | - extended test coverage with Py3.5, PyPy and PyPy3, |\n+---------+------------+------------------------------------------------------+\n| 1.0.0 | 2015-07-31 | - skipping spaces if they are given in secret, |\n| | | - test suite made more reliable, |\n+---------+------------+------------------------------------------------------+\n| 0.3.0 | 2014-08-16 | - configurable digest method, |\n| | | - configurable token length, |\n| | | - configurable TOTP interval length, |\n+---------+------------+------------------------------------------------------+\n| 0.2.2 | 2013-07-12 | - license clarification, |\n| | | - removal of compiled documentation from the sources,|\n+---------+------------+------------------------------------------------------+\n| 0.2.1 | 2013-07-12 | - support for unicode secrets, |\n| | | - preliminary support for Travis CI, |\n+---------+------------+------------------------------------------------------+\n| 0.2.0 | 2013-04-11 | - added compatibility with Python 3.x, |\n| | | - removed compatibility with Python 2.5 and earlier, |\n+---------+------------+------------------------------------------------------+\n| 0.1.2 | 2013-01-23 | - added automated case fold to secret, |\n+---------+------------+------------------------------------------------------+\n| 0.1.1 | 2013-12-20 | - internal code improvements, |\n| | | - documentation, |\n+---------+------------+------------------------------------------------------+\n| 0.1.0 | 2011-12-19 | (initial public release) |\n+---------+------------+------------------------------------------------------+\n\nWhat is OneTimePass\n===================\n\nOneTimePass (actually ``onetimepass``) is a module for generating one-time\npasswords, namely HOTPs (HMAC-based one-time passwords) and TOTPs (time-based\none-time passwords). They are used eg. within Google Authenticator application\nfor Android or iPhone.\n\nHow to install\n==============\n\nTo install the library, you can either use ``pip``, or just download it\nseparately. Installing in ``pip`` is the simplest. Assuming you are installing\nit system-wide::\n\n $ sudo pip install onetimepass\n\n(if you are installing it in virtualenv, you do not need \"``sudo``\" part).\n\nAlternatively, you can follow the download link above and unpack in some\ndirectory on your ``sys.path``, or clone it as Git submodule to your own\ndirectory.\n\nHow to use OneTimePass\n======================\n\nYou can use this module in the following way:\n\n1. Install module (download it into your application's directory or into modules\n directory)\n2. To get time-based token you invoke it like that::\n\n import onetimepass as otp\n my_secret = 'MFRGGZDFMZTWQ2LK'\n my_token = otp.get_totp(my_secret)\n\n.. note::\n ``my_secret`` is case-insensitive, also spaces are ignored. This means you\n can provide your users with more readable representations of the secrets\n (eg. ``mfrg gzdf mztw q2lk`` instead of ``MFRGGZDFMZTWQ2LK``) and pass them\n unchanged to library. Same applies to other functions accepting secrets in\n this library.\n\n3. To get HMAC-based token you invoke it like that::\n\n import onetimepass as otp\n my_secret = 'MFRGGZDFMZTWQ2LK'\n my_token = otp.get_hotp(my_secret, intervals_no=3)\n\n where ``intervals_no`` is the number of the current trial (if checking on\n the server, you have to check several values, higher than the last\n successful one, determined for previous successful authentications).\n\n4. To check time-based token you invoke it like that::\n\n import onetimepass as otp\n my_secret = 'MFRGGZDFMZTWQ2LK'\n my_token = 123456 # should be probably from some user's input\n is_valid = otp.valid_totp(token=my_token, secret=my_secret)\n\n5. To check HMAC-based token you invoke it like that::\n\n import onetimepass as otp\n my_secret = 'MFRGGZDFMZTWQ2LK'\n my_token = 123456 # should be probably from some user's input\n last_used = 5 # store last valid interval somewhere else\n is_valid = otp.valid_hotp(token=my_token, secret=my_secret, last=last_used)\n\n where:\n\n - ``last`` argument (in this case being assigned ``last_used``) is the\n number of the last successfully checked interval number (as\n ``valid_totp()`` will skip it and start checking from the next interval\n number)\n - ``is_valid`` is being assigned value of ``False`` if ``my_token`` has not\n been identified as valid OTP for given secret (``my_secret``) and checked\n interval range. If it has been successful, ``is_valid`` is assigned a\n number of the working interval number (it should be saved into the\n database and supplied to the function as ``last`` argument next time the\n password is being checked, so you cannot use the same token again).\n\nLicense\n=======\n\nLicense for this library is available in ``LICENSE.rst`` file, in the same\ndirectory. Online version is available here_.\n\n.. _here: https://github.com/tadeck/onetimepass/blob/master/README.rst", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/tadeck/onetimepass/archive/v1.0.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tadeck/onetimepass/", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "onetimepass", "package_url": "https://pypi.org/project/onetimepass/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/onetimepass/", "project_urls": { "Download": "https://github.com/tadeck/onetimepass/archive/v1.0.0.tar.gz", "Homepage": "https://github.com/tadeck/onetimepass/" }, "release_url": "https://pypi.org/project/onetimepass/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Module for generating and validating HOTP and TOTP tokens", "version": "1.0.1" }, "last_serial": 1657867, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "7aa33ea2be4510266d3257e46da25694", "sha256": "202c52621383c860e390caafb9b963ca5c0fd56e7894aeca30caa01d9c6d5017" }, "downloads": -1, "filename": "onetimepass-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7aa33ea2be4510266d3257e46da25694", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4232, "upload_time": "2013-04-11T21:33:56", "url": "https://files.pythonhosted.org/packages/95/c3/51bbe4347d92bb1b706e0dba0c6d87076ced0583bf4d104d7cd4798107b3/onetimepass-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2c5a37e3acffae934324783b585bb861", "sha256": "7a0a42c6f5000839016866c186b2ae2763fbb1a6648b114affad0aef8e39d374" }, "downloads": -1, "filename": "onetimepass-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2c5a37e3acffae934324783b585bb861", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4907, "upload_time": "2013-04-11T22:12:20", "url": "https://files.pythonhosted.org/packages/96/bc/be5bdd4c64c327692dbaeb1ed550eed8325b74b61298e88725afb832811e/onetimepass-0.2.0.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "db2ad2e291a7c2ce47952c4a3cc5279b", "sha256": "a5dcf64f397d6e38a79877ca98f573abac3fc58c725f62472118d62d0d15b68b" }, "downloads": -1, "filename": "onetimepass-0.2.2.tar.gz", "has_sig": false, "md5_digest": "db2ad2e291a7c2ce47952c4a3cc5279b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4963, "upload_time": "2013-07-12T03:19:31", "url": "https://files.pythonhosted.org/packages/0d/14/31567019511d13e899310ad8ade9d1395c6f725ed5f9d45e8b8f8d50f2cc/onetimepass-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "43253199a45bf2fcd1feb14813850964", "sha256": "dd7a0307e1538469f237f5a7debd1e7aa127c13ecb30b64970924f10726d7635" }, "downloads": -1, "filename": "onetimepass-0.3.0.tar.gz", "has_sig": false, "md5_digest": "43253199a45bf2fcd1feb14813850964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5253, "upload_time": "2014-08-16T01:28:38", "url": "https://files.pythonhosted.org/packages/14/6b/ec997822229c2dffd11a70247129304821e1460e7cf93cd7bff9315eb9af/onetimepass-0.3.0.tar.gz" } ], "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "1d2aa6422b9077913c1aca1c481c175e", "sha256": "a569dac076d6e3761cbc55e36952144a637ca1b075c6d509de1c1dbc5e7f6a27" }, "downloads": -1, "filename": "onetimepass-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1d2aa6422b9077913c1aca1c481c175e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6046, "upload_time": "2015-07-31T03:05:02", "url": "https://files.pythonhosted.org/packages/aa/b2/cb6832704aaf11ed0e471910a8da360129e2c23398d2ea3a71961a2f5746/onetimepass-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1d2aa6422b9077913c1aca1c481c175e", "sha256": "a569dac076d6e3761cbc55e36952144a637ca1b075c6d509de1c1dbc5e7f6a27" }, "downloads": -1, "filename": "onetimepass-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1d2aa6422b9077913c1aca1c481c175e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6046, "upload_time": "2015-07-31T03:05:02", "url": "https://files.pythonhosted.org/packages/aa/b2/cb6832704aaf11ed0e471910a8da360129e2c23398d2ea3a71961a2f5746/onetimepass-1.0.1.tar.gz" } ] }