Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/noblemajo/vault
File encryption and decryption cli tool written in go.
https://github.com/noblemajo/vault
aes aes-256 api-tokens cli encryption encryption-decryption fileencryptor fileextension go go-cli golang golang-cli password-store passwordencryptor rsa rsa-cryptography x509
Last synced: 19 days ago
JSON representation
File encryption and decryption cli tool written in go.
- Host: GitHub
- URL: https://github.com/noblemajo/vault
- Owner: NobleMajo
- License: mit
- Created: 2024-07-06T07:36:01.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-23T21:39:25.000Z (23 days ago)
- Last Synced: 2024-10-24T09:26:50.455Z (23 days ago)
- Topics: aes, aes-256, api-tokens, cli, encryption, encryption-decryption, fileencryptor, fileextension, go, go-cli, golang, golang-cli, password-store, passwordencryptor, rsa, rsa-cryptography, x509
- Language: Go
- Homepage:
- Size: 140 KB
- Stars: 48
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Vault
![CI/CD](https://github.com/noblemajo/vault/actions/workflows/go-bin-release.yml/badge.svg)
![CI/CD](https://github.com/noblemajo/vault/actions/workflows/go-test-build.yml/badge.svg)
![MIT](https://img.shields.io/badge/license-MIT-blue.svg)
![](https://img.shields.io/badge/dynamic/json?color=green&label=watchers&query=watchers&suffix=x&url=https%3A%2F%2Fapi.github.com%2Frepos%2Fnoblemajo%2Fvault)
![](https://img.shields.io/badge/dynamic/json?color=yellow&label=stars&query=stargazers_count&suffix=x&url=https%3A%2F%2Fapi.github.com%2Frepos%2Fnoblemajo%2Fvault)
![](https://img.shields.io/badge/dynamic/json?color=navy&label=forks&query=forks&suffix=x&url=https%3A%2F%2Fapi.github.com%2Frepos%2Fnoblemajo%2Fvault)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
- [Vault](#vault)
- [Table of Contents](#table-of-contents)
- [Advertising](#advertising)
- [Encryption](#encryption)
- [Getting Started](#getting-started)
- [Requirements](#requirements)
- [Install via go](#install-via-go)
- [Install via wget](#install-via-wget)
- [Build](#build)
- [Build requirements](#build-requirements)
- [Usage](#usage)
- [Help](#help)
- [init](#init)
- [lock](#lock)
- [unlock](#unlock)
- [temp](#temp)
- [print](#print)
- [Other filename](#other-filename)
- [Build](#build-1)
- [Development](#development)
- [Install go](#install-go)
- [Contributing](#contributing)
- [License](#license)
- [Disclaimer](#disclaimer)## Advertising
*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 with `go` or `wget & tar` installed.## Install via go
###### *For this section go is required, check out the [install go guide](#install-go).*```sh
go install https://github.com/NobleMajo/vault
```## Install via wget
```sh
BIN_DIR="/usr/local/bin"
VAULT_VERSION="1.3.3"rm -rf $BIN_DIR/vault
wget https://github.com/NobleMajo/vault/releases/download/v$VAULT_VERSION/vault-v$VAULT_VERSION-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 the `go.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:
```ts
Vault is a file encryption and decryption cli tool written in go.
For more help, visit https://github.com/NobleMajo/vaultUsage:
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 messageFlags:
-h, --help help for vault
-b, --verbose enable verbose mode (VAULT_VERBOSE)
-v, --version prints versionUse "vault [command] --help" for more information about a command.
```### init
Create a new locked vault file:
```sh
vault init
```**OR**
### lock
Add some content to your `vault.txt` and lock it:
```sh
vim vault.txt
vault lock
```### unlock
Unlock the vault as plain `.txt` file:
```sh
vault unlock
```### temp
Unlock the file for 5 seconds as `.txt`.
In this time you can open it with an editor.
```sh
vault temp
```
Print the locked content in console:
```sh
vault print
```## Other filename
To choose a other file then the `vault.txt` use the second argument without extensions:
(`test` for `test.txt` and `test.vt`)
```sh
vault lock
vault temp
vault unlock
vault init
vault print
```## Build
###### *For this section go is required, check out the [install go guide](#install-go).*Clone the repo:
```sh
git clone https://github.com/NobleMajo/vault.git
cd vault
```Build the vault binary from source code:
```sh
make build
./vault
```# Development
###### *For this section go is required, check out the [install go guide](#install-go).*This part is work in process, i want use 'AIR' as autoreload tool:
```sh
make dev #WIP
```## Install go
The required go version for this project is in the `go.mod` file.To install and update go, I can recommend the following repo:
```sh
git clone [email protected]:udhos/update-golang.git golang-updater
cd golang-updater
sudo ./update-golang.sh
```# Contributing
Contributions to this project are welcome!
Interested users can refer to the guidelines provided in the [CONTRIBUTING.md](CONTRIBUTING.md) file to contribute to the project and help improve its functionality and features.# License
This project is licensed under the [MIT license](LICENSE), providing users with flexibility and freedom to use and modify the software according to their needs.# Disclaimer
This project is provided without warranties.
Users are advised to review the accompanying license for more information on the terms of use and limitations of liability.