Start of the great refactoring
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 73394a5..8141faf 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -56,21 +56,19 @@
     PLAINTEXT = 9798c4640bad75c7c3227db910174e72
     """).splitlines()
 
-    assert load_nist_vectors(vector_data, "ENCRYPT",
-        ["key", "iv", "plaintext", "ciphertext"],
-    ) == [
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"f34481ec3cc627bacd5dc3fb08f273e6",
-            b"0336763e966d92595a567cc9ce537f5e",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"9798c4640bad75c7c3227db910174e72",
-            b"a9a1631bf4996954ebc093957b234589",
-        ),
+    assert load_nist_vectors(vector_data, "ENCRYPT") == [
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"f34481ec3cc627bacd5dc3fb08f273e6",
+            "ciphertext": b"0336763e966d92595a567cc9ce537f5e",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"9798c4640bad75c7c3227db910174e72",
+            "ciphertext": b"a9a1631bf4996954ebc093957b234589",
+        },
     ]
 
 
@@ -112,72 +110,69 @@
     PLAINTEXT = 9798c4640bad75c7c3227db910174e72
     """).splitlines()
 
-    assert load_nist_vectors(vector_data, "DECRYPT",
-        ["key", "iv", "ciphertext", "plaintext"],
-    ) == [
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"0336763e966d92595a567cc9ce537f5e",
-            b"f34481ec3cc627bacd5dc3fb08f273e6",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"a9a1631bf4996954ebc093957b234589",
-            b"9798c4640bad75c7c3227db910174e72",
-        ),
+    assert load_nist_vectors(vector_data, "DECRYPT") == [
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"f34481ec3cc627bacd5dc3fb08f273e6",
+            "ciphertext": b"0336763e966d92595a567cc9ce537f5e",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"9798c4640bad75c7c3227db910174e72",
+            "ciphertext": b"a9a1631bf4996954ebc093957b234589",
+        },
     ]
 
 
 def test_load_nist_vectors_from_file_encrypt():
     assert load_nist_vectors_from_file(
         "AES/KAT/CBCGFSbox128.rsp",
-        "ENCRYPT",
-        ["key", "iv", "plaintext", "ciphertext"],
+        "ENCRYPT"
     ) == [
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"f34481ec3cc627bacd5dc3fb08f273e6",
-            b"0336763e966d92595a567cc9ce537f5e",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"9798c4640bad75c7c3227db910174e72",
-            b"a9a1631bf4996954ebc093957b234589",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"96ab5c2ff612d9dfaae8c31f30c42168",
-            b"ff4f8391a6a40ca5b25d23bedd44a597",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"6a118a874519e64e9963798a503f1d35",
-            b"dc43be40be0e53712f7e2bf5ca707209",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"cb9fceec81286ca3e989bd979b0cb284",
-            b"92beedab1895a94faa69b632e5cc47ce",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"b26aeb1874e47ca8358ff22378f09144",
-            b"459264f4798f6a78bacb89c15ed3d601",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"58c8e00b2631686d54eab84b91f0aca1",
-            b"08a4e2efec8a8e3312ca7460b9040bbf",
-        ),
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"f34481ec3cc627bacd5dc3fb08f273e6",
+            "ciphertext": b"0336763e966d92595a567cc9ce537f5e",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"9798c4640bad75c7c3227db910174e72",
+            "ciphertext": b"a9a1631bf4996954ebc093957b234589",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"96ab5c2ff612d9dfaae8c31f30c42168",
+            "ciphertext": b"ff4f8391a6a40ca5b25d23bedd44a597",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"6a118a874519e64e9963798a503f1d35",
+            "ciphertext": b"dc43be40be0e53712f7e2bf5ca707209",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"cb9fceec81286ca3e989bd979b0cb284",
+            "ciphertext": b"92beedab1895a94faa69b632e5cc47ce",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"b26aeb1874e47ca8358ff22378f09144",
+            "ciphertext": b"459264f4798f6a78bacb89c15ed3d601",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"58c8e00b2631686d54eab84b91f0aca1",
+            "ciphertext": b"08a4e2efec8a8e3312ca7460b9040bbf",
+        },
     ]
 
 
@@ -185,50 +180,49 @@
     assert load_nist_vectors_from_file(
         "AES/KAT/CBCGFSbox128.rsp",
         "DECRYPT",
-        ["key", "iv", "ciphertext", "plaintext"],
-    ) == [
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"0336763e966d92595a567cc9ce537f5e",
-            b"f34481ec3cc627bacd5dc3fb08f273e6",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"a9a1631bf4996954ebc093957b234589",
-            b"9798c4640bad75c7c3227db910174e72",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"ff4f8391a6a40ca5b25d23bedd44a597",
-            b"96ab5c2ff612d9dfaae8c31f30c42168",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"dc43be40be0e53712f7e2bf5ca707209",
-            b"6a118a874519e64e9963798a503f1d35",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"92beedab1895a94faa69b632e5cc47ce",
-            b"cb9fceec81286ca3e989bd979b0cb284",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"459264f4798f6a78bacb89c15ed3d601",
-            b"b26aeb1874e47ca8358ff22378f09144"
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"00000000000000000000000000000000",
-            b"08a4e2efec8a8e3312ca7460b9040bbf",
-            b"58c8e00b2631686d54eab84b91f0aca1"
-        ),
+    ) ==  [
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"f34481ec3cc627bacd5dc3fb08f273e6",
+            "ciphertext": b"0336763e966d92595a567cc9ce537f5e",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"9798c4640bad75c7c3227db910174e72",
+            "ciphertext": b"a9a1631bf4996954ebc093957b234589",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"96ab5c2ff612d9dfaae8c31f30c42168",
+            "ciphertext": b"ff4f8391a6a40ca5b25d23bedd44a597",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"6a118a874519e64e9963798a503f1d35",
+            "ciphertext": b"dc43be40be0e53712f7e2bf5ca707209",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"cb9fceec81286ca3e989bd979b0cb284",
+            "ciphertext": b"92beedab1895a94faa69b632e5cc47ce",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"b26aeb1874e47ca8358ff22378f09144",
+            "ciphertext": b"459264f4798f6a78bacb89c15ed3d601",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "iv": b"00000000000000000000000000000000",
+            "plaintext": b"58c8e00b2631686d54eab84b91f0aca1",
+            "ciphertext": b"08a4e2efec8a8e3312ca7460b9040bbf",
+        },
     ]
 
 
@@ -254,21 +248,21 @@
     """).splitlines()
 
     assert load_cryptrec_vectors(vector_data) == [
-        (
-            b"00000000000000000000000000000000",
-            b"80000000000000000000000000000000",
-            b"07923A39EB0A817D1C4D87BDB82D1F1C",
-        ),
-        (
-            b"00000000000000000000000000000000",
-            b"40000000000000000000000000000000",
-            b"48CD6419809672D2349260D89A08D3D3",
-        ),
-        (
-            b"10000000000000000000000000000000",
-            b"80000000000000000000000000000000",
-            b"07923A39EB0A817D1C4D87BDB82D1F1C",
-        ),
+        {
+            "key": b"00000000000000000000000000000000",
+            "plaintext": b"80000000000000000000000000000000",
+            "ciphertext": b"07923A39EB0A817D1C4D87BDB82D1F1C",
+        },
+        {
+            "key": b"00000000000000000000000000000000",
+            "plaintext": b"40000000000000000000000000000000",
+            "ciphertext": b"48CD6419809672D2349260D89A08D3D3",
+        },
+        {
+            "key": b"10000000000000000000000000000000",
+            "plaintext": b"80000000000000000000000000000000",
+            "ciphertext": b"07923A39EB0A817D1C4D87BDB82D1F1C",
+        },
     ]
 
 
@@ -277,11 +271,11 @@
         "Camellia/NTT/camellia-128-ecb.txt"
     )
     assert test_set[0] == (
-        (
-            b"00000000000000000000000000000000",
-            b"80000000000000000000000000000000",
-            b"07923A39EB0A817D1C4D87BDB82D1F1C",
-        )
+        {
+            "key": b"00000000000000000000000000000000",
+            "plaintext": b"80000000000000000000000000000000",
+            "ciphertext": b"07923A39EB0A817D1C4D87BDB82D1F1C",
+        }
     )
     assert len(test_set) == 1280