diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2016-12-21 10:19:49 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2016-12-21 10:19:49 -0200 |
commit | 46654f78de44630d8ea7f247ad65bb15908c2479 (patch) | |
tree | 58b07a5ac1f051287d28d27f34e7aa10571909f2 /lib/keyringer/actions/pwgen | |
parent | 4386b9572591046e75dd98adbcaa518319873dca (diff) | |
parent | 491ea8e72879c9c9244c2740e8a428b97249b58a (diff) | |
download | keyringer-46654f78de44630d8ea7f247ad65bb15908c2479.tar.gz keyringer-46654f78de44630d8ea7f247ad65bb15908c2479.tar.bz2 |
Merge tag 'upstream_keyringer_0.5.0' into debian
Upstream version 0.5.0
Diffstat (limited to 'lib/keyringer/actions/pwgen')
-rwxr-xr-x | lib/keyringer/actions/pwgen | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/keyringer/actions/pwgen b/lib/keyringer/actions/pwgen new file mode 100755 index 0000000..45d2bf9 --- /dev/null +++ b/lib/keyringer/actions/pwgen @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# +# Generates passphrases. +# + +# Load functions +LIB="`dirname $0`/../functions" +source "$LIB" || exit 1 + +# Parameters +SIZE="$3" +FILE="$2" + +# Generates a random passphrase +function keyringer_pwgen { + ENTROPY_BYTES=${1:-20} # 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. + head -c $ENTROPY_BYTES $ENTROPY_SOURCE | 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 "$BASEDIR" "$FILE" |