diff options
author | Rob Austein <sra@hactrn.net> | 2010-10-07 00:12:50 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2010-10-07 00:12:50 +0000 |
commit | 8ada594d05c4e79fc2e3a13b50489bb75bd90cae (patch) | |
tree | 96b1f0a63a0f75cfa49078f1768d13c772c5636a /rpkid.with_tls/rpki/manifest.py | |
parent | fe3d8174f81370ca80d1d47158959ec3eb9d4eee (diff) |
Stash a copy of pre-conversion (with TLS) tree temporarily, in case of
problems during switchover. Will clean this up after testbed is back
up without TLS.
svn path=/rpkid.with_tls; revision=3464
Diffstat (limited to 'rpkid.with_tls/rpki/manifest.py')
-rw-r--r-- | rpkid.with_tls/rpki/manifest.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/rpkid.with_tls/rpki/manifest.py b/rpkid.with_tls/rpki/manifest.py new file mode 100644 index 00000000..8581f3a0 --- /dev/null +++ b/rpkid.with_tls/rpki/manifest.py @@ -0,0 +1,54 @@ +""" +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 implements the signed manifest; +the structures here are just the payload of the CMS eContent field. + +$Id$ + +Copyright (C) 2007--2008 American Registry for Internet Numbers ("ARIN") + +Permission to use, copy, modify, and 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 ARIN DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL ARIN 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. +""" + +from POW._der import * + +class FileAndHash(Sequence): + def __init__(self, optional=0, default=''): + self.file = IA5String() + self.hash = AltBitString() + contents = [ self.file, self.hash ] + Sequence.__init__(self, contents, optional, default) + +class FilesAndHashes(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, FileAndHash, optional, default) + +class Manifest(Sequence): + def __init__(self, optional=0, default=''): + 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() + + contents = [ self.explicitVersion, + self.manifestNumber, + self.thisUpdate, + self.nextUpdate, + self.fileHashAlg, + self.fileList ] + Sequence.__init__(self, contents, optional, default) |