{ "info": { "author": "Stephen Moore", "author_email": "delfick755@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "GPGLib2\n=======\n\nThis is a Python3 compatible fork of the gpglib library with support for AES\nsecret keys and the mdc packet types.\n\nHistory\n-------\n\nBack in 2012 we couldn't find a library for decrypting gpg that didn't shell out\nto gpg.\n\nAnd shelling out to gpg is slow when you do it for many small files.\n\nSo, with the help of http://pypi.python.org/pypi/OpenPGP and PyCrypto we created\nthis, which is more performant than shelling out.\n\nThen in 2017 a friend needed this library for a task, but the library wasn't\ncompatible with python3. Unfortunately we couldn't get write access back to the\noriginal gpglib, so we have created a fork.\n\nChangeLog\n---------\n\n0.3.1\n * Update pycryptodome for CVE-2018-15560\n * Remove use of a private method in pycryptodome when decrypting session keys\n\n0.3\n * Migrated from pycrypto to pycryptodome\n\nInstalling\n==========\n\nTo install, just use pip::\n\n $ pip install gpglib2\n\nOr download from pypi: http://pypi.python.org/pypi/gpglib2.\n\nOr clone the git repo: https://github.com/delfick/gpglib2.\n\nMaking test data\n================\n\nThis is what I did to get the data in tests/data.\n\nFrom within tests/data::\n\n $ gpg --full-gen-key --homedir ./gpg\n # Once with RSA encrypt and sign, username Stephen and password \"password25\"\n # And again with DSA/Elgamal, username Bobby and password \"password25\"\n\nThen find the keyid::\n\n $ gpg --homedir ./gpg --list-keys\n ------------------------------------------------------------------------\n pub rsa2048 2018-08-03 [SC]\n F93E6E1B45D1C037B42650DE52320610E94B004B\n uid [ultimate] Stephen \n sub rsa2048 2018-08-03 [E]\n\n pub dsa2048 2018-08-03 [SC]\n A02F07AF335D3212FEB29C44FF5D18CBDBE4C62B\n uid [ultimate] Bobby \n sub elg2048 2018-08-03 [E]\n\n # Here, the key we want is \"F93E6E1B45D1C037B42650DE52320610E94B004B\"\n\nThen with that keyid export the secret and public keys for both the rsa and dsa keys::\n\n $ export KEY=F93E6E1B45D1C037B42650DE52320610E94B004B\n $ gpg --export $KEY > keys/key.public.rsa.gpg\n $ gpg --export-secret-key $KEY > keys/key.secret.rsa.gpg\n\nI then created dump.small and dump.big as random json structures (the big on is from http://json.org/example.html).\n\nThen run ``./tests/data/generate_test_data.sh`` to generate messages in the\n``tests/encrypted`` folder. \n\nNote that this is only necessary if you are editing ``generate_test_data.sh`` to\naccommodate different options. If you are doing this then you will also need\nto do the same to ``tests/test_decryption.py`` to take the different data into\naccount.\n\nTests\n=====\n\nInstall the pip requirements::\n\n $ pip install -e \".[tests]\"\n\nAnd then run::\n\n $ ./test.sh\n\nCurrently not much is tested.\n\nNote that if you also do a ``pip install tox`` then you may run the tests with\ndifferent python versions by running ``tox``\n\nDocs\n====\n\nYou can build the docs yourself by going into the docs directory and running\n``./build.sh`` and then run ``python3 -m http.server`` and navigate to\n``localhost:8000/sphinx/_build/html/``\n\nGenerated documentation is also available at: http://gpglib2.readthedocs.org/en/latest/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "gpg decrypt", "license": "LGPLv2", "maintainer": "", "maintainer_email": "", "name": "gpglib2", "package_url": "https://pypi.org/project/gpglib2/", "platform": "", "project_url": "https://pypi.org/project/gpglib2/", "project_urls": null, "release_url": "https://pypi.org/project/gpglib2/0.3.1/", "requires_dist": null, "requires_python": "", "summary": "A python3 compatible fork of gpglib, a Library for decrypting gpg that doesn't shell out to gpg", "version": "0.3.1" }, "last_serial": 4228462, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "4e447595d0632001e2fba4ead3a4bc72", "sha256": "b4e71446d26921c22974d7a3da93da33d763c40bf16963a60c358a9b6c83d6d3" }, "downloads": -1, "filename": "gpglib2-0.2.tar.gz", "has_sig": false, "md5_digest": "4e447595d0632001e2fba4ead3a4bc72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14257, "upload_time": "2018-01-28T02:21:17", "url": "https://files.pythonhosted.org/packages/c8/f5/b29b053ec1f129da4d4de1e10e6301a8c586b2cd45f6cffeb97b1de93d16/gpglib2-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "51da06ae8a845aa31f5b94995bad75ff", "sha256": "0bfc104b0729b7e2a3bc8bdc082841b0301e7a9c5a85e36532ba29d46052320a" }, "downloads": -1, "filename": "gpglib2-0.2.1.tar.gz", "has_sig": false, "md5_digest": "51da06ae8a845aa31f5b94995bad75ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14060, "upload_time": "2018-02-07T04:11:14", "url": "https://files.pythonhosted.org/packages/26/82/f104bf4c8c3900654ba079442d8f2f532f42fafef2b5c3136ed6f461e23a/gpglib2-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "4cbd8dba814491deace4db313da3150b", "sha256": "047921202dd91a63e1289b72fabc7d22934be735b3c6462c4242f9fe5c73c261" }, "downloads": -1, "filename": "gpglib2-0.3.tar.gz", "has_sig": false, "md5_digest": "4cbd8dba814491deace4db313da3150b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14709, "upload_time": "2018-08-04T05:45:49", "url": "https://files.pythonhosted.org/packages/96/ca/f3250f8c08eb1054adcb405eda5da6fe0e3ecabf5a488615bfdbd8d26bb2/gpglib2-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d1508169525ce5ac4f305f319b6587c7", "sha256": "96ef8fe9c35925b62610d26e2ce40f29944cb628fb6611707f9caef9674fefbd" }, "downloads": -1, "filename": "gpglib2-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d1508169525ce5ac4f305f319b6587c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16665, "upload_time": "2018-09-01T05:05:48", "url": "https://files.pythonhosted.org/packages/27/bd/b29275fe6171aea34b3891db4267ebaf3096577f9e10e5e3f551ef4abc5a/gpglib2-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d1508169525ce5ac4f305f319b6587c7", "sha256": "96ef8fe9c35925b62610d26e2ce40f29944cb628fb6611707f9caef9674fefbd" }, "downloads": -1, "filename": "gpglib2-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d1508169525ce5ac4f305f319b6587c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16665, "upload_time": "2018-09-01T05:05:48", "url": "https://files.pythonhosted.org/packages/27/bd/b29275fe6171aea34b3891db4267ebaf3096577f9e10e5e3f551ef4abc5a/gpglib2-0.3.1.tar.gz" } ] }