From 763544efd7d92e0e6a48a859cdfc52d1536eb4af Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Thu, 27 Oct 2016 10:35:45 +0100
Subject: [PATCH] Tidying key recovery from usb

---
 src/freedombone-config     | 39 +++++++++++---------------------------
 src/freedombone-keydrive   |  4 ++++
 src/freedombone-recoverkey |  6 ++++++
 3 files changed, 21 insertions(+), 28 deletions(-)

diff --git a/src/freedombone-config b/src/freedombone-config
index d45251c42..494d45a87 100755
--- a/src/freedombone-config
+++ b/src/freedombone-config
@@ -955,8 +955,8 @@ function reconstruct_key {
 }
 
 function interactive_gpg_from_usb {
-    dialog --title $"Encryption keys" \
-           --msgbox $'Plug in a USB drive containing a copy of your full key or key fragment' 6 70
+    dialog --title $"Recover Encryption Keys" \
+           --msgbox $'Plug in a USB keydrive containing a copy of your full key or key fragment' 6 70
 
     HOME_DIR=/home/$MY_USERNAME
     GPG_LOADING="yes"
@@ -964,34 +964,17 @@ function interactive_gpg_from_usb {
     GPG_CTR=0
     while [[ $GPG_LOADING == "yes" ]]
     do
-        if [[ $INSTALLING_ON_BBB == "yes" ]]; then
-            GPG_USB_DRIVE='/dev/sda1'
-            if [ ! -b $GPG_USB_DRIVE ]; then
-                if (( GPG_CTR > 0 )); then
-                    reconstruct_key
-                    return 0
-                fi
-                dialog --title $"Encryption keys" --msgbox $'No USB drive found' 6 30
-                exit 739836
-            fi
-        else
-            GPG_USB_DRIVE='/dev/sdb1'
-            if [ ! -b $GPG_USB_DRIVE ]; then
-                GPG_USB_DRIVE='/dev/sdc1'
-                if [ ! -b $GPG_USB_DRIVE ]; then
-                    GPG_USB_DRIVE='/dev/sdd1'
-                    if [ ! -b $GPG_USB_DRIVE ]; then
-                        if (( GPG_CTR > 0 )); then
-                            reconstruct_key
-                            return 0
-                        fi
-                        dialog --title $"Encryption keys" --msgbox $'No USB drive found' 6 30
-                        exit 27852
-                    fi
-                fi
+        if [ ! -b $GPG_USB_DRIVE ]; then
+            if (( GPG_CTR > 0 )); then
+                reconstruct_key
+                return 0
             fi
+            dialog --title $"Recover Encryption Keys" --msgbox $'No USB drive found' 6 30
+            exit 739836
         fi
 
+        detect_usb_drive
+        GPG_USB_DRIVE=$USB_DRIVE
         GPG_USB_MOUNT='/mnt/usb'
         umount -f $GPG_USB_MOUNT
         if [ ! -d $GPG_USB_MOUNT ]; then
@@ -1013,7 +996,7 @@ function interactive_gpg_from_usb {
                 reconstruct_key
                 return 0
             fi
-            dialog --title $"Encryption keys" \
+            dialog --title $"Recover Encryption Keys" \
                    --msgbox $"There was a problem mounting the USB drive to $GPG_USB_MOUNT" 6 70
             rm -rf $GPG_USB_MOUNT
             exit 74393
diff --git a/src/freedombone-keydrive b/src/freedombone-keydrive
index 726639e72..8189ffc07 100755
--- a/src/freedombone-keydrive
+++ b/src/freedombone-keydrive
@@ -135,6 +135,10 @@ if [[ $MASTER_DRIVE == "yes" || $MASTER_DRIVE == "y" || $MASTER_DRIVE == "1" ]];
       exit 73025
   fi
   cp -rf /home/$MY_USERNAME/.gnupg $USB_MOUNT
+  if [ -d /etc/letsencrypt ]; then
+      cp -rf /etc/letsencrypt $USB_MOUNT
+      echo $"LetsEncrypt keys copied to $USB_DRIVE"
+  fi
   if [ -d $USB_MOUNT/.gnupg ]; then
       echo $"GPG Keyring copied to $USB_DRIVE. You may now remove the drive."
   else
diff --git a/src/freedombone-recoverkey b/src/freedombone-recoverkey
index 476a40335..db5e6ecb1 100755
--- a/src/freedombone-recoverkey
+++ b/src/freedombone-recoverkey
@@ -223,6 +223,12 @@ function interactive_gpg_from_usb {
             if [ ! -d $HOME_DIR/.gnupg ]; then
                 mkdir $HOME_DIR/.gnupg
             fi
+            if [ -d $GPG_USB_MOUNT/letsencrypt ]; then
+                test -r $GPG_USB_MOUNT/letsencrypt
+                if [ $? -ne ]; then
+                   cp -rf $GPG_USB_MOUNT/letsencrypt /etc
+                fi
+            fi
             cp -r $GPG_USB_MOUNT/.gnupg/* $HOME_DIR/.gnupg
             GPG_LOADING="no"
             dialog --title $"Encryption keys" \
-- 
GitLab