add_certifier() {
-local domain
-local trust
-local depth
+local domain=
+local trust=full
+local depth=1
local keyID
+local importinfo
local fingerprint
local ltsignCommand
local trustval
-# set default values for trust depth and domain
-domain=
-trust=full
-depth=1
-
# get options
while true ; do
case "$1" in
# + failure 'could not read key from '\''/root/dkg.gpg'\'''
# + echo 'could not read key from '\''/root/dkg.gpg'\'''
- keyID=$(echo "$importinfo" | grep '^gpg: key ' | cut -f2 -d: | cut -f3 -d\ )
+ keyID=$(echo "$importinfo" | grep '^gpg: key ' | cut -f2 -d: | cut -f3 -d\ ) || \
+ failure "There were no gpg keys in the file $keyID."
if [ -z "$keyID" ] || [ $(echo "$keyID" | wc -l) -ne 1 ] ; then
- failure "Expected there to be a single gpg key in the file."
+ failure "There was not exactly one gpg key in the file."
fi
else
# get the key from the key server
+ log debug "retrieving key from keyserver..."
gpg_sphere "--keyserver $KEYSERVER --recv-key '0x${keyID}!'" || failure "Could not receive a key with this ID from the '$KEYSERVER' keyserver."
fi
export keyID
-# get the full fingerprint of a key ID
-fingerprint=$(gpg_sphere "--list-key --with-colons --with-fingerprint 0x${keyID}!" | \
- grep '^fpr:' | grep "$keyID" | cut -d: -f10)
+# get the full fingerprint of new certifier key
+log debug "getting fingerprint of certifier key..."
+fingerprint=$(gpg_sphere "--list-key --with-colons --with-fingerprint 0x${keyID}!" \
+ | grep '^fpr:' | grep "$keyID" | cut -d: -f10)
if [ -z "$fingerprint" ] ; then
failure "Key '$keyID' not found."
fi
-log info -e "\nkey found:"
+log info "key found:"
gpg_sphere "--fingerprint 0x${fingerprint}!"
-echo "Are you sure you want to add the above key as a"
-read -p "certifier of users on this system? (y/N) " OK; OK=${OK:-N}
-if [ "${OK/y/Y}" != 'Y' ] ; then
- failure "Identity certifier not added."
+if [ "$PROMPT" = "true" ] ; then
+ echo "Are you sure you want to add the above key as a"
+ read -p "certifier of users on this system? (y/N) " OK; OK=${OK:-N}
+ if [ "${OK/y/Y}" != 'Y' ] ; then
+ failure "Identity certifier not added."
+ fi
+else
+ log debug "adding key without prompting."
fi
# export the key to the core keyring so that the core can sign the
# new certifier key
+log debug "exporting retrieved certifier key to core keyring..."
gpg_sphere "--export 0x${fingerprint}!" | gpg_core --import
case "$trust" in
;;
esac
-# this is the gpg "script" that gpg --edit-key will execute for the
-# core to sign certifier.
+# edit-key script to ltsign key
# NOTE: *all* user IDs will be ltsigned
ltsignCommand=$(cat <<EOF
ltsign
)
# core ltsigns the newly imported certifier key
+log debug "executing core ltsign script..."
if echo "$ltsignCommand" | \
- gpg_core --quiet --command-fd 0 --edit-key "0x${fingerprint}!" ; then
+ gpg_core --command-fd 0 --edit-key "0x${fingerprint}!" ; then
# transfer the new sigs back to the sphere keyring
gpg_core_sphere_sig_transfer
# update the sphere trustdb
+ log debug "updating sphere trustdb..."
gpg_sphere "--check-trustdb"
- log info -e "\nIdentity certifier added."
+ log info "Identity certifier added."
else
failure "Problem adding identify certifier."
fi