Commit d0ec490b authored by Yann Leboulanger's avatar Yann Leboulanger

fix the "do not ask me again" behaviour with untrusted GPG key warning. Fixes #7584

parent 54d8b1ff
......@@ -326,7 +326,7 @@ class CommonConnection:
form_node, user_nick, keyID, attention,
correction_msg, callback)
gajim.nec.push_incoming_event(GPGTrustKeyEvent(None,
conn=self, callback=_on_always_trust))
conn=self, keyID=keyID, callback=_on_always_trust))
else:
self._message_encrypted_cb(output, type_, msg, msgtxt,
original_message, fjid, resource, jid, xhtml,
......
......@@ -34,7 +34,7 @@ if HAVE_GPG:
self.decode_errors = 'replace'
self.passphrase = None
self.use_agent = use_agent
self.always_trust = False
self.always_trust = [] # list of keyID to always trust
def _setup_my_options(self):
self.options.armor = 1
......@@ -47,8 +47,14 @@ if HAVE_GPG:
self.options.extra_args.append('--use-agent')
def encrypt(self, str_, recipients, always_trust=False):
trust = always_trust
if not trust:
trust = True
for key in recipients:
if key not in self.always_trust:
trust = False
result = super(GnuPG, self).encrypt(str_, recipients,
always_trust=always_trust, passphrase=self.passphrase)
always_trust=trust, passphrase=self.passphrase)
if result.status == 'invalid recipient':
return '', 'NOT_TRUSTED'
......
......@@ -695,7 +695,7 @@ class Interface:
#('GPG_ALWAYS_TRUST', account, callback)
def on_yes(checked):
if checked:
obj.conn.gpg.always_trust = True
obj.conn.gpg.always_trust.append(obj.keyID)
obj.callback(True)
def on_no():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment