diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py index 6ae00927a428..2363d2bf42df 100644 --- a/src/cryptography/x509/extensions.py +++ b/src/cryptography/x509/extensions.py @@ -132,6 +132,9 @@ def __eq__(self, other): def __ne__(self, other): return not self == other + def __hash__(self): + return hash(self.crl_number) + def __repr__(self): return "".format(self.crl_number) diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py index b8105a4bf14a..49a3433cce9c 100644 --- a/tests/test_x509_ext.py +++ b/tests/test_x509_ext.py @@ -1579,6 +1579,13 @@ def test_invalid_number(self): with pytest.raises(TypeError): x509.CRLNumber("notanumber") + def test_hash(self): + c1 = x509.CRLNumber(1) + c2 = x509.CRLNumber(1) + c3 = x509.CRLNumber(2) + assert hash(c1) == hash(c2) + assert hash(c1) != hash(c3) + class TestSubjectAlternativeName(object): def test_get_values_for_type(self):