import textwrap from .utils import load_nist_vectors, load_nist_vectors_from_file def test_load_nist_vectors_encrypt(): vector_data = textwrap.dedent(""" # CAVS 11.1 # Config info for aes_values # AESVS GFSbox test data for CBC # State : Encrypt and Decrypt # Key Length : 128 # Generated on Fri Apr 22 15:11:33 2011 [ENCRYPT] COUNT = 0 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e COUNT = 1 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 PLAINTEXT = 9798c4640bad75c7c3227db910174e72 CIPHERTEXT = a9a1631bf4996954ebc093957b234589 [DECRYPT] COUNT = 0 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6 COUNT = 1 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 CIPHERTEXT = a9a1631bf4996954ebc093957b234589 PLAINTEXT = 9798c4640bad75c7c3227db910174e72 """).splitlines() assert load_nist_vectors(vector_data, "ENCRYPT", ["key", "iv", "plaintext", "ciphertext"], ) == [ ( "00000000000000000000000000000000", "00000000000000000000000000000000", "f34481ec3cc627bacd5dc3fb08f273e6", "0336763e966d92595a567cc9ce537f5e", ), ( "00000000000000000000000000000000", "00000000000000000000000000000000", "9798c4640bad75c7c3227db910174e72", "a9a1631bf4996954ebc093957b234589", ), ] def test_load_nist_vectors_decrypt(): vector_data = textwrap.dedent(""" # CAVS 11.1 # Config info for aes_values # AESVS GFSbox test data for CBC # State : Encrypt and Decrypt # Key Length : 128 # Generated on Fri Apr 22 15:11:33 2011 [ENCRYPT] COUNT = 0 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e COUNT = 1 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 PLAINTEXT = 9798c4640bad75c7c3227db910174e72 CIPHERTEXT = a9a1631bf4996954ebc093957b234589 [DECRYPT] COUNT = 0 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6 COUNT = 1 KEY = 00000000000000000000000000000000 IV = 00000000000000000000000000000000 CIPHERTEXT = a9a1631bf4996954ebc093957b234589 PLAINTEXT = 9798c4640bad75c7c3227db910174e72 """).splitlines() assert load_nist_vectors(vector_data, "DECRYPT", ["key", "iv", "ciphertext", "plaintext"], ) == [ ( "00000000000000000000000000000000", "00000000000000000000000000000000", "0336763e966d92595a567cc9ce537f5e", "f34481ec3cc627bacd5dc3fb08f273e6", ), ( "00000000000000000000000000000000", "00000000000000000000000000000000", "a9a1631bf4996954ebc093957b234589", "9798c4640bad75c7c3227db910174e72", ), ] def test_load_nist_vectors_from_file_encrypt(): assert load_nist_vectors_from_file( "AES/KAT/CBCGFSbox256.rsp", "ENCRYPT", ["key", "iv", "plaintext", "ciphertext"], ) == [ ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "014730f80ac625fe84f026c60bfd547d", "5c9d844ed46f9885085e5d6a4f94c7d7", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "0b24af36193ce4665f2825d7b4749c98", "a9ff75bd7cf6613d3731c77c3b6d0c04", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "761c1fe41a18acf20d241650611d90f1", "623a52fcea5d443e48d9181ab32c7421", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "8a560769d605868ad80d819bdba03771", "38f2c7ae10612415d27ca190d27da8b4", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "91fbef2d15a97816060bee1feaa49afe", "1bc704f1bce135ceb810341b216d7abe", ), ] def test_load_nist_vectors_from_file_decypt(): assert load_nist_vectors_from_file( "AES/KAT/CBCGFSbox256.rsp", "DECRYPT", ["key", "iv", "ciphertext", "plaintext"], ) == [ ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "5c9d844ed46f9885085e5d6a4f94c7d7", "014730f80ac625fe84f026c60bfd547d", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "a9ff75bd7cf6613d3731c77c3b6d0c04", "0b24af36193ce4665f2825d7b4749c98", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "623a52fcea5d443e48d9181ab32c7421", "761c1fe41a18acf20d241650611d90f1", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "38f2c7ae10612415d27ca190d27da8b4", "8a560769d605868ad80d819bdba03771", ), ( "0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "1bc704f1bce135ceb810341b216d7abe", "91fbef2d15a97816060bee1feaa49afe", ), ]