{ "info": { "author": "Tomaz Muraus", "author_email": "tomaz+pypi@tomaz.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Security", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Yubico Python Client\n\nPython class for verifying Yubico One Time Passwords (OTPs) based on the\nvalidation protocol version 2.0.\n\n* Yubico website: [http://www.yubico.com][1]\n* Yubico documentation: [http://www.yubico.com/developers/intro/][2]\n* Validation Protocol Version 2.0 FAQ: [http://www.yubico.com/develop/open-source-software/web-api-clients/server/][3]\n* Validation Protocol Version 2.0 description: [https://github.com/Yubico/yubikey-val/wiki/ValidationProtocolV20][4]\n\n## Installation\n\n`pip install yubico`\n\n## Build Status\n\n[![Build Status](https://secure.travis-ci.org/Kami/python-yubico-client.png)](http://travis-ci.org/Kami/python-yubico-client)\n\n## Running Tests\n\n`python setup.py test`\n\n## Usage\n\n1. Generate your client id and secret key (this can be done by visiting the\n [Yubico website](https://api.yubico.com/get-api-key/))\n2. Use the client\n\nSingle mode:\n\n from yubico.yubico import Yubico\n\n yubico = Yubico('client id', 'secret key')\n yubico.verify('otp')\n\nMulti mode:\n\n from yubico.yubico import Yubico\n\n yubico = Yubico('client id', 'secret key')\n yubico.verify_multi(['otp 1', 'otp 2', 'otp 3'])\n\nThe **verify** method will return `True` if the provided OTP is valid\n(STATUS=OK).\n\nThe **verify_multi** method will return `True` if all of the provided OTPs are\nvalid (STATUS=OK).\n\nBoth methods can also throw one of the following exceptions:\n\n- **StatusCodeError** - server returned **REPLAYED_OTP** status code\n- **SignatureVerificationError** - server response message signature\n verification failed\n- **InvalidClientIdError** - client with the specified id does not exist\n (server returned **NO_SUCH_CLIENT** status code)\n- **Exception** - server returned one of the following status values:\n **BAD_OTP**, **BAD_SIGNATURE**, **MISSING_PARAMETER**,\n **OPERATION_NOT_ALLOWED**, **BACKEND_ERROR**, **NOT_ENOUGH_ANSWERS**,\n **REPLAYED_REQUEST** or no response was received from any of the servers\n in the specified time frame (default timeout = 10 seconds)\n\n[1]: http://www.yubico.com\n[2]: http://www.yubico.com/developers/intro/\n[3]: http://www.yubico.com/develop/open-source-software/web-api-clients/server/\n[4]: https://github.com/Yubico/yubikey-val/wiki/ValidationProtocolV20\n", "description_content_type": null, "docs_url": null, "download_url": "http://github.com/Kami/python-yubico-client/downloads/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/Kami/python-yubico-client/", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "yubico", "package_url": "https://pypi.org/project/yubico/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/yubico/", "project_urls": { "Download": "http://github.com/Kami/python-yubico-client/downloads/", "Homepage": "http://github.com/Kami/python-yubico-client/" }, "release_url": "https://pypi.org/project/yubico/1.6.2/", "requires_dist": null, "requires_python": null, "summary": "Python Yubico Client", "version": "1.6.2" }, "last_serial": 602045, "releases": { "1.1.dev": [ { "comment_text": "", "digests": { "md5": "99aef5208865f79a48c2660629f32640", "sha256": "e3b1da64e6a3f35b6a6fa180df454d083c8c24a26c2f9e47477108edcd32fdfb" }, "downloads": -1, "filename": "yubico-1.1.dev.tar.gz", "has_sig": false, "md5_digest": "99aef5208865f79a48c2660629f32640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3163, "upload_time": "2010-05-08T08:34:21", "url": "https://files.pythonhosted.org/packages/64/c9/d432d3ad47fce32c760146f1f58ac078db0d85fdc10d7e05dc3d43968279/yubico-1.1.dev.tar.gz" } ], "1.2.dev": [ { "comment_text": "", "digests": { "md5": "2e76a5f12f3f47f76dc7539124b8e03e", "sha256": "38b8adef53a2732674c834c4a0b0cf3e0843a813a81625fb339ebc2e2faa593c" }, "downloads": -1, "filename": "yubico-1.2.dev.tar.gz", "has_sig": false, "md5_digest": "2e76a5f12f3f47f76dc7539124b8e03e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4096, "upload_time": "2010-05-09T10:10:13", "url": "https://files.pythonhosted.org/packages/d8/fa/b50ec0e9d5ed9378e96f9f0335888751a56d62f574b3b51b3a65fe968103/yubico-1.2.dev.tar.gz" } ], "1.3.dev": [ { "comment_text": "", "digests": { "md5": "431700ab986c4047430bbecde33ae199", "sha256": "ce0bd5a923b4e65fbf870babc2d7f25945201ed3d053203f70f39affc546e7dd" }, "downloads": -1, "filename": "yubico-1.3.dev.tar.gz", "has_sig": false, "md5_digest": "431700ab986c4047430bbecde33ae199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7901, "upload_time": "2010-07-09T22:57:22", "url": "https://files.pythonhosted.org/packages/a3/d8/bf8f781cae8fa7c36cd79e9248319696e4aff48fc10f3aa5ef4b0fcfa9ba/yubico-1.3.dev.tar.gz" } ], "1.4.dev": [ { "comment_text": "", "digests": { "md5": "56bf1b3bd8af0ceb2a704553fa011e75", "sha256": "c414b6443c25fc929a8c0b99598ca1cb72ec813c92df0d78cae4fab1dab4aa19" }, "downloads": -1, "filename": "yubico-1.4.dev.tar.gz", "has_sig": false, "md5_digest": "56bf1b3bd8af0ceb2a704553fa011e75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7868, "upload_time": "2010-08-16T04:03:56", "url": "https://files.pythonhosted.org/packages/66/9b/41768e636d9b63dfbc3c3de2597a07eecaa8d242292d64e733f19f3cc910/yubico-1.4.dev.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "d33ad24e9014696e1b8d6b1967e2cfd1", "sha256": "6da32963209e1e107d1c23effdbb78ed57157bad85b8f6ddf2d49a4aa5f7df04" }, "downloads": -1, "filename": "yubico-1.6.0.tar.gz", "has_sig": true, "md5_digest": "d33ad24e9014696e1b8d6b1967e2cfd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14405, "upload_time": "2013-01-24T19:59:19", "url": "https://files.pythonhosted.org/packages/bf/ab/4fd1590195dab01a52d5d2e1c2dc6f9eed7025c0582ff1886b88ceba565f/yubico-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "79f1a542a8d2ae08e2b67a66f2a9893b", "sha256": "51dfca2141ae11b2e9adb417cfc727ea6af3be877124fd2acb74c7370fc749bc" }, "downloads": -1, "filename": "yubico-1.6.1.tar.gz", "has_sig": true, "md5_digest": "79f1a542a8d2ae08e2b67a66f2a9893b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14410, "upload_time": "2013-03-20T00:10:33", "url": "https://files.pythonhosted.org/packages/15/22/bc3d474cdb4b5d55a09f232a9d4f4ad82d8df088f8ec3d2317ad03ed1725/yubico-1.6.1.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "04448f2083e591b4da3aa984d54bf2e4", "sha256": "4274650d26aa821f435df3b7c0cfc3a043240f9304dfda0def0a8ce91c83f380" }, "downloads": -1, "filename": "yubico-1.6.2.tar.gz", "has_sig": true, "md5_digest": "04448f2083e591b4da3aa984d54bf2e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14686, "upload_time": "2013-04-03T02:44:45", "url": "https://files.pythonhosted.org/packages/43/1e/34093ca0f3d956cfb26cc59d42de9dab14547ec497d43fb7cf2669ca1034/yubico-1.6.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "04448f2083e591b4da3aa984d54bf2e4", "sha256": "4274650d26aa821f435df3b7c0cfc3a043240f9304dfda0def0a8ce91c83f380" }, "downloads": -1, "filename": "yubico-1.6.2.tar.gz", "has_sig": true, "md5_digest": "04448f2083e591b4da3aa984d54bf2e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14686, "upload_time": "2013-04-03T02:44:45", "url": "https://files.pythonhosted.org/packages/43/1e/34093ca0f3d956cfb26cc59d42de9dab14547ec497d43fb7cf2669ca1034/yubico-1.6.2.tar.gz" } ] }