Bladeren bron

Set the trust level at the same time as adding a gpg key

Bob Mottram 8 jaren geleden
bovenliggende
commit
b7b17256f7
Geen account gekoppeld aan de committers e-mail
1 gewijzigde bestanden met toevoegingen van 39 en 32 verwijderingen
  1. 39
    32
      src/freedombone-controlpanel-user

+ 39
- 32
src/freedombone-controlpanel-user Bestand weergeven

@@ -235,6 +235,41 @@ function email_rule_address {
235 235
 		   --msgbox $"Email rule for $RULE_EMAIL was added" 6 40
236 236
 }
237 237
 
238
+function gpg_set_trust {
239
+	TRUST_ADDRESS=$1
240
+	fpr=$(gpg --with-colons --fingerprint "$TRUST_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}')
241
+	if [ ${#fpr} -gt 2 ]; then
242
+
243
+		data=$(tempfile 2>/dev/null)
244
+		trap "rm -f $data" 0 1 2 5 15
245
+		dialog --backtitle $"Freedombone User Control Panel" \
246
+			   --title $"Trust a PGP/GPG key or website domain" \
247
+			   --radiolist $"Set the trust level for $TRUST_ADDRESS:" 18 70 10 \
248
+			   1 $"I don't know or won't say" off \
249
+			   2 $"I do NOT trust" off \
250
+			   3 $"I trust marginally" on \
251
+			   4 $"I trust fully" off \
252
+			   5 $"I trust ultimately" off 2> $data
253
+		sel=$?
254
+		case $sel in
255
+			1) return;;
256
+			255) return;;
257
+		esac
258
+		TRUST_LEVEL=$(cat $data)
259
+		if [ ${TRUST_LEVEL} -ge 1 ] ; then
260
+			if [ ${TRUST_LEVEL} -le 5 ] ; then
261
+				echo -e "trust\n${TRUST_LEVEL}\ny\nsave\n" | gpg --command-fd 0 --edit-key $fpr
262
+				if [ "$?" = "0" ]; then
263
+					gpg --update-trustdb
264
+					dialog --title $"Trust a PGP/GPG key or website domain" \
265
+						   --backtitle $"Freedombone User Control Panel" \
266
+						   --msgbox $"$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}" 6 50
267
+				fi
268
+			fi
269
+		fi
270
+	fi
271
+}
272
+
238 273
 function email_rule_subject {
239 274
 	data=$(tempfile 2>/dev/null)
240 275
 	trap "rm -f $data" 0 1 2 5 15
@@ -394,7 +429,8 @@ function add_gpg_key {
394 429
 
395 430
 				if [ $address_is_valid ]; then
396 431
 					clear
397
-					gpg --search-keys $ADD_EMAIL_ADDRESS
432
+					gpg --search-keys "$ADD_EMAIL_ADDRESS"
433
+					gpg_set_trust "$ADD_EMAIL_ADDRESS"
398 434
 				else
399 435
 					dialog --title $"Unrecognised email address" \
400 436
 						   --backtitle $"Freedombone User Control Panel" \
@@ -728,6 +764,7 @@ function sign_gpg_key {
728 764
 	esac
729 765
 }
730 766
 
767
+
731 768
 function gpg_key_trust {
732 769
 	data=$(tempfile 2>/dev/null)
733 770
 	trap "rm -f $data" 0 1 2 5 15
@@ -741,37 +778,7 @@ function gpg_key_trust {
741 778
 			if [ ${#TRUST_ADDRESS} -gt 2 ]; then
742 779
 				clear
743 780
 				gpg --search "$TRUST_ADDRESS"
744
-				fpr=$(gpg --with-colons --fingerprint "$TRUST_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}')
745
-				if [ ${#fpr} -gt 2 ]; then
746
-
747
-					data=$(tempfile 2>/dev/null)
748
-					trap "rm -f $data" 0 1 2 5 15
749
-					dialog --backtitle $"Freedombone User Control Panel" \
750
-						   --title $"Trust a PGP/GPG key or website domain" \
751
-						   --radiolist $"Set the trust level for $TRUST_ADDRESS:" 18 70 10 \
752
-						   1 $"I don't know or won't say" off \
753
-						   2 $"I do NOT trust" off \
754
-						   3 $"I trust marginally" on \
755
-						   4 $"I trust fully" off \
756
-						   5 $"I trust ultimately" off 2> $data
757
-					sel=$?
758
-					case $sel in
759
-						1) return;;
760
-						255) return;;
761
-					esac
762
-					TRUST_LEVEL=$(cat $data)
763
-					if [ ${TRUST_LEVEL} -ge 1 ] ; then
764
-						if [ ${TRUST_LEVEL} -le 5 ] ; then
765
-							echo -e "trust\n${TRUST_LEVEL}\ny\nsave\n" | gpg --command-fd 0 --edit-key $fpr
766
-							if [ "$?" = "0" ]; then
767
-								gpg --update-trustdb
768
-								dialog --title $"Trust a PGP/GPG key or website domain" \
769
-									   --backtitle $"Freedombone User Control Panel" \
770
-									   --msgbox $"$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}" 6 50
771
-							fi
772
-						fi
773
-					fi
774
-				fi
781
+				gpg_set_trust "$TRUST_ADDRESS"
775 782
 			fi
776 783
 			;;
777 784
 	esac