do not list all keys when we want to know if we have a key. Fixes #8477
This commit is contained in:
parent
d9efb31b2e
commit
458d1083bc
|
@ -684,8 +684,10 @@ class CommonConnection:
|
||||||
else:
|
else:
|
||||||
self.gpg.passphrase = passphrase
|
self.gpg.passphrase = passphrase
|
||||||
|
|
||||||
def ask_gpg_keys(self):
|
def ask_gpg_keys(self, keyID=None):
|
||||||
if self.gpg:
|
if self.gpg:
|
||||||
|
if keyID:
|
||||||
|
return self.gpg.get_key(keyID)
|
||||||
return self.gpg.get_keys()
|
return self.gpg.get_keys()
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -2163,7 +2165,7 @@ class Connection(CommonConnection, ConnectionHandlers):
|
||||||
_cb_parameters={"jid":jid, "msg":msg, "keyID":keyID, "forward_from":forward_from,
|
_cb_parameters={"jid":jid, "msg":msg, "keyID":keyID, "forward_from":forward_from,
|
||||||
"session":session, "original_message":original_message, "subject":subject, "type_":type_,
|
"session":session, "original_message":original_message, "subject":subject, "type_":type_,
|
||||||
"msg_iq":msg_iq, "xhtml":xhtml, "obj":obj}))
|
"msg_iq":msg_iq, "xhtml":xhtml, "obj":obj}))
|
||||||
|
|
||||||
self._prepare_message(obj.jid, obj.message, obj.keyID, type_=obj.type_,
|
self._prepare_message(obj.jid, obj.message, obj.keyID, type_=obj.type_,
|
||||||
subject=obj.subject, chatstate=obj.chatstate, msg_id=obj.msg_id,
|
subject=obj.subject, chatstate=obj.chatstate, msg_id=obj.msg_id,
|
||||||
resource=obj.resource, user_nick=obj.user_nick, xhtml=obj.xhtml,
|
resource=obj.resource, user_nick=obj.user_nick, xhtml=obj.xhtml,
|
||||||
|
@ -2176,7 +2178,7 @@ class Connection(CommonConnection, ConnectionHandlers):
|
||||||
if obj.conn.name != self.name:
|
if obj.conn.name != self.name:
|
||||||
return
|
return
|
||||||
obj.msg_id = self.connection.send(obj.msg_iq, now=obj.now)
|
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()
|
# obj in this function is the obj as seen in _nec_message_outgoing()
|
||||||
def cb(obj, jid, msg, keyID, forward_from, session, original_message,
|
def cb(obj, jid, msg, keyID, forward_from, session, original_message,
|
||||||
subject, type_, msg_iq, xhtml, msg_id):
|
subject, type_, msg_iq, xhtml, msg_id):
|
||||||
|
@ -2197,7 +2199,7 @@ class Connection(CommonConnection, ConnectionHandlers):
|
||||||
else:
|
else:
|
||||||
self.log_message(jid, msg, forward_from, session,
|
self.log_message(jid, msg, forward_from, session,
|
||||||
original_message, subject, type_, xhtml, obj.additional_data)
|
original_message, subject, type_, xhtml, obj.additional_data)
|
||||||
|
|
||||||
cb(msg_id=obj.msg_id, **obj._cb_parameters)
|
cb(msg_id=obj.msg_id, **obj._cb_parameters)
|
||||||
|
|
||||||
def send_contacts(self, contacts, fjid, type_='message'):
|
def send_contacts(self, contacts, fjid, type_='message'):
|
||||||
|
|
|
@ -113,6 +113,9 @@ if HAVE_GPG:
|
||||||
|
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
def get_key(self, keyID):
|
||||||
|
return super(GnuPG, self).list_keys(keys=[keyID])
|
||||||
|
|
||||||
def get_keys(self, secret=False):
|
def get_keys(self, secret=False):
|
||||||
keys = {}
|
keys = {}
|
||||||
result = super(GnuPG, self).list_keys(secret=secret)
|
result = super(GnuPG, self).list_keys(secret=secret)
|
||||||
|
|
|
@ -1285,9 +1285,9 @@ def prepare_and_validate_gpg_keyID(account, jid, keyID):
|
||||||
# An unsigned presence, just use the assigned key
|
# An unsigned presence, just use the assigned key
|
||||||
keyID = attached_keys[attached_keys.index(jid) + 1]
|
keyID = attached_keys[attached_keys.index(jid) + 1]
|
||||||
elif keyID:
|
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
|
# 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):
|
for u in gajim.contacts.get_contacts(account, jid):
|
||||||
u.keyID = keyID
|
u.keyID = keyID
|
||||||
keys_str = gajim.config.get_per('accounts', account,
|
keys_str = gajim.config.get_per('accounts', account,
|
||||||
|
|
Loading…
Reference in New Issue