File encryption and decryption cli tool written in go.
Vault
Vault is a minimalistic CLI tool that encrypts and decrypts plain files into Vault files. (.vt).
The idea behind this tool is to have a CLI utility that can quickly and easily encrypt individual files, allowing users to securely store API tokens, secrets, credentials, or any private data on their own disk.
Table of Contents
- Advertising - Encryption - Requirements - Install via go - Install via wget - Build requirements - Help - init - lock - unlock - temp - print - Other filename - Build - Install goAdvertising
Are you also just a normal software developer or admin with lots of API keys, encryption keys or other secrets and credentials? Or do you simply have logs or plain text files that you want to send to someone securely? Then I have exactly what you are looking for today!Hold on tight and take a closer look at this command line interface tool because it might meet your exact needs.
Encryption
Vault uses asymmetric RSA encryption and symmetric AES-256 encryption to keep your data as secure as possible. To do this, vault uses private and public key on disk (default:~/.ssh/id_rsa.pub) and also asks you for a password.
Currently no elliptic curve support! Just rsa.
Getting Started
Requirements
None windows system withgo or wget & tar installed.
Install via go
For this section go is required, check out the install go guide.
go install https://github.com/NobleMajo/vault
Install via wget
BIN_DIR="/usr/local/bin"
VAULT_VERSION="1.3.3"
rm -rf $BIN_DIR/vault wget https://github.com/NobleMajo/vault/releases/download/v$VAULTVERSION/vault-v$VAULTVERSION-linux-amd64.tar.gz -O /tmp/vault.tar.gz tar -xzvf /tmp/vault.tar.gz -C $BIN_DIR/ vault rm /tmp/vault.tar.gz
Build
Build requirements
To build, you need to install go. The required go version is in thego.mod file.
Usage
Vault operations are sub commands defined via the first command line argument.Help
The following block is the main help output if you do not use a subcommand or use help:Vault is a file encryption and decryption cli tool written in go.
For more help, visit https://github.com/NobleMajo/vault
Usage: vault [flags] vault [command]
Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command init Create a initial encrypted vault file for default text lock Locks your plain file into a vault file passwd Changes the password of your vault file print Prints the decrypted content of your vault file temp Temporary unlocks your vault file into a plain file unlock Unlocks your vault file into a plain file version Prints version message
Flags: -h, --help help for vault -b, --verbose enable verbose mode (VAULT_VERBOSE) -v, --version prints version
Use "vault [command] --help" for more information about a command.
init
Create a new locked vault file:vault init
OR
lock
Add some content to yourvault.txt and lock it:
vim vault.txt
vault lock
unlock
Unlock the vault as plain.txt file:
vault unlock
temp
Unlock the file for 5 seconds as.txt.
In this time you can open it with an editor.
vault temp
vault print
Other filename
To choose a other file then thevault.txt use the second argument without extensions:
(test for test.txt and test.vt)
vault lock <filename>
vault temp <filename>
vault unlock <filename>
vault init <filename>
vault print <filename>
Build
For this section go is required, check out the install go guide.
Clone the repo:
git clone https://github.com/NobleMajo/vault.git cd vault
Build the vault binary from source code:
make build ./vault
Development
For this section go is required, check out the install go guide.
This part is work in process, i want use 'AIR' as autoreload tool:
make dev #WIP
Install go
The required go version for this project is in thego.mod file.
To install and update go, I can recommend the following repo:
git clone git@github.com:udhos/update-golang.git golang-updater cd golang-updater sudo ./update-golang.sh