aboutsummaryrefslogtreecommitdiff
path: root/potpourri/signed-object-dates.py
diff options
context:
space:
mode:
Diffstat (limited to 'potpourri/signed-object-dates.py')
-rw-r--r--potpourri/signed-object-dates.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/potpourri/signed-object-dates.py b/potpourri/signed-object-dates.py
new file mode 100644
index 00000000..fefd9448
--- /dev/null
+++ b/potpourri/signed-object-dates.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+# $Id$
+
+# Extract notBefore, and notAfter values from an RPKI signed object;
+# if the object is a manifest, also extract thisUpdate and nextUpdate.
+
+# Copyright (C) 2013 Dragon Research Labs ("DRL")
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND DRL DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL DRL BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+import sys
+import rpki.POW
+
+extract_flags = (rpki.POW.CMS_NOCRL |
+ rpki.POW.CMS_NO_SIGNER_CERT_VERIFY |
+ rpki.POW.CMS_NO_ATTR_VERIFY |
+ rpki.POW.CMS_NO_CONTENT_VERIFY)
+
+for fn in sys.argv[1:]:
+ cls = rpki.POW.Manifest if fn.endswith(".mft") else rpki.POW.CMS
+ cms = cls.derReadFile(fn)
+ cer = cms.certs()[0]
+ print fn
+ print " notBefore: ", cer.getNotBefore()
+ if fn.endswith(".mft"):
+ cms.verify(rpki.POW.X509Store(), None, extract_flags)
+ print " thisUpdate:", cms.getThisUpdate()
+ print " nextUpdate:", cms.getNextUpdate()
+ print " notAfter: ", cer.getNotAfter()
+ print