Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ab/paperback
https://github.com/ab/paperback
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/ab/paperback
- Owner: ab
- License: gpl-3.0
- Created: 2018-08-14T04:42:25.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2023-01-18T04:41:45.000Z (almost 2 years ago)
- Last Synced: 2024-08-08T20:18:51.445Z (5 months ago)
- Language: Ruby
- Size: 1.59 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Paperback
[![Gem Version](https://badge.fury.io/rb/paperback.svg)](https://rubygems.org/gems/paperback)
[![Inline Docs](http://inch-ci.org/github/ab/paperback.svg?branch=master)](http://www.rubydoc.info/github/ab/paperback/master)
[![Test status](https://github.com/ab/paperback/actions/workflows/tests.yml/badge.svg)](https://github.com/ab/paperback/actions/workflows/tests.yml)*Paperback* is a library that facilitates the creation of paper offline backups
of small amounts of important data, such as encryption keys.It is designed to be used for long-term paper storage. Arbitrary data to be
backed up is encoded using QR codes,
[sixword](https://github.com/ab/sixword) English text, and Base64.Nothing else approaches the durability and inexpensiveness of paper. This
library is designed to facilitate the restoration process, which would be
tedious and error-prone when using human typists or even OCR.The QR code is easily machine readible, the sixword text is easiest to
transcribe for humans, and the Base64 serves as a fallback for broadest
compatibility.By default, the backup data is GPG-encrypted with a symmetric passphrase to
avoid exposing data to the printer (or scanner, assuming you cover the
passphrase when scanning).The printed document does contain the SHA256 digest of the original content for
error correction, which is not a problem for random data like keys. But if you
are backing up low-entropy secrets and want to preserve the printer-blindness
property, pad the content with a random salt or encrypt it before using
paperback.## Usage
Typical usage will be through the `paperback` executable. Use the `--help`
option for a usage menu.```sh
# Back up the content in data.key
paperback data.key out.pdf
```### Sample output
See [sample directory](./sample)
![sample page one](./sample/sample.pg1.png)
![sample page two](./sample/sample.pg2.png)### More complex patterns
See the [YARD documentation](http://www.rubydoc.info/github/ab/paperback/master).
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request