From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id D630C1389E2 for ; Wed, 31 Dec 2014 21:34:38 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E38D0E08C5; Wed, 31 Dec 2014 21:34:35 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id F1257E08C0 for ; Wed, 31 Dec 2014 21:34:34 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D69553406CA for ; Wed, 31 Dec 2014 21:34:33 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 0B409E97F for ; Wed, 31 Dec 2014 21:34:31 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1419975746.1626d81d20474cb55620bf19aa12924b28a795e9.dolsen@gentoo.org@gentoo> Subject: [gentoo-commits] proj/gentoo-keys:master commit in: gkeys/gkeys/ X-VCS-Repository: proj/gentoo-keys X-VCS-Files: gkeys/gkeys/lib.py X-VCS-Directories: gkeys/gkeys/ X-VCS-Committer: dolsen@gentoo.org X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: 1626d81d20474cb55620bf19aa12924b28a795e9 X-VCS-Branch: master Date: Wed, 31 Dec 2014 21:34:31 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 1b9a4a8d-2dc1-4e28-8bf3-b3fcd8b579d1 X-Archives-Hash: 11da85b96846d039737207a7d1e8191d commit: 1626d81d20474cb55620bf19aa12924b28a795e9 Author: Brian Dolbec gentoo org> AuthorDate: Sat Dec 27 21:56:14 2014 +0000 Commit: Brian Dolbec gentoo org> CommitDate: Tue Dec 30 21:42:26 2014 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/gentoo-keys.git;a=commit;h=1626d81d gkeys/lib.py: Add the new GKEY.update() to add_key and refresh_key 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. --- gkeys/gkeys/lib.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/gkeys/gkeys/lib.py b/gkeys/gkeys/lib.py index 67c94ae..f8e6615 100644 --- a/gkeys/gkeys/lib.py +++ b/gkeys/gkeys/lib.py @@ -158,9 +158,8 @@ class GkeysGPG(GPG): message += "\n gkey..: %s" % (str(gkey.fingerprint)) logger.error(message) # Save the gkey seed to the installed db - self.seedfile.update(gkey) - if not self.seedfile.save(): - logger.error("GkeysGPG.add_key(); failed to save seed: " + gkey.nick) + success = self.update_gkey(gkey, save=True) + if not success: return [] results.append(result) return results @@ -190,21 +189,32 @@ class GkeysGPG(GPG): self.set_keyserver() self.set_keydir(gkey.keydir, 'refresh-keys', reset=True) self.set_keyring('pubring.gpg', 'refresh-keys', reset=False) + self.set_keyseedfile() logger.debug("LIB: refresh_key, gkey: %s" % str(gkey)) logger.debug("** Calling runGPG with Running 'gpg %s --refresh-keys' for: %s" % (' '.join(self.config.get_key('tasks', 'refresh-keys')), str(gkey))) result = self.runGPG(task='refresh-keys', inputfile='') logger.info('GPG return code: ' + str(result.returncode)) + self.update_gkey(gkey, save=True) return result - def update_key(self, gkey, keydir): + def update_gkey(self, gkey, save=False): '''Update the specified key in the specified keydir @param key: tuple of (name, nick, keydir, fingerprint) @param keydir: the keydir to add the key to ''' - return [] + # Update the gkey seed and save it to the installed db + lresults = [] + for fpr in gkey.keys: + lresults.append(self.list_keys(gkey.keydir, fpr, colons=True)) + self.seedfile.update(gkey.update(lresults)) + if save and not self.seedfile.save(): + logger.error("GkeysGPG.refresh_key(); failed to save seed: " + gkey.nick) + return False + return True + def list_keys(self, keydir, fingerprint=None, colons=False): @@ -225,7 +235,7 @@ class GkeysGPG(GPG): task = 'list-keys' target = keydir self.set_keydir(keydir, task, fingerprint=True) - self.config.options['tasks'][task].extend(['--keyid-format', 'long', '--with-fingerprint']) + self.config.options['tasks'][task].extend(['--keyid-format', 'long', '--fingerprint', '--fingerprint']) if colons: task_value = ['--with-colons'] self.config.options['tasks'][task].extend(task_value) @@ -315,7 +325,7 @@ class GkeysGPG(GPG): return results - def set_keyseedfile(self, trap_errors): + def set_keyseedfile(self, trap_errors=True): if not self.keydir: logger.debug("GkeysGPG.set_keyseedfile(); self.keydir error") self.seedfile = Seeds(pjoin(self.keydir, 'gkey.seeds'), self.config)