blob: acb36d4c9ea99cb1a6ecf23f5806712d460450c1 [file] [log] [blame]
Donald Stufft9e1a48b2013-08-09 00:32:30 -04001import textwrap
2
3from .utils import load_nist_vectors, load_nist_vectors_from_file
4
5
6def test_load_nist_vectors_encrypt():
7 vector_data = textwrap.dedent("""
8 # CAVS 11.1
9 # Config info for aes_values
10 # AESVS GFSbox test data for CBC
11 # State : Encrypt and Decrypt
12 # Key Length : 128
13 # Generated on Fri Apr 22 15:11:33 2011
14
15 [ENCRYPT]
16
17 COUNT = 0
18 KEY = 00000000000000000000000000000000
19 IV = 00000000000000000000000000000000
20 PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
21 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
22
23 COUNT = 1
24 KEY = 00000000000000000000000000000000
25 IV = 00000000000000000000000000000000
26 PLAINTEXT = 9798c4640bad75c7c3227db910174e72
27 CIPHERTEXT = a9a1631bf4996954ebc093957b234589
28
29 [DECRYPT]
30
31 COUNT = 0
32 KEY = 00000000000000000000000000000000
33 IV = 00000000000000000000000000000000
34 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
35 PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
36
37 COUNT = 1
38 KEY = 00000000000000000000000000000000
39 IV = 00000000000000000000000000000000
40 CIPHERTEXT = a9a1631bf4996954ebc093957b234589
41 PLAINTEXT = 9798c4640bad75c7c3227db910174e72
42 """).splitlines()
43
44 assert load_nist_vectors(vector_data, "ENCRYPT",
45 ["key", "iv", "plaintext", "ciphertext"],
46 ) == [
47 (
48 "00000000000000000000000000000000",
49 "00000000000000000000000000000000",
50 "f34481ec3cc627bacd5dc3fb08f273e6",
51 "0336763e966d92595a567cc9ce537f5e",
52 ),
53 (
54 "00000000000000000000000000000000",
55 "00000000000000000000000000000000",
56 "9798c4640bad75c7c3227db910174e72",
57 "a9a1631bf4996954ebc093957b234589",
58 ),
59 ]
60
61
62def test_load_nist_vectors_decrypt():
63 vector_data = textwrap.dedent("""
64 # CAVS 11.1
65 # Config info for aes_values
66 # AESVS GFSbox test data for CBC
67 # State : Encrypt and Decrypt
68 # Key Length : 128
69 # Generated on Fri Apr 22 15:11:33 2011
70
71 [ENCRYPT]
72
73 COUNT = 0
74 KEY = 00000000000000000000000000000000
75 IV = 00000000000000000000000000000000
76 PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
77 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
78
79 COUNT = 1
80 KEY = 00000000000000000000000000000000
81 IV = 00000000000000000000000000000000
82 PLAINTEXT = 9798c4640bad75c7c3227db910174e72
83 CIPHERTEXT = a9a1631bf4996954ebc093957b234589
84
85 [DECRYPT]
86
87 COUNT = 0
88 KEY = 00000000000000000000000000000000
89 IV = 00000000000000000000000000000000
90 CIPHERTEXT = 0336763e966d92595a567cc9ce537f5e
91 PLAINTEXT = f34481ec3cc627bacd5dc3fb08f273e6
92
93 COUNT = 1
94 KEY = 00000000000000000000000000000000
95 IV = 00000000000000000000000000000000
96 CIPHERTEXT = a9a1631bf4996954ebc093957b234589
97 PLAINTEXT = 9798c4640bad75c7c3227db910174e72
98 """).splitlines()
99
100 assert load_nist_vectors(vector_data, "DECRYPT",
101 ["key", "iv", "ciphertext", "plaintext"],
102 ) == [
103 (
104 "00000000000000000000000000000000",
105 "00000000000000000000000000000000",
106 "0336763e966d92595a567cc9ce537f5e",
107 "f34481ec3cc627bacd5dc3fb08f273e6",
108 ),
109 (
110 "00000000000000000000000000000000",
111 "00000000000000000000000000000000",
112 "a9a1631bf4996954ebc093957b234589",
113 "9798c4640bad75c7c3227db910174e72",
114 ),
115 ]
116
117
118def test_load_nist_vectors_from_file_encrypt():
119 assert load_nist_vectors_from_file(
120 "AES/KAT/CBCGFSbox256.rsp",
121 "ENCRYPT",
122 ["key", "iv", "plaintext", "ciphertext"],
123 ) == [
124 (
125 "0000000000000000000000000000000000000000000000000000000000000000",
126 "00000000000000000000000000000000",
127 "014730f80ac625fe84f026c60bfd547d",
128 "5c9d844ed46f9885085e5d6a4f94c7d7",
129 ),
130 (
131 "0000000000000000000000000000000000000000000000000000000000000000",
132 "00000000000000000000000000000000",
133 "0b24af36193ce4665f2825d7b4749c98",
134 "a9ff75bd7cf6613d3731c77c3b6d0c04",
135 ),
136 (
137 "0000000000000000000000000000000000000000000000000000000000000000",
138 "00000000000000000000000000000000",
139 "761c1fe41a18acf20d241650611d90f1",
140 "623a52fcea5d443e48d9181ab32c7421",
141 ),
142 (
143 "0000000000000000000000000000000000000000000000000000000000000000",
144 "00000000000000000000000000000000",
145 "8a560769d605868ad80d819bdba03771",
146 "38f2c7ae10612415d27ca190d27da8b4",
147 ),
148 (
149 "0000000000000000000000000000000000000000000000000000000000000000",
150 "00000000000000000000000000000000",
151 "91fbef2d15a97816060bee1feaa49afe",
152 "1bc704f1bce135ceb810341b216d7abe",
153 ),
154 ]
155
156
157def test_load_nist_vectors_from_file_decypt():
158 assert load_nist_vectors_from_file(
159 "AES/KAT/CBCGFSbox256.rsp",
160 "DECRYPT",
161 ["key", "iv", "ciphertext", "plaintext"],
162 ) == [
163 (
164 "0000000000000000000000000000000000000000000000000000000000000000",
165 "00000000000000000000000000000000",
166 "5c9d844ed46f9885085e5d6a4f94c7d7",
167 "014730f80ac625fe84f026c60bfd547d",
168 ),
169 (
170 "0000000000000000000000000000000000000000000000000000000000000000",
171 "00000000000000000000000000000000",
172 "a9ff75bd7cf6613d3731c77c3b6d0c04",
173 "0b24af36193ce4665f2825d7b4749c98",
174 ),
175 (
176 "0000000000000000000000000000000000000000000000000000000000000000",
177 "00000000000000000000000000000000",
178 "623a52fcea5d443e48d9181ab32c7421",
179 "761c1fe41a18acf20d241650611d90f1",
180 ),
181 (
182 "0000000000000000000000000000000000000000000000000000000000000000",
183 "00000000000000000000000000000000",
184 "38f2c7ae10612415d27ca190d27da8b4",
185 "8a560769d605868ad80d819bdba03771",
186 ),
187 (
188 "0000000000000000000000000000000000000000000000000000000000000000",
189 "00000000000000000000000000000000",
190 "1bc704f1bce135ceb810341b216d7abe",
191 "91fbef2d15a97816060bee1feaa49afe",
192 ),
193 ]