README ¶
Description
A simple utility to easily encrypt and decrypt files written in Golang. Goshield utilizes the AES-256-GCM symetric encryption algorithm and Argon2id key derivation function to secure files. Files are encrypted and decrypted utilizing a user provided password.
Instructions
Installation
- Navigate to the latest release
- Download the binary appropriate for your operating system and architecture (Windows-AMD64 or Linux-AMD64)
- Additionally, you can download the latest source and build an appropriate binary for your architecture Note: We are only able to support official builds
Usage
File Encryption
$ ./gosecure -e -in "/path/to/file" -k "<Your-Password>"
File Decryption
$ ./gosecure -d -in "/path/to/file" -k "<Your-Password>"
Command Line Options
-e Encrypt the input data.
-d Decrypt the input data.
-in The input filename, standard input by default.
-k The password to derive the key from.
-v Enables verbosity to default logger.
-debug Enables debug output to default logger.
Process Diagrams
Encryption
┌────────┐ ┌──────────┐ ┌─────────────────────────────────┐
│ SALT │ │ Password │ │ Plaintext │
└────┬───┘ └───────┬──┘ └────────────────┬────────────────┘
│ │ │
│ │ │
├──────────┐ │ │
│ │ │ │
│ ▼ ▼ ▼
│ ┌────────────────┐ ┌──────────────────┐
│ │ │ │ │
│ │ Argon2id KDF ├─────►│ GCM Encryption │
│ │ │ │ │
│ └────────────────┘ └────────┬─────────┘
│ │
│ │
▼ ▼
┌────────┬─────────────────────────────────────────────────┐
│ SALT │ Ciphertext │
├────────┼─────────────────────────────────────────────────┤
0 32 EOF
Decryption
0 32 EOF
┌──────────┐ ├────────┼─────────────────────────────────────────────────┤
│ Password │ │ SALT │ Ciphertext │
└─────┬────┘ └───┬────┴──────────────────────────┬──────────────────────┘
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
▼ ▼ ▼
┌────────────────┐ ┌──────────────────┐
│ │ │ │
│ Argon2id KDF ├─────────────────►│ GCM Encryption │
│ │ │ │
└────────────────┘ └─────────┬────────┘
│
│
▼
┌─────────────────────────────────────────────────┐
│ Plaintext │
└─────────────────────────────────────────────────┘
Credit
Initial development and work is based off of the hard work of the following folks:
- Eli Bendersky [https://eli.thegreenplace.net]
- Mert Kimyonşen [https://github.com/mrtkmynsndev/]
Documentation ¶
There is no documentation for this package.
Click to show internal directories.
Click to hide internal directories.