{ "info": { "author": "Stefan Scherfke", "author_email": "stefan at sofa-rockers.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Security" ], "description": "Master Password\r\n===============\r\n\r\nThis is a Python implementation of the `Master Password algorithm`__ by\r\n`Maarten Billemont`__. It also comes with a command line interface that lets\r\nyou compute passwords for your sites based on your master password.\r\n\r\n__ http://masterpasswordapp.com/algorithm.html\r\n__ http://lhunath.com\r\n\r\n\r\nInstallation\r\n------------\r\n\r\nThis package requires Python 3 (tested with 3.4) and uses scrypt__,\r\ncryptography__ (you need a compiler for both), click__, and pyperclip__.\r\n\r\nInstallation with `pip`__:\r\n\r\n.. code-block:: bash\r\n\r\n $ pip install mpw\r\n\r\nOr better, use `pipsi`__:\r\n\r\n.. code-block:: bash\r\n\r\n $ pipsi install --python `which python3` mpw\r\n\r\nThis app copies the password to the clipboard. This should work out-of-the-box\r\non OS X and Windows. On Linux, *mpw* makes use of the ``xclip`` or ``xsel`` commands, which should come with the os. Otherwise run:\r\n\r\n.. code-block:: bash\r\n\r\n $ sudo apt-get install xclip\r\n $ # or\r\n $ sudo apt-get install xsel\r\n\r\nAlternatively, the gtk or PyQT4 modules can be installed.\r\n\r\nBinary executables (e.g., an installer for Windows) may follow.\r\n\r\n__ https://pypi.python.org/pypi/scrypt\r\n__ https://pypi.python.org/pypi/cryptography\r\n__ https://pypi.python.org/pypi/click\r\n__ https://pypi.python.org/pypi/pyperclip\r\n__ https://pypi.python.org/pypi/pip\r\n__ https://github.com/mitsuhiko/pipsi\r\n\r\n\r\nUsage\r\n-----\r\n\r\n.. code-block:: bash\r\n\r\n $ # Add a user\r\n $ mpw adduser Alice\r\n Enter master password:\r\n Confirm master password:\r\n Added user \"Alice\".\r\n # Add a site for Alice\r\n $ mpw addsite test-site\r\n Enter master password for \"Alice\":\r\n Added site \"test-site\" for user \"Alice\".\r\n $ # Actually get the password\r\n $ mpw get test-site\r\n Enter master password for \"Alice\":\r\n Password for \"test-site\" for user \"Alice\" was copied to the clipboard.\r\n $ # You can also pipe a password to other commands:\r\n $ mpw get -e server-root | sudo -S vim /etc/crontab\r\n\r\n\r\nFor more information take a look at the help:\r\n\r\n.. code-block:: bash\r\n\r\n $ mpw --help\r\n\r\n\r\nChangelog\r\n=========\r\n\r\n0.4 \u2013 2015-02-07\r\n----------------\r\n\r\n- [CHANGE]\u00a0Ask the user three times for their password if they make a typo\r\n instead of giving up after the first time.\r\n\r\n- [NEW] Implemented v3 of the algorithm. It behaves like v2 implemented in\r\n mpw 0.3, because I accidently fixed the problems of the official v2\r\n implementation in my own implementation.\r\n\r\n\r\n0.3 \u2013 2015-02-01\r\n----------------\r\n\r\n- [CHANGE] ``mpw get`` no longer creates a user or site if they don't exist.\r\n\r\n- [CHANGE] New config file format.\r\n\r\n- [NEW] Support for multiple versions of the Master Password algorithm\r\n\r\n- [NEW] Implemented version 2 of the algorithm\r\n\r\n- [NEW] A hashed version of the master key is stored on disk to notify you if\r\n you make typos.\r\n\r\n- [NEW]\u00a0The users' sites are now being encrypted on disk\r\n\r\n- [NEW] Users can now change their master password\r\n\r\n- [NEW]\u00a0Passwords can now be echoed to ``stdout`` and thus be piped to other\r\n commands.\r\n\r\n- [NEW]\u00a0Lots of test to ensure compatibility with the reference implementation\r\n\r\n- [NEW] 100% line and branch coverage\r\n\r\n\r\n0.2 \u2013 2014-09-16\r\n----------------\r\n\r\n- [NEW] Added a lot of subcommands that allow you to store user and site\r\n configuration in a config file\r\n\r\n- [CHANGE] ``mpw SITE`` is now ``mpw get SITE``\r\n\r\n\r\n0.1 \u2013 2014-08-21\r\n----------------\r\n\r\n- Initial release.\r\n\r\n\r\nAuthors\r\n=======\r\n\r\nMaster Password is a security product and algorithm by `Maarten Billemont`__,\r\n`Lyndir`__.\r\n\r\nThe Python implementation of the Master Password algorithm was created by\r\n`Stefan Scherfke`__.\r\n\r\n__ http://lhunath.com\r\n__ http://www.lyndir.com\r\n__ http://stefan.scherfke.de", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/sscherfke/mpw", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "mpw", "package_url": "https://pypi.org/project/mpw/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mpw/", "project_urls": { "Homepage": "https://bitbucket.org/sscherfke/mpw" }, "release_url": "https://pypi.org/project/mpw/0.4/", "requires_dist": [ "click (>=3.3)", "cryptography (>=0.7.2)", "pyperclip (>=1.5.7)", "scrypt (>=0.6.1)" ], "requires_python": null, "summary": "A Python implementation of the Master Password algorithm.", "version": "0.4" }, "last_serial": 1985612, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3e2ae2c1af6b1516ad05eabee224e1f4", "sha256": "0e7b7cb2a7ffd05cad8abc92849fb6eaa4160cee4f8750f74654f562a5950c1d" }, "downloads": -1, "filename": "mpw-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e2ae2c1af6b1516ad05eabee224e1f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6229, "upload_time": "2014-08-21T19:49:10", "url": "https://files.pythonhosted.org/packages/17/ed/9d2708a3910d8bf4ceb8497c2c916a619306d4d34b6dcab927f47d101dd1/mpw-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ce0684d6bfa52eff996b2f56ff7e78e", "sha256": "6d0d1cb82d454d978a80ac93a942fb8dac9fe14b0a1e6c29c9060c9705b4a3b1" }, "downloads": -1, "filename": "mpw-0.1.tar.gz", "has_sig": false, "md5_digest": "6ce0684d6bfa52eff996b2f56ff7e78e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5011, "upload_time": "2014-08-21T19:49:12", "url": "https://files.pythonhosted.org/packages/25/3a/746bc79b0eb114047bc25cc8755a9466daa21f5d30986a2c909f0d8d6c14/mpw-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "c244727ede8993da75e57bcdb2e193c2", "sha256": "afbf1c43817fd95a09f2f9d7e3613216802cd4d3462693d93a5c54d030323a63" }, "downloads": -1, "filename": "mpw-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c244727ede8993da75e57bcdb2e193c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9689, "upload_time": "2014-09-16T20:26:23", "url": "https://files.pythonhosted.org/packages/94/c9/1637659efb0dd7364c93e2fe229215d9524ea8a1cb269aaaf51654530539/mpw-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b4138b103d0937346dc72495665ded3", "sha256": "1a17fbf0cb675efcd357f3eb136f37fd4e7f97a95b4422326e124deef7d3ef42" }, "downloads": -1, "filename": "mpw-0.2.tar.gz", "has_sig": false, "md5_digest": "3b4138b103d0937346dc72495665ded3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8068, "upload_time": "2014-09-16T20:26:26", "url": "https://files.pythonhosted.org/packages/f1/c7/2584ab4f977f8e45d82d4138ca7487de4b2a56a88ca47a82983b3b0feb86/mpw-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "bef1dce89f7c160fd87f9ee13eeb997d", "sha256": "a71335623d2f4dd835454fc1e188179e101fde237bd5fd3797d6b903363c3f8d" }, "downloads": -1, "filename": "mpw-0.3.0.tar.gz", "has_sig": false, "md5_digest": "bef1dce89f7c160fd87f9ee13eeb997d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12393, "upload_time": "2015-02-01T20:31:53", "url": "https://files.pythonhosted.org/packages/19/4a/28863650a607b1f32a61137df95804b9d5217d50a99b907fe14eef078760/mpw-0.3.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "4acad4a892de588138ebcd8c08442b95", "sha256": "21587153064513d3bfa2cddb4afca09f08490506e48f5bb8987d32d476df1422" }, "downloads": -1, "filename": "mpw-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4acad4a892de588138ebcd8c08442b95", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17123, "upload_time": "2015-02-01T20:28:19", "url": "https://files.pythonhosted.org/packages/3f/e3/43483c1368cd617c6d8cd01c8d3d795e4fe38bf0d30b6608f26f3005aa97/mpw-0.3-py2.py3-none-any.whl" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "7e92ecde9ac03b7eae27d05a5258794a", "sha256": "d34ab014821adf8c7faca2db4520e9e7e737c4f6b3f28ed3ed69d0f183db0c24" }, "downloads": -1, "filename": "mpw-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e92ecde9ac03b7eae27d05a5258794a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18030, "upload_time": "2015-02-07T10:22:37", "url": "https://files.pythonhosted.org/packages/d0/2f/e15f8afb1d00ddfd3e46349a87df12f5084634405210fa85d64ede0a791b/mpw-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4139de4424302ba039c03907ad762ac7", "sha256": "ca17759ef865a79a14d9da12bc984c918a6f6423e73c34c3606b93e3e4131268" }, "downloads": -1, "filename": "mpw-0.4.tar.gz", "has_sig": false, "md5_digest": "4139de4424302ba039c03907ad762ac7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12869, "upload_time": "2015-02-07T10:22:39", "url": "https://files.pythonhosted.org/packages/ba/71/978ef038a8130a365511dae5ee6fd429dbd045bc69b352fcc840a1f3a61c/mpw-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e92ecde9ac03b7eae27d05a5258794a", "sha256": "d34ab014821adf8c7faca2db4520e9e7e737c4f6b3f28ed3ed69d0f183db0c24" }, "downloads": -1, "filename": "mpw-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e92ecde9ac03b7eae27d05a5258794a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18030, "upload_time": "2015-02-07T10:22:37", "url": "https://files.pythonhosted.org/packages/d0/2f/e15f8afb1d00ddfd3e46349a87df12f5084634405210fa85d64ede0a791b/mpw-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4139de4424302ba039c03907ad762ac7", "sha256": "ca17759ef865a79a14d9da12bc984c918a6f6423e73c34c3606b93e3e4131268" }, "downloads": -1, "filename": "mpw-0.4.tar.gz", "has_sig": false, "md5_digest": "4139de4424302ba039c03907ad762ac7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12869, "upload_time": "2015-02-07T10:22:39", "url": "https://files.pythonhosted.org/packages/ba/71/978ef038a8130a365511dae5ee6fd429dbd045bc69b352fcc840a1f3a61c/mpw-0.4.tar.gz" } ] }