don't modify params on parametrized tests

multiple backends receive the same params dicts, but we were modifying
them using pop.
diff --git a/tests/hazmat/primitives/test_3des.py b/tests/hazmat/primitives/test_3des.py
index 69ec9c9..3574531 100644
--- a/tests/hazmat/primitives/test_3des.py
+++ b/tests/hazmat/primitives/test_3des.py
@@ -37,8 +37,10 @@
             "TCBCvarkey.rsp",
             "TCBCvartext.rsp",
         ],
-        lambda keys, iv: algorithms.TripleDES(binascii.unhexlify(keys)),
-        lambda keys, iv: modes.CBC(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.TripleDES(
+            binascii.unhexlify(kwargs["keys"])
+        ),
+        lambda **kwargs: modes.CBC(binascii.unhexlify(kwargs["iv"])),
     )
 
     test_MMT = generate_encrypt_test(
@@ -49,10 +51,10 @@
             "TCBCMMT2.rsp",
             "TCBCMMT3.rsp",
         ],
-        lambda key1, key2, key3, iv: (
-            algorithms.TripleDES(binascii.unhexlify(key1 + key2 + key3))
-        ),
-        lambda key1, key2, key3, iv: modes.CBC(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.TripleDES(binascii.unhexlify(
+            kwargs["key1"] + kwargs["key2"] + kwargs["key3"]
+        )),
+        lambda **kwargs: modes.CBC(binascii.unhexlify(kwargs["iv"])),
     )
 
 
@@ -67,8 +69,10 @@
             "TOFBvartext.rsp",
             "TOFBinvperm.rsp",
         ],
-        lambda keys, iv: algorithms.TripleDES(binascii.unhexlify(keys)),
-        lambda keys, iv: modes.OFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.TripleDES(
+            binascii.unhexlify(kwargs["keys"])
+        ),
+        lambda **kwargs: modes.OFB(binascii.unhexlify(kwargs["iv"])),
     )
 
     test_MMT = generate_encrypt_test(
@@ -79,10 +83,10 @@
             "TOFBMMT2.rsp",
             "TOFBMMT3.rsp",
         ],
-        lambda key1, key2, key3, iv: (
-            algorithms.TripleDES(binascii.unhexlify(key1 + key2 + key3))
-        ),
-        lambda key1, key2, key3, iv: modes.OFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.TripleDES(binascii.unhexlify(
+            kwargs["key1"] + kwargs["key2"] + kwargs["key3"]
+        )),
+        lambda **kwargs: modes.OFB(binascii.unhexlify(kwargs["iv"])),
     )
 
 
@@ -97,8 +101,10 @@
             "TCFB64varkey.rsp",
             "TCFB64vartext.rsp",
         ],
-        lambda keys, iv: algorithms.TripleDES(binascii.unhexlify(keys)),
-        lambda keys, iv: modes.CFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.TripleDES(
+            binascii.unhexlify(kwargs["keys"])
+        ),
+        lambda **kwargs: modes.CFB(binascii.unhexlify(kwargs["iv"])),
     )
 
     test_MMT = generate_encrypt_test(
@@ -109,8 +115,8 @@
             "TCFB64MMT2.rsp",
             "TCFB64MMT3.rsp",
         ],
-        lambda key1, key2, key3, iv: (
-            algorithms.TripleDES(binascii.unhexlify(key1 + key2 + key3))
-        ),
-        lambda key1, key2, key3, iv: modes.CFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.TripleDES(binascii.unhexlify(
+            kwargs["key1"] + kwargs["key2"] + kwargs["key3"]
+        )),
+        lambda **kwargs: modes.CFB(binascii.unhexlify(kwargs["iv"])),
     )
diff --git a/tests/hazmat/primitives/test_aes.py b/tests/hazmat/primitives/test_aes.py
index f7b0b9a..d706cbd 100644
--- a/tests/hazmat/primitives/test_aes.py
+++ b/tests/hazmat/primitives/test_aes.py
@@ -45,8 +45,8 @@
             "CBCMMT192.rsp",
             "CBCMMT256.rsp",
         ],
-        lambda key, iv: algorithms.AES(binascii.unhexlify(key)),
-        lambda key, iv: modes.CBC(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.AES(binascii.unhexlify(kwargs["key"])),
+        lambda **kwargs: modes.CBC(binascii.unhexlify(kwargs["iv"])),
     )
 
     test_ECB = generate_encrypt_test(
@@ -69,8 +69,8 @@
             "ECBMMT192.rsp",
             "ECBMMT256.rsp",
         ],
-        lambda key: algorithms.AES(binascii.unhexlify(key)),
-        lambda key: modes.ECB(),
+        lambda **kwargs: algorithms.AES(binascii.unhexlify(kwargs["key"])),
+        lambda **kwargs: modes.ECB(),
     )
 
     test_OFB = generate_encrypt_test(
@@ -93,8 +93,8 @@
             "OFBMMT192.rsp",
             "OFBMMT256.rsp",
         ],
-        lambda key, iv: algorithms.AES(binascii.unhexlify(key)),
-        lambda key, iv: modes.OFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.AES(binascii.unhexlify(kwargs["key"])),
+        lambda **kwargs: modes.OFB(binascii.unhexlify(kwargs["iv"])),
     )
 
     test_CFB = generate_encrypt_test(
@@ -117,16 +117,16 @@
             "CFB128MMT192.rsp",
             "CFB128MMT256.rsp",
         ],
-        lambda key, iv: algorithms.AES(binascii.unhexlify(key)),
-        lambda key, iv: modes.CFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.AES(binascii.unhexlify(kwargs["key"])),
+        lambda **kwargs: modes.CFB(binascii.unhexlify(kwargs["iv"])),
     )
 
     test_CTR = generate_encrypt_test(
         load_openssl_vectors,
         os.path.join("ciphers", "AES", "CTR"),
         ["aes-128-ctr.txt", "aes-192-ctr.txt", "aes-256-ctr.txt"],
-        lambda key, iv: algorithms.AES(binascii.unhexlify(key)),
-        lambda key, iv: modes.CTR(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.AES(binascii.unhexlify(kwargs["key"])),
+        lambda **kwargs: modes.CTR(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.AES("\x00" * 16), modes.CTR("\x00" * 16)
         ),
diff --git a/tests/hazmat/primitives/test_arc4.py b/tests/hazmat/primitives/test_arc4.py
index d233bec..7ce9306 100644
--- a/tests/hazmat/primitives/test_arc4.py
+++ b/tests/hazmat/primitives/test_arc4.py
@@ -35,7 +35,7 @@
             "rfc-6229-192.txt",
             "rfc-6229-256.txt",
         ],
-        lambda key: algorithms.ARC4(binascii.unhexlify((key))),
+        lambda **kwargs: algorithms.ARC4(binascii.unhexlify((kwargs["key"]))),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.ARC4("\x00" * 16), None
         ),
diff --git a/tests/hazmat/primitives/test_blowfish.py b/tests/hazmat/primitives/test_blowfish.py
index d5fbed6..3e0e902 100644
--- a/tests/hazmat/primitives/test_blowfish.py
+++ b/tests/hazmat/primitives/test_blowfish.py
@@ -27,8 +27,10 @@
         load_nist_vectors,
         os.path.join("ciphers", "Blowfish"),
         ["bf-ecb.txt"],
-        lambda key: algorithms.Blowfish(binascii.unhexlify(key)),
-        lambda key: modes.ECB(),
+        lambda **kwargs: algorithms.Blowfish(
+            binascii.unhexlify(kwargs["key"])
+        ),
+        lambda **kwargs: modes.ECB(),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Blowfish("\x00" * 56), modes.ECB()
         ),
@@ -39,8 +41,10 @@
         load_nist_vectors,
         os.path.join("ciphers", "Blowfish"),
         ["bf-cbc.txt"],
-        lambda key, iv: algorithms.Blowfish(binascii.unhexlify(key)),
-        lambda key, iv: modes.CBC(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.Blowfish(
+            binascii.unhexlify(kwargs["key"])
+        ),
+        lambda **kwargs: modes.CBC(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Blowfish("\x00" * 56), modes.CBC("\x00" * 8)
         ),
@@ -51,8 +55,10 @@
         load_nist_vectors,
         os.path.join("ciphers", "Blowfish"),
         ["bf-ofb.txt"],
-        lambda key, iv: algorithms.Blowfish(binascii.unhexlify(key)),
-        lambda key, iv: modes.OFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.Blowfish(
+            binascii.unhexlify(kwargs["key"])
+        ),
+        lambda **kwargs: modes.OFB(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Blowfish("\x00" * 56), modes.OFB("\x00" * 8)
         ),
@@ -63,8 +69,10 @@
         load_nist_vectors,
         os.path.join("ciphers", "Blowfish"),
         ["bf-cfb.txt"],
-        lambda key, iv: algorithms.Blowfish(binascii.unhexlify(key)),
-        lambda key, iv: modes.CFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.Blowfish(
+            binascii.unhexlify(kwargs["key"])
+        ),
+        lambda **kwargs: modes.CFB(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Blowfish("\x00" * 56), modes.CFB("\x00" * 8)
         ),
diff --git a/tests/hazmat/primitives/test_camellia.py b/tests/hazmat/primitives/test_camellia.py
index a2c935d..e11d590 100644
--- a/tests/hazmat/primitives/test_camellia.py
+++ b/tests/hazmat/primitives/test_camellia.py
@@ -33,8 +33,10 @@
             "camellia-192-ecb.txt",
             "camellia-256-ecb.txt"
         ],
-        lambda key: algorithms.Camellia(binascii.unhexlify((key))),
-        lambda key: modes.ECB(),
+        lambda **kwargs: algorithms.Camellia(
+            binascii.unhexlify((kwargs["key"]))
+        ),
+        lambda **kwargs: modes.ECB(),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Camellia("\x00" * 16), modes.ECB()
         ),
@@ -45,8 +47,10 @@
         load_openssl_vectors,
         os.path.join("ciphers", "Camellia"),
         ["camellia-cbc.txt"],
-        lambda key, iv: algorithms.Camellia(binascii.unhexlify(key)),
-        lambda key, iv: modes.CBC(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.Camellia(
+            binascii.unhexlify((kwargs["key"]))
+        ),
+        lambda **kwargs: modes.CBC(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Camellia("\x00" * 16), modes.CBC("\x00" * 16)
         ),
@@ -57,8 +61,10 @@
         load_openssl_vectors,
         os.path.join("ciphers", "Camellia"),
         ["camellia-ofb.txt"],
-        lambda key, iv: algorithms.Camellia(binascii.unhexlify(key)),
-        lambda key, iv: modes.OFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.Camellia(
+            binascii.unhexlify((kwargs["key"]))
+        ),
+        lambda **kwargs: modes.OFB(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Camellia("\x00" * 16), modes.OFB("\x00" * 16)
         ),
@@ -69,8 +75,10 @@
         load_openssl_vectors,
         os.path.join("ciphers", "Camellia"),
         ["camellia-cfb.txt"],
-        lambda key, iv: algorithms.Camellia(binascii.unhexlify(key)),
-        lambda key, iv: modes.CFB(binascii.unhexlify(iv)),
+        lambda **kwargs: algorithms.Camellia(
+            binascii.unhexlify((kwargs["key"]))
+        ),
+        lambda **kwargs: modes.CFB(binascii.unhexlify(kwargs["iv"])),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.Camellia("\x00" * 16), modes.CFB("\x00" * 16)
         ),
diff --git a/tests/hazmat/primitives/test_cast5.py b/tests/hazmat/primitives/test_cast5.py
index a283daf..10c6ef3 100644
--- a/tests/hazmat/primitives/test_cast5.py
+++ b/tests/hazmat/primitives/test_cast5.py
@@ -27,8 +27,8 @@
         load_nist_vectors,
         os.path.join("ciphers", "CAST5"),
         ["cast5-ecb.txt"],
-        lambda key: algorithms.CAST5(binascii.unhexlify((key))),
-        lambda key: modes.ECB(),
+        lambda **kwargs: algorithms.CAST5(binascii.unhexlify((kwargs["key"]))),
+        lambda **kwargs: modes.ECB(),
         only_if=lambda backend: backend.cipher_supported(
             algorithms.CAST5("\x00" * 16), modes.ECB()
         ),
diff --git a/tests/hazmat/primitives/utils.py b/tests/hazmat/primitives/utils.py
index 758e755..227a405 100644
--- a/tests/hazmat/primitives/utils.py
+++ b/tests/hazmat/primitives/utils.py
@@ -44,8 +44,8 @@
                  skip_message):
     if not only_if(backend):
         pytest.skip(skip_message)
-    plaintext = params.pop("plaintext")
-    ciphertext = params.pop("ciphertext")
+    plaintext = params["plaintext"]
+    ciphertext = params["ciphertext"]
     cipher = Cipher(
         cipher_factory(**params),
         mode_factory(**params),
@@ -84,9 +84,9 @@
     if not only_if(backend):
         pytest.skip(skip_message)
     if params.get("pt") is not None:
-        plaintext = params.pop("pt")
-    ciphertext = params.pop("ct")
-    aad = params.pop("aad")
+        plaintext = params["pt"]
+    ciphertext = params["ct"]
+    aad = params["aad"]
     if params.get("fail") is True:
         cipher = Cipher(
             cipher_factory(binascii.unhexlify(params["key"])),
@@ -145,9 +145,9 @@
                            skip_message):
     if not only_if(backend):
         pytest.skip(skip_message)
-    plaintext = params.pop("plaintext")
-    ciphertext = params.pop("ciphertext")
-    offset = params.pop("offset")
+    plaintext = params["plaintext"]
+    ciphertext = params["ciphertext"]
+    offset = params["offset"]
     cipher = Cipher(cipher_factory(**params), None, backend=backend)
     encryptor = cipher.encryptor()
     # throw away offset bytes