{"id":15009993,"url":"https://github.com/lhelwerd/gpg-exchange","last_synced_at":"2026-02-03T05:03:16.175Z","repository":{"id":57435531,"uuid":"119560449","full_name":"lhelwerd/gpg-exchange","owner":"lhelwerd","description":"Simplified GPG exchange wrapper","archived":false,"fork":false,"pushed_at":"2018-10-23T12:40:21.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-17T14:54:45.010Z","etag":null,"topics":["gpg","python-2-7","python-3-6"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lhelwerd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-30T16:09:50.000Z","updated_at":"2018-10-23T12:40:06.000Z","dependencies_parsed_at":"2022-08-27T20:52:16.486Z","dependency_job_id":null,"html_url":"https://github.com/lhelwerd/gpg-exchange","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/lhelwerd/gpg-exchange","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhelwerd%2Fgpg-exchange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhelwerd%2Fgpg-exchange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhelwerd%2Fgpg-exchange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhelwerd%2Fgpg-exchange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lhelwerd","download_url":"https://codeload.github.com/lhelwerd/gpg-exchange/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lhelwerd%2Fgpg-exchange/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260689264,"owners_count":23047035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gpg","python-2-7","python-3-6"],"created_at":"2024-09-24T19:29:24.676Z","updated_at":"2026-02-03T05:03:16.091Z","avatar_url":"https://github.com/lhelwerd.png","language":"Python","readme":"# Simplified GPG exchange wrapper\n\n[![PyPI](https://img.shields.io/pypi/v/gpg-exchange.svg)](https://pypi.python.org/pypi/gpg-exchange)\n\nThis module abstracts some of the data types and operations performed by the\n[GPG Made Easy](https://pypi.python.org/pypi/gpg) library in order to provide \na single means of key generation,\npublic key exchange, encryption and decryption using \n[GnuPG](https://www.gnupg.org/)/PGP.\n\n## Features\n\n- Retrieve passphrase via callback\n- Key generation\n- Key search and deletion\n- Key import and export\n- Encryption and decryption using normal string types or open files\n\n## Requirements\n\nThe expression parser has been tested to work on Python 2.7 and 3.6. This \npackage depends on the [gpg](https://pypi.python.org/pypi/gpg) library, which \nitself depends on [SWIG](http://www.swig.org/) and recent versions of the\n[GPGME](https://www.gnupg.org/software/gpgme/index.html) library plus \nassociated development headers. GPGME then depends on GnuPG 2.1+ and its \nlibraries. You can install some of these packages through your package manager \nif it is recent enough (search for `gpg2`). Even then you may still need a more \nrecent version of libgpg-error, for example.\n\nYou can install the missing or outdated packages from source using the [latest \ntarballs](https://www.gnupg.org/download/index.html).\nStart with the library packages, then make sure you have GnuPG and finally \ninstall GPGME for the easiest workflow. Each time, use `./configure`, `make` \nand finally `sudo make install`. If the first two steps fail then the output \nwill usually indicate which packages are missing. GPGME may fail its tests if \nyou are using an older version of GnuPG, which can be overcome by running only \n`./configure` and `sudo make install` or by `sed -i 's/gpgconf --kill \nall/gpgconf --kill gpg-agent scdaemon/' tests/gpg/Makefile tests/gpgsm/Makefile \nlang/python/tests/Makefile lang/qt/tests/Makefile` when the compilation fails.\n\nFor GnuPG 2.1, you may need to add `allow-loopback-pinentry` to \n`$HOME/.gnupg/gpg-agent.conf` in order to use passphrase callbacks. This is no \nlonger required in GnuPG 2.2. Key generation must provide a passphrase in GnuPG \n2.2+.\n\n## Installation\n\nInstall the latest version from PyPI using:\n\n```\npip install gpg-exchange\n```\n\n## License\n\nThe GPG wrapper library is licensed under the GNU General Public License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flhelwerd%2Fgpg-exchange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flhelwerd%2Fgpg-exchange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flhelwerd%2Fgpg-exchange/lists"}