diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-05-13 10:00:41 -0500 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-05-13 10:00:41 -0500 |
commit | 58cc3973cf3c3e83d5cb9e1d29e1a4fd9b88eff7 (patch) | |
tree | 40ff2be75b7d52054f4df4f19d1f8f9ef43b3199 | |
parent | 91ea3a91fe67ecf2577b3f88955c4baad4d4f131 (diff) | |
download | cryptography-58cc3973cf3c3e83d5cb9e1d29e1a4fd9b88eff7.tar.gz cryptography-58cc3973cf3c3e83d5cb9e1d29e1a4fd9b88eff7.tar.bz2 cryptography-58cc3973cf3c3e83d5cb9e1d29e1a4fd9b88eff7.zip |
add eq/ne support to SubjectAlternativeName
-rw-r--r-- | src/cryptography/x509.py | 9 | ||||
-rw-r--r-- | tests/test_x509_ext.py | 19 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py index b0a4a352..8e9c1aca 100644 --- a/src/cryptography/x509.py +++ b/src/cryptography/x509.py @@ -914,6 +914,15 @@ class SubjectAlternativeName(object): def __repr__(self): return "<SubjectAlternativeName({0})>".format(self._general_names) + def __eq__(self, other): + if not isinstance(other, SubjectAlternativeName): + return NotImplemented + + return self._general_names == other._general_names + + def __ne__(self, other): + return not self == other + class AuthorityKeyIdentifier(object): def __init__(self, key_identifier, authority_cert_issuer, diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py index 2852776b..5d54da1e 100644 --- a/tests/test_x509_ext.py +++ b/tests/test_x509_ext.py @@ -1077,6 +1077,25 @@ class TestSubjectAlternativeName(object): "<SubjectAlternativeName([<DNSName(value=cryptography.io)>])>" ) + def test_eq(self): + san = x509.SubjectAlternativeName( + [x509.DNSName(u"cryptography.io")] + ) + san2 = x509.SubjectAlternativeName( + [x509.DNSName(u"cryptography.io")] + ) + assert san == san2 + + def test_ne(self): + san = x509.SubjectAlternativeName( + [x509.DNSName(u"cryptography.io")] + ) + san2 = x509.SubjectAlternativeName( + [x509.RFC822Name(u"admin@cryptography.io")] + ) + assert san != san2 + assert san != object() + @pytest.mark.requires_backend_interface(interface=RSABackend) @pytest.mark.requires_backend_interface(interface=X509Backend) |