From 7f69a12085ed5958dd48b764a52203d23b66e669 Mon Sep 17 00:00:00 2001 From: drebs Date: Tue, 19 Feb 2013 20:31:45 -0300 Subject: Fix encrypted_to method's key lookup. --- util.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/util.py b/util.py index 64c03daa..c64d4c5f 100644 --- a/util.py +++ b/util.py @@ -73,12 +73,18 @@ class GPGWrapper(gnupg.GPG): def find_key_by_subkey(self, subkey): for key in self.list_keys(): for sub in key['subkeys']: - #print sub[0] if sub[0] == subkey: return key raise LookupError( "GnuPG public key for subkey %s not found!" % subkey) + def find_key_by_keyid(self, keyid): + for key in self.list_keys(): + if keyid == key['keyid']: + return key + raise LookupError( + "GnuPG public key for subkey %s not found!" % subkey) + def encrypt(self, data, recipient, sign=None, always_trust=True, passphrase=None, symmetric=False): """ @@ -164,7 +170,10 @@ class GPGWrapper(gnupg.GPG): if not result.key: raise LookupError( "Content is not encrypted to a GnuPG key!") - return self.find_key_by_subkey(result.key) + try: + return self.find_key_by_keyid(result.key) + except: + return self.find_key_by_subkey(result.key) def is_encrypted_sym(self, raw_data): result = self.list_packets(raw_data) -- cgit v1.2.3