papercrypt

command module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2023 License: AGPL-3.0 Imports: 4 Imported by: 0

README

PaperCrypt

Printable Backup Documents

Go Report Card Go Reference GitHub release (latest SemVer) GitHub


PaperCrypt is a Go-based command-line tool designed to enhance the security of your sensitive data through the generation of printable backup documents. These documents, referred to as "PaperCrypt" Documents, combine the robust encryption capabilities of the OpenPGP with the resilience and simplicity of a physical hardcopy. This ensures the confidentiality and integrity of your data, while also providing a physical backup that 's not susceptible to digital threats.

Please note that to decrypt the data from a PaperCrypt Document, you will need the original passphrase used during the encryption process. Treat this passphrase with care; if it is lost, the data will be irrecoverable.

Features

  • Encryption: PaperCrypt utilizes the GopenPGP library to apply advanced cryptographic techniques, securing your data with industry-standard algorithms.

  • PDF Generation: PaperCrypt can output PDF documents ready for printing, that include all the information needed to recover the encrypted data.

  • Data Integrity: To verify the integrity of the data, PaperCrypt embeds checksums within the encrypted data section of its documents. This ensures that the data remains unaltered during backup and restoration processes.

  • Offline Security: By generating printable backup documents, PaperCrypt offers an offline solution to safeguard your sensitive data against online threats, as well as an option to store your data in an off-site location. This provides a layer of security, as it ensures that your data remains safe and accessible even in the event of a catastrophic failure, malicious attack, or natural disaster.

Installation

TODO(2023-08-11): Add installation instructions.

From source

  1. Install Go: Ensure you have Go installed. If not, you can download it from here.

  2. Clone the Repository: Clone the repository to your local machine:

git clone https://github.com/TMUniversal/papercrypt.git
  1. Navigate to the Directory:
cd papercrypt
  1. Install Dependencies: Run the following command to install the required dependencies:
go mod tidy
  1. Build PaperCrypt:
go generate ./... && \
go build -o bin/papercrypt

or using task:

task build

Usage

Generating a new key:

A 24 word mnemonic phrase is suitable for real-world use, but you can use any string of words or characters.

Generate one with your tool of choice, you can use seedtool-cli:

seedtool --out bip39 --count 32

or use this tool directly:

papercrypt generateKey --words 24 --out mnemonic.txt

to generate a 24 word mnemonic phrase.

Save your data as a JSON file: data.json, for example.

Example data.json file:

{
  "bitwarden": {
    "backup_location": "https://your-bucket.s3.amazonaws.com/bitwarden-backup.tar.gz",
    "access_key_id": "YOUR_S3_ACCESS_KEY_ID",
    "secret_key": "YOUR_S3_SECRET_KEY",
    "encryption_key": "your-backup-encryption-key",
    "admin_token": "your-bitwarden-admin-token"
  }
}

Then, run

papercrypt generate --in data.json --out output.pdf

to generate the file containing your data, and the decryption instructions.

The program then asks you for an encryption key, for which you can use your mnemonic phrase from earlier.

Please see the examples directory for the generated PDF files.

Contributing

Contributions to PaperCrypt are welcomed and encouraged! If you have suggestions for improvements, bug fixes, or new features, please feel free to submit a pull request.

License

PaperCrypt is licensed under the terms of the GNU Affero General Public License, version 3.0 or later (GNU AGPL-3.0-or-later).

License Logo

Acknowledgments

PaperCrypt is developed leveraging the power of Go and a suite of dependable open source libraries. We extend our gratitude to the developers behind GopenPGP, GoFPDF, and other foundational components.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL