]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/utils.py
Cope with expired keys better
[dak.git] / daklib / utils.py
index 9758fc97400d0ee45c7b549caa5d736e44f56a73..41aa3198990f1f56bffd0af4006346cc29559cfe 100644 (file)
@@ -885,7 +885,7 @@ def process_gpgv_output(status):
             internal_error += "gpgv status line is malformed (incorrect prefix '%s').\n" % (gnupg)
             continue
         args = split[2:]
-        if keywords.has_key(keyword) and (keyword != "NODATA" and keyword != "SIGEXPIRED"):
+        if keywords.has_key(keyword) and keyword not in [ "NODATA", "SIGEXPIRED", "KEYEXPIRED" ]:
             internal_error += "found duplicate status token ('%s').\n" % (keyword)
             continue
         else:
@@ -939,7 +939,7 @@ on error."""
 
 ################################################################################
 
-def gpg_keyring_args(keyrings=None)
+def gpg_keyring_args(keyrings=None):
     if not keyrings:
         keyrings = Cnf.ValueList("Dinstall::GPGKeyring")
 
@@ -1002,9 +1002,6 @@ used."""
 
     bad = ""
     # Now check for obviously bad things in the processed output
-    if keywords.has_key("SIGEXPIRED"):
-        reject("The key used to sign %s has expired." % (sig_filename))
-        bad = 1
     if keywords.has_key("KEYREVOKED"):
         reject("The key used to sign %s has been revoked." % (sig_filename))
         bad = 1
@@ -1026,6 +1023,9 @@ used."""
     if keywords.has_key("NODATA"):
         reject("no signature found in %s." % (sig_filename))
         bad = 1
+    if keywords.has_key("KEYEXPIRED") and not keywords.has_key("GOODSIG"):
+        reject("The key (0x%s) used to sign %s has expired." % (key, sig_filename))
+        bad = 1
 
     if bad:
         return None