commit:     fcf9bc99b653b580954079ac0ea7461eaf2fc4e1
Author:     Pavlos Ratis <dastergon <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 17 20:59:24 2014 +0000
Commit:     Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Sun Aug 17 22:07:11 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/gentoo-keys.git;a=commit;h=fcf9bc99

key checking improvements

---
 gkeys/lib.py | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/gkeys/lib.py b/gkeys/lib.py
index a8af408..5f39cd3 100644
--- a/gkeys/lib.py
+++ b/gkeys/lib.py
@@ -215,8 +215,7 @@ class GkeysGPG(GPG):
         @param keyid: the keyid to check
         '''
         result = self.list_keys(keydir, colons=True)
-        revoked = expired = invalid = False
-        sign = True
+        revoked = expired = invalid = sign = False
         for data in result.status.data:
             if data.name ==  "PUB":
                 if data.long_keyid == keyid[2:]:
@@ -237,19 +236,22 @@ class GkeysGPG(GPG):
                         break
             if data.name == "SUB":
                 if data.long_keyid == keyid[2:]:
-                    # check if subkey has signing capabilities
-                    if 's' not in data.key_capabilities:
-                        sign = False
-                        logger.debug("ERROR in subkey %s : No signing 
capabilities" % data.long_keyid)
+                    # check if invalid
+                    if 'i' in data.validity:
+                        logger.debug("WARNING in subkey %s : invalid" % 
data.long_keyid)
+                        continue
                     # check if expired
                     if 'e' in data.validity:
                         logger.debug("WARNING in subkey %s : expired" % 
data.long_keyid)
-                     # check if revoked
+                        continue
+                    # check if revoked
                     if 'r' in data.validity:
                         logger.debug("WARNING in subkey %s : revoked" % 
data.long_keyid)
-                    # check if invalid
-                    if 'i' in data.validity:
-                        logger.debug("WARNING in subkey %s : invalid" % 
data.long_keyid)
+                        continue
+                    # check if subkey has signing capabilities
+                    if 's' in data.key_capabilities:
+                        sign = True
+                        logger.debug("INFO subkey %s : signing capabilities" % 
data.long_keyid)
         return GKEY_CHECK(keyid, revoked, expired, invalid, sign)
 
 

Reply via email to