aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2013-10-03 11:26:42 -0700
committerDonald Stufft <donald@stufft.io>2013-10-03 11:26:42 -0700
commit0f96716946c80fbaa2bab7813746baaba017f08d (patch)
tree9ebbf38b4779b64effec121a6d562c543b613e8b /tests
parent14fdcd186c9f6c7ccc1e6388347cd584822bc041 (diff)
parent81a5287984cd31080f7a5a1b249caf626ac8f6bf (diff)
downloadcryptography-0f96716946c80fbaa2bab7813746baaba017f08d.tar.gz
cryptography-0f96716946c80fbaa2bab7813746baaba017f08d.tar.bz2
cryptography-0f96716946c80fbaa2bab7813746baaba017f08d.zip
Merge pull request #85 from alex/explicit-api
Explicitly pass around the API, and run all tests under all available AP...
Diffstat (limited to 'tests')
-rw-r--r--tests/conftest.py5
-rw-r--r--tests/primitives/test_block.py25
-rw-r--r--tests/primitives/test_nist.py36
3 files changed, 45 insertions, 21 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
new file mode 100644
index 00000000..d16be3b6
--- /dev/null
+++ b/tests/conftest.py
@@ -0,0 +1,5 @@
+def pytest_generate_tests(metafunc):
+ from cryptography.bindings.openssl import api
+
+ if "api" in metafunc.fixturenames:
+ metafunc.parametrize("api", [api])
diff --git a/tests/primitives/test_block.py b/tests/primitives/test_block.py
index 774409ca..774885fa 100644
--- a/tests/primitives/test_block.py
+++ b/tests/primitives/test_block.py
@@ -23,18 +23,27 @@ from cryptography.primitives.block.base import _Operation
class TestBlockCipher(object):
- def test_cipher_name(self):
+ def test_cipher_name(self, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.CBC(binascii.unhexlify(b"0" * 32))
+ modes.CBC(binascii.unhexlify(b"0" * 32)),
+ api
)
assert cipher.name == "AES-128-CBC"
- def test_use_after_finalize(self):
+ def test_instantiate_without_api(self):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(b"0" * 32)),
modes.CBC(binascii.unhexlify(b"0" * 32))
)
+ assert cipher.name == "AES-128-CBC"
+
+ def test_use_after_finalize(self, api):
+ cipher = BlockCipher(
+ ciphers.AES(binascii.unhexlify(b"0" * 32)),
+ modes.CBC(binascii.unhexlify(b"0" * 32)),
+ api
+ )
cipher.encrypt(b"a" * 16)
cipher.finalize()
with pytest.raises(ValueError):
@@ -42,20 +51,22 @@ class TestBlockCipher(object):
with pytest.raises(ValueError):
cipher.finalize()
- def test_encrypt_with_invalid_operation(self):
+ def test_encrypt_with_invalid_operation(self, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.CBC(binascii.unhexlify(b"0" * 32))
+ modes.CBC(binascii.unhexlify(b"0" * 32)),
+ api
)
cipher._operation = _Operation.decrypt
with pytest.raises(ValueError):
cipher.encrypt(b"b" * 16)
- def test_finalize_with_invalid_operation(self):
+ def test_finalize_with_invalid_operation(self, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.CBC(binascii.unhexlify(b"0" * 32))
+ modes.CBC(binascii.unhexlify(b"0" * 32)),
+ api
)
cipher._operation = pretend.stub(name="wat")
diff --git a/tests/primitives/test_nist.py b/tests/primitives/test_nist.py
index 1e5d2396..261bbd1d 100644
--- a/tests/primitives/test_nist.py
+++ b/tests/primitives/test_nist.py
@@ -60,10 +60,11 @@ class TestAES_CBC(object):
"CBCVarTxt256.rsp",
]
)
- def test_KAT(self, key, iv, plaintext, ciphertext):
+ def test_KAT(self, key, iv, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
modes.CBC(binascii.unhexlify(iv)),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -78,10 +79,11 @@ class TestAES_CBC(object):
"CBCMMT256.rsp",
]
)
- def test_MMT(self, key, iv, plaintext, ciphertext):
+ def test_MMT(self, key, iv, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
modes.CBC(binascii.unhexlify(iv)),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -107,10 +109,11 @@ class TestAES_ECB(object):
"ECBVarTxt256.rsp",
]
)
- def test_KAT(self, key, plaintext, ciphertext):
+ def test_KAT(self, key, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
- modes.ECB()
+ modes.ECB(),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -125,10 +128,11 @@ class TestAES_ECB(object):
"ECBMMT256.rsp",
]
)
- def test_MMT(self, key, plaintext, ciphertext):
+ def test_MMT(self, key, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
- modes.ECB()
+ modes.ECB(),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -154,10 +158,11 @@ class TestAES_OFB(object):
"OFBVarTxt256.rsp",
]
)
- def test_KAT(self, key, iv, plaintext, ciphertext):
+ def test_KAT(self, key, iv, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
- modes.OFB(binascii.unhexlify(iv))
+ modes.OFB(binascii.unhexlify(iv)),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -172,10 +177,11 @@ class TestAES_OFB(object):
"OFBMMT256.rsp",
]
)
- def test_MMT(self, key, iv, plaintext, ciphertext):
+ def test_MMT(self, key, iv, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
- modes.OFB(binascii.unhexlify(iv))
+ modes.OFB(binascii.unhexlify(iv)),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -201,10 +207,11 @@ class TestAES_CFB(object):
"CFB128VarTxt256.rsp",
]
)
- def test_KAT(self, key, iv, plaintext, ciphertext):
+ def test_KAT(self, key, iv, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
- modes.CFB(binascii.unhexlify(iv))
+ modes.CFB(binascii.unhexlify(iv)),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()
@@ -219,10 +226,11 @@ class TestAES_CFB(object):
"CFB128MMT256.rsp",
]
)
- def test_MMT(self, key, iv, plaintext, ciphertext):
+ def test_MMT(self, key, iv, plaintext, ciphertext, api):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
- modes.CFB(binascii.unhexlify(iv))
+ modes.CFB(binascii.unhexlify(iv)),
+ api
)
actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
actual_ciphertext += cipher.finalize()