aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-10-19 20:40:54 +0000
committerRob Austein <sra@hactrn.net>2007-10-19 20:40:54 +0000
commitbc9393cd00b756b13ca166116e3b5995cf668f7c (patch)
tree6c49d5ddabed2c44e8ad015c404fc76c4140a9fc /scripts
parentd9e7bcd083f8a56354452f68a08863ae07b1269c (diff)
Manifest cleanup
svn path=/scripts/rpki/manifest.py; revision=1179
Diffstat (limited to 'scripts')
-rw-r--r--scripts/rpki/manifest.py40
-rw-r--r--scripts/rpki/x509.py4
2 files changed, 6 insertions, 38 deletions
diff --git a/scripts/rpki/manifest.py b/scripts/rpki/manifest.py
index 68175d5a..15b60e7b 100644
--- a/scripts/rpki/manifest.py
+++ b/scripts/rpki/manifest.py
@@ -3,7 +3,7 @@
"""Signed manifests. This is just the ASN.1 encoder, the rest is in
rpki.x509 with the rest of the DER_object code.
-Note that rpki.x509.SignedManifest inmplements the signed manifest;
+Note that rpki.x509.SignedManifest implements the signed manifest;
the structures here are just the payload of the CMS eContent field.
"""
@@ -22,47 +22,15 @@ class FilesAndHashes(SequenceOf):
class Manifest(Sequence):
def __init__(self, optional=0, default=''):
-
- # I'm having trouble decoding the ASN.1 as currently specified.
- # I've asked about this on the mailing list, but I see three
- # options:
- #
- # 1) What the spec currently says, which doesn't quite work.
- #
- # 2) Get rid of the default on the version field, which might
- # make sense as it doesn't waste a lot of space.
- #
- # 3) Explictly tag the version field, which seems to be the usual
- # ASN.1 thing to do in these situations.
- #
- # Until the mailing list settles this, I've included code for all
- # three options here, using the numbers above.
- #
- # Clean all this up once the mailing list settles it.
-
- which_option = 3
-
- if which_option == 1:
- self.version = Integer(0, "AgEA")
-
- if which_option in (2, 3):
- self.version = Integer()
-
- if which_option == 3:
- self.explicitVersion = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=')
-
+ self.version = Integer()
+ self.explicitVersion = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=')
self.manifestNumber = Integer()
self.thisUpdate = GeneralizedTime()
self.nextUpdate = GeneralizedTime()
self.fileHashAlg = Oid()
self.fileList = FilesAndHashes()
- if which_option in (1, 2):
- contents = [ self.version ]
- else:
- contents = [ self.explicitVersion ]
-
- contents += [
+ contents = [ self.explicitVersion,
self.manifestNumber,
self.thisUpdate,
self.nextUpdate,
diff --git a/scripts/rpki/x509.py b/scripts/rpki/x509.py
index 40412d61..a663cdca 100644
--- a/scripts/rpki/x509.py
+++ b/scripts/rpki/x509.py
@@ -588,7 +588,7 @@ class SignedManifest(DER_object):
m.fromString(s)
self.content = m
- def build(self, serial, nextUpdate, names_and_objs):
+ def build(self, serial, nextUpdate, names_and_objs, version = 0):
"""Build the inner content of this manifest."""
filelist = []
for name, obj in names_and_objs:
@@ -597,7 +597,7 @@ class SignedManifest(DER_object):
filelist.append((name.rpartition("/")[2], d.digest()))
filelist.sort(key = lambda x: x[0])
m = rpki.manifest.Manifest()
- m.version.set(0)
+ m.version.set(version)
m.manifestNumber.set(serial)
m.thisUpdate.set(POW.pkix.time2gen(time.time()))
m.nextUpdate.set(POW.pkix.time2gen(nextUpdate))