Merge pull request #2595 from alex/crl-reason-hash
Refs #2578 -- implement __hash__ on CRLReason
diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py
index ed29b54..7979ccb 100644
--- a/src/cryptography/x509/extensions.py
+++ b/src/cryptography/x509/extensions.py
@@ -342,6 +342,9 @@
def __ne__(self, other):
return not self == other
+ def __hash__(self):
+ return hash((self.ca, self.path_length))
+
@utils.register_interface(ExtensionType)
class CRLDistributionPoints(object):
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index 8f961b0..cfca579 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -845,6 +845,13 @@
"<BasicConstraints(ca=True, path_length=None)>"
)
+ def test_hash(self):
+ na = x509.BasicConstraints(ca=True, path_length=None)
+ na2 = x509.BasicConstraints(ca=True, path_length=None)
+ na3 = x509.BasicConstraints(ca=True, path_length=0)
+ assert hash(na) == hash(na2)
+ assert hash(na) != hash(na3)
+
def test_eq(self):
na = x509.BasicConstraints(ca=True, path_length=None)
na2 = x509.BasicConstraints(ca=True, path_length=None)