summaryrefslogtreecommitdiff
path: root/src/backend/crypto/ckey_direct.sh.sample
blob: 1c41d53acc1de46b70a5bd700f5d2dba8ae2d120 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

# This uses a key supplied by the user
# If OpenSSL is installed, you can generate a pseudo-random key by running:
#	openssl rand -hex 32
# To get a true random key, run:
#	wget -q -O - 'https://www.random.org/cgi-bin/randbyte?nbytes=32&format=h' | tr -d ' \n'; echo

[ "$#" -lt 1 ] && echo "cluster_key_command usage: $0 %R [%p]" 1>&2 && exit 1
# Supports environment variable PROMPT

FD="$1"
[ ! -t "$FD" ] && echo "file descriptor $FD does not refer to a terminal" 1>&2 && exit 1

[ "$2" ] && PROMPT="$2"


# ----------------------------------------------------------------------

[ ! "$PROMPT" ] && PROMPT='Enter cluster key as 64 hexadecimal characters: '

stty -echo <&"$FD"

echo 1>&"$FD"
echo -n "$PROMPT" 1>&"$FD"
read KEY <&"$FD"

stty echo <&"$FD"

if [ "$(expr "$KEY" : '[0-9a-fA-F]*$')" -ne 64 ]
then	echo 'invalid;  must be 64 hexadecimal characters' 1>&2
	exit 1
fi

echo "$KEY"

exit 0