summaryrefslogtreecommitdiff
path: root/src/leap/soledad/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/soledad/util.py')
-rw-r--r--src/leap/soledad/util.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/leap/soledad/util.py b/src/leap/soledad/util.py
index c64d4c5f..b8ee4cf3 100644
--- a/src/leap/soledad/util.py
+++ b/src/leap/soledad/util.py
@@ -70,20 +70,27 @@ class GPGWrapper(gnupg.GPG):
return key
raise LookupError("GnuPG public key for email %s not found!" % email)
- def find_key_by_subkey(self, subkey):
- for key in self.list_keys():
+ def find_key_by_subkey(self, subkey, secret=False):
+ for key in self.list_keys(secret=secret):
for sub in key['subkeys']:
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():
+ def find_key_by_keyid(self, keyid, secret=False):
+ for key in self.list_keys(secret=secret):
if keyid == key['keyid']:
return key
raise LookupError(
- "GnuPG public key for subkey %s not found!" % subkey)
+ "GnuPG public key for keyid %s not found!" % keyid)
+
+ def find_key_by_fingerprint(self, fingerprint, secret=False):
+ for key in self.list_keys(secret=secret):
+ if fingerprint == key['fingerprint']:
+ return key
+ raise LookupError(
+ "GnuPG public key for fingerprint %s not found!" % fingerprint)
def encrypt(self, data, recipient, sign=None, always_trust=True,
passphrase=None, symmetric=False):