Yann Leboulanger pushed to branch gajim_0.16 at gajim / gajim

Commits:
ed7a40cb by Yann Leboulanger at 2016-12-17T14:23:20+01:00
do not list all keys when we want to know if we have a key. Fixes #8477

Conflicts:
        src/common/connection.py

- - - - -


3 changed files:

- src/common/connection.py
- src/common/gpg.py
- src/common/helpers.py


Changes:

=====================================
src/common/connection.py
=====================================
--- a/src/common/connection.py
+++ b/src/common/connection.py
@@ -692,8 +692,10 @@ class CommonConnection:
             else:
                 self.gpg.passphrase = passphrase
 
-    def ask_gpg_keys(self):
+    def ask_gpg_keys(self, keyID=None):
         if self.gpg:
+            if keyID:
+                return self.gpg.get_key(keyID)
             return self.gpg.get_keys()
         return None
 
@@ -2153,7 +2155,7 @@ class Connection(CommonConnection, ConnectionHandlers):
                     _cb_parameters={"jid":jid, "msg":msg, "keyID":keyID, 
"forward_from":forward_from,
                     "session":session, "original_message":original_message, 
"subject":subject, "type_":type_,
                     "msg_iq":msg_iq, "xhtml":xhtml, "obj":obj}))
-            
+
         self._prepare_message(obj.jid, obj.message, obj.keyID, type_=obj.type_,
             subject=obj.subject, chatstate=obj.chatstate, msg_id=obj.msg_id,
             resource=obj.resource, user_nick=obj.user_nick, xhtml=obj.xhtml,
@@ -2166,7 +2168,7 @@ class Connection(CommonConnection, ConnectionHandlers):
         if obj.conn.name != self.name:
             return
         obj.msg_id = self.connection.send(obj.msg_iq, now=obj.now)
-        
+
         # obj in this function is the obj as seen in _nec_message_outgoing()
         def cb(obj, jid, msg, keyID, forward_from, session, original_message,
         subject, type_, msg_iq, xhtml, msg_id):
@@ -2187,7 +2189,7 @@ class Connection(CommonConnection, ConnectionHandlers):
             else:
                 self.log_message(jid, msg, forward_from, session,
                     original_message, subject, type_, xhtml)
-        
+
         cb(msg_id=obj.msg_id, **obj._cb_parameters)
 
     def send_contacts(self, contacts, fjid, type_='message'):


=====================================
src/common/gpg.py
=====================================
--- a/src/common/gpg.py
+++ b/src/common/gpg.py
@@ -114,6 +114,9 @@ if HAVE_GPG:
 
             return ''
 
+        def get_key(self, keyID):
+            return super(GnuPG, self).list_keys(keys=[keyID])
+
         def get_keys(self, secret=False):
             keys = {}
             result = super(GnuPG, self).list_keys(secret=secret)


=====================================
src/common/helpers.py
=====================================
--- a/src/common/helpers.py
+++ b/src/common/helpers.py
@@ -1314,9 +1314,9 @@ def prepare_and_validate_gpg_keyID(account, jid, keyID):
             # An unsigned presence, just use the assigned key
             keyID = attached_keys[attached_keys.index(jid) + 1]
         elif keyID:
-            public_keys = gajim.connections[account].ask_gpg_keys()
+            full_key = gajim.connections[account].ask_gpg_keys(keyID=keyID)
             # Assign the corresponding key, if we have it in our keyring
-            if keyID in public_keys:
+            if full_key:
                 for u in gajim.contacts.get_contacts(account, jid):
                     u.keyID = keyID
                 keys_str = gajim.config.get_per('accounts', account,



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/commit/ed7a40cb47a9ddb8e21b91cc9707820e8c93e353
_______________________________________________
Commits mailing list
Commits@gajim.org
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to