aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cryptography/x509/general_name.py3
-rw-r--r--tests/test_x509_ext.py8
2 files changed, 11 insertions, 0 deletions
diff --git a/src/cryptography/x509/general_name.py b/src/cryptography/x509/general_name.py
index f5bd30fb..3e0562af 100644
--- a/src/cryptography/x509/general_name.py
+++ b/src/cryptography/x509/general_name.py
@@ -85,6 +85,9 @@ class RFC822Name(object):
def __ne__(self, other):
return not self == other
+ def __hash__(self):
+ return hash(self.value)
+
@utils.register_interface(GeneralName)
class DNSName(object):
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index 03a3730a..450f192d 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -1448,6 +1448,14 @@ class TestRFC822Name(object):
assert gn.value == u"email@em\xe5\xefl.com"
assert gn._encoded == b"email@xn--eml-vla4c.com"
+ def test_hash(self):
+ g1 = x509.RFC822Name(u"email@host.com")
+ g2 = x509.RFC822Name(u"email@host.com")
+ g3 = x509.RFC822Name(u"admin@host.com")
+
+ assert hash(g1) == hash(g2)
+ assert hash(g1) != hash(g3)
+
class TestUniformResourceIdentifier(object):
def test_no_parsed_hostname(self):