diff options
l--------- | contrib/ctlsock-decrypt.bash | 1 | ||||
-rwxr-xr-x | contrib/ctlsock-encrypt.bash | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/contrib/ctlsock-decrypt.bash b/contrib/ctlsock-decrypt.bash new file mode 120000 index 0000000..b95ace8 --- /dev/null +++ b/contrib/ctlsock-decrypt.bash @@ -0,0 +1 @@ +ctlsock-encrypt.bash
\ No newline at end of file diff --git a/contrib/ctlsock-encrypt.bash b/contrib/ctlsock-encrypt.bash new file mode 100755 index 0000000..60a88e7 --- /dev/null +++ b/contrib/ctlsock-encrypt.bash @@ -0,0 +1,34 @@ +#!/bin/bash -eu +# +# Interactively encrypt file names and paths by querying a gocryptfs +# control socket. +# +# Dependencies: +# Debian: apt-get install jq netcat-openbsd +# Fedora: dnf install jq nmap-ncat +MYNAME=$(basename $0) +if [[ $# -ne 1 || $1 == "-h" ]] ; then + echo "Usage: $MYNAME SOCKET" + exit 1 +fi +SOCK=$1 +# Bail out early (before even prompting the user) if the socket does +# not exist +if [[ ! -S $SOCK ]] ; then + echo "'$SOCK' is not a socket" >&2 + exit 1 +fi +OPERATION=EncryptPath +if [[ $MYNAME == "ctlsock-decrypt.bash" ]] ; then + OPERATION=DecryptPath +fi +while true ; do + echo -n "Input path : " + read IN + echo -n "Transformed path: " + JSON=$(echo "{\"$OPERATION\":\"$IN\"}" | nc -U $SOCK) + ENCRYPTED=$(echo $JSON | jq -r '.Result') + echo $ENCRYPTED + echo "Complete reply : $JSON" + echo +done |