Procházet zdrojové kódy

Optional password file when splitting gpg key

Bob Mottram před 7 roky
rodič
revize
45c3c6be3e
2 změnil soubory, kde provedl 31 přidání a 4 odebrání
  1. 8
    0
      src/freedombone-base-email
  2. 23
    4
      src/freedombone-splitkey

+ 8
- 0
src/freedombone-base-email Zobrazit soubor

@@ -716,6 +716,14 @@ function create_private_mailing_list {
716 716
 function split_gpg_key_into_fragments {
717 717
     # split the gpg key into fragments if social key management is enabled
718 718
     if [[ $ENABLE_SOCIAL_KEY_MANAGEMENT == "yes" ]]; then
719
+
720
+        if [ $IMAGE_PASSWORD_FILE ]; then
721
+            if [ -f $IMAGE_PASSWORD_FILE ]; then
722
+                ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME" --passwordfile $IMAGE_PASSWORD_FILE
723
+                return
724
+            fi
725
+        fi
726
+
719 727
         echo 'Splitting GPG key. You may need to enter your passphrase.'
720 728
         ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME"
721 729
         if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then

+ 23
- 4
src/freedombone-splitkey Zobrazit soubor

@@ -46,6 +46,7 @@ KEY_FRAGMENTS=3
46 46
 MY_USERNAME=
47 47
 MY_EMAIL_ADDRESS=
48 48
 MY_NAME=
49
+PASSWORD_FILE=
49 50
 
50 51
 function show_help {
51 52
     echo ''
@@ -78,6 +79,10 @@ case $key in
78 79
     shift
79 80
     MY_NAME=$1
80 81
     ;;
82
+    --passwordfile)
83
+    shift
84
+    PASSWORD_FILE=$1
85
+    ;;
81 86
     *)
82 87
     # unknown option
83 88
     ;;
@@ -98,6 +103,13 @@ if [ ! -d /home/$MY_USERNAME/.gnupg ]; then
98 103
     exit 5393
99 104
 fi
100 105
 
106
+if [ $PASSWORD_FILE ]; then
107
+    if [ ! -f $PASSWORD_FILE ]; then
108
+        echo $'Password file not found'
109
+        exit 62952
110
+    fi
111
+fi
112
+
101 113
 FRAGMENTS_DIR=/home/$MY_USERNAME/.gnupg_fragments
102 114
 if [ -d $FRAGMENTS_DIR ]; then
103 115
     exit 0
@@ -128,8 +140,15 @@ if [ ! "$?" = "0" ]; then
128 140
     echo $"Unable to extract public key for $KEYID"
129 141
     exit 7835
130 142
 fi
131
-gpg --output $FRAGMENTS_DIR/privkey.txt \
132
-    --armor --export-secret-key $KEYID
143
+if [ ! $PASSWORD_FILE ]; then
144
+    gpg --output $FRAGMENTS_DIR/privkey.txt \
145
+        --armor --export-secret-key $KEYID
146
+else
147
+    echo "$(printf `cat $PASSWORD_FILE`)" | \
148
+        gpg --batch --passphrase-fd 0 \
149
+        --output $FRAGMENTS_DIR/privkey.txt \
150
+        --armor --export-secret-key $KEYID
151
+fi
133 152
 if [ ! "$?" = "0" ]; then
134 153
     echo $"Unable to extract private key for $KEYID"
135 154
     exit 7823
@@ -142,8 +161,8 @@ if [ ! "$?" = "0" ]; then
142 161
 fi
143 162
 echo '$BACKUP_DUMMY_PASSWORD' | \
144 163
     gpg --output $FRAGMENTS_DIR/backup_privkey.txt \
145
-    --batch --passphrase-fd 0 \
146
-    --armor --export-secret-key $MY_BACKUP_KEY_ID
164
+        --batch --passphrase-fd 0 \
165
+        --armor --export-secret-key $MY_BACKUP_KEY_ID
147 166
 if [ ! "$?" = "0" ]; then
148 167
     echo $"Unable to extract backup private key for $MY_BACKUP_KEY_ID"
149 168
     exit 13783