diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-05-17 22:17:05 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-05-17 22:17:05 -0400 |
commit | 0b0179f7311162084f2b8dc6a028e301ca2eb7b2 (patch) | |
tree | 24bb7fa8d9818272739bd2ad03dd2c6d32058e86 | |
parent | 509bacbd475fce046524015ebb5e400e278c73fb (diff) | |
parent | eb177931f825308f9b4df9c789f76b7ce04751f6 (diff) | |
download | cryptography-0b0179f7311162084f2b8dc6a028e301ca2eb7b2.tar.gz cryptography-0b0179f7311162084f2b8dc6a028e301ca2eb7b2.tar.bz2 cryptography-0b0179f7311162084f2b8dc6a028e301ca2eb7b2.zip |
Merge pull request #1972 from reaperhulk/expand-ipaddress
IPAddress needs to support networks for nameconstraints
-rw-r--r-- | docs/x509.rst | 5 | ||||
-rw-r--r-- | src/cryptography/x509.py | 13 | ||||
-rw-r--r-- | tests/test_x509_ext.py | 6 |
3 files changed, 19 insertions, 5 deletions
diff --git a/docs/x509.rst b/docs/x509.rst index ff43be01..850e3df1 100644 --- a/docs/x509.rst +++ b/docs/x509.rst @@ -509,8 +509,9 @@ General Name Classes .. attribute:: value - :type: :class:`~ipaddress.IPv4Address` or - :class:`~ipaddress.IPv6Address`. + :type: :class:`~ipaddress.IPv4Address`, + :class:`~ipaddress.IPv6Address`, :class:`~ipaddress.IPv4Network`, + or :class:`~ipaddress.IPv6Network`. .. class:: RegisteredID diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py index 49cc8493..ccb9f6de 100644 --- a/src/cryptography/x509.py +++ b/src/cryptography/x509.py @@ -909,11 +909,18 @@ class RegisteredID(object): class IPAddress(object): def __init__(self, value): if not isinstance( - value, (ipaddress.IPv4Address, ipaddress.IPv6Address) + value, + ( + ipaddress.IPv4Address, + ipaddress.IPv6Address, + ipaddress.IPv4Network, + ipaddress.IPv6Network + ) ): raise TypeError( - "value must be an instance of ipaddress.IPv4Address or " - "ipaddress.IPv6Address" + "value must be an instance of ipaddress.IPv4Address, " + "ipaddress.IPv6Address, ipaddress.IPv4Network, or " + "ipaddress.IPv6Network" ) self._value = value diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py index 572aa30c..d3488a9f 100644 --- a/tests/test_x509_ext.py +++ b/tests/test_x509_ext.py @@ -1121,6 +1121,12 @@ class TestIPAddress(object): gn2 = x509.IPAddress(ipaddress.IPv6Address(u"ff::")) assert repr(gn2) == "<IPAddress(value=ff::)>" + gn3 = x509.IPAddress(ipaddress.IPv4Network(u"192.168.0.0/24")) + assert repr(gn3) == "<IPAddress(value=192.168.0.0/24)>" + + gn4 = x509.IPAddress(ipaddress.IPv6Network(u"ff::/96")) + assert repr(gn4) == "<IPAddress(value=ff::/96)>" + def test_eq(self): gn = x509.IPAddress(ipaddress.IPv4Address(u"127.0.0.1")) gn2 = x509.IPAddress(ipaddress.IPv4Address(u"127.0.0.1")) |