From 5e3d7da5cf7522f0dabcddd8abb07cf2719e588b Mon Sep 17 00:00:00 2001 From: heartsucker Date: Sun, 21 Aug 2016 14:56:03 +0200 Subject: [PATCH] fixed problem parsing --list-keys and --list-sigs --- gnupg/_parsers.py | 9 +++++++++ gnupg/gnupg.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gnupg/_parsers.py b/gnupg/_parsers.py index 0c92e52..24fa398 100644 --- a/gnupg/_parsers.py +++ b/gnupg/_parsers.py @@ -1001,6 +1001,9 @@ def key(self, args): pub = sec = key def fpr(self, args): + if self.curuid == None: + return + self.curkey['fingerprint'] = args[9] self.fingerprints.append(args[9]) @@ -1014,6 +1017,9 @@ def uid(self, args): self.uids.append(uid) def sig(self, args): + if self.curuid == None: + return + vars = (""" type trust length algo keyid date expires dummy ownertrust uid """).split() @@ -1027,6 +1033,9 @@ def sub(self, args): subkey = [args[4], args[11]] self.curkey['subkeys'].append(subkey) + def rvk(self, args): + self.curuid == None + def _handle_status(self, key, value): pass diff --git a/gnupg/gnupg.py b/gnupg/gnupg.py index 215233e..633b34d 100644 --- a/gnupg/gnupg.py +++ b/gnupg/gnupg.py @@ -528,7 +528,7 @@ def list_sigs(self, *keyids): def _parse_keys(self, result): lines = result.data.decode(self._encoding, self._decode_errors).splitlines() - valid_keywords = 'pub uid sec fpr sub sig'.split() + valid_keywords = 'pub uid sec fpr sub sig rvk'.split() for line in lines: if self.verbose: print(line)