A handful of small cleanups and simplifications
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 7d8460c..0dd9a2e 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -2270,6 +2270,9 @@
         generalized_time = self._ffi.gc(
             generalized_time, self._lib.ASN1_GENERALIZEDTIME_free
         )
+        return self._parse_asn1_generalized_time(generalized_time)
+
+    def _parse_asn1_generalized_time(self, generalized_time):
         time = self._asn1_string_to_ascii(
             self._ffi.cast("ASN1_STRING *", generalized_time)
         )
diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py
index 1376ab7..49d895b 100644
--- a/src/cryptography/hazmat/backends/openssl/x509.py
+++ b/src/cryptography/hazmat/backends/openssl/x509.py
@@ -712,13 +712,8 @@
     generalized_time = backend._ffi.gc(
         generalized_time, backend._lib.ASN1_GENERALIZEDTIME_free
     )
-    time = backend._ffi.string(
-        backend._lib.ASN1_STRING_data(
-            backend._ffi.cast("ASN1_STRING *", generalized_time)
-        )
-    ).decode("ascii")
     return x509.InvalidityDate(
-        datetime.datetime.strptime(time, "%Y%m%d%H%M%SZ")
+        backend._parse_asn1_generalized_time(generalized_time)
     )
 
 
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index bfa94ec..f802300 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -972,9 +972,7 @@
         )
         exts = cert.extensions
         assert exts[-1] == exts[7]
-        assert len(exts[3:5]) == 2
-        assert exts[2:4][0] == exts[2]
-        assert exts[2:4][1] == exts[3]
+        assert exts[2:6:2] == [exts[2], exts[4]]
 
     def test_one_extension_get_for_class(self, backend):
         cert = _load_cert(
@@ -1506,9 +1504,7 @@
             x509.UniformResourceIdentifier(u"http://another.local"),
         ])
         assert gn[-1] == gn[4]
-        assert len(gn[1:3]) == 2
-        assert gn[2:4][0] == gn[2]
-        assert gn[2:5:2][1] == gn[4]
+        assert gn[2:6:2] == [gn[2], gn[4]]
 
     def test_invalid_general_names(self):
         with pytest.raises(TypeError):
@@ -1673,9 +1669,7 @@
             x509.UniformResourceIdentifier(u"http://another.local"),
         ])
         assert san[-1] == san[4]
-        assert len(san[1:3]) == 2
-        assert san[2:4][0] == san[2]
-        assert san[2:5:2][1] == san[4]
+        assert san[2:6:2] == [san[2], san[4]]
 
     def test_invalid_general_names(self):
         with pytest.raises(TypeError):