add eq/ne support to BasicConstraints
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index b0a4a35..89b9162 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -333,6 +333,15 @@
         return ("<BasicConstraints(ca={0.ca}, "
                 "path_length={0.path_length})>").format(self)
 
+    def __eq__(self, other):
+        if not isinstance(other, BasicConstraints):
+            return NotImplemented
+
+        return self.ca == other.ca and self.path_length == other.path_length
+
+    def __ne__(self, other):
+        return not self == other
+
 
 class KeyUsage(object):
     def __init__(self, digital_signature, content_commitment, key_encipherment,
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index 2852776..281beeb 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -622,6 +622,19 @@
             "<BasicConstraints(ca=True, path_length=None)>"
         )
 
+    def test_eq(self):
+        na = x509.BasicConstraints(ca=True, path_length=None)
+        na2 = x509.BasicConstraints(ca=True, path_length=None)
+        assert na == na2
+
+    def test_ne(self):
+        na = x509.BasicConstraints(ca=True, path_length=None)
+        na2 = x509.BasicConstraints(ca=True, path_length=1)
+        na3 = x509.BasicConstraints(ca=False, path_length=None)
+        assert na != na2
+        assert na != na3
+        assert na != object()
+
 
 class TestExtendedKeyUsage(object):
     def test_not_all_oids(self):