Browse Source

Getting the gpg key from an email address also checks gpg config for default-key

Bob Mottram 7 years ago
parent
commit
2a7e6c323d
1 changed files with 26 additions and 0 deletions
  1. 26
    0
      src/freedombone-utils-gpg

+ 26
- 0
src/freedombone-utils-gpg View File

@@ -262,8 +262,34 @@ function gpg_pubkey_from_email {
262 262
     key_id=
263 263
     if [[ $key_owner_username != "root" ]]; then
264 264
         key_id=$(su -c "gpg --list-keys $key_email_address" - $key_owner_username | sed -n '2p' | sed 's/^[ \t]*//')
265
+
266
+        # If the default key is specified within gpg.conf
267
+        if [ -f /home/$key_owner_username/gpg.conf ]; then
268
+            if grep -q "default-key" /home/$key_owner_username/gpg.conf; then
269
+                default_gpg_key=$(cat /home/$key_owner_username/gpg.conf | grep "default-key")
270
+                if [[ "$default_gpg_key" != *'#'* ]]; then
271
+                    default_gpg_key=$(cat /home/$key_owner_username/gpg.conf | grep "default-key" | awk -F ' ' '{print $2}')
272
+                    if [ ${#default_gpg_key} -gt 3 ]; then
273
+                        key_id=$(su -c "gpg --list-keys $default_gpg_key" - $key_owner_username | sed -n '2p' | sed 's/^[ \t]*//')
274
+                    fi
275
+                fi
276
+            fi
277
+        fi
265 278
     else
266 279
         key_id=$(gpg --list-keys $key_email_address | sed -n '2p' | sed 's/^[ \t]*//')
280
+
281
+        # If the default key is specified within gpg.conf
282
+        if [ -f /root/gpg.conf ]; then
283
+            if grep -q "default-key" /root/gpg.conf; then
284
+                default_gpg_key=$(cat /root/gpg.conf | grep "default-key")
285
+                if [[ "$default_gpg_key" != *'#'* ]]; then
286
+                    default_gpg_key=$(cat /root/gpg.conf | grep "default-key" | awk -F ' ' '{print $2}')
287
+                    if [ ${#default_gpg_key} -gt 3 ]; then
288
+                        key_id=$(gpg --list-keys $default_gpg_key | sed -n '2p' | sed 's/^[ \t]*//')
289
+                    fi
290
+                fi
291
+            fi
292
+        fi
267 293
     fi
268 294
     echo $key_id
269 295
 }