Don't raise an UnsupportedExtension for critical extensions. (#3550)

* Don't raise an UnsupportedExtension for critical extensions.

Fixes #2903
Fixes #2901
Fixes #3325

* Don't link

* Revert "Don't link"

This reverts commit 4fe847f91d9dd45cdc28a4984c4e44aad62a5de6.

* fix

* Revert "Revert "Don't link""

This reverts commit 856031b5a1fbad04ac218fa94ebf37dcd402f3ed.

* fix

* Deprecate this

* Better changelog entry
diff --git a/tests/test_x509.py b/tests/test_x509.py
index de19d0d..c15940e 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -438,8 +438,10 @@
             backend
         )
 
-        with pytest.raises(x509.UnsupportedExtension):
-            crl[0].extensions
+        ext = crl[0].extensions.get_extension_for_oid(
+            x509.ObjectIdentifier("1.2.3.4")
+        )
+        assert ext.value.value == b"\n\x01\x00"
 
     def test_unsupported_reason(self, backend):
         crl = _load_cert(
@@ -1129,10 +1131,10 @@
             x509.load_pem_x509_csr,
             backend
         )
-        with pytest.raises(x509.UnsupportedExtension) as exc:
-            request.extensions
-
-        assert exc.value.oid == x509.ObjectIdentifier('1.2.3.4')
+        ext = request.extensions.get_extension_for_oid(
+            x509.ObjectIdentifier('1.2.3.4')
+        )
+        assert ext.value.value == b"value"
 
     def test_unsupported_extension(self, backend):
         request = _load_cert(
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index 8210b05..eaf5a51 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -1085,10 +1085,10 @@
             x509.load_pem_x509_certificate,
             backend
         )
-        with pytest.raises(x509.UnsupportedExtension) as exc:
-            cert.extensions
-
-        assert exc.value.oid == x509.ObjectIdentifier("1.2.3.4")
+        ext = cert.extensions.get_extension_for_oid(
+            x509.ObjectIdentifier("1.2.3.4")
+        )
+        assert ext.value.value == b"value"
 
     @pytest.mark.requires_backend_interface(interface=EllipticCurveBackend)
     def test_unsupported_extension(self, backend):