소스 검색

Optional password file when splitting gpg key

Bob Mottram 7 년 전
부모
커밋
45c3c6be3e
2개의 변경된 파일31개의 추가작업 그리고 4개의 파일을 삭제
  1. 8
    0
      src/freedombone-base-email
  2. 23
    4
      src/freedombone-splitkey

+ 8
- 0
src/freedombone-base-email 파일 보기

716
 function split_gpg_key_into_fragments {
716
 function split_gpg_key_into_fragments {
717
     # split the gpg key into fragments if social key management is enabled
717
     # split the gpg key into fragments if social key management is enabled
718
     if [[ $ENABLE_SOCIAL_KEY_MANAGEMENT == "yes" ]]; then
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
         echo 'Splitting GPG key. You may need to enter your passphrase.'
727
         echo 'Splitting GPG key. You may need to enter your passphrase.'
720
         ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME"
728
         ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME"
721
         if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
729
         if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then

+ 23
- 4
src/freedombone-splitkey 파일 보기

46
 MY_USERNAME=
46
 MY_USERNAME=
47
 MY_EMAIL_ADDRESS=
47
 MY_EMAIL_ADDRESS=
48
 MY_NAME=
48
 MY_NAME=
49
+PASSWORD_FILE=
49
 
50
 
50
 function show_help {
51
 function show_help {
51
     echo ''
52
     echo ''
78
     shift
79
     shift
79
     MY_NAME=$1
80
     MY_NAME=$1
80
     ;;
81
     ;;
82
+    --passwordfile)
83
+    shift
84
+    PASSWORD_FILE=$1
85
+    ;;
81
     *)
86
     *)
82
     # unknown option
87
     # unknown option
83
     ;;
88
     ;;
98
     exit 5393
103
     exit 5393
99
 fi
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
 FRAGMENTS_DIR=/home/$MY_USERNAME/.gnupg_fragments
113
 FRAGMENTS_DIR=/home/$MY_USERNAME/.gnupg_fragments
102
 if [ -d $FRAGMENTS_DIR ]; then
114
 if [ -d $FRAGMENTS_DIR ]; then
103
     exit 0
115
     exit 0
128
     echo $"Unable to extract public key for $KEYID"
140
     echo $"Unable to extract public key for $KEYID"
129
     exit 7835
141
     exit 7835
130
 fi
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
 if [ ! "$?" = "0" ]; then
152
 if [ ! "$?" = "0" ]; then
134
     echo $"Unable to extract private key for $KEYID"
153
     echo $"Unable to extract private key for $KEYID"
135
     exit 7823
154
     exit 7823
142
 fi
161
 fi
143
 echo '$BACKUP_DUMMY_PASSWORD' | \
162
 echo '$BACKUP_DUMMY_PASSWORD' | \
144
     gpg --output $FRAGMENTS_DIR/backup_privkey.txt \
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
 if [ ! "$?" = "0" ]; then
166
 if [ ! "$?" = "0" ]; then
148
     echo $"Unable to extract backup private key for $MY_BACKUP_KEY_ID"
167
     echo $"Unable to extract backup private key for $MY_BACKUP_KEY_ID"
149
     exit 13783
168
     exit 13783