From c8fb6199715316099cb9e675c447612f70e44151 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 29 Jan 2017 18:56:17 +0100 Subject: [PATCH] contrib: add ctlsock helper scripts --- contrib/ctlsock-decrypt.bash | 1 + contrib/ctlsock-encrypt.bash | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 120000 contrib/ctlsock-decrypt.bash create mode 100755 contrib/ctlsock-encrypt.bash 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