Last active
August 7, 2024 13:54
-
-
Save lopes/b61f81df5c22a495c60f2e4b88c5da3b to your computer and use it in GitHub Desktop.
Packs and unpacks sensitive data in a more secure fashion. #shell #shellscript #cryptography
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/bin/sh | |
#bookepr.sh | |
# | |
# Packs and unpacks sensitive data in a more secure fashion. | |
# Read $HELP for usage tips. | |
# | |
# Author: José Lopes <lopes.id> | |
# License: MIT | |
# Date: 2021-09-28 | |
## | |
HELP=" | |
USAGE | |
bookepr <encrypt|decrypt> [file.txt|directory|file.txt.tgz.gpg] | |
bookepr [--help|-h] | |
EXAMPLES | |
bookepr enc passwords.json # create: passwords.json.tgz.gpg | |
bookepr enc mfa # create: mfa.tgz.gpg | |
bookepr dec passwords.json.tgz.gpg # decrypt and extract passwords.json | |
bookepr dec mfa.tgz.gpg # decrypt and extract mfa directory | |
" | |
ERROR=" | |
Invalid command: \"$1\" | |
Use --help for usage tips | |
" | |
function encrypt(){ | |
echo "Packing up data..."; tar -czvf "$1.tgz" "$1" | |
echo "Encrypting data..."; gpg --symmetric --cipher-algo aes256 "$1.tgz" | |
echo "Removing unencrypted data..."; rm -rf "$1" "$1.tgz" | |
} | |
function decrypt(){ | |
echo "Decrypting data..."; gpg -o "${1%.*}" --decrypt "$1" | |
echo "Unpacking data..."; tar -xzvf "${1%.*}" | |
echo "Removing garbage..."; rm -rf "$1" "${1%.*}" | |
} | |
case "$1" in | |
"--help" | "-h") echo "$HELP"; exit 0 ;; | |
"encrypt" | "enc") encrypt "$2" ;; | |
"decrypt" | "dec") decrypt "$2" ;; | |
*) echo "$ERROR" ;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment