Browse Source

Remove gpg key within user control panel

Bob Mottram 9 years ago
parent
commit
caaaeac537
1 changed files with 30 additions and 3 deletions
  1. 30
    3
      src/freedombone-controlpanel-user

+ 30
- 3
src/freedombone-controlpanel-user View File

@@ -33,6 +33,8 @@ PROJECT_NAME='freedombone'
33 33
 export TEXTDOMAIN=${PROJECT_NAME}-controlpanel-user
34 34
 export TEXTDOMAINDIR="/usr/share/locale"
35 35
 
36
+MY_EMAIL_ADDRESS=$USER@$HOSTNAME
37
+
36 38
 function any_key {
37 39
     echo ' '
38 40
     read -n1 -r -p $"Press any key to continue..." key
@@ -345,7 +347,6 @@ function block_unblock_subject {
345 347
 }
346 348
 
347 349
 function show_gpg_key {
348
-    MY_EMAIL_ADDRESS=$USER@$HOSTNAME
349 350
     GPG_ID=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "pub" | head -n 1 | awk -F '/' '{print $2}' | awk -F ' ' '{print $1}')
350 351
     GPG_FINGERPRINT=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "key fingerprint" | head -n 1 | awk -F '= ' '{print $2}')
351 352
     GPG_DATE=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "pub" | head -n 1 | awk -F '/' '{print $2}' | awk -F ' ' '{print $2}')
@@ -364,7 +365,7 @@ function add_gpg_key {
364 365
     case $sel in
365 366
         0)
366 367
             ADD_EMAIL_ADDRESS=$(<$data)
367
-            if [ ${#ADD_EMAIL_ADDRESS} -gt 1 ]; then
368
+            if [ ${#ADD_EMAIL_ADDRESS} -gt 2 ]; then
368 369
                 if [[ $ADD_EMAIL_ADDRESS == *"@"* && $ADD_EMAIL_ADDRESS == *"."* ]]; then
369 370
                     clear
370 371
                     gpg --search-keys $ADD_EMAIL_ADDRESS
@@ -376,10 +377,36 @@ function add_gpg_key {
376 377
             fi
377 378
             ;;
378 379
     esac
379
-
380 380
 }
381 381
 
382 382
 function remove_gpg_key {
383
+    data=$(tempfile 2>/dev/null)
384
+    trap "rm -f $data" 0 1 2 5 15
385
+    dialog --title $"Remove someone's PGP/GPG key" \
386
+           --backtitle $"Freedombone User Control Panel" \
387
+           --inputbox $"Enter their email address below" 8 60 2>$data
388
+    sel=$?
389
+    case $sel in
390
+        0)
391
+            REMOVE_EMAIL_ADDRESS=$(<$data)
392
+            if [ ${#REMOVE_EMAIL_ADDRESS} -gt 2 ]; then
393
+                if [[ $REMOVE_EMAIL_ADDRESS == *"@"* && $REMOVE_EMAIL_ADDRESS == *"."* ]]; then
394
+                    if [[ $REMOVE_EMAIL_ADDRESS != $MY_EMAIL_ADDRESS ]]; then
395
+                        clear
396
+                        gpg --delete-key $REMOVE_EMAIL_ADDRESS
397
+                    else
398
+                        dialog --title $"Remove someone's PGP/GPG key" \
399
+                               --backtitle $"Freedombone User Control Panel" \
400
+                               --msgbox $"It's not a good idea to remove your own encryption key" 6 65
401
+                    fi
402
+                else
403
+                    dialog --title $"Unrecognised email address" \
404
+                           --backtitle $"Freedombone User Control Panel" \
405
+                           --msgbox $"This doesn't look like an email address" 6 50
406
+                fi
407
+            fi
408
+            ;;
409
+    esac
383 410
 }
384 411
 
385 412
 function add_ssh_key {