Hey hey! My patch broke monkeysign it seems :-/
I haven't counted properly and I've only realised now that the number of fields is wrong in many places... I remember having successfully run the tests when I submitted the patch, but now I realise that they fail. Weird. Anyway, the attached patch is better. Sorry for the noise. Cheers, Tobi
>From c7924f3d389efea1bbd67d13485aabcef995fff0 Mon Sep 17 00:00:00 2001 From: Tobias Mueller <[email protected]> Date: Sat, 8 Aug 2015 11:58:19 +0200 Subject: [PATCH] gpg: Fixed up the key parsing for secret keys I was counting wrongly. It's not 14 values we want to extract, but 13. Sorry for the noise. I don't know what went wrong the last time I attempted to patch, but this time the tests actually pass. --- monkeysign/gpg.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/monkeysign/gpg.py b/monkeysign/gpg.py index 9166755..56d21a1 100644 --- a/monkeysign/gpg.py +++ b/monkeysign/gpg.py @@ -683,35 +683,35 @@ class OpenPGPkey(): #print >>sys.stderr, "\n" rectype = record[0] if rectype == 'tru': - (rectype, trust, selflen, algo, keyid, creation, expiry, serial) = record[:9] + (rectype, trust, selflen, algo, keyid, creation, expiry, serial) = record[:8] elif rectype == 'fpr': if not self.fpr: self.fpr = record[9] elif rectype == 'pub': - (null, self.trust, self.length, self.algo, keyid, self.creation, self.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:12] + (null, self.trust, self.length, self.algo, keyid, self.creation, self.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:13] for p in self.purpose: self.purpose[p] = p[0].lower() in purpose.lower() if self.trust == '': self.trust = '-' elif rectype == 'uid': - (rectype, trust, null, null, null, creation, expiry, uidhash, null, uid) = record[:11] + (rectype, trust, null, null, null, creation, expiry, uidhash, null, uid) = record[:10] uid = OpenPGPuid(uid, trust, creation, expiry, uidhash) self.uids[uidhash] = uid uidslist.append(uid) elif rectype == 'sub': subkey = OpenPGPkey() - (rectype, trust, subkey.length, subkey.algo, subkey._keyid, subkey.creation, subkey.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:14] + (rectype, trust, subkey.length, subkey.algo, subkey._keyid, subkey.creation, subkey.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:13] for p in subkey.purpose: subkey.purpose[p] = p[0].lower() in purpose.lower() self.subkeys[subkey._keyid] = subkey elif rectype == 'sec': - (null, self.trust, self.length, self.algo, keyid, self.creation, self.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:14] + (null, self.trust, self.length, self.algo, keyid, self.creation, self.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:13] self.secret = True if self.trust == '': self.trust = '-' elif rectype == 'ssb': subkey = OpenPGPkey() - (rectype, trust, subkey.length, subkey.algo, subkey._keyid, subkey.creation, subkey.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:14] + (rectype, trust, subkey.length, subkey.algo, subkey._keyid, subkey.creation, subkey.expiry, serial, trust, uid, sigclass, purpose, smime) = record[:13] if subkey._keyid in self.subkeys: # XXX: nothing else to add here? self.subkeys[subkey._keyid].secret = True -- 2.1.4

