From f6411db90819ed670e83c043c8f83d539319897c Mon Sep 17 00:00:00 2001 From: lovetox Date: Sat, 16 Apr 2022 20:48:16 +0200 Subject: [PATCH] [openpgp] Handle keys not suited for xmpp --- openpgp/backend/gpgme.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/openpgp/backend/gpgme.py b/openpgp/backend/gpgme.py index 6a108eb..c75cc06 100644 --- a/openpgp/backend/gpgme.py +++ b/openpgp/backend/gpgme.py @@ -32,6 +32,13 @@ class KeyringItem: self._key = key self._uid = self._get_uid() + @property + def is_xmpp_key(self) -> bool: + try: + return self.jid is not None + except Exception: + return False + def _get_uid(self): for uid in self._key.uids: if uid.uid.startswith('xmpp:'): @@ -55,7 +62,6 @@ class KeyringItem: return hash(self.fingerprint) - class GPGME: def __init__(self, jid, gnuhome): self._jid = jid @@ -109,7 +115,13 @@ class GPGME: keys = [] with gpg.Context(**self._context_args) as context: for key in context.keylist(): - keys.append(KeyringItem(key)) + keyring_item = KeyringItem(key) + if not keyring_item.is_xmpp_key: + log.warning('Key not suited for xmpp: %s', key.fpr) + continue + + keys.append(keyring_item) + return keys def export_key(self, fingerprint):