X-Git-Url: http://git.tremily.us/?p=pgp-mime.git;a=blobdiff_plain;f=README;h=81219c5aaee8078b264c5a4d29f9eacfdf2d38d4;hp=d30e23b811919c0f4aedbb8d73e057ca657dc7bf;hb=HEAD;hpb=f811c89a898b6501d28fe9049df6f6ba7854ed14 diff --git a/README b/README index d30e23b..81219c5 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ -Python module and for constructing and sending PGP/MIME email. +Python module and tools for constructing and sending PGP/MIME email. The ``pgp_mime`` module makes it easy to construct and dispatch signed -and/or encrypted email using PGP_ and :RFC:`3156`. It uses GnuPG_ to -perform the cryptography. +and/or encrypted email using PGP_ and :RFC:`3156`. It uses GnuPG_ +(via `gpgme-tool`_) to perform the cryptography. Installation ============ @@ -24,14 +24,21 @@ Dependencies ------------ ``pgp-mime`` is a simple package with no external dependencies outside -the Python 3 standard library. There are a number of GnuPG_ wrappers +the Python 3.3 standard library. There are a number of GnuPG_ wrappers for python `out there`__, but none of them seem mature/stable enough -to be worth installing. Instead, we use the ``subprocess`` module to -call ``gpg`` directly. If this isn't working for you, you need only -replace the ``*_bytes`` commands which handle the cryptography. +to be worth installing. Instead, we use the `pyassuan`_ module to +talk to `gpgme-tool`_ over pipes or sockets. If this isn't working +for you, you need only replace the ``pgp_mime.crypt`` module to handle +the cryptography. __ wrappers_ +It would be awkward to backport ``pgp-mime`` to earlier versions of +Python, because versions before Python 3.3 lack sendmsg_ and recvmsg_, +and Python 2.7 doesn't even have that pass_fds option for Popen. This +makes it much harder to pass file descriptors to the `gpgme-tool` +process. + Installing by hand ------------------ @@ -74,6 +81,10 @@ If you can convince your students to get PGP keys, you could also encrypt their grades by changing ``--mode sign`` to ``--mode sign-encrypt``. +Of course, if you're interested in working with students and grades, +you might also be interested in my `pygrader`_ package, which uses +pgp-mime under the hood. + Configuring the SMTP connection ------------------------------- @@ -81,7 +92,7 @@ Pgp-mime supports two methods for sending messages (via ``pgp_mime.mail``). It can either call your system's ``sendmail`` equivalent, or connect directly to an SMTP_ server using ``smtplib``. Since I imagine SMTP will be more common, you can easily configure -your SMTP connection via ``~/.config/pgp-mime.conf``:: +your SMTP connection via ``~/.config/smtplib.conf``:: [smtp] host: smtp.mail.uu.edu @@ -104,12 +115,12 @@ Testing Run the internal unit tests using nose_:: - $ nosetests --with-doctest --doctest-tests pgp-mime + $ nosetests --with-doctest --doctest-tests pgp_mime If a Python-3-version of ``nosetests`` is not the default on your system, you may need to try something like:: - $ nosetests-3.2 --with-doctest --doctest-tests pgp-mime + $ nosetests-3.3 --with-doctest --doctest-tests pgp_mime Licence ======= @@ -121,16 +132,23 @@ Author ====== W. Trevor King -wking@drexel.edu +wking@tremily.us .. _PGP: http://en.wikipedia.org/wiki/Pretty_Good_Privacy .. _Gentoo: http://www.gentoo.org/ .. _layman: http://layman.sourceforge.net/ -.. _wtk overlay: http://blog.tremily.us/posts/Gentoo_overlay +.. _wtk overlay: http://blog.tremily.us/posts/Gentoo_overlay/ .. _wrappers: http://wiki.python.org/moin/GnuPrivacyGuard +.. _pyassuan: http://blog.tremily.us/posts/pyassuan/ +.. _gpgme-tool: + http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=blob;f=src/gpgme-tool.c;hb=HEAD +.. _Popen: http://docs.python.org/py3k/library/subprocess.html#subprocess.Popen +.. _sendmsg: http://docs.python.org/dev/library/socket.html#socket.socket.sendmsg +.. _recvmsg: http://docs.python.org/dev/library/socket.html#socket.socket.recvmsg .. _Git: http://git-scm.com/ .. _homepage: http://blog.tremily.us/posts/pgp-mime/ .. _wrappers and pinentry program: http://blog.tremily.us/posts/gpg-agent/ +.. _pygrader: http://blog.tremily.us/posts/pygrader/ .. _SMTP: http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol .. _STARTTLS: http://en.wikipedia.org/wiki/STARTTLS .. _GnuPG: http://www.gnupg.org/