aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2015-05-02 21:23:40 -0400
committerAlex Gaynor <alex.gaynor@gmail.com>2015-05-02 21:23:40 -0400
commitfdec095ab21e523e8de7d46d07c55c94a11960e7 (patch)
treebe67c2d3f02de2fbb540a2241f47083d743c4106
parent43ffcc267c8d7e35f58db4d8d7262de2bcf5db70 (diff)
parentf24bad7ee68fe0a10756f428d3bc742c53e22efa (diff)
downloadcryptography-fdec095ab21e523e8de7d46d07c55c94a11960e7.tar.gz
cryptography-fdec095ab21e523e8de7d46d07c55c94a11960e7.tar.bz2
cryptography-fdec095ab21e523e8de7d46d07c55c94a11960e7.zip
Merge pull request #1890 from reaperhulk/add-eq-ne-eku
add eq/ne to ExtendedKeyUsage
-rw-r--r--src/cryptography/x509.py18
-rw-r--r--tests/test_x509_ext.py15
2 files changed, 28 insertions, 5 deletions
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index b22ac8be..a37e2d08 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -277,11 +277,10 @@ class Extension(object):
class ExtendedKeyUsage(object):
def __init__(self, usages):
- for oid in usages:
- if not isinstance(oid, ObjectIdentifier):
- raise TypeError(
- "Every item in the usages list must be an ObjectIdentifier"
- )
+ if not all(isinstance(x, ObjectIdentifier) for x in usages):
+ raise TypeError(
+ "Every item in the usages list must be an ObjectIdentifier"
+ )
self._usages = usages
@@ -294,6 +293,15 @@ class ExtendedKeyUsage(object):
def __repr__(self):
return "<ExtendedKeyUsage({0})>".format(self._usages)
+ def __eq__(self, other):
+ if not isinstance(other, ExtendedKeyUsage):
+ return NotImplemented
+
+ return self._usages == other._usages
+
+ def __ne__(self, other):
+ return not self == other
+
class BasicConstraints(object):
def __init__(self, ca, path_length):
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index c1d51e5e..05734b42 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -325,6 +325,21 @@ class TestExtendedKeyUsage(object):
"tAuth)>])>"
)
+ def test_eq(self):
+ eku = x509.ExtendedKeyUsage([
+ x509.ObjectIdentifier("1.3.6"), x509.ObjectIdentifier("1.3.7")
+ ])
+ eku2 = x509.ExtendedKeyUsage([
+ x509.ObjectIdentifier("1.3.6"), x509.ObjectIdentifier("1.3.7")
+ ])
+ assert eku == eku2
+
+ def test_ne(self):
+ eku = x509.ExtendedKeyUsage([x509.ObjectIdentifier("1.3.6")])
+ eku2 = x509.ExtendedKeyUsage([x509.ObjectIdentifier("1.3.6.1")])
+ assert eku != eku2
+ assert eku != object()
+
@pytest.mark.requires_backend_interface(interface=RSABackend)
@pytest.mark.requires_backend_interface(interface=X509Backend)