aboutsummaryrefslogtreecommitdiff
path: root/rpkid
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2013-03-04 22:14:53 +0000
committerMichael Elkins <melkins@tislabs.com>2013-03-04 22:14:53 +0000
commitafaadf9b7f241713e26f71dd30e909e95d9afe48 (patch)
treeea5175765473dc700a0f1ec3fc8f07a3e76b9c67 /rpkid
parentf4e529b244afe3fa0bac96665dad567663f76ec9 (diff)
add .cert_chain property to return the complete certificate chain for the specified object
svn path=/trunk/; revision=5099
Diffstat (limited to 'rpkid')
-rw-r--r--rpkid/rpki/gui/app/models.py12
-rw-r--r--rpkid/rpki/gui/cacheview/models.py12
2 files changed, 24 insertions, 0 deletions
diff --git a/rpkid/rpki/gui/app/models.py b/rpkid/rpki/gui/app/models.py
index 9c4c9890..a2142b4f 100644
--- a/rpkid/rpki/gui/app/models.py
+++ b/rpkid/rpki/gui/app/models.py
@@ -151,6 +151,18 @@ class ResourceCert(models.Model):
else:
return u"%s's root cert" % self.conf.handle
+ def get_cert_chain(self):
+ """Return a list containing the complete certificate chain for this
+ certificate."""
+ cert = self
+ x = [cert]
+ while cert.issuer:
+ cert = cert.issuer
+ x.append(cert)
+ x.reverse()
+ return x
+ cert_chain = property(get_cert_chain)
+
class ResourceRangeAddressV4(rpki.gui.models.PrefixV4):
cert = models.ForeignKey(ResourceCert, related_name='address_ranges')
diff --git a/rpkid/rpki/gui/cacheview/models.py b/rpkid/rpki/gui/cacheview/models.py
index f58cca33..bef72079 100644
--- a/rpkid/rpki/gui/cacheview/models.py
+++ b/rpkid/rpki/gui/cacheview/models.py
@@ -138,6 +138,18 @@ class Cert(SignedObject):
def get_absolute_url(self):
return ('rpki.gui.cacheview.views.cert_detail', [str(self.pk)])
+ def get_cert_chain(self):
+ """Return a list containing the complete certificate chain for this
+ certificate."""
+ cert = self
+ x = [cert]
+ while cert != cert.issuer:
+ cert = cert.issuer
+ x.append(cert)
+ x.reverse()
+ return x
+ cert_chain = property(get_cert_chain)
+
class ROAPrefix(models.Model):
"Abstract base class for ROA mixin."