A modified version of python-gnupg, including security patches, extensive documentation, and extra features.
 
 
 
 
Go to file
Mikael Nordfeldth f80f216625 mktime takes local time, not UTC
GPG signature timestamps are considered UTC, this may cause times to be off
by delta > 1000 in def test_signature_string_verification because it
incorrectly gave gmtime() as an argument to mktime().

Python 2 and 3 docs both say that mktime should have a struct_time argument
"which expresses the time in local time, not UTC". So the test is now using
time.localtime() instead of time.gmtime()
2013-07-24 17:28:18 +02:00
docs Update Sphinx templating and stylesheets. 2013-07-03 10:22:05 +00:00
gnupg mktime takes local time, not UTC 2013-07-24 17:28:18 +02:00
patches Add quilt patches/ directory, series file, and first external patch. 2013-03-18 19:36:30 +00:00
scripts Make sure setuptools/distribute is present in new dev virtualenvs. 2013-06-09 05:41:25 +00:00
.gitattributes Add .gitattributes file for versioneer. 2013-05-13 10:16:39 +00:00
.gitignore Unignore MANIFEST.in file. 2013-07-02 08:34:10 +00:00
.travis.yml
LICENSE Reorganise docs and update README. 2013-07-02 08:32:34 +00:00
Makefile Fix whitespace to be a TAB instead on spaces in Makefile. *le sigh* 2013-06-03 21:27:44 +00:00
README Reorganise docs and update README. 2013-07-02 08:32:34 +00:00
README.md Add symbolic link to markdown README file. 2013-07-09 08:43:27 +00:00
TODO Reorganise docs and update README. 2013-07-02 08:32:34 +00:00
requirements.txt If using a virtualenv, we don't want the env pip and distribute to be upgraded. 2013-06-09 05:44:43 +00:00
setup.cfg Add GPG signing for PyPI uploads to setup.cfg. 2013-07-02 10:12:54 +00:00
setup.py Add link to docs: https://python-gnupg.readthedocs.org/en/latest/ 2013-07-03 10:29:58 +00:00
versioneer.py Add versioneer and restructure the repo into a src/ dir. 2013-05-12 09:32:46 +00:00

README.md

python-gnupg

Fork of python-gnupg-0.3.2, patched to fix a potential vulnerability which could result in remote code execution, do to unsanitised inputs being passed to subprocess.Popen([...], shell=True).

Installation

From PyPI

It's simple. Just do:

[sudo] pip install gnupg

From this git repository

To install this package from this git repository, do:

git clone https://github.com/isislovecruft/python-gnupg.git
cd python-gnupg
make install
make test

Optionally to build the documentation after installation, do:

make docs

To get started using python-gnupg's API, see the online documentation, and import the module like so:

>>> import gnupg

The primary interface class you'll likely want to interact with is gnupg.GPG:

>>> gpg = gnupg.GPG(gpgbinary='/usr/bin/gpg',
...     gpghome='./keys',
...     pubring='pubring.gpg',
...     secring='secring.gpg')
>>> batch_key_input = gpg.gen_key_input()
>>> print batch_key_input
Key-Type: RSA
Name-Email: isis@wintermute
Name-Comment: Generated by gnupg.py
Key-Length: 4096
Name-Real: Autogenerated Key
%pubring /home/isis/code/python-gnupg/keys/pubring.gpg
%secring /home/isis/code/python-gnupg/keys/secring.gpg
%commit

>>> key = gpg.gen_key(batch_key_input)
>>> print key.fingerprint
245D8FA30F543B742053949F553C0E154F2E7A98

Bug Reports & Feature Requests

Currently, the bugtracker is here on Github. This may change in the future, but for now please feel free to use it to make bugreports and feature requests.

Public comments and discussions are also welcome on the bugtracker, or as tweets.

Patches are greatly appreciated, and if unsuitable for merging I will make improvement suggestions based on code review until the patch is acceptable.