Available in a git repository.
Repository: pgp-mime
Browsable repository: pgp-mime
Author: W. Trevor King
I've been scripting up a few things recently and my inability to send
nicely formatted OpenPGP messages was starting to really bug
me. I had been encrypting my logwatch output with gpg
and just
emailing the raw gpg
output to myself, but it's annoying to have to
ESC-P every time I want to decrypt a log. The tipping point came
while I was writing up a script to automatically email grades out to
my students (not that any of the student's care about PGP, but it's
the principle of the thing ;), since there's no way I'm going to send
them raw gpg output (they would die) and there's also no way I'm going
to hold Mutt's hand while it signs the emails. I dunno why Mutt
doesn't have some --batch
mode options to support PGP, but there it
is.
Pgp-mime is my home-grown solution. It's not very complicated really, just implementing the RFC 3156 specs in Python. It's been through a number of iterations over the years, and now (2012) I think the interface has matured to the point of actually being useful to other people as well ;).
While there are some other GnuPG wrappers for Python, my
wrappers are the only ones using the Assuan protocol (via my
pyassuan) to communicate with gpgme-tool. All the other
interfaces spawn gpg
directly (e.g. using the subprocess
module), and scrape its output, which is not ideal.
Pgp-mime still uses subprocess
to spawn gpgme-tool
, but I'm
currently working with the GnuPG folks to get a proper socket
interface which would put gpgme-tool
on par with gpg-agent
. Then
pgp-mime could drop all the subprocess
stuff, which would make
things more robust. I'm also waiting on Python 3.3 to get support for
sendmsg and recvmsg in Python's socket module, which would
allow me to pass file descriptors to a persistent, external
gpgme-tool
.
The README
is posted on the PyPI page.
Email me with (encrypted!) feedback.