encryptit

OpenPGP API and CLI focusing on testing & clarity.


License
Other
Install
pip install encryptit==0.1.0

Documentation

EncryptIt

Build Status Coverage Status Latest Version Supported Python versions Development Status Supported Python implementations

OpenPGP API and CLI for Python

EncryptIt an OpenPGP (RFC 4880) API and CLI for Python, focusing on testing and clarity.

  • Currently it provides a debugging tool, encryptit dumpjson which converts OpenPGP binary messages into extremely verbose JSON. As decoders for individual packet types are added, the dumpjson tool will become even more powerful.

  • Next it will provide an API and CLI for symmetrically encrypting and decrypting files using a passphrase.

  • Eventually (and depending how it goes) we'll tackle asymmetric (public / private key) encryption.

See milestones for more detail.

Quickstart

Install

It's Python, so you probably want to use a virtualenv, then:

$ pip install encryptit

Decode an OpenPGP binary file

# Create an encrypted file with GPG
$ echo "secret message" | gpg --symmetric /tmp/encrypted.gpg

# Decode with encryptit
$ encryptit dumpjson /tmp/encrypted.gpg

Goals / Ambitions

To be the cleanest, most testable OpenPGP implementation.

  • Clean, helpful Pythonic API.
  • Friendly and familiar command-line tools.
  • CPython 2.6+, 3.2+ support, PyPy 2.7+, 3.2+ support.
  • Very obvious code layout and implementation.
  • Extremely high test coverage (at the expense of functionality).
  • PEP8 compliant.

Software Licence: GNU Affero Public Licence v3

Copyright (C) 2015 Paul M Furley paul@paulfurley.com

GNU Affero Public License Version 3.

Quick Summary of AGPLv3

Proprietary re-licensing may be possible: please email me to discuss.

Other Python OpenPGP Efforts

Currently EncryptIt sacrifices functionality in favour of testing & reliability.

For more functionality, see these other projects (my initial thoughts included alongside).

Updated 2015-05-02.

  • PGPy

    • lots of functionality
    • TODO : look more into this one
  • OpenPGP-Python

    • Lots of functionality.
    • MIT licence.
    • Quite a lot of tests, but unclear whether they're covering key things?
    • How to install?
    • Not PEP8 compliant.
  • python-pgp

    • Lots of functionality - awesome!
    • GPLv3 licence.
    • Very sparse testing (dealbreaker).
    • Existing tests currently failing on master
    • No Python 2 support.
    • Not PEP8 compliant.
  • OpenPGP code

    • Implements obsolete RFC 2440.
    • Last updated 2005.
    • "Entertainment only"
    • No Python 3 support.
    • Source control is mercurial.
    • TODO: PEP8 compliant?