A simple utility to encrypt and decrypt files utilizing a user provided password. GoSecure is written in Golang utilizing the standard crypto libraries. Files are encrypted utlizing AES-256-GCM symetric encryption algorithm and Argon2id key derivation function.
- 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
$ ./gosecure -e -in "/path/to/file" -k "<Your-Password>"
$ ./gosecure -d -in "/path/to/file" -k "<Your-Password>"
-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.
┌────────┐ ┌──────────┐ ┌─────────────────────────────────┐
│ SALT │ │ Password │ │ Plaintext │
└────┬───┘ └───────┬──┘ └────────────────┬────────────────┘
│ │ │
│ │ │
├──────────┐ │ │
│ │ │ │
│ ▼ ▼ ▼
│ ┌────────────────┐ ┌──────────────────┐
│ │ │ │ │
│ │ Argon2id KDF ├─────►│ GCM Encryption │
│ │ │ │ │
│ └────────────────┘ └────────┬─────────┘
│ │
│ │
▼ ▼
┌────────┬─────────────────────────────────────────────────┐
│ SALT │ Ciphertext │
├────────┼─────────────────────────────────────────────────┤
0 32 EOF
0 32 EOF
┌──────────┐ ├────────┼─────────────────────────────────────────────────┤
│ Password │ │ SALT │ Ciphertext │
└─────┬────┘ └───┬────┴──────────────────────────┬──────────────────────┘
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
▼ ▼ ▼
┌────────────────┐ ┌──────────────────┐
│ │ │ │
│ Argon2id KDF ├─────────────────►│ GCM Encryption │
│ │ │ │
└────────────────┘ └─────────┬────────┘
│
│
▼
┌─────────────────────────────────────────────────┐
│ Plaintext │
└─────────────────────────────────────────────────┘
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/]