blob: e1e8947d0a786617469cc7da7f4644795c06266f (
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
|
#!/usr/bin/env bash
#
# Generates passphrases.
#
# Load functions
LIB="`dirname $0`/../functions"
source "$LIB" write $* || exit 1
# Parameters
SIZE="$3"
FILE="$2"
# Generates a random passphrase
function keyringer_pwgen {
ENTROPY_BYTES=${1:-40} # in bytes
ENTROPY_SOURCE="${ENTROPY_SOURCE:-/dev/urandom}"
# Strip possible newlines if output is wrapped.
# Also strip trailing = signs as they add nothing to the password's entropy.
dd bs=1 count=$ENTROPY_BYTES if=$ENTROPY_SOURCE status=none | base64 | tr -d '\n='
echo
}
# Check
if [ -z "$FILE" ]; then
echo "Usage: keyringer <keyring> $BASENAME <secret> [size]"
exit 1
elif [ ! -z "$SIZE" ] && ! echo $SIZE | egrep -q '^[0-9]+$'; then
echo "$SIZE is not a number"
exit 1
fi
# Encrypt and store a randomly-generated secret
keyringer_pwgen $SIZE | keyringer_exec encrypt-batch "$BASEDIR" "$FILE" && echo "Secret generated and stored."
|