From 9b457dea21096ac3f170c6c49e5acda2ccbf8293 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Wed, 30 Oct 2013 09:12:56 -0500 Subject: move around the tests to organize by cipher --- tests/hazmat/primitives/test_aes.py | 182 ++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 tests/hazmat/primitives/test_aes.py (limited to 'tests/hazmat/primitives/test_aes.py') diff --git a/tests/hazmat/primitives/test_aes.py b/tests/hazmat/primitives/test_aes.py new file mode 100644 index 00000000..e853a0b8 --- /dev/null +++ b/tests/hazmat/primitives/test_aes.py @@ -0,0 +1,182 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Test using the NIST Test Vectors +""" + +from __future__ import absolute_import, division, print_function + +import binascii +import os + +from cryptography.hazmat.primitives.block import ciphers, modes + +from .utils import generate_encrypt_test +from ...utils import ( + load_nist_vectors_from_file, load_openssl_vectors_from_file +) + + +class TestAES_CBC(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "KAT"), + [ + "CBCGFSbox128.rsp", + "CBCGFSbox192.rsp", + "CBCGFSbox256.rsp", + "CBCKeySbox128.rsp", + "CBCKeySbox192.rsp", + "CBCKeySbox256.rsp", + "CBCVarKey128.rsp", + "CBCVarKey192.rsp", + "CBCVarKey256.rsp", + "CBCVarTxt128.rsp", + "CBCVarTxt192.rsp", + "CBCVarTxt256.rsp", + ], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.CBC(binascii.unhexlify(iv)), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "MMT"), + [ + "CBCMMT128.rsp", + "CBCMMT192.rsp", + "CBCMMT256.rsp", + ], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.CBC(binascii.unhexlify(iv)), + ) + + +class TestAES_ECB(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "KAT"), + [ + "ECBGFSbox128.rsp", + "ECBGFSbox192.rsp", + "ECBGFSbox256.rsp", + "ECBKeySbox128.rsp", + "ECBKeySbox192.rsp", + "ECBKeySbox256.rsp", + "ECBVarKey128.rsp", + "ECBVarKey192.rsp", + "ECBVarKey256.rsp", + "ECBVarTxt128.rsp", + "ECBVarTxt192.rsp", + "ECBVarTxt256.rsp", + ], + lambda key: ciphers.AES(binascii.unhexlify(key)), + lambda key: modes.ECB(), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "MMT"), + [ + "ECBMMT128.rsp", + "ECBMMT192.rsp", + "ECBMMT256.rsp", + ], + lambda key: ciphers.AES(binascii.unhexlify(key)), + lambda key: modes.ECB(), + ) + + +class TestAES_OFB(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "KAT"), + [ + "OFBGFSbox128.rsp", + "OFBGFSbox192.rsp", + "OFBGFSbox256.rsp", + "OFBKeySbox128.rsp", + "OFBKeySbox192.rsp", + "OFBKeySbox256.rsp", + "OFBVarKey128.rsp", + "OFBVarKey192.rsp", + "OFBVarKey256.rsp", + "OFBVarTxt128.rsp", + "OFBVarTxt192.rsp", + "OFBVarTxt256.rsp", + ], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.OFB(binascii.unhexlify(iv)), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "MMT"), + [ + "OFBMMT128.rsp", + "OFBMMT192.rsp", + "OFBMMT256.rsp", + ], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.OFB(binascii.unhexlify(iv)), + ) + + +class TestAES_CFB(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "KAT"), + [ + "CFB128GFSbox128.rsp", + "CFB128GFSbox192.rsp", + "CFB128GFSbox256.rsp", + "CFB128KeySbox128.rsp", + "CFB128KeySbox192.rsp", + "CFB128KeySbox256.rsp", + "CFB128VarKey128.rsp", + "CFB128VarKey192.rsp", + "CFB128VarKey256.rsp", + "CFB128VarTxt128.rsp", + "CFB128VarTxt192.rsp", + "CFB128VarTxt256.rsp", + ], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.CFB(binascii.unhexlify(iv)), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "AES", "MMT"), + [ + "CFB128MMT128.rsp", + "CFB128MMT192.rsp", + "CFB128MMT256.rsp", + ], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.CFB(binascii.unhexlify(iv)), + ) + + +class TestAES_CTR(object): + test_OpenSSL = generate_encrypt_test( + load_openssl_vectors_from_file, + os.path.join("ciphers", "AES", "CTR"), + ["aes-128-ctr.txt", "aes-192-ctr.txt", "aes-256-ctr.txt"], + lambda key, iv: ciphers.AES(binascii.unhexlify(key)), + lambda key, iv: modes.CTR(binascii.unhexlify(iv)), + only_if=lambda backend: backend.ciphers.supported( + ciphers.AES("\x00" * 16), modes.CTR("\x00" * 16) + ), + skip_message="Does not support AES CTR", + ) -- cgit v1.2.3 From 20884bfabe140802182e9af01e9446705b0298bc Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Thu, 31 Oct 2013 12:08:11 -0500 Subject: update tests for new test vector locations --- tests/hazmat/primitives/test_aes.py | 54 +++++++------------------------------ 1 file changed, 9 insertions(+), 45 deletions(-) (limited to 'tests/hazmat/primitives/test_aes.py') diff --git a/tests/hazmat/primitives/test_aes.py b/tests/hazmat/primitives/test_aes.py index e853a0b8..0caac3b8 100644 --- a/tests/hazmat/primitives/test_aes.py +++ b/tests/hazmat/primitives/test_aes.py @@ -29,9 +29,9 @@ from ...utils import ( class TestAES_CBC(object): - test_KAT = generate_encrypt_test( + test_CBC = generate_encrypt_test( lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "KAT"), + os.path.join("ciphers", "AES", "CBC"), [ "CBCGFSbox128.rsp", "CBCGFSbox192.rsp", @@ -45,15 +45,6 @@ class TestAES_CBC(object): "CBCVarTxt128.rsp", "CBCVarTxt192.rsp", "CBCVarTxt256.rsp", - ], - lambda key, iv: ciphers.AES(binascii.unhexlify(key)), - lambda key, iv: modes.CBC(binascii.unhexlify(iv)), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "MMT"), - [ "CBCMMT128.rsp", "CBCMMT192.rsp", "CBCMMT256.rsp", @@ -64,9 +55,9 @@ class TestAES_CBC(object): class TestAES_ECB(object): - test_KAT = generate_encrypt_test( + test_ECB = generate_encrypt_test( lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "KAT"), + os.path.join("ciphers", "AES", "ECB"), [ "ECBGFSbox128.rsp", "ECBGFSbox192.rsp", @@ -80,15 +71,6 @@ class TestAES_ECB(object): "ECBVarTxt128.rsp", "ECBVarTxt192.rsp", "ECBVarTxt256.rsp", - ], - lambda key: ciphers.AES(binascii.unhexlify(key)), - lambda key: modes.ECB(), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "MMT"), - [ "ECBMMT128.rsp", "ECBMMT192.rsp", "ECBMMT256.rsp", @@ -99,9 +81,9 @@ class TestAES_ECB(object): class TestAES_OFB(object): - test_KAT = generate_encrypt_test( + test_OFB = generate_encrypt_test( lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "KAT"), + os.path.join("ciphers", "AES", "OFB"), [ "OFBGFSbox128.rsp", "OFBGFSbox192.rsp", @@ -115,15 +97,6 @@ class TestAES_OFB(object): "OFBVarTxt128.rsp", "OFBVarTxt192.rsp", "OFBVarTxt256.rsp", - ], - lambda key, iv: ciphers.AES(binascii.unhexlify(key)), - lambda key, iv: modes.OFB(binascii.unhexlify(iv)), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "MMT"), - [ "OFBMMT128.rsp", "OFBMMT192.rsp", "OFBMMT256.rsp", @@ -134,9 +107,9 @@ class TestAES_OFB(object): class TestAES_CFB(object): - test_KAT = generate_encrypt_test( + test_CFB = generate_encrypt_test( lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "KAT"), + os.path.join("ciphers", "AES", "CFB"), [ "CFB128GFSbox128.rsp", "CFB128GFSbox192.rsp", @@ -150,15 +123,6 @@ class TestAES_CFB(object): "CFB128VarTxt128.rsp", "CFB128VarTxt192.rsp", "CFB128VarTxt256.rsp", - ], - lambda key, iv: ciphers.AES(binascii.unhexlify(key)), - lambda key, iv: modes.CFB(binascii.unhexlify(iv)), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "AES", "MMT"), - [ "CFB128MMT128.rsp", "CFB128MMT192.rsp", "CFB128MMT256.rsp", @@ -169,7 +133,7 @@ class TestAES_CFB(object): class TestAES_CTR(object): - test_OpenSSL = generate_encrypt_test( + test_CTR = generate_encrypt_test( load_openssl_vectors_from_file, os.path.join("ciphers", "AES", "CTR"), ["aes-128-ctr.txt", "aes-192-ctr.txt", "aes-256-ctr.txt"], -- cgit v1.2.3