Fjodor42/python-gnupg
A modified version of python-gnupg, including security patches, extensive documentation, and extra features.
.. -- coding: utf-8; mode: rst; --
python-gnupg |On PyPI|
Rewrite of Vinay Sajip's python-gnupg <https://code.google.com/p/python-gnupg/>__,
including patches to fix a shell injection vulnerability due to unsanitised
inputs being passed to subprocess.Popen([...], shell=True).
.. |On PyPI| image:: https://badge.fury.io/py/gnupg.png
:target: https://pypi.python.org/pypi/gnupg
==============
Installation
From PyPI <https://pypi.python.org>__
It's simple. Just do::
[sudo] pip install gnupg
From git
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 Sphinx documentation_, do::
make docs
To get started using python-gnupg's API, see the 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(binary='/usr/bin/gpg',
... homedir='./keys',
... keyring='pubring.gpg',
... secring='secring.gpg')
>>> batch_key_input = gpg.gen_key_input(
... key_type='RSA',
... key_length=4096)
>>> print batch_key_input
Key-Type: RSA
Name-Email: isis@wintermute
Key-Length: 4096
Name-Real: Autogenerated Key
%commit
>>> key = gpg.gen_key(batch_key_input)
>>> print key.fingerprint
245D8FA30F543B742053949F553C0E154F2E7A98
>>> message = "The crow flies at midnight."
>>> encrypted = str(gpg.encrypt(message, key.fingerprint))
>>> decrypted = str(gpg.decrypt(encrypted))
>>> assert(decrypted == message)
.. _documentation: https://pythonhosted.org/gnupg/
==============================
Bug Reports & Feature Requests
Our bugtracker can be found
on Github <https://github.com/isislovecruft/python-gnupg/issues>. Public
comments and discussions are also welcome on the bugtracker, or as
tweets <https://twitter.com/isislovecruft>. Patches are always welcome.