diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index b22ac8b..6fcbfe6 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -277,11 +277,10 @@
 
 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,17 @@
     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 d38fe57..c574aed 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -325,6 +325,21 @@
             "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)
