Actually good encryption. In Python.
pyage is an experimental implementation of @FiloSottile and @Benjojo12 's project "age". The spec is currently available as seven-page Google doc at age-encryption.org/v1.
This project is still work-in-progress.
⚠️ pyage is not intended to be a secure age implementation! My original intention was to better understand the spec, find mistakes early and provide a redundant implementation for validation. I'm not a cryptographer (IANAC) and did not (yet) find the time to address implementation-specific security issues (such as DoS attacks or side-channel attacks).
So: Use at your own risk.
Install from pip:
$ pip install age
Generate a key pair:
$ mkdir -p ~/.config/age $ pipenv run pyage generate > ~/.config/age/keys.txt
Encrypt a file:
$ pipenv run pyage encrypt -i hello.txt -o hello.age pubkey:<recipient public key>
Decrypt a file (uses
$ pipenv run pyage decrypt -i hello.age
For a real tutorial, see the Tutorial section in the documentation.
The full documentation can be found at pyage.readthedocs.io.
- Enforce PEP8 with black, flake8 and isort
- Run unit tests (pytest) with coverage testing
- Hint native types (Python typing), enforce with mypy
- Documentation with Sphinx, pushed to pyage.readthedocs.io
- Error handling
- Proper logging (to stderr)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.