Reduce code duplication
diff --git a/tests/primitives/test_nist.py b/tests/primitives/test_nist.py
index eb46a84..d68cd27 100644
--- a/tests/primitives/test_nist.py
+++ b/tests/primitives/test_nist.py
@@ -2,6 +2,7 @@
 Test using the NIST Test Vectors
 """
 import binascii
+import os
 
 import pytest
 
@@ -10,14 +11,18 @@
 from ..utils import load_nist_vectors_from_file
 
 
-class TestAES_CBC(object):
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
+def parameterize_encrypt(fname):
+    return pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
         load_nist_vectors_from_file(
-            "AES/KAT/CBCGFSbox128.rsp",
+            os.path.join("AES/KAT/", fname),
             "ENCRYPT",
             ["key", "iv", "plaintext", "ciphertext"],
         ),
     )
+
+
+class TestAES_CBC(object):
+    @parameterize_encrypt("CBCGFSbox128.rsp")
     def test_KAT_GFSbox_128_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -26,13 +31,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCGFSbox192.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCGFSbox192.rsp")
     def test_KAT_GFSbox_192_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -41,13 +40,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCGFSbox256.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCGFSbox256.rsp")
     def test_KAT_GFSbox_256_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -56,13 +49,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCKeySbox128.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCKeySbox128.rsp")
     def test_KAT_KeySbox_128_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -71,13 +58,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCKeySbox192.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCKeySbox192.rsp")
     def test_KAT_KeySbox_192_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -86,13 +67,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCKeySbox256.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCKeySbox256.rsp")
     def test_KAT_KeySbox_256_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -101,13 +76,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCVarKey128.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCVarKey128.rsp")
     def test_KAT_VarKey_128_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -116,13 +85,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCVarKey192.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCVarKey192.rsp")
     def test_KAT_VarKey_192_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -131,13 +94,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCVarKey256.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCVarKey256.rsp")
     def test_KAT_VarKey_256_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -146,13 +103,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCVarTxt128.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCVarTxt128.rsp")
     def test_KAT_VarTxt_128_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -161,13 +112,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCVarTxt192.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCVarTxt192.rsp")
     def test_KAT_VarTxt_192_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),
@@ -176,13 +121,7 @@
         actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
         assert binascii.hexlify(actual_ciphertext) == ciphertext
 
-    @pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
-        load_nist_vectors_from_file(
-            "AES/KAT/CBCVarTxt256.rsp",
-            "ENCRYPT",
-            ["key", "iv", "plaintext", "ciphertext"],
-        ),
-    )
+    @parameterize_encrypt("CBCVarTxt256.rsp")
     def test_KAT_VarTxt_256_encrypt(self, key, iv, plaintext, ciphertext):
         cipher = BlockCipher(
             ciphers.AES(binascii.unhexlify(key)),