diff options
author | Michael Elkins <melkins@tislabs.com> | 2013-03-04 22:14:53 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2013-03-04 22:14:53 +0000 |
commit | afaadf9b7f241713e26f71dd30e909e95d9afe48 (patch) | |
tree | ea5175765473dc700a0f1ec3fc8f07a3e76b9c67 /rpkid | |
parent | f4e529b244afe3fa0bac96665dad567663f76ec9 (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.py | 12 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/models.py | 12 |
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." |