{ "info": { "author": "Peter Pakos", "author_email": "peter.pakos@wandisco.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: System :: Systems Administration :: Authentication/Directory" ], "description": "ppotp\n=====\n\nTool to generate One-Time Passwords and copy them to clipboard\n\nPyPI package: `ppotp `__\n\nIf you spot any problems or have any improvement ideas then feel free to\nopen an issue and I will be glad to look into it for you.\n\nInstallation\n------------\n\nA recommended way of installing the tool is pip install.\n\nOnce installed, a command line tool ``otp`` should be available in your\nsystem's PATH.\n\npip install\n~~~~~~~~~~~\n\nThe tool is available in PyPI and can be installed using pip:\n\n::\n\n $ pip install --user ppotp\n $ otp --help\n\nUsage\n-----\n\n::\n\n $ otp --help\n usage: otp [--version] [--help] [--debug] key\n\n Tool to generate One-Time Passwords and copy them to clipboard\n\n positional arguments:\n key key or service name from ~/.otpkeys\n\n optional arguments:\n --version show program's version number and exit\n --help show this help message and exit\n --debug debugging mode\n\nExamples\n--------\n\n::\n\n $ otp BEXUS3AVCUU7HYU4OZQ44WFXMULPNQB2TKQ4YCNUASPXMPEH6YAZ3IACFM5VEGUQ\n 770400\n\n.. _key-file-otpkeys:\n\nKey file ~/.otpkeys\n-------------------\n\nYou can save your keys to ~/.otpkeys file using ``service=key`` format,\nfor example:\n\n::\n\n $ cat ~/.otpkeys\n aws=N5VEJBTUA553BYJTTTUGS3GANKVDECG62RHVIOV2FLYR5THC726ZOIOF4SQZZ5NV\n google=QYDL7HS7LHPVKX7GGYKYIP3UEYOML2IENWYQD5NHYGETBZIRWWODKQWC3PRNQ3FO\n facebook=ZBSLA3KGE4PEXCEGIJ57AKJLOHW2S3ABQNOOWZVV3HOO4Q3455BOG6BRNU5M2QK4\n\nThen you can generate OTP, by running:\n\n::\n\n $ otp {service}\n\nExample:\n\n::\n\n $ otp aws\n 443782\n\n $ otp google\n 760698\n\n $ otp facebook\n 009176\n\nAuto copy OTP to clipboard\n--------------------------\n\nThe tool attempts to automatically copy successfully generated code to\nthe clipboard. It uses\n`pyperclip `__ module for\ncross-platform copying text to the clipboard.\n\nExample:\n\n::\n\n $ otp cloud\n 324982\n\nAt this point, provided your system supports it, the above OTP should be\nin the clipboard.\n\nCopy to clipboard issue\n~~~~~~~~~~~~~~~~~~~~~~~\n\nPyperclip uses various mechanisms to copy text to the clipboard. If your\nsystem is missing them, you may see a debug message that says:\n\n::\n\n Pyperclip could not find a copy/paste mechanism for your system.\n For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error\n\nCurrently, this error should only appear on Linux (not Windows or Mac).\n\nPlease check `the above\nguide `__\nfor more information on how to fix this.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/peterpakos/ppotp", "keywords": "otp one time password generator auth", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "ppotp", "package_url": "https://pypi.org/project/ppotp/", "platform": "", "project_url": "https://pypi.org/project/ppotp/", "project_urls": { "Homepage": "https://github.com/peterpakos/ppotp" }, "release_url": "https://pypi.org/project/ppotp/2.2.0/", "requires_dist": [ "pyotp", "pplogger", "pyperclip" ], "requires_python": "", "summary": "Tool to generate One-Time Passwords", "version": "2.2.0" }, "last_serial": 5522615, "releases": { "1.2.0": [ { "comment_text": "", "digests": { "md5": "ae7d03451fea2dd9fe086e8a6e378b64", "sha256": "452deada897fb9155fc423b96d7b5605de1159482dcf674a1d8bbf5820fd29bd" }, "downloads": -1, "filename": "ppotp-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ae7d03451fea2dd9fe086e8a6e378b64", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 5586, "upload_time": "2018-07-05T21:23:16", "url": "https://files.pythonhosted.org/packages/90/d8/2eb3ad4a0f3b67c985331d9f69475c4000adad6d9c54483e419bd93aaf87/ppotp-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "459091a1b0e6e6769c2eb9558d525176", "sha256": "238ff05b5691a959c4d29781dace9aab94fe819f7369fbbeb79ab97a5a7c4c46" }, "downloads": -1, "filename": "ppotp-1.2.0.tar.gz", "has_sig": false, "md5_digest": "459091a1b0e6e6769c2eb9558d525176", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4374, "upload_time": "2018-07-05T21:23:17", "url": "https://files.pythonhosted.org/packages/23/55/614d1b2582f6e92c64dedc781d0b69612f442ec9d3910a2927dbddeb8858/ppotp-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "19988c69583a61bdc7705c73094df268", "sha256": "76edcbe28e2ada55756e12592b81c3245c38e3d7d753cc704842955ed14adfc1" }, "downloads": -1, "filename": "ppotp-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19988c69583a61bdc7705c73094df268", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 5480, "upload_time": "2018-07-05T22:09:57", "url": "https://files.pythonhosted.org/packages/d3/88/d4293b4a0a8295d849d4e7b61b1ba4e4f20d126032080da9a4debd040069/ppotp-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb191cf95d3e67cd004ed86e825b14dd", "sha256": "e79fb9a1216b03df0a00ea19452c121860b4d92ca3bb4b44298c9ef0d4670598" }, "downloads": -1, "filename": "ppotp-1.2.1.tar.gz", "has_sig": false, "md5_digest": "fb191cf95d3e67cd004ed86e825b14dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4423, "upload_time": "2018-07-05T22:09:58", "url": "https://files.pythonhosted.org/packages/bd/1c/a8ce38dd0d32cfb2cbc2b4146c2d77f67f57758562ea3b92e92bced165e1/ppotp-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "c5352895c748ce402ce4ede7e668b8ba", "sha256": "ecb5f1441b013a70f08523f98f8b2eabd8144dd9c4fbf5fe0e54524a1aa6b918" }, "downloads": -1, "filename": "ppotp-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c5352895c748ce402ce4ede7e668b8ba", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 5455, "upload_time": "2018-07-12T20:29:39", "url": "https://files.pythonhosted.org/packages/b9/9f/c08836fac2e727e3fbf8fa1d29de1e3520aac9e1b3a69473ccb7bca7772a/ppotp-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b065f3794aae7833ae91199a4e53bd55", "sha256": "fd8b9d5efd8e1ca15ab0a7a8146cb5756e2a6e14e6826f3554180095a09a5131" }, "downloads": -1, "filename": "ppotp-1.2.2.tar.gz", "has_sig": false, "md5_digest": "b065f3794aae7833ae91199a4e53bd55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4405, "upload_time": "2018-07-12T20:29:40", "url": "https://files.pythonhosted.org/packages/26/46/320f97ed30deb2ad30421fb27847828be99840ae0ea396ccc0c75937d0fb/ppotp-1.2.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "80e90846f804ce0be06c99d741b74d65", "sha256": "748a00687ec902c28cb714bb6bfa350df6dd46538f4bb7265486e76a3ae22e0d" }, "downloads": -1, "filename": "ppotp-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80e90846f804ce0be06c99d741b74d65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15896, "upload_time": "2018-11-25T21:41:46", "url": "https://files.pythonhosted.org/packages/1b/43/4439f7c3c3c604fc3b10d0d0133ad18c209ccf12a7ca62c56fb5c4e7d27d/ppotp-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75a5de132adf411cf979b6918f224927", "sha256": "72817573785e60e7dd9fc6e3c1a3a97c27db87d5bd820315446fe71d73f1709a" }, "downloads": -1, "filename": "ppotp-2.0.0.tar.gz", "has_sig": false, "md5_digest": "75a5de132adf411cf979b6918f224927", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3993, "upload_time": "2018-11-25T21:41:48", "url": "https://files.pythonhosted.org/packages/b4/77/1fcfaee47d1e712c0444adac77889e251ee33cd3cb3c3b15bb66edabaaa7/ppotp-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "a7efb66a2f90ce50962fd1b905b4dd2f", "sha256": "1fd0f8fe484e985abda33ce54d1589baa79bad02654aee3191aa9e45550dc0a3" }, "downloads": -1, "filename": "ppotp-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a7efb66a2f90ce50962fd1b905b4dd2f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15892, "upload_time": "2018-11-26T12:02:50", "url": "https://files.pythonhosted.org/packages/67/91/99ae34fe2dfecd2c186b39c39e6e027e19b6d63339c1b9da571a19b25489/ppotp-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8de0b4f4a645f97e71b0ca94f18e86e4", "sha256": "3dc7903971a52baf25d11d5ad1c46fd9fbb406f6d0f9bc8894d74b97b0fa2a67" }, "downloads": -1, "filename": "ppotp-2.0.1.tar.gz", "has_sig": false, "md5_digest": "8de0b4f4a645f97e71b0ca94f18e86e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3984, "upload_time": "2018-11-26T12:02:51", "url": "https://files.pythonhosted.org/packages/a6/7a/66bd7512939c2d4322dde01798280613ede3a51c040ca61f5462c6809aeb/ppotp-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "a95241f32dd00120364d07dfa8eb466d", "sha256": "99e02f212f5a716ce2d7041bcaadcb97137beb66b6e628d70e7288ac93ec5b31" }, "downloads": -1, "filename": "ppotp-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a95241f32dd00120364d07dfa8eb466d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15859, "upload_time": "2018-12-05T16:38:48", "url": "https://files.pythonhosted.org/packages/1a/7a/5ba5bf0effe828932f1b6166f1b6589410efee1768bb340c4b18c95ceb03/ppotp-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0960fbffc26ad09604095dac2ac893f4", "sha256": "61bbe939b8501a6943978d73d5856376f2377bc00051df29e5c81ce9adf250a3" }, "downloads": -1, "filename": "ppotp-2.0.2.tar.gz", "has_sig": false, "md5_digest": "0960fbffc26ad09604095dac2ac893f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3964, "upload_time": "2018-12-05T16:38:49", "url": "https://files.pythonhosted.org/packages/b3/92/5f5c69ee44f9c8e0dc6857c5265bfe4ba0bf19485b397232048cc9603b89/ppotp-2.0.2.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "74776228bf2dd93d681b5f0cf4d8bf48", "sha256": "e9842d6bef1fe23b72d343c920b7834fd6d473a44f57d908c6c83027c6d2d8c8" }, "downloads": -1, "filename": "ppotp-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74776228bf2dd93d681b5f0cf4d8bf48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6294, "upload_time": "2019-07-11T22:28:00", "url": "https://files.pythonhosted.org/packages/9e/d9/2be8f74cb089164540a327647a69bdad34b7c77535363b0d7c9ea52a8975/ppotp-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe9307b2cde6cd4228a18e8d43202f61", "sha256": "f0698f8093dcb167e2eaa6e41f62ba8dcd99810e344982e4e62364b454a6ff7b" }, "downloads": -1, "filename": "ppotp-2.1.0.tar.gz", "has_sig": false, "md5_digest": "fe9307b2cde6cd4228a18e8d43202f61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3769, "upload_time": "2019-07-11T22:28:01", "url": "https://files.pythonhosted.org/packages/ae/32/3b324b690de8df6bb70da33b4c6da84db8909fd1ef4252df43c057f4959f/ppotp-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "eba2673ae55d04d30170c989220e108a", "sha256": "92848a822e40d3a4ff68bb66a03e527b92eb60b831f969d601fc8a6f1902a6c2" }, "downloads": -1, "filename": "ppotp-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eba2673ae55d04d30170c989220e108a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6308, "upload_time": "2019-07-12T08:40:49", "url": "https://files.pythonhosted.org/packages/fc/d7/0c6de47f545f82d7655d0941fa9c1323e3df3225050d1e1151f5b5c7bbba/ppotp-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc582a8dbe85dc7b930da92d5d02aa0d", "sha256": "00a9dc6edb0158d1f95e65b71439cd9820b010300b5693790a09d607af174b68" }, "downloads": -1, "filename": "ppotp-2.1.1.tar.gz", "has_sig": false, "md5_digest": "fc582a8dbe85dc7b930da92d5d02aa0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3781, "upload_time": "2019-07-12T08:40:51", "url": "https://files.pythonhosted.org/packages/c8/40/38d9466fec7ed945f923fa3d37749c6b3a847ed87977a0204f88f8a293a6/ppotp-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "119d4adc9508984de2d5dc1f102ee7b4", "sha256": "2291610638cb2fcb8fcd6d2c53cc462ebe6937d5577e47dd62c1714cc9171729" }, "downloads": -1, "filename": "ppotp-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "119d4adc9508984de2d5dc1f102ee7b4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6991, "upload_time": "2019-07-12T09:57:42", "url": "https://files.pythonhosted.org/packages/c9/6b/9a496746e334ecdaf2f5dbf0675a325f08ca5d313c17d209fa059ef5cfe0/ppotp-2.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2d567132b5bee063258ab2575abeafc", "sha256": "c1dc34ce0bafda75a2d38bcfbf3831af718f2430b0c2d8f599bf0ef3a5bed207" }, "downloads": -1, "filename": "ppotp-2.1.2.tar.gz", "has_sig": false, "md5_digest": "e2d567132b5bee063258ab2575abeafc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4193, "upload_time": "2019-07-12T09:57:43", "url": "https://files.pythonhosted.org/packages/e6/ab/fb5ef35c605e0d7a2923d83649b48f0b23853b0f0f10935281e9571681ff/ppotp-2.1.2.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "8b28932ef80d1e56d61d33d7b1fd9893", "sha256": "77666d65494df89d8c15d46cc66a669dfbb5b1d0345dea931fff0f4064c447eb" }, "downloads": -1, "filename": "ppotp-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b28932ef80d1e56d61d33d7b1fd9893", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7007, "upload_time": "2019-07-12T10:30:02", "url": "https://files.pythonhosted.org/packages/c1/8a/5f9ef1ea2e16bc0e80714ecb52cedb3d5980d5ccc43ca4b985fc55f7b448/ppotp-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e46f2c2414fd182df8f929dbab1ad6c8", "sha256": "bce9722b0b67e7d0881bc7e6e125b9bfbb8c46b2e88d12b0bfe4e8ef0f1f6e99" }, "downloads": -1, "filename": "ppotp-2.2.0.tar.gz", "has_sig": false, "md5_digest": "e46f2c2414fd182df8f929dbab1ad6c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4215, "upload_time": "2019-07-12T10:30:03", "url": "https://files.pythonhosted.org/packages/78/6a/d62467d707993b99cb546fdc5bd59f9a451a0c7d53e895c8f7682084fbe3/ppotp-2.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8b28932ef80d1e56d61d33d7b1fd9893", "sha256": "77666d65494df89d8c15d46cc66a669dfbb5b1d0345dea931fff0f4064c447eb" }, "downloads": -1, "filename": "ppotp-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b28932ef80d1e56d61d33d7b1fd9893", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7007, "upload_time": "2019-07-12T10:30:02", "url": "https://files.pythonhosted.org/packages/c1/8a/5f9ef1ea2e16bc0e80714ecb52cedb3d5980d5ccc43ca4b985fc55f7b448/ppotp-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e46f2c2414fd182df8f929dbab1ad6c8", "sha256": "bce9722b0b67e7d0881bc7e6e125b9bfbb8c46b2e88d12b0bfe4e8ef0f1f6e99" }, "downloads": -1, "filename": "ppotp-2.2.0.tar.gz", "has_sig": false, "md5_digest": "e46f2c2414fd182df8f929dbab1ad6c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4215, "upload_time": "2019-07-12T10:30:03", "url": "https://files.pythonhosted.org/packages/78/6a/d62467d707993b99cb546fdc5bd59f9a451a0c7d53e895c8f7682084fbe3/ppotp-2.2.0.tar.gz" } ] }