Easy and secure paper backups of (smallish) secrets using the Age format (age-encryption.org/v1).
This is what the output PDF looks like. The QR code is easily readable with an iPhone (or other modern smartphone).
If you want to try decode it youself, the passphrase is snakeoil
.
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
curl -o paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/latest/paper-age-universal-apple-darwin.tar.gz
curl -o paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/latest/paper-age-x86_64-unknown-linux-gnu.tar.gz
curl -o paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/latest/paper-age-aarch64-unknown-linux-gnu.tar.gz
tar -xf paper-age.tar.gz
sudo install paper-age /usr/local/bin/
sudo xattr -r -d com.apple.quarantine /usr/local/bin/paper-age ```
If you already have Rust installed, PaperAge can be installed with Cargo:
sh
cargo install paper-age
paper-age [OPTIONS] [INPUT]
<INPUT>
— The path to the file to read, use -
to read from stdin (max. ~1.5KB)-t
, --title <TITLE>
— Page title (max. 64 characters)
Default value: PaperAge
-o
, --output <OUTPUT>
— Output file name
Default value: out.pdf
-f
, --force
— Overwrite the output file if it already exists-g
, --grid
— Draw a grid pattern for debugging layout issues--fonts-license
— Print out the license for the embedded fonts-v
, --verbose...
— More output per occurrence-q
, --quiet...
— Less output per occurrence-h
, --help
— Print help-V
, --version
— Print versionRun the latest from git locally, assuming you have already installed Rust:
cargo test
cargo run -- -h
echo "Hello World" | cargo run -- --title="secrets from stdin" --out="stdin.pdf"
echo "Hello World" | cargo run -- -vvvv
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.
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.