1 |
commit: 1626d81d20474cb55620bf19aa12924b28a795e9 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Dec 27 21:56:14 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=1626d81d |
7 |
|
8 |
gkeys/lib.py: Add the new GKEY.update() to add_key and refresh_key |
9 |
|
10 |
This updates our installed gkey.seed with all fingerprints including sub-keys and uid's. This way searches for keys used to sign files can be found if the key used to sign the file was not a primary key. |
11 |
|
12 |
--- |
13 |
gkeys/gkeys/lib.py | 24 +++++++++++++++++------- |
14 |
1 file changed, 17 insertions(+), 7 deletions(-) |
15 |
|
16 |
diff --git a/gkeys/gkeys/lib.py b/gkeys/gkeys/lib.py |
17 |
index 67c94ae..f8e6615 100644 |
18 |
--- a/gkeys/gkeys/lib.py |
19 |
+++ b/gkeys/gkeys/lib.py |
20 |
@@ -158,9 +158,8 @@ class GkeysGPG(GPG): |
21 |
message += "\n gkey..: %s" % (str(gkey.fingerprint)) |
22 |
logger.error(message) |
23 |
# Save the gkey seed to the installed db |
24 |
- self.seedfile.update(gkey) |
25 |
- if not self.seedfile.save(): |
26 |
- logger.error("GkeysGPG.add_key(); failed to save seed: " + gkey.nick) |
27 |
+ success = self.update_gkey(gkey, save=True) |
28 |
+ if not success: |
29 |
return [] |
30 |
results.append(result) |
31 |
return results |
32 |
@@ -190,21 +189,32 @@ class GkeysGPG(GPG): |
33 |
self.set_keyserver() |
34 |
self.set_keydir(gkey.keydir, 'refresh-keys', reset=True) |
35 |
self.set_keyring('pubring.gpg', 'refresh-keys', reset=False) |
36 |
+ self.set_keyseedfile() |
37 |
logger.debug("LIB: refresh_key, gkey: %s" % str(gkey)) |
38 |
logger.debug("** Calling runGPG with Running 'gpg %s --refresh-keys' for: %s" |
39 |
% (' '.join(self.config.get_key('tasks', 'refresh-keys')), str(gkey))) |
40 |
result = self.runGPG(task='refresh-keys', inputfile='') |
41 |
logger.info('GPG return code: ' + str(result.returncode)) |
42 |
+ self.update_gkey(gkey, save=True) |
43 |
return result |
44 |
|
45 |
|
46 |
- def update_key(self, gkey, keydir): |
47 |
+ def update_gkey(self, gkey, save=False): |
48 |
'''Update the specified key in the specified keydir |
49 |
|
50 |
@param key: tuple of (name, nick, keydir, fingerprint) |
51 |
@param keydir: the keydir to add the key to |
52 |
''' |
53 |
- return [] |
54 |
+ # Update the gkey seed and save it to the installed db |
55 |
+ lresults = [] |
56 |
+ for fpr in gkey.keys: |
57 |
+ lresults.append(self.list_keys(gkey.keydir, fpr, colons=True)) |
58 |
+ self.seedfile.update(gkey.update(lresults)) |
59 |
+ if save and not self.seedfile.save(): |
60 |
+ logger.error("GkeysGPG.refresh_key(); failed to save seed: " + gkey.nick) |
61 |
+ return False |
62 |
+ return True |
63 |
+ |
64 |
|
65 |
|
66 |
def list_keys(self, keydir, fingerprint=None, colons=False): |
67 |
@@ -225,7 +235,7 @@ class GkeysGPG(GPG): |
68 |
task = 'list-keys' |
69 |
target = keydir |
70 |
self.set_keydir(keydir, task, fingerprint=True) |
71 |
- self.config.options['tasks'][task].extend(['--keyid-format', 'long', '--with-fingerprint']) |
72 |
+ self.config.options['tasks'][task].extend(['--keyid-format', 'long', '--fingerprint', '--fingerprint']) |
73 |
if colons: |
74 |
task_value = ['--with-colons'] |
75 |
self.config.options['tasks'][task].extend(task_value) |
76 |
@@ -315,7 +325,7 @@ class GkeysGPG(GPG): |
77 |
return results |
78 |
|
79 |
|
80 |
- def set_keyseedfile(self, trap_errors): |
81 |
+ def set_keyseedfile(self, trap_errors=True): |
82 |
if not self.keydir: |
83 |
logger.debug("GkeysGPG.set_keyseedfile(); self.keydir error") |
84 |
self.seedfile = Seeds(pjoin(self.keydir, 'gkey.seeds'), self.config) |