aboutsummaryrefslogtreecommitdiff
path: root/scripts/rpki/x509.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-11-13 20:22:57 +0000
committerRob Austein <sra@hactrn.net>2007-11-13 20:22:57 +0000
commit222dcc75375bed4627b1bb66c449cb78a2588771 (patch)
tree40949241c9b752b80704e75af04354db6444543e /scripts/rpki/x509.py
parente40bf7a235cd7e1a644c8b90d9c268ace845babe (diff)
Replace horrible profusion of tuples of resource sets with a new
wrapper abstraction. svn path=/scripts/biz-certs/Bob-CA.srl; revision=1281
Diffstat (limited to 'scripts/rpki/x509.py')
-rw-r--r--scripts/rpki/x509.py22
1 files changed, 8 insertions, 14 deletions
diff --git a/scripts/rpki/x509.py b/scripts/rpki/x509.py
index 069c84d6..a9ebf625 100644
--- a/scripts/rpki/x509.py
+++ b/scripts/rpki/x509.py
@@ -194,18 +194,11 @@ class DER_object(object):
"""Get the SIA extension from this object. Only works for subclasses that support getExtension()."""
return (self.get_POWpkix().getExtension(name2oid["subjectInfoAccess"]) or ((), 0, None))[2]
- def get_3779resources(self, as_intersector = None, v4_intersector = None, v6_intersector = None):
+ def get_3779resources(self):
"""Get RFC 3779 resources as rpki.resource_set objects.
Only works for subclasses that support getExtensions().
"""
- as, v4, v6 = rpki.resource_set.parse_extensions(self.get_POWpkix().getExtensions())
- if as_intersector is not None:
- as = as.intersection(as_intersector)
- if v4_intersector is not None:
- v4 = v4.intersection(v4_intersector)
- if v6_intersector is not None:
- v6 = v6.intersection(v6_intersector)
- return as, v4, v6
+ return rpki.resource_set.resource_bag.from_asn1_tuples(self.get_POWpkix().getExtensions())
class X509(DER_object):
"""X.509 certificates.
@@ -283,7 +276,7 @@ class X509(DER_object):
return RSApublic(DER = self.get_POWpkix().tbs.subjectPublicKeyInfo.toString())
def issue(self, keypair, subject_key, serial, sia, aia, crldp,
- cn = None, notAfter = None, as = None, v4 = None, v6 = None, is_ca = True):
+ cn = None, notAfter = None, resources = None, is_ca = True):
"""Issue a certificate."""
now = time.time()
@@ -322,10 +315,11 @@ class X509(DER_object):
else:
assert not is_ca
- if as:
- exts.append(["sbgp-autonomousSysNum", True, (as.to_tuple(), None)])
- if v4 or v6:
- exts.append(["sbgp-ipAddrBlock", True, [x for x in (v4.to_tuple(), v6.to_tuple()) if x is not None]])
+ if resources is not None and resources.as:
+ exts.append(["sbgp-autonomousSysNum", True, (resources.as.to_tuple(), None)])
+
+ if resources is not None and (resources.v4 or resources.v6):
+ exts.append(["sbgp-ipAddrBlock", True, [x for x in (resources.v4.to_tuple(), resources.v6.to_tuple()) if x is not None]])
for x in exts:
x[0] = name2oid[x[0]]