sed 's/:/\\x3a/g'
}
+# prompt for GPG-formatted expiration, and emit result on stdout
+get_gpg_expiration() {
+ local keyExpire=
+
+ cat >&2 <<EOF
+Please specify how long the key should be valid.
+ 0 = key does not expire
+ <n> = key expires in n days
+ <n>w = key expires in n weeks
+ <n>m = key expires in n months
+ <n>y = key expires in n years
+EOF
+ while [ -z "$keyExpire" ] ; do
+ read -p "Key is valid for? (0) " keyExpire
+ if ! test_gpg_expire ${keyExpire:=0} ; then
+ echo "invalid value" >&2
+ unset keyExpire
+ fi
+ done
+ echo "$keyExpire"
+}
+
# remove all lines with specified string from specified file
remove_line() {
local file
;;
'uid') # user ids
if [ "$lastKey" != pub ] ; then
- log " - got a user ID after a sub key! user IDs should only follow primary keys!"
- continue
- fi
- # don't bother with a uid if there is no valid or reasonable primary key.
- if [ "$keyOK" != true ] ; then
+ log " - got a user ID after a sub key?! user IDs should only follow primary keys!"
continue
fi
# if an acceptable user ID was already found, skip
- if [ "$uidOK" ] ; then
+ if [ "$uidOK" = 'true' ] ; then
continue
fi
- # if the user ID does not match, skip
- if [ "$(echo "$uidfpr" | gpg_unescape)" != "$userID" ] ; then
- continue
- fi
- # if the user ID validity is not ok, skip
- if [ "$validity" != 'u' -a "$validity" != 'f' ] ; then
+ # if the user ID does matches...
+ if [ "$(echo "$uidfpr" | gpg_unescape)" = "$userID" ] ; then
+ # and the user ID validity is ok
+ if [ "$validity" = 'u' -o "$validity" = 'f' ] ; then
+ # mark user ID acceptable
+ uidOK=true
+ fi
+ else
continue
fi
- # mark user ID acceptable
- uidOK=true
-
# output a line for the primary key
# 0 = ok, 1 = bad
if [ "$keyOK" -a "$uidOK" -a "$lastKeyOK" ] ; then