{ "info": { "author": "nomadictype", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pymunge is a Python wrapper for the C API of MUNGE, called\nlibmunge. pymunge provides functions and classes to create\nand validate credentials with MUNGE, and to use and interact with\nMUNGE contexts.\n\nMUNGE (MUNGE Uid 'N' Gid Emporium, https://dun.github.io/munge/)\nis an authentication service for creating and validating credentials\ndesigned to be highly scalable for use in an HPC cluster environment.\n\nOfficial pymunge repository: https://github.com/nomadictype/pymunge\n\nPyPI project page: https://pypi.python.org/pypi/pymunge\n\nAPI reference: https://pymunge.readthedocs.io/en/latest/\n\n\nInstall instructions\n====================\n\nRequirements:\n\n* Python 3.4 or later (or Python 2.7 with the 'enum34' package).\n* MUNGE 0.5.x or later.\n* A munged daemon must be running on the same machine in order\n for pymunge to be able to create and validate credentials.\n\nMake sure that all the above requirements are satisfied. Afterwards,\nthere are several possible ways to proceed:\n\n* To install pymunge from PyPI, run the following command (preferably\n in a virtualenv)::\n\n python3 -m pip install pymunge\n\n* Alternatively, your OS distribution may include pymunge as a package,\n with a name such as pymunge, python3-pymunge, or python-pymunge.\n\n* pymunge can also be used directly without installation. Just ensure\n that Python can find the pymunge package (for example by appending\n the parent directory of the pymunge package to the PYTHONPATH\n environment variable).\n\n\nGetting started / Tutorial\n==========================\n\nThis quick tutorial describes how to use the pymunge API. If you want,\nyou can follow along in an interactive Python 3 session; simply copy\nall the code preceded by `>>>`.\n\nFirst of all, import the package:\n\n>>> import pymunge\n\nThe simplest way to encode (= create) and decode (= validate) credentials\nis to use the `pymunge.encode()` and `pymunge.decode()` functions.\nFor example:\n\n>>> cred = pymunge.encode(b\"some payload\")\n>>> cred\nb'MUNGE:AwQDAA...'\n\nThe credential `cred` can now be sent to some other process to decode it\n(via a socket or some other IPC mechanism) -- this is the responsibility\nof the program which uses pymunge, pymunge does not provide any functions\nto do this! For testing purposes, you can also pipe the credential into\nthe `unmunge` program by hand. To keep this tutorial simple, let us\ndecode the credential directly in the same process:\n\n>>> payload, uid, gid, ctx = pymunge.decode(cred)\n>>> payload\nb'some payload'\n\n`pymunge.decode()` returns 4 values: the payload that was encapsulated\nwithin the credential, the UID/GID of the process that created the\ncredential, and a MUNGE context. This context can be examined to\nobtain additional information about the credential:\n\n>>> ctx.cipher_type\n\n>>> ctx.encode_time\n1514469923\n>>> ctx.ttl\n300\n>>> ctx.uid_restriction\n-1\n\n(Also try running `help(ctx)` to see a list of all attributes\na context can have.)\n\nIt is possible to encode and decode within existing MUNGE\ncontexts. This is useful to customize the options used to\nencode a credential:\n\n>>> with pymunge.MungeContext() as ctx:\n>>> ctx.uid_restriction = 0 # allow only root to decode the credential\n>>> cred = ctx.encode(b\"some other payload\")\n\nSimilarly, `MungeContext.decode()` can be used to decode within an\nexisting context.\n\nThis concludes the basic tutorial. A collection of similar examples\nis provided in the file `pymunge_example.py` distributed with pymunge.\n\n\nAuthor\n======\n\npymunge was written by nomadictype (https://github.com/nomadictype/).\n\nLicense\n-------\n\nCopyright (C) 2017-2018 nomadictype \n\nLike libmunge, pymunge is dual-licensed under GPL-3 and LGPL-3.\nSee LICENSE.txt for details.\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nomadictype/pymunge", "keywords": "munge libmunge hpc cluster authentication credentials", "license": "", "maintainer": "", "maintainer_email": "", "name": "pymunge", "package_url": "https://pypi.org/project/pymunge/", "platform": "", "project_url": "https://pypi.org/project/pymunge/", "project_urls": { "Homepage": "https://github.com/nomadictype/pymunge" }, "release_url": "https://pypi.org/project/pymunge/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "A Python interface to MUNGE", "version": "0.1.3" }, "last_serial": 3592496, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "c5444908a31dbea84ebe6c8854c5d5dd", "sha256": "07837c9c8d99c166c9e64ef55133637e729a1a2f9ef81839b8fc669aab2fc979" }, "downloads": -1, "filename": "pymunge-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c5444908a31dbea84ebe6c8854c5d5dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15747, "upload_time": "2017-12-28T23:43:42", "url": "https://files.pythonhosted.org/packages/dd/92/6c3afd74637df04e08b5165af3cf0bf3d06ef275e1b2675ee9e0c36df0f2/pymunge-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22e33f5dceb6bbf24179806574d17ec9", "sha256": "5e8a242cbd73151991a8abe6db80f293794b19179b493c51b5556b95f1a2bcbe" }, "downloads": -1, "filename": "pymunge-0.1.1.tar.gz", "has_sig": false, "md5_digest": "22e33f5dceb6bbf24179806574d17ec9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27502, "upload_time": "2017-12-28T23:43:44", "url": "https://files.pythonhosted.org/packages/8a/32/72867c41b201467d33cf6dcafc1dd852e8dd1b4d8d9a90a92064b75cbd4f/pymunge-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "8f1fe9fd07c332399e09a88f71add63e", "sha256": "f6731485552ebfa80a705deaa3f75535e6cb4ce4999c4a2f6e7749ce60fe860b" }, "downloads": -1, "filename": "pymunge-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f1fe9fd07c332399e09a88f71add63e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17971, "upload_time": "2018-02-18T03:11:47", "url": "https://files.pythonhosted.org/packages/0e/e8/71fc74b9d4dc913064c03f71b7875751e0094d81d032ac0f6d8d7d8c8d44/pymunge-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db4275d7ae97819903234c09bb9378cf", "sha256": "1dd6c2efc4f38f69208703703fedfc50287be44aca1f4eaa4fd762297d6d6b76" }, "downloads": -1, "filename": "pymunge-0.1.2.tar.gz", "has_sig": false, "md5_digest": "db4275d7ae97819903234c09bb9378cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36226, "upload_time": "2018-02-18T03:11:49", "url": "https://files.pythonhosted.org/packages/7e/13/92f2b24b1d34939e40ef50384aae1830f40c6196c0b9633f0d94f0c60ac7/pymunge-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7ef411f7cef3e15c41a82ce9e9b3ffff", "sha256": "ed2d30636bd2763202f3aeaed055b77f117b921832e21858e0f68f829129cf15" }, "downloads": -1, "filename": "pymunge-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ef411f7cef3e15c41a82ce9e9b3ffff", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17967, "upload_time": "2018-02-18T03:34:43", "url": "https://files.pythonhosted.org/packages/1c/e3/6b80fc711c66e7beb4dd3753ffefa6fb5a23bb7df56e03fbbe2d0669b85c/pymunge-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6a3d67a68db3e54dc691ae93b83c12d", "sha256": "66fcada283026af6894af009b0c5443645f61fab6f3a67633624526e0daaee40" }, "downloads": -1, "filename": "pymunge-0.1.3.tar.gz", "has_sig": false, "md5_digest": "b6a3d67a68db3e54dc691ae93b83c12d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36259, "upload_time": "2018-02-18T03:34:45", "url": "https://files.pythonhosted.org/packages/7a/6a/f29720324abb42ae9ee84d4ff00674ac287ee9534dcbe66071c5029281ec/pymunge-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7ef411f7cef3e15c41a82ce9e9b3ffff", "sha256": "ed2d30636bd2763202f3aeaed055b77f117b921832e21858e0f68f829129cf15" }, "downloads": -1, "filename": "pymunge-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ef411f7cef3e15c41a82ce9e9b3ffff", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17967, "upload_time": "2018-02-18T03:34:43", "url": "https://files.pythonhosted.org/packages/1c/e3/6b80fc711c66e7beb4dd3753ffefa6fb5a23bb7df56e03fbbe2d0669b85c/pymunge-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6a3d67a68db3e54dc691ae93b83c12d", "sha256": "66fcada283026af6894af009b0c5443645f61fab6f3a67633624526e0daaee40" }, "downloads": -1, "filename": "pymunge-0.1.3.tar.gz", "has_sig": false, "md5_digest": "b6a3d67a68db3e54dc691ae93b83c12d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36259, "upload_time": "2018-02-18T03:34:45", "url": "https://files.pythonhosted.org/packages/7a/6a/f29720324abb42ae9ee84d4ff00674ac287ee9534dcbe66071c5029281ec/pymunge-0.1.3.tar.gz" } ] }