feat (plugins): aes encrypt/decrypt with openssl
parent
cc58ea3126
commit
2c5220a2f1
|
|
@ -0,0 +1,66 @@
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
function encrypt-payload() {
|
||||||
|
PAYLOAD=$1
|
||||||
|
KEY=$2
|
||||||
|
ALGO=${3:-aes-256-cbc}
|
||||||
|
|
||||||
|
# exit with message if payload is empty string
|
||||||
|
if [[ -z "$PAYLOAD" ]]; then
|
||||||
|
echo "[x] Payload is empty!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create random key if not provided
|
||||||
|
if [[ -z "$KEY" ]]; then
|
||||||
|
KEY=$(echo "$RANDOM$RANDOM" | md5sum - | head -c 13)
|
||||||
|
echo "[!] Key not provided, therefore choosen a random string -> $KEY" 1>&2
|
||||||
|
echo "[!] To hide this message, provide the key as second argument or redirect stderr to /dev/null" 1>&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$1" ]]; then
|
||||||
|
# if payload file then encrypt with -in
|
||||||
|
OUTFILE=$(mktemp)
|
||||||
|
if ! openssl enc "-$ALGO" -a -A -e -pbkdf2 -pass pass:"$KEY" -in "$PAYLOAD" -out "$OUTFILE"; then
|
||||||
|
echo "[x] Something went wrong!"
|
||||||
|
rm -rf "$OUTFILE"
|
||||||
|
else
|
||||||
|
echo "[!] Saved the encrypted file to '$OUTFILE'"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# if payload file then encrypt with stdin
|
||||||
|
echo -ne "$1" | openssl enc "-$ALGO" -a -A -e -pbkdf2 -pass pass:"$KEY"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function decrypt-payload() {
|
||||||
|
PAYLOAD=$1
|
||||||
|
KEY=$2
|
||||||
|
ALGO=${3:-aes-256-cbc}
|
||||||
|
|
||||||
|
# exit with message if payload is empty string
|
||||||
|
if [[ -z "$PAYLOAD" ]]; then
|
||||||
|
echo "[x] Payload is empty!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create random key if not provided
|
||||||
|
if [[ -z "$KEY" ]]; then
|
||||||
|
echo "[x] Key is empty!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$1" ]]; then
|
||||||
|
# if payload file then encrypt with -in
|
||||||
|
OUTFILE=$(mktemp)
|
||||||
|
if ! openssl enc "-$ALGO" -a -A -d -pbkdf2 -pass pass:"$KEY" -in "$PAYLOAD" -out "$OUTFILE"; then
|
||||||
|
echo "[x] Something went wrong!"
|
||||||
|
rm -rf "$OUTFILE"
|
||||||
|
else
|
||||||
|
echo "[!] Saved the encrypted file to '$OUTFILE'"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# if payload file then encrypt with stdin
|
||||||
|
echo -ne "$1" | openssl enc "-$ALGO" -a -A -d -pbkdf2 -pass pass:"$KEY"
|
||||||
|
fi
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue