aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2009-08-24 19:09:24 +0000
committerRob Austein <sra@hactrn.net>2009-08-24 19:09:24 +0000
commit825d1d2d870ba1d7b5375c366aacb5066c3caf5d (patch)
tree8d38b4b3a2223576e26a73a26b752e560d8baa8a
parent37c6205c7062f394fc7063acfba257bb19f782cc (diff)
Checkpoint
svn path=/myrpki/myirbe.py; revision=2700
-rw-r--r--myrpki/myirbe.py3
-rw-r--r--myrpki/myrpki.py25
-rw-r--r--myrpki/schema.rnc1
-rw-r--r--myrpki/yamltest.py6
4 files changed, 24 insertions, 11 deletions
diff --git a/myrpki/myirbe.py b/myrpki/myirbe.py
index 582c3453..b7689d3f 100644
--- a/myrpki/myirbe.py
+++ b/myrpki/myirbe.py
@@ -357,7 +357,8 @@ for xmlfile in xmlfiles:
# whom this <self/> has a relationship. In practice there is rarely
# (never?) a good reason for a single <self/> to use multiple
# publication services, so in normal use we only need one
- # <repository/> object.
+ # <repository/> object. If for some reason you really need more
+ # than this, you'll have to hack.
repository_cert = findbase64(tree, "bpki_repository_certificate")
if repository_cert:
diff --git a/myrpki/myrpki.py b/myrpki/myrpki.py
index b1a41b01..7ab6aa8c 100644
--- a/myrpki/myrpki.py
+++ b/myrpki/myrpki.py
@@ -239,19 +239,22 @@ class parent(object):
self.bpki_cms_certificate = None
self.bpki_https_certificate = None
self.myhandle = None
+ self.sia_base = None
def __repr__(self):
- return "<%s handle %s myhandle %s uri %s cms %s https %s>" % (self.__class__.__name__,
+ return "<%s handle %s myhandle %s uri %s sia %s cms %s https %s>" % (self.__class__.__name__,
self.handle,
self.myhandle,
self.service_uri,
+ self.sia_base,
self.bpki_cms_certificate,
self.bpki_https_certificate)
def add(self, service_uri = None,
bpki_cms_certificate = None,
bpki_https_certificate = None,
- myhandle = None):
+ myhandle = None,
+ sia_base = None):
"""
Add service URI or BPKI certificates to this parent object.
"""
@@ -263,6 +266,8 @@ class parent(object):
self.bpki_https_certificate = bpki_https_certificate
if myhandle is not None:
self.myhandle = myhandle
+ if sia_base is not None:
+ self.sia_base = sia_base
def xml(self, e):
"""
@@ -271,7 +276,8 @@ class parent(object):
e2 = SubElement(e, "parent",
handle = self.handle,
myhandle = self.myhandle,
- service_uri = self.service_uri)
+ service_uri = self.service_uri,
+ sia_base = self.sia_base)
if self.bpki_cms_certificate:
PEMElement(e2, "bpki_cms_certificate", self.bpki_cms_certificate)
if self.bpki_https_certificate:
@@ -287,7 +293,8 @@ class parents(dict):
service_uri = None,
bpki_cms_certificate = None,
bpki_https_certificate = None,
- myhandle = None):
+ myhandle = None,
+ sia_base = None):
"""
Add service URI or certificates to parent object, creating it if necessary.
"""
@@ -296,7 +303,8 @@ class parents(dict):
self[handle].add(service_uri = service_uri,
bpki_cms_certificate = bpki_cms_certificate,
bpki_https_certificate = bpki_https_certificate,
- myhandle = myhandle)
+ myhandle = myhandle,
+ sia_base = sia_base)
def xml(self, e):
for c in self.itervalues():
@@ -308,13 +316,14 @@ class parents(dict):
Parse parent data from CSV file.
"""
self = cls()
- # parentname service_uri parent_bpki_cms_pemfile parent_bpki_https_pemfile
- for handle, service_uri, parent_cms_pemfile, parent_https_pemfile, myhandle in csv_open(parents_csv_file):
+ # parentname service_uri parent_bpki_cms_pemfile parent_bpki_https_pemfile myhandle sia_base
+ for handle, service_uri, parent_cms_pemfile, parent_https_pemfile, myhandle, sia_base in csv_open(parents_csv_file):
self.add(handle = handle,
service_uri = service_uri,
bpki_cms_certificate = xcert(parent_cms_pemfile),
bpki_https_certificate = xcert(parent_https_pemfile),
- myhandle = myhandle)
+ myhandle = myhandle,
+ sia_base = sia_base)
return self
def csv_open(filename):
diff --git a/myrpki/schema.rnc b/myrpki/schema.rnc
index d19b2023..57a8ebab 100644
--- a/myrpki/schema.rnc
+++ b/myrpki/schema.rnc
@@ -46,6 +46,7 @@ parent_elt = element parent {
attribute handle { object_handle },
attribute service_uri { uri }?,
attribute myhandle { object_handle }?,
+ attribute sia_base { uri }?,
element bpki_cms_certificate { base64 }?,
element bpki_https_certificate { base64 }?
}
diff --git a/myrpki/yamltest.py b/myrpki/yamltest.py
index 1bc6b57c..e36d4342 100644
--- a/myrpki/yamltest.py
+++ b/myrpki/yamltest.py
@@ -326,14 +326,16 @@ class allocation(object):
"https://localhost:%d/" % self.rootd_port,
self.path("bpki.rootd/ca.cer"),
self.path("bpki.rootd/ca.cer"),
- self.name))
+ self.name,
+ self.sia_base))
else:
parent_host = self.parent.hosted_by if self.parent.is_hosted() else self.parent
self.csvout(fn).writerow((self.parent.name,
self.up_down_url(),
self.parent.path("bpki.myrpki/ca.cer"),
parent_host.path("bpki.rpkid/ca.cer"),
- self.name))
+ self.name,
+ self.sia_base))
def dump_prefixes(self, fn):
"""