diff options
Diffstat (limited to 'rpki/x509.py')
-rw-r--r-- | rpki/x509.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/rpki/x509.py b/rpki/x509.py index 1b1dafba..99e96d61 100644 --- a/rpki/x509.py +++ b/rpki/x509.py @@ -82,6 +82,18 @@ def first_rsync_uri(xia): return uri return None +def first_http_uri(xia): + """ + Find first HTTP URI in a sequence of AIA or SIA URIs. + Returns the URI if found, otherwise None. + """ + + if xia is not None: + for uri in xia: + if uri.startswith("http://"): + return uri + return None + def sha1(data): """ Calculate SHA-1 digest of some data. @@ -493,6 +505,15 @@ class DER_object(object): sia = self.get_POW().getSIA() return None if sia is None else first_rsync_uri(sia[2]) + def get_sia_rrdp_notify(self): + """ + Get SIA RRDP (id-ad-rpkiNotify) URI from this object. + Only works for subclasses that support getSIA(). + """ + + sia = self.get_POW().getSIA() + return None if sia is None else first_http_uri(sia[3]) + def get_AIA(self): """ Get the SIA extension from this object. Only works for subclasses |