aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/resource_set.py
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2011-02-24 00:00:05 +0000
committerMichael Elkins <melkins@tislabs.com>2011-02-24 00:00:05 +0000
commitdb47711dadcf69c041895caa86293b1d8f9ff514 (patch)
treebd2a5bbb22cc00effc820eecfbaa4924049c41a3 /rpkid/rpki/resource_set.py
parent89567f2d7b37bfdf5cee2906b6c0705b049d4212 (diff)
add rpki.resource_set.roa_prefix.from_roa_tuple() to do the opposite of .to_roa_tuple(); namely, convert from the ROA ASN.1 tuple into a roa_prefix object.
svn path=/rpkid/rpki/resource_set.py; revision=3688
Diffstat (limited to 'rpkid/rpki/resource_set.py')
-rw-r--r--rpkid/rpki/resource_set.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/rpkid/rpki/resource_set.py b/rpkid/rpki/resource_set.py
index 598db990..2fd10756 100644
--- a/rpkid/rpki/resource_set.py
+++ b/rpkid/rpki/resource_set.py
@@ -890,6 +890,14 @@ class roa_prefix(object):
return cls(cls.range_type.datum_type(r.group(1)), int(r.group(2)))
raise rpki.exceptions.BadROAPrefix, 'Bad ROA prefix "%s"' % (x)
+ @classmethod
+ def from_roa_tuple(cls, o):
+ """
+ Convert from ROA ASN.1 tuple format.
+ """
+ assert isinstance(o, (list, tuple)), 'argument must be either list or tuple'
+ return cls(cls.range_type.datum_type(_bs2long(o[0], cls.range_type.datum_type.bits, 0)), len(o[0]), o[1])
+
class roa_prefix_ipv4(roa_prefix):
"""
IPv4 ROA prefix.