diff options
Diffstat (limited to 'tests/hazmat/primitives')
-rw-r--r-- | tests/hazmat/primitives/test_3des.py | 116 | ||||
-rw-r--r-- | tests/hazmat/primitives/test_aes.py (renamed from tests/hazmat/primitives/test_nist.py) | 100 | ||||
-rw-r--r-- | tests/hazmat/primitives/test_camellia.py (renamed from tests/hazmat/primitives/test_openssl_vectors.py) | 39 | ||||
-rw-r--r-- | tests/hazmat/primitives/test_cryptrec.py | 44 |
4 files changed, 151 insertions, 148 deletions
diff --git a/tests/hazmat/primitives/test_3des.py b/tests/hazmat/primitives/test_3des.py new file mode 100644 index 00000000..d5188ff6 --- /dev/null +++ b/tests/hazmat/primitives/test_3des.py @@ -0,0 +1,116 @@ +# 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 + + +class TestTripleDES_CBC(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "3DES", "KAT"), + [ + "TCBCinvperm.rsp", + "TCBCpermop.rsp", + "TCBCsubtab.rsp", + "TCBCvarkey.rsp", + "TCBCvartext.rsp", + ], + lambda keys, iv: ciphers.TripleDES(binascii.unhexlify(keys)), + lambda keys, iv: modes.CBC(binascii.unhexlify(iv)), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "3DES", "MMT"), + [ + "TCBCMMT1.rsp", + "TCBCMMT2.rsp", + "TCBCMMT3.rsp", + ], + lambda key1, key2, key3, iv: ( + ciphers.TripleDES(binascii.unhexlify(key1 + key2 + key3)) + ), + lambda key1, key2, key3, iv: modes.CBC(binascii.unhexlify(iv)), + ) + + +class TestTripleDES_OFB(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "3DES", "KAT"), + [ + "TOFBpermop.rsp", + "TOFBsubtab.rsp", + "TOFBvarkey.rsp", + "TOFBvartext.rsp", + "TOFBinvperm.rsp", + ], + lambda keys, iv: ciphers.TripleDES(binascii.unhexlify(keys)), + lambda keys, iv: modes.OFB(binascii.unhexlify(iv)), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "3DES", "MMT"), + [ + "TOFBMMT1.rsp", + "TOFBMMT2.rsp", + "TOFBMMT3.rsp", + ], + lambda key1, key2, key3, iv: ( + ciphers.TripleDES(binascii.unhexlify(key1 + key2 + key3)) + ), + lambda key1, key2, key3, iv: modes.OFB(binascii.unhexlify(iv)), + ) + + +class TestTripleDES_CFB(object): + test_KAT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "3DES", "KAT"), + [ + "TCFB64invperm.rsp", + "TCFB64permop.rsp", + "TCFB64subtab.rsp", + "TCFB64varkey.rsp", + "TCFB64vartext.rsp", + ], + lambda keys, iv: ciphers.TripleDES(binascii.unhexlify(keys)), + lambda keys, iv: modes.CFB(binascii.unhexlify(iv)), + ) + + test_MMT = generate_encrypt_test( + lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), + os.path.join("ciphers", "3DES", "MMT"), + [ + "TCFB64MMT1.rsp", + "TCFB64MMT2.rsp", + "TCFB64MMT3.rsp", + ], + lambda key1, key2, key3, iv: ( + ciphers.TripleDES(binascii.unhexlify(key1 + key2 + key3)) + ), + lambda key1, key2, key3, iv: modes.CFB(binascii.unhexlify(iv)), + ) diff --git a/tests/hazmat/primitives/test_nist.py b/tests/hazmat/primitives/test_aes.py index b8b7e9f2..e853a0b8 100644 --- a/tests/hazmat/primitives/test_nist.py +++ b/tests/hazmat/primitives/test_aes.py @@ -23,7 +23,9 @@ import os from cryptography.hazmat.primitives.block import ciphers, modes from .utils import generate_encrypt_test -from ...utils import load_nist_vectors_from_file +from ...utils import ( + load_nist_vectors_from_file, load_openssl_vectors_from_file +) class TestAES_CBC(object): @@ -166,91 +168,15 @@ class TestAES_CFB(object): ) -class TestTripleDES_CBC(object): - test_KAT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "3DES", "KAT"), - [ - "TCBCinvperm.rsp", - "TCBCpermop.rsp", - "TCBCsubtab.rsp", - "TCBCvarkey.rsp", - "TCBCvartext.rsp", - ], - lambda keys, iv: ciphers.TripleDES(binascii.unhexlify(keys)), - lambda keys, iv: modes.CBC(binascii.unhexlify(iv)), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "3DES", "MMT"), - [ - "TCBCMMT1.rsp", - "TCBCMMT2.rsp", - "TCBCMMT3.rsp", - ], - lambda key1, key2, key3, iv: ( - ciphers.TripleDES(binascii.unhexlify(key1 + key2 + key3)) - ), - lambda key1, key2, key3, iv: modes.CBC(binascii.unhexlify(iv)), - ) - - -class TestTripleDES_OFB(object): - test_KAT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "3DES", "KAT"), - [ - "TOFBpermop.rsp", - "TOFBsubtab.rsp", - "TOFBvarkey.rsp", - "TOFBvartext.rsp", - "TOFBinvperm.rsp", - ], - lambda keys, iv: ciphers.TripleDES(binascii.unhexlify(keys)), - lambda keys, iv: modes.OFB(binascii.unhexlify(iv)), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "3DES", "MMT"), - [ - "TOFBMMT1.rsp", - "TOFBMMT2.rsp", - "TOFBMMT3.rsp", - ], - lambda key1, key2, key3, iv: ( - ciphers.TripleDES(binascii.unhexlify(key1 + key2 + key3)) - ), - lambda key1, key2, key3, iv: modes.OFB(binascii.unhexlify(iv)), - ) - - -class TestTripleDES_CFB(object): - test_KAT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "3DES", "KAT"), - [ - "TCFB64invperm.rsp", - "TCFB64permop.rsp", - "TCFB64subtab.rsp", - "TCFB64varkey.rsp", - "TCFB64vartext.rsp", - ], - lambda keys, iv: ciphers.TripleDES(binascii.unhexlify(keys)), - lambda keys, iv: modes.CFB(binascii.unhexlify(iv)), - ) - - test_MMT = generate_encrypt_test( - lambda path: load_nist_vectors_from_file(path, "ENCRYPT"), - os.path.join("ciphers", "3DES", "MMT"), - [ - "TCFB64MMT1.rsp", - "TCFB64MMT2.rsp", - "TCFB64MMT3.rsp", - ], - lambda key1, key2, key3, iv: ( - ciphers.TripleDES(binascii.unhexlify(key1 + key2 + key3)) +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) ), - lambda key1, key2, key3, iv: modes.CFB(binascii.unhexlify(iv)), + skip_message="Does not support AES CTR", ) diff --git a/tests/hazmat/primitives/test_openssl_vectors.py b/tests/hazmat/primitives/test_camellia.py index 2a3e44f3..ab321a42 100644 --- a/tests/hazmat/primitives/test_openssl_vectors.py +++ b/tests/hazmat/primitives/test_camellia.py @@ -12,19 +12,38 @@ # limitations under the License. """ -Test using the OpenSSL Test Vectors +Tests using the CRYPTREC (Camellia) 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_openssl_vectors_from_file +from ...utils import ( + load_cryptrec_vectors_from_file, load_openssl_vectors_from_file +) + + +class TestCamelliaECB(object): + test_NTT = generate_encrypt_test( + load_cryptrec_vectors_from_file, + os.path.join("ciphers", "Camellia"), + [ + "camellia-128-ecb.txt", + "camellia-192-ecb.txt", + "camellia-256-ecb.txt" + ], + lambda key: ciphers.Camellia(binascii.unhexlify((key))), + lambda key: modes.ECB(), + only_if=lambda backend: backend.ciphers.supported( + ciphers.Camellia("\x00" * 16), modes.ECB() + ), + skip_message="Does not support Camellia ECB", + ) class TestCamelliaCBC(object): @@ -67,17 +86,3 @@ class TestCamelliaCFB(object): ), skip_message="Does not support Camellia CFB", ) - - -class TestAESCTR(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", - ) diff --git a/tests/hazmat/primitives/test_cryptrec.py b/tests/hazmat/primitives/test_cryptrec.py deleted file mode 100644 index c882e475..00000000 --- a/tests/hazmat/primitives/test_cryptrec.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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. - -""" -Tests using the CRYPTREC (Camellia) 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_cryptrec_vectors_from_file - - -class TestCamelliaECB(object): - test_NTT = generate_encrypt_test( - load_cryptrec_vectors_from_file, - os.path.join("ciphers", "Camellia"), - [ - "camellia-128-ecb.txt", - "camellia-192-ecb.txt", - "camellia-256-ecb.txt" - ], - lambda key: ciphers.Camellia(binascii.unhexlify((key))), - lambda key: modes.ECB(), - only_if=lambda backend: backend.ciphers.supported( - ciphers.Camellia("\x00" * 16), modes.ECB() - ), - skip_message="Does not support Camellia ECB", - ) |