aboutsummaryrefslogtreecommitdiffstats
path: root/tests/primitives/test_nist.py
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2013-08-09 06:01:41 -0400
committerDonald Stufft <donald@stufft.io>2013-08-09 06:01:41 -0400
commit3704a8364daf6f7fa7d6a9298a82bdd2c151eb74 (patch)
treea3271ebe39c5cba98cf399ccf74e704675eda16e /tests/primitives/test_nist.py
parentaef7ee86b8568f33586dfef750c932e7fc8bfd58 (diff)
downloadcryptography-3704a8364daf6f7fa7d6a9298a82bdd2c151eb74.tar.gz
cryptography-3704a8364daf6f7fa7d6a9298a82bdd2c151eb74.tar.bz2
cryptography-3704a8364daf6f7fa7d6a9298a82bdd2c151eb74.zip
Use the NIST MMT vectors to test AES-CBC w/ no padding
Diffstat (limited to 'tests/primitives/test_nist.py')
-rw-r--r--tests/primitives/test_nist.py63
1 files changed, 50 insertions, 13 deletions
diff --git a/tests/primitives/test_nist.py b/tests/primitives/test_nist.py
index d68cd27b..88090f9a 100644
--- a/tests/primitives/test_nist.py
+++ b/tests/primitives/test_nist.py
@@ -11,7 +11,7 @@ from cryptography.primitives.block import BlockCipher, ciphers, modes, padding
from ..utils import load_nist_vectors_from_file
-def parameterize_encrypt(fname):
+def parameterize_kat_encrypt(fname):
return pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
load_nist_vectors_from_file(
os.path.join("AES/KAT/", fname),
@@ -21,8 +21,18 @@ def parameterize_encrypt(fname):
)
+def paramterize_mmt_encrypt(fname):
+ return pytest.mark.parametrize(("key", "iv", "plaintext", "ciphertext"),
+ load_nist_vectors_from_file(
+ os.path.join("AES/MMT", fname),
+ "ENCRYPT",
+ ["key", "iv", "plaintext", "ciphertext"],
+ )
+ )
+
+
class TestAES_CBC(object):
- @parameterize_encrypt("CBCGFSbox128.rsp")
+ @parameterize_kat_encrypt("CBCGFSbox128.rsp")
def test_KAT_GFSbox_128_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -31,7 +41,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCGFSbox192.rsp")
+ @parameterize_kat_encrypt("CBCGFSbox192.rsp")
def test_KAT_GFSbox_192_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -40,7 +50,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCGFSbox256.rsp")
+ @parameterize_kat_encrypt("CBCGFSbox256.rsp")
def test_KAT_GFSbox_256_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -49,7 +59,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCKeySbox128.rsp")
+ @parameterize_kat_encrypt("CBCKeySbox128.rsp")
def test_KAT_KeySbox_128_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -58,7 +68,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCKeySbox192.rsp")
+ @parameterize_kat_encrypt("CBCKeySbox192.rsp")
def test_KAT_KeySbox_192_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -67,7 +77,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCKeySbox256.rsp")
+ @parameterize_kat_encrypt("CBCKeySbox256.rsp")
def test_KAT_KeySbox_256_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -76,7 +86,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCVarKey128.rsp")
+ @parameterize_kat_encrypt("CBCVarKey128.rsp")
def test_KAT_VarKey_128_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -85,7 +95,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCVarKey192.rsp")
+ @parameterize_kat_encrypt("CBCVarKey192.rsp")
def test_KAT_VarKey_192_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -94,7 +104,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCVarKey256.rsp")
+ @parameterize_kat_encrypt("CBCVarKey256.rsp")
def test_KAT_VarKey_256_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -103,7 +113,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCVarTxt128.rsp")
+ @parameterize_kat_encrypt("CBCVarTxt128.rsp")
def test_KAT_VarTxt_128_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -112,7 +122,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCVarTxt192.rsp")
+ @parameterize_kat_encrypt("CBCVarTxt192.rsp")
def test_KAT_VarTxt_192_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -121,7 +131,7 @@ class TestAES_CBC(object):
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
- @parameterize_encrypt("CBCVarTxt256.rsp")
+ @parameterize_kat_encrypt("CBCVarTxt256.rsp")
def test_KAT_VarTxt_256_encrypt(self, key, iv, plaintext, ciphertext):
cipher = BlockCipher(
ciphers.AES(binascii.unhexlify(key)),
@@ -129,3 +139,30 @@ class TestAES_CBC(object):
)
actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
assert binascii.hexlify(actual_ciphertext) == ciphertext
+
+ @paramterize_mmt_encrypt("CBCMMT128.rsp")
+ def test_MMT_128_encrypt(self, key, iv, plaintext, ciphertext):
+ cipher = BlockCipher(
+ ciphers.AES(binascii.unhexlify(key)),
+ modes.CBC(binascii.unhexlify(iv), padding.NoPadding())
+ )
+ actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
+ assert binascii.hexlify(actual_ciphertext) == ciphertext
+
+ @paramterize_mmt_encrypt("CBCMMT192.rsp")
+ def test_MMT_192_encrypt(self, key, iv, plaintext, ciphertext):
+ cipher = BlockCipher(
+ ciphers.AES(binascii.unhexlify(key)),
+ modes.CBC(binascii.unhexlify(iv), padding.NoPadding())
+ )
+ actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
+ assert binascii.hexlify(actual_ciphertext) == ciphertext
+
+ @paramterize_mmt_encrypt("CBCMMT256.rsp")
+ def test_MMT_256_encrypt(self, key, iv, plaintext, ciphertext):
+ cipher = BlockCipher(
+ ciphers.AES(binascii.unhexlify(key)),
+ modes.CBC(binascii.unhexlify(iv), padding.NoPadding())
+ )
+ actual_ciphertext = cipher.encrypt(plaintext) + cipher.finalize()
+ assert binascii.hexlify(actual_ciphertext) == ciphertext