From b44139f777478ba15b1132a7d6f30c5e7c34bb89 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Tue, 2 Jun 2020 14:56:25 +0200 Subject: [PATCH] Add example script to get secret from CLI (#18) commit a8a28a4c327bfe74244f32444ed173e65ff35db3 Author: Knut Ahlers Date: Tue Jun 2 14:55:31 2020 +0200 Adjust coding-style to match other scripts, simplify a little Signed-off-by: Knut Ahlers commit 625ddd0a9db0d084c670eff81b8dfc259f76b464 Author: bestlibre Date: Mon May 11 14:51:10 2020 +0200 Add exemple script to get secret from CLI closes #18 Signed-off-by: Knut Ahlers --- cli_get.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cli_get.sh diff --git a/cli_get.sh b/cli_get.sh new file mode 100644 index 0000000..137fa93 --- /dev/null +++ b/cli_get.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -euo pipefail + +deps=(curl jq) +for cmd in "${deps[@]}"; do + which ${cmd} >/dev/null || { + echo "'${cmd}' util is required for this script" + exit 1 + } +done + +# Get URL from CLI argument +url="${1:-}" +[[ -n $url ]] || { + echo "Usage: $0 'URL to get the secret'" + exit 1 +} +# normalize url and extract parts +url="${url/|/%7C}" +host="${url%%/\#*}" +idpass="${url##*\#}" +pass="${idpass##*\%7C}" +id="${idpass%%\%7C*}" +geturl="${host}/api/get/${id}" + +# fetch secret and decrypt to STDOUT +curl -sSf "${geturl}" | jq -r ".secret" | + openssl aes-256-cbc -base64 -pass "pass:${pass}" -md md5 -d 2>/dev/null