|
@@ -7432,6 +7432,18 @@ function gpg_key_exists {
|
7432
|
7432
|
echo "yes"
|
7433
|
7433
|
}
|
7434
|
7434
|
|
|
7435
|
+function gpg_pubkey_from_email {
|
|
7436
|
+ key_owner_username=$1
|
|
7437
|
+ key_email_address=$2
|
|
7438
|
+ key_id=
|
|
7439
|
+ if [[ $key_owner_username != "root" ]]; then
|
|
7440
|
+ key_id=$(su -c "gpg --list-keys $key_email_address | grep 'pub '" - $key_owner_username | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
7441
|
+ else
|
|
7442
|
+ key_id=$(gpg --list-keys $key_email_address | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
7443
|
+ fi
|
|
7444
|
+ echo $key_id
|
|
7445
|
+}
|
|
7446
|
+
|
7435
|
7447
|
function configure_gpg {
|
7436
|
7448
|
if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
7437
|
7449
|
return
|
|
@@ -7445,9 +7457,12 @@ function configure_gpg {
|
7445
|
7457
|
|
7446
|
7458
|
# if gpg keys directory was previously imported from usb
|
7447
|
7459
|
if [[ $GPG_KEYS_IMPORTED == "yes" && -d $gpg_dir ]]; then
|
7448
|
|
- echo 'GPG keys were imported'
|
|
7460
|
+ echo $'GPG keys were imported'
|
7449
|
7461
|
sed -i "s|keyserver hkp://keys.gnupg.net|keyserver $GPG_KEYSERVER|g" $gpg_dir/gpg.conf
|
7450
|
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_EMAIL_ADDRESS | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
7462
|
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
|
|
7463
|
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
|
|
7464
|
+ echo $'GPG public key ID could not be obtained'
|
|
7465
|
+ fi
|
7451
|
7466
|
chown -R $MY_USERNAME:$MY_USERNAME $gpg_dir
|
7452
|
7467
|
chmod 700 $gpg_dir
|
7453
|
7468
|
chmod 600 $gpg_dir/*
|
|
@@ -7499,7 +7514,10 @@ function configure_gpg {
|
7499
|
7514
|
|
7500
|
7515
|
# for security ensure that the private key file doesn't linger around
|
7501
|
7516
|
shred -zu $MY_GPG_PRIVATE_KEY
|
7502
|
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_EMAIL_ADDRESS | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
7517
|
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
|
|
7518
|
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
|
|
7519
|
+ echo $'GPG public key ID could not be obtained'
|
|
7520
|
+ fi
|
7503
|
7521
|
else
|
7504
|
7522
|
# Generate a GPG key
|
7505
|
7523
|
echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
|
|
@@ -7518,7 +7536,10 @@ function configure_gpg {
|
7518
|
7536
|
exit 6362
|
7519
|
7537
|
fi
|
7520
|
7538
|
shred -zu /home/$MY_USERNAME/gpg-genkey.conf
|
7521
|
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_EMAIL_ADDRESS | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
7539
|
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
|
|
7540
|
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
|
|
7541
|
+ echo $'GPG public key ID could not be obtained'
|
|
7542
|
+ fi
|
7522
|
7543
|
MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
7523
|
7544
|
su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
|
7524
|
7545
|
|
|
@@ -7707,10 +7728,13 @@ function encrypt_outgoing_email {
|
7707
|
7728
|
|
7708
|
7729
|
# obtain your public key ID
|
7709
|
7730
|
if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
|
7710
|
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_EMAIL_ADDRESS | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
7731
|
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
|
7711
|
7732
|
if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
|
7712
|
7733
|
return
|
7713
|
7734
|
fi
|
|
7735
|
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
|
|
7736
|
+ return
|
|
7737
|
+ fi
|
7714
|
7738
|
fi
|
7715
|
7739
|
|
7716
|
7740
|
if ! grep -q "pgp_encrypt_only_command" /home/$MY_USERNAME/.muttrc; then
|