diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2018-07-24 09:31:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-24 09:31:17 -0700 |
commit | 62b778180f46c3ee706657437b413acda098eef0 (patch) | |
tree | a22c6c25941b3bf9b8b32044f51b6260963aa31d | |
parent | fd7ff0d15674a4cd1100f660d55c0b20a151a557 (diff) | |
parent | 70010c0225dbfdebe0813b74354283ba6fcee514 (diff) |
Merge pull request #1252 from pazz/update-envelope-keys
fix: automatically update envelope gpg keys only if requested. see #1228
-rw-r--r-- | alot/commands/envelope.py | 8 | ||||
-rw-r--r-- | alot/commands/globals.py | 6 | ||||
-rw-r--r-- | alot/commands/utils.py | 2 | ||||
-rw-r--r-- | tests/commands/utils_tests.py | 12 |
4 files changed, 14 insertions, 14 deletions
diff --git a/alot/commands/envelope.py b/alot/commands/envelope.py index 535ce06c..94d746cc 100644 --- a/alot/commands/envelope.py +++ b/alot/commands/envelope.py @@ -427,8 +427,8 @@ class SetCommand(Command): # Currently we don't handle bcc because it creates a side channel leak, # as the key of the person BCC'd will be available to other recievers, # defeating the purpose of BCCing them - if self.key.lower() in ['to', 'from', 'cc']: - yield utils.set_encrypt(ui, ui.current_buffer.envelope) + if self.key.lower() in ['to', 'from', 'cc'] and envelope.encrypt: + yield utils.update_keys(ui, envelope) ui.current_buffer.rebuild() @@ -452,7 +452,7 @@ class UnsetCommand(Command): # as the key of the person BCC'd will be available to other recievers, # defeating the purpose of BCCing them if self.key.lower() in ['to', 'from', 'cc']: - yield utils.set_encrypt(ui, ui.current_buffer.envelope) + yield utils.update_keys(ui, ui.current_buffer.envelope) ui.current_buffer.rebuild() @@ -603,7 +603,7 @@ class EncryptCommand(Command): tmp_key = crypto.get_key(keyid) envelope.encrypt_keys[tmp_key.fpr] = tmp_key else: - yield utils.set_encrypt(ui, envelope, signed_only=self.trusted) + yield utils.update_keys(ui, envelope, signed_only=self.trusted) envelope.encrypt = encrypt if not envelope.encrypt: # This is an extra conditional as it can even happen if encrypt is diff --git a/alot/commands/globals.py b/alot/commands/globals.py index 293d4925..06d0d5ce 100644 --- a/alot/commands/globals.py +++ b/alot/commands/globals.py @@ -17,7 +17,7 @@ from twisted.internet import threads from . import Command, registerCommand from . import CommandCanceled -from .utils import set_encrypt +from .utils import update_keys from .. import commands from .. import buffers @@ -916,12 +916,12 @@ class ComposeCommand(Command): logging.debug("Trying to encrypt message because encrypt=%s and " "encrypt_by_default=%s", self.encrypt, account.encrypt_by_default) - yield set_encrypt(ui, self.envelope, block_error=self.encrypt) + yield update_keys(ui, self.envelope, block_error=self.encrypt) elif account.encrypt_by_default == u"trusted": logging.debug("Trying to encrypt message because " "account.encrypt_by_default=%s", account.encrypt_by_default) - yield set_encrypt(ui, self.envelope, block_error=self.encrypt, + yield update_keys(ui, self.envelope, block_error=self.encrypt, signed_only=True) else: logging.debug("No encryption by default, encrypt_by_default=%s", diff --git a/alot/commands/utils.py b/alot/commands/utils.py index 891f8e37..decaeae2 100644 --- a/alot/commands/utils.py +++ b/alot/commands/utils.py @@ -13,7 +13,7 @@ from .. import crypto @inlineCallbacks -def set_encrypt(ui, envelope, block_error=False, signed_only=False): +def update_keys(ui, envelope, block_error=False, signed_only=False): """Find and set the encryption keys in an envolope. :param ui: the main user interface object diff --git a/tests/commands/utils_tests.py b/tests/commands/utils_tests.py index c4e4805a..db304552 100644 --- a/tests/commands/utils_tests.py +++ b/tests/commands/utils_tests.py @@ -140,7 +140,7 @@ class TestSetEncrypt(unittest.TestCase): ui = utilities.make_ui() envelope = Envelope() envelope['To'] = 'ambig@example.com, test@example.com' - yield utils.set_encrypt(ui, envelope) + yield utils.update_keys(ui, envelope) self.assertTrue(envelope.encrypt) self.assertCountEqual( [f.fpr for f in envelope.encrypt_keys.values()], @@ -151,7 +151,7 @@ class TestSetEncrypt(unittest.TestCase): ui = utilities.make_ui() envelope = Envelope() envelope['Cc'] = 'ambig@example.com, test@example.com' - yield utils.set_encrypt(ui, envelope) + yield utils.update_keys(ui, envelope) self.assertTrue(envelope.encrypt) self.assertCountEqual( [f.fpr for f in envelope.encrypt_keys.values()], @@ -162,7 +162,7 @@ class TestSetEncrypt(unittest.TestCase): ui = utilities.make_ui() envelope = Envelope() envelope['Cc'] = 'foo@example.com, test@example.com' - yield utils.set_encrypt(ui, envelope) + yield utils.update_keys(ui, envelope) self.assertTrue(envelope.encrypt) self.assertCountEqual( [f.fpr for f in envelope.encrypt_keys.values()], @@ -173,7 +173,7 @@ class TestSetEncrypt(unittest.TestCase): ui = utilities.make_ui() envelope = Envelope() envelope['To'] = 'foo@example.com' - yield utils.set_encrypt(ui, envelope) + yield utils.update_keys(ui, envelope) self.assertFalse(envelope.encrypt) self.assertEqual(envelope.encrypt_keys, {}) @@ -187,7 +187,7 @@ class TestSetEncrypt(unittest.TestCase): account = _Account(encrypt_to_self=True, gpg_key=gpg_key) with mock.patch('alot.commands.thread.settings.get_account_by_address', mock.Mock(return_value=account)): - yield utils.set_encrypt(ui, envelope) + yield utils.update_keys(ui, envelope) self.assertTrue(envelope.encrypt) self.assertIn(FPR, envelope.encrypt_keys) self.assertEqual(gpg_key, envelope.encrypt_keys[FPR]) @@ -202,6 +202,6 @@ class TestSetEncrypt(unittest.TestCase): account = _Account(encrypt_to_self=False, gpg_key=gpg_key) with mock.patch('alot.commands.thread.settings.get_account_by_address', mock.Mock(return_value=account)): - yield utils.set_encrypt(ui, envelope) + yield utils.update_keys(ui, envelope) self.assertTrue(envelope.encrypt) self.assertNotIn(FPR, envelope.encrypt_keys) |