PaperAge

Easy and secure paper backups of (smallish) secrets using the Age format (age-encryption.org/v1).

Features

Limitations

Example

This is what the output PDF looks like. The QR code is easily readable with an iPhone (or other modern smartphone).

A4 sheet with a title of ‘PaperAge’, a QR code, and a PEM encoded section

If you want to try decode it youself, the passphrase is snakeoil.

Installation

Binary

Download the latest release from the Releases page, extract the files, and install the paper-age binary somewhere in PATH (for example /usr/local/bin).

```sh

Download the latest release (pick your OS)

macOS (Intel or Apple Silicon):

curl -o paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/latest/paper-age-universal-apple-darwin.tar.gz

Linux (x86-64):

curl -o paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/latest/paper-age-x86_64-unknown-linux-gnu.tar.gz

Linux (ARM):

curl -o paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/latest/paper-age-aarch64-unknown-linux-gnu.tar.gz

Extract the files

tar -xf paper-age.tar.gz

Install the binary in /usr/local/bin

sudo install paper-age /usr/local/bin/

Or: sudo mv paper-age /usr/local/bin/

macOS only: clear the quarantine flag

sudo xattr -r -d com.apple.quarantine /usr/local/bin/paper-age ```

Cargo

If you already have Rust installed, PaperAge can be installed with Cargo:

sh cargo install paper-age

Usage

paper-age [OPTIONS] [INPUT]

Arguments

Options

Development

Run the latest from git locally, assuming you have already installed Rust:

  1. Pull this repo
  2. Run the tests: cargo test
  3. Get help: cargo run -- -h
  4. Encrypt from stdin: echo "Hello World" | cargo run -- --title="secrets from stdin" --out="stdin.pdf"
  5. Run with maximum verbosity: echo "Hello World" | cargo run -- -vvvv

Releases

Releases are compiled and released on GitHub when new versions are tagged in git.

Use cargo release to tag and publish a new version, for example:

sh cargo release 1.2.3

⚠️ Append --execute to the command to actually execute the release.

License & Credits

PaperAge is released under the MIT License. See LICENSE.txt for details.

Includes the SIL Open Font Licensed IBM Plex Mono font. See IBMPlexMono-LICENSE.txt.

Uses the Rust implementation of Age from github.com/str4d/rage and the printpdf library.

Thanks to Ariel Salminen for the PaperAge icon.