Gentoo Archives: gentoo-commits

From: Brian Dolbec <dolsen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-keys:master commit in: gkeys/gkeys/
Date: Wed, 31 Dec 2014 21:34:36
Message-Id: 1419975746.5d9e409c8e2dbd6c93052f848b02740bf8dc58c2.dolsen@gentoo.org@gentoo
1 commit: 5d9e409c8e2dbd6c93052f848b02740bf8dc58c2
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Sat Dec 27 21:37:23 2014 +0000
4 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 30 21:42:26 2014 +0000
6 URL: http://sources.gentoo.org/gitweb/?p=proj/gentoo-keys.git;a=commit;h=5d9e409c
7
8 gkeys/gkey.py: Add keys and uid fields, update() to GKEY
9
10 keys field will hold the primary key fingerprints for the (to be/) installed GKEY.
11 fingerprints and uid fileds will be populated with all uid's and fingerprints defined in subkeys using the update().
12
13 ---
14 gkeys/gkeys/gkey.py | 32 +++++++++++++++++++++++++++++---
15 1 file changed, 29 insertions(+), 3 deletions(-)
16
17 diff --git a/gkeys/gkeys/gkey.py b/gkeys/gkeys/gkey.py
18 index 41c6d8b..463f007 100644
19 --- a/gkeys/gkeys/gkey.py
20 +++ b/gkeys/gkeys/gkey.py
21 @@ -18,6 +18,7 @@ GKEY_STRING = ''' ----------
22 Name.........: %(name)s
23 Nick.........: %(nick)s
24 Keydir.......: %(keydir)s
25 + UID..........: %(uid)s
26 '''
27
28 GKEY_FINGERPRINTS = \
29 @@ -26,10 +27,11 @@ GKEY_FINGERPRINTS = \
30 '''
31
32
33 -class GKEY(namedtuple('GKEY', ['nick', 'name', 'keydir', 'fingerprint'])):
34 +class GKEY(namedtuple('GKEY', ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'uid'])):
35 '''Class to hold the relavent info about a key'''
36
37 - field_types = {'nick': str, 'name': str, 'keydir': str, 'fingerprint': list}
38 + field_types = {'nick': str, 'name': str, 'keydir': str, 'keys': list,
39 + 'fingerprint': list, 'uid': list}
40 __slots__ = ()
41
42
43 @@ -42,7 +44,12 @@ class GKEY(namedtuple('GKEY', ['nick', 'name', 'keydir', 'fingerprint'])):
44 @property
45 def pretty_print(self):
46 '''Pretty printing a GKEY'''
47 - gkey = {'name': self.name, 'nick': self.nick, 'keydir': self.keydir}
48 + gkey = {
49 + 'name': self.name,
50 + 'nick': self.nick,
51 + 'keydir': self.keydir,
52 + 'uid': self.uid,
53 + }
54 output = GKEY_STRING % gkey
55 for f in self.fingerprint:
56 fingerprint = {'fingerprint': f, 'keyid': '0x' + f[-16:]}
57 @@ -50,6 +57,25 @@ class GKEY(namedtuple('GKEY', ['nick', 'name', 'keydir', 'fingerprint'])):
58 return output
59
60
61 + def update(self, result_list):
62 + '''Processes a results instance from a colon listing
63 + and mines all fingerprints found.
64 +
65 + @param result_list: list of pyGPG.output.GPGResult instances
66 + (one for each fingerprint in the list)
67 + @return: A new, updated GKEY instance
68 + '''
69 + fingerprints = set()
70 + uids = set()
71 + for result in result_list:
72 + for data in result.status.data:
73 + if data.name == "FPR":
74 + fingerprints.add(data.fingerprint)
75 + elif data.name == "UID":
76 + uids.add(data.user_ID)
77 + return self._make([self.nick, self.name, self.keydir, self.keys, list(fingerprints), sorted(uids)])
78 +
79 +
80 class GKEY_CHECK(namedtuple('GKEY_CHECK', ['keyid', 'revoked', 'expired', 'invalid', 'sign'])):
81
82 __slots__ = ()