diff --git a/tests/test_x509.py b/tests/test_x509.py
index 131954c..df315cc 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -897,44 +897,43 @@
         assert isinstance(cert.signature_hash_algorithm, hashes.SHA1)
         public_key = cert.public_key()
         assert isinstance(public_key, dsa.DSAPublicKey)
-        if isinstance(public_key, dsa.DSAPublicKeyWithSerialization):
-            num = public_key.public_numbers()
-            assert num.y == int(
-                "4c08bfe5f2d76649c80acf7d431f6ae2124b217abc8c9f6aca776ddfa94"
-                "53b6656f13e543684cd5f6431a314377d2abfa068b7080cb8ddc065afc2"
-                "dea559f0b584c97a2b235b9b69b46bc6de1aed422a6f341832618bcaae2"
-                "198aba388099dafb05ff0b5efecb3b0ae169a62e1c72022af50ae68af3b"
-                "033c18e6eec1f7df4692c456ccafb79cc7e08da0a5786e9816ceda651d6"
-                "1b4bb7b81c2783da97cea62df67af5e85991fdc13aff10fc60e06586386"
-                "b96bb78d65750f542f86951e05a6d81baadbcd35a2e5cad4119923ae6a2"
-                "002091a3d17017f93c52970113cdc119970b9074ca506eac91c3dd37632"
-                "5df4af6b3911ef267d26623a5a1c5df4a6d13f1c", 16
-            )
-            assert num.parameter_numbers.g == int(
-                "4b7ced71dc353965ecc10d441a9a06fc24943a32d66429dd5ef44d43e67"
-                "d789d99770aec32c0415dc92970880872da45fef8dd1e115a3e4801387b"
-                "a6d755861f062fd3b6e9ea8e2641152339b828315b1528ee6c7b79458d2"
-                "1f3db973f6fc303f9397174c2799dd2351282aa2d8842c357a73495bbaa"
-                "c4932786414c55e60d73169f5761036fba29e9eebfb049f8a3b1b7cee6f"
-                "3fbfa136205f130bee2cf5b9c38dc1095d4006f2e73335c07352c64130a"
-                "1ab2b89f13b48f628d3cc3868beece9bb7beade9f830eacc6fa241425c0"
-                "b3fcc0df416a0c89f7bf35668d765ec95cdcfbe9caff49cfc156c668c76"
-                "fa6247676a6d3ac945844a083509c6a1b436baca", 16
-            )
-            assert num.parameter_numbers.p == int(
-                "bfade6048e373cd4e48b677e878c8e5b08c02102ae04eb2cb5c46a523a3"
-                "af1c73d16b24f34a4964781ae7e50500e21777754a670bd19a7420d6330"
-                "84e5556e33ca2c0e7d547ea5f46a07a01bf8669ae3bdec042d9b2ae5e6e"
-                "cf49f00ba9dac99ab6eff140d2cedf722ee62c2f9736857971444c25d0a"
-                "33d2017dc36d682a1054fe2a9428dda355a851ce6e6d61e03e419fd4ca4"
-                "e703313743d86caa885930f62ed5bf342d8165627681e9cc3244ba72aa2"
-                "2148400a6bbe80154e855d042c9dc2a3405f1e517be9dea50562f56da93"
-                "f6085f844a7e705c1f043e65751c583b80d29103e590ccb26efdaa0893d"
-                "833e36468f3907cfca788a3cb790f0341c8a31bf", 16
-            )
-            assert num.parameter_numbers.q == int(
-                "822ff5d234e073b901cf5941f58e1f538e71d40d", 16
-            )
+        num = public_key.public_numbers()
+        assert num.y == int(
+            "4c08bfe5f2d76649c80acf7d431f6ae2124b217abc8c9f6aca776ddfa94"
+            "53b6656f13e543684cd5f6431a314377d2abfa068b7080cb8ddc065afc2"
+            "dea559f0b584c97a2b235b9b69b46bc6de1aed422a6f341832618bcaae2"
+            "198aba388099dafb05ff0b5efecb3b0ae169a62e1c72022af50ae68af3b"
+            "033c18e6eec1f7df4692c456ccafb79cc7e08da0a5786e9816ceda651d6"
+            "1b4bb7b81c2783da97cea62df67af5e85991fdc13aff10fc60e06586386"
+            "b96bb78d65750f542f86951e05a6d81baadbcd35a2e5cad4119923ae6a2"
+            "002091a3d17017f93c52970113cdc119970b9074ca506eac91c3dd37632"
+            "5df4af6b3911ef267d26623a5a1c5df4a6d13f1c", 16
+        )
+        assert num.parameter_numbers.g == int(
+            "4b7ced71dc353965ecc10d441a9a06fc24943a32d66429dd5ef44d43e67"
+            "d789d99770aec32c0415dc92970880872da45fef8dd1e115a3e4801387b"
+            "a6d755861f062fd3b6e9ea8e2641152339b828315b1528ee6c7b79458d2"
+            "1f3db973f6fc303f9397174c2799dd2351282aa2d8842c357a73495bbaa"
+            "c4932786414c55e60d73169f5761036fba29e9eebfb049f8a3b1b7cee6f"
+            "3fbfa136205f130bee2cf5b9c38dc1095d4006f2e73335c07352c64130a"
+            "1ab2b89f13b48f628d3cc3868beece9bb7beade9f830eacc6fa241425c0"
+            "b3fcc0df416a0c89f7bf35668d765ec95cdcfbe9caff49cfc156c668c76"
+            "fa6247676a6d3ac945844a083509c6a1b436baca", 16
+        )
+        assert num.parameter_numbers.p == int(
+            "bfade6048e373cd4e48b677e878c8e5b08c02102ae04eb2cb5c46a523a3"
+            "af1c73d16b24f34a4964781ae7e50500e21777754a670bd19a7420d6330"
+            "84e5556e33ca2c0e7d547ea5f46a07a01bf8669ae3bdec042d9b2ae5e6e"
+            "cf49f00ba9dac99ab6eff140d2cedf722ee62c2f9736857971444c25d0a"
+            "33d2017dc36d682a1054fe2a9428dda355a851ce6e6d61e03e419fd4ca4"
+            "e703313743d86caa885930f62ed5bf342d8165627681e9cc3244ba72aa2"
+            "2148400a6bbe80154e855d042c9dc2a3405f1e517be9dea50562f56da93"
+            "f6085f844a7e705c1f043e65751c583b80d29103e590ccb26efdaa0893d"
+            "833e36468f3907cfca788a3cb790f0341c8a31bf", 16
+        )
+        assert num.parameter_numbers.q == int(
+            "822ff5d234e073b901cf5941f58e1f538e71d40d", 16
+        )
 
     @pytest.mark.parametrize(
         ("path", "loader_func"),
@@ -978,17 +977,16 @@
         assert isinstance(cert.signature_hash_algorithm, hashes.SHA384)
         public_key = cert.public_key()
         assert isinstance(public_key, ec.EllipticCurvePublicKey)
-        if isinstance(public_key, ec.EllipticCurvePublicKeyWithSerialization):
-            num = public_key.public_numbers()
-            assert num.x == int(
-                "dda7d9bb8ab80bfb0b7f21d2f0bebe73f3335d1abc34eadec69bbcd095f"
-                "6f0ccd00bba615b51467e9e2d9fee8e630c17", 16
-            )
-            assert num.y == int(
-                "ec0770f5cf842e40839ce83f416d3badd3a4145936789d0343ee10136c7"
-                "2deae88a7a16bb543ce67dc23ff031ca3e23e", 16
-            )
-            assert isinstance(num.curve, ec.SECP384R1)
+        num = public_key.public_numbers()
+        assert num.x == int(
+            "dda7d9bb8ab80bfb0b7f21d2f0bebe73f3335d1abc34eadec69bbcd095f"
+            "6f0ccd00bba615b51467e9e2d9fee8e630c17", 16
+        )
+        assert num.y == int(
+            "ec0770f5cf842e40839ce83f416d3badd3a4145936789d0343ee10136c7"
+            "2deae88a7a16bb543ce67dc23ff031ca3e23e", 16
+        )
+        assert isinstance(num.curve, ec.SECP384R1)
 
     def test_load_ecdsa_no_named_curve(self, backend):
         _skip_curve_unsupported(backend, ec.SECP256R1())
diff --git a/tests/utils.py b/tests/utils.py
index 46d9364..8be5c1f 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -397,10 +397,7 @@
         elif line.startswith("[mod = L=3072"):
             continue
 
-        if not reading_key_data:
-            continue
-
-        elif reading_key_data:
+        if reading_key_data:
             if line.startswith("P"):
                 vectors.append({'p': int(line.split("=")[1], 16)})
             elif line.startswith("Q"):
