{ "info": { "author": "Marcel Fest", "author_email": "marcelf@selfnet.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Security :: Cryptography" ], "description": "# hkp4py\n\nA Library to get GPG/PGP keys from a Keyserver.\nThis library uses the requests module to get the keys.\n\n## Tested Python Versions\n\n### Python 2.7\n\n* 2.7.15\n\n### Python 3\n\n* 3.7\n\n## Intstall via [AUR](https://aur.archlinux.org/packages/python-hkp4py-git/)\n\n## Install via [PyPI](https://pypi.org/project/hkp4py/)\n\n```bash\npip install hkp4py\n\npip3 install hkp4py\n```\n\n## KeyServer\n\nThis object represents a keyserver using the hkp protocol.\n\n### Initialize\n\nInitialize the KeyServer object.\n\n```python\n# python2and3 compliance\nfrom __future__ import absolute_import, unicode_literals, print_function\n\nfrom hkp4py import KeyServer\n\n\nserver = KeyServer(\"hkps://pgp.ext.selfnet.de\")\n```\n\n#### HKPS support via following pool.\n\nThe hkps pool is also supported.\n\n```url\nhkps://hkps.pool.sks-keyservers.net\n```\n\n### Add\n\nAdd keys to a keyserver.\n\n```python\nkey = \"a long key\"\nserver.add(key)\n```\n\n### Search\n\nFind keys with the keyserver object.\n\n```python\nkeys = server.search('@gnupg.org') # search by string\nkeys = server.search('0x{}'.format('6F4B4E15768C8C4E'), exact=True) #search by fingerprint\n```\n\n### Key Object\n\n```python\nfor key in keys:\n # Key Basic Information\n print(\"Key Algorithm:\\t{}\".format(key.algo))\n print(\"Key fpr:\\t{}\".format(key.keyid))\n print(\"Key Length:\\t{}\".format(key.key_length))\n print(\"Disabled?\\t{}\".format('yes' if key.disabled else 'no'))\n print(\"Expired?\\t{}\".format('yes' if key.expired else 'no'))\n print(\"Revoked?\\t{}\".format('yes' if key.revoked else 'no'))\n print(\"From Host:\\t{}\".format(key.host))\n print(\"From Port:\\t{}\".format(key.port))\n print(\"Date Created:\\t{}\".format(key.creation_date))\n print(\"Date Expired:\\t{}\".format(key.expiration_date))\n print(key.key)\n print(key.key_blob)\n```\n\n#### Identity Object\n\n```python\n for identity in key.identities:\n print(\"Identity:\\t{}\".format(identity.uid))\n print(\"\\tDisabled?\\t{}\".format('yes' if identity.disabled else 'no'))\n print(\"\\tExpired?\\t{}\".format('yes' if identity.expired else 'no'))\n print(\"\\tRevoked?\\t{}\".format('yes' if identity.revoked else 'no'))\n print(\"\\tDate Created:\\t{}\".format(identity.creation_date))\n print(\"\\tDate Expired:\\t{}\".format(identity.expiration_date))\n```\n\n## More Advanced options\n\nTo set a different User-Agent and proxies for veiling purposes.\nThe KeyServer has the following additional options for the connection.\n\n```python\nserver = KeyServer(\"hkps://pgp.ext.selfnet.de\",\n proxies={\"http\": \"socks5h://localhost:5050\", \"https\":\n \"socks5h://localhost:5050\"},\n headers={\"User-Agent\": \"Testing\"})\n```\n\n## Import key with gpgme python bindings\n\n```python\nfrom __future__ import absolute_import, unicode_literals\n\nimport gpg\n\nresult = gpg.Context().key_import(key.key_blob)\n```\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/Selfnet/hkp4py", "keywords": "crypting keys gpg hkp hkps gnupg pgp keyserver", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hkp4py", "package_url": "https://pypi.org/project/hkp4py/", "platform": "", "project_url": "https://pypi.org/project/hkp4py/", "project_urls": { "Homepage": "https://github.com/Selfnet/hkp4py" }, "release_url": "https://pypi.org/project/hkp4py/0.2.3.0/", "requires_dist": [ "requests", "pylint; extra == 'dev'", "autopep8; extra == 'dev'", "pep8; extra == 'dev'" ], "requires_python": "", "summary": "A Library to get Keys from a keyserver specified", "version": "0.2.3.0" }, "last_serial": 4342024, "releases": { "0.2.0.0": [ { "comment_text": "", "digests": { "md5": "336c73b1647d5a59e2bfa8fabc699b38", "sha256": "40b5e60de68a9a3d6d91520e99531b1a95a06d73030f535e5353fd2ae1a5121a" }, "downloads": -1, "filename": "hkp4py-0.2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "336c73b1647d5a59e2bfa8fabc699b38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5392, "upload_time": "2018-09-19T10:46:52", "url": "https://files.pythonhosted.org/packages/34/2b/07625d14ef45cc0c54bd55f50c1eea7e53391348b99b0a985dddd8dd15c4/hkp4py-0.2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4760eaeeb02a61ee220071f2e44cb875", "sha256": "239a467ce5a323022f4f0ba5a1dd25e7c986e05b2b0a757ee6b4fd76f1ca8e7f" }, "downloads": -1, "filename": "hkp4py-0.2.0.0.tar.gz", "has_sig": false, "md5_digest": "4760eaeeb02a61ee220071f2e44cb875", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5783, "upload_time": "2018-09-19T10:46:53", "url": "https://files.pythonhosted.org/packages/2f/ee/ede82229e7bbecc3f489ec902690b5eed13e82a797be58128618e6c1dd70/hkp4py-0.2.0.0.tar.gz" } ], "0.2.1.0": [ { "comment_text": "", "digests": { "md5": "f46cec062195b582818bc1eb46640fa8", "sha256": "1b85fe8aaa4d71dffe246bcd6536f8e45cb1d46e3175f94430235dbb645dd8e7" }, "downloads": -1, "filename": "hkp4py-0.2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f46cec062195b582818bc1eb46640fa8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5475, "upload_time": "2018-09-20T18:27:23", "url": "https://files.pythonhosted.org/packages/ec/92/de0805d5797e3627e0544fc3c2c1b0dfe962deaa2874666964c24264167d/hkp4py-0.2.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ec6c1c30a45b05e7be038e394b67fd4", "sha256": "d608872e79af8b64af7a2d4c0385359724983c5f5e257c647890e0a6acb3b2fa" }, "downloads": -1, "filename": "hkp4py-0.2.1.0.tar.gz", "has_sig": false, "md5_digest": "9ec6c1c30a45b05e7be038e394b67fd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5889, "upload_time": "2018-09-20T18:27:25", "url": "https://files.pythonhosted.org/packages/03/27/1b29c6189829bd7bf768e6ce54696d780de676b9c9048c136d936304bdef/hkp4py-0.2.1.0.tar.gz" } ], "0.2.3.0": [ { "comment_text": "", "digests": { "md5": "3a6f0911fcfc0c60558976bfee216370", "sha256": "e2e50f567609a990040ced96a6530f293bad0702f5992d44e47bdcd1d15e2a22" }, "downloads": -1, "filename": "hkp4py-0.2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3a6f0911fcfc0c60558976bfee216370", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6175, "upload_time": "2018-10-04T22:00:40", "url": "https://files.pythonhosted.org/packages/43/17/2bc582e1568410359181e15a23a4f32536e5c71aff126919d17abd98ae52/hkp4py-0.2.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e10adbf6b7d23623ea705f0dbe3d7dd", "sha256": "da30b71011d1c69aa8b97093a6d27bdca47213145ac2f57da4c0a58ecda211c9" }, "downloads": -1, "filename": "hkp4py-0.2.3.0.tar.gz", "has_sig": false, "md5_digest": "0e10adbf6b7d23623ea705f0dbe3d7dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6524, "upload_time": "2018-10-04T22:00:41", "url": "https://files.pythonhosted.org/packages/6d/01/f5b12f6f3ce3a2094b88467c486d154dc377750ff937d3dc7f509cac33e0/hkp4py-0.2.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3a6f0911fcfc0c60558976bfee216370", "sha256": "e2e50f567609a990040ced96a6530f293bad0702f5992d44e47bdcd1d15e2a22" }, "downloads": -1, "filename": "hkp4py-0.2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3a6f0911fcfc0c60558976bfee216370", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6175, "upload_time": "2018-10-04T22:00:40", "url": "https://files.pythonhosted.org/packages/43/17/2bc582e1568410359181e15a23a4f32536e5c71aff126919d17abd98ae52/hkp4py-0.2.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e10adbf6b7d23623ea705f0dbe3d7dd", "sha256": "da30b71011d1c69aa8b97093a6d27bdca47213145ac2f57da4c0a58ecda211c9" }, "downloads": -1, "filename": "hkp4py-0.2.3.0.tar.gz", "has_sig": false, "md5_digest": "0e10adbf6b7d23623ea705f0dbe3d7dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6524, "upload_time": "2018-10-04T22:00:41", "url": "https://files.pythonhosted.org/packages/6d/01/f5b12f6f3ce3a2094b88467c486d154dc377750ff937d3dc7f509cac33e0/hkp4py-0.2.3.0.tar.gz" } ] }