papercrypt

command module
v1.0.0 Latest Latest
Warning

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

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

README

PaperCrypt - Printable Backup Documents

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 is 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. Alternatively, you can also output a text file containing only headers and encrypted data.

  • Data Integrity: To verify the integrity of the data, PaperCrypt embeds checksums within the encrypted data portion 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 storage to safeguards your sensitive data against online threats, as well as an option to store your data in an off-site location. This provides an additional 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 build -o bin/papercrypt

or using task:

task build

Usage

Generating a new key:

A 24 word mnemonic phrase is suitable for our purposes, 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, let's call it data.json.

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 will ask you for an encryption key, for which you can use your mnemonic phrase from earlier.

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 AGPL-3.0-or-later.

License Logo

Acknowledgments

PaperCrypt was 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