Commit Diff


commit - 9346f86cf71d70878426fcce33e52c43d7e5a4f7
commit + 2df2facb7ac1d124f5543b875fc3199cd25e3283
blob - a3d72cd633f1f796919e90c2bf36a8df12599ef4
blob + 4cd737798e4411c8f7fd4940194fa6d2f57bd45d
--- badphrase
+++ badphrase
@@ -4,6 +4,7 @@ set -e
 charmin=0
 charmax=0
 copy=0
+diceware=0
 entropymin=128
 includenames=0
 verbose=0
@@ -11,13 +12,14 @@ wordlist=/usr/share/dict/words
 wordnum=8
 
 usage() {
-	echo "usage: ${0##*/} [-chiv] [-e entropymin] [-l wordlist] [-m charmax] \
+	echo "usage: ${0##*/} [-cdhiv] [-e entropymin] [-l wordlist] [-m charmax] \
 [-n charmin] [-w wordnum]" 1>&2
 }
 
-while getopts ce:hil:m:n:vw: arg; do
+while getopts cde:hil:m:n:vw: arg; do
 	case $arg in
 	c)	copy=1;;
+	d)	diceware=1;;
 	e)	entropymin=${OPTARG};;
 	h)	usage; exit;;
 	i)	includenames=1;;
@@ -42,12 +44,19 @@ fi
 
 # password generation pipeline
 
+# extract 2nd column if we're on a diceware list
+awk -v diceware="$diceware" 'BEGIN {
+	if (diceware)
+		rec = 2
+	else
+		rec = 1
+}
+{ print $rec }' "$wordlist" | \
 # filter and shuffle the wordlist
-grep -x "${re_class}\{${charmin},${charmax}\}" "$wordlist" | sort -R | \
+grep -x "${re_class}\{${charmin},${charmax}\}" | sort -R | \
 # test entropy against $entropymin and if that worked print first $wordnum lines
 { awk -v prog="${0##*/}" -v entropymin="$entropymin" -v wordnum="$wordnum" -v \
-verbose="$verbose" '
-NR <= wordnum { line[NR] = $0 }
+verbose="$verbose" 'NR <= wordnum { line[NR] = $0 }
 END {
 	perms = NR
 	# show entropy