aboutsummaryrefslogtreecommitdiff
path: root/scripts/rpki
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-10-09 20:01:53 +0000
committerRob Austein <sra@hactrn.net>2007-10-09 20:01:53 +0000
commit2b6adf23df4b86d1ad35d6d018bb2383a13cb33f (patch)
treef18cd8645629a3173645648852fce906f2e54e15 /scripts/rpki
parent6a1daf6220fcbe044ed8a4f28e4b5ab618b00ca9 (diff)
Tools to build manifests
svn path=/scripts/manifests.py; revision=1138
Diffstat (limited to 'scripts/rpki')
-rw-r--r--scripts/rpki/x509.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/rpki/x509.py b/scripts/rpki/x509.py
index 605a698f..7f82cd56 100644
--- a/scripts/rpki/x509.py
+++ b/scripts/rpki/x509.py
@@ -552,6 +552,20 @@ class SignedManifest(DER_object):
def verify(self, ta):
self.content = rpki.cms.verify(self.get_DER(), ta)
+ def build(self, serial, nextUpdate, names_and_objs):
+ filelist = []
+ for name, obj in names_and_objs:
+ d = POW.Digest(POW.SHA256_DIGEST)
+ d.update(obj.get_DER())
+ filelist.append((name.rpartition("/")[2], d.digest()))
+ m = rpki.manifest.Manifest()
+ m.manifestNumber.set(serial)
+ m.thisUpdate.set(POW.pkix.time2gen(time.time()))
+ m.nextUpdate.set(POW.pkix.time2gen(nextUpdate))
+ m.fileHashAlg.set((2, 16, 840, 1, 101, 3, 4, 2, 1)) # id-sha256
+ m.fileList.set(filelist)
+ self.set_content(m)
+
class CRL(DER_object):
"""Class to hold a Certificate Revocation List."""