xref: /dpdk/app/test/test_cryptodev_snow3g_test_vectors.h (revision 0efea35a2bb0ae9df6e204151c7f96b5eb93e130)
1a9de470cSBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
202ed7b38SDamian Nowak  * Copyright(c) 2015-2019 Intel Corporation
3a9de470cSBruce Richardson  */
4a9de470cSBruce Richardson 
5a9de470cSBruce Richardson #ifndef TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
6a9de470cSBruce Richardson #define TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
7a9de470cSBruce Richardson 
8a9de470cSBruce Richardson struct snow3g_test_data {
9a9de470cSBruce Richardson 	struct {
10a9de470cSBruce Richardson 		uint8_t data[64];
11a9de470cSBruce Richardson 		unsigned len;
12a9de470cSBruce Richardson 	} key;
13a9de470cSBruce Richardson 
14a9de470cSBruce Richardson 	struct {
15*0efea35aSTyler Retzlaff 		alignas(16) uint8_t data[64];
16a9de470cSBruce Richardson 		unsigned len;
17a9de470cSBruce Richardson 	} cipher_iv;
18a9de470cSBruce Richardson 
19a9de470cSBruce Richardson 	struct {
20a9de470cSBruce Richardson 		uint8_t data[1024];
21a9de470cSBruce Richardson 		unsigned len; /* length must be in Bits */
22a9de470cSBruce Richardson 	} plaintext;
23a9de470cSBruce Richardson 
24a9de470cSBruce Richardson 	struct {
25a9de470cSBruce Richardson 		uint8_t data[1024];
26a9de470cSBruce Richardson 		unsigned len; /* length must be in Bits */
27a9de470cSBruce Richardson 	} ciphertext;
28a9de470cSBruce Richardson 
29a9de470cSBruce Richardson 	struct {
30a9de470cSBruce Richardson 		unsigned len;
31a9de470cSBruce Richardson 	} validDataLenInBits;
32a9de470cSBruce Richardson 
33a9de470cSBruce Richardson 	struct {
34a9de470cSBruce Richardson 		unsigned len;
35a9de470cSBruce Richardson 	} validCipherLenInBits;
36a9de470cSBruce Richardson 
37a9de470cSBruce Richardson 	struct {
38a9de470cSBruce Richardson 		unsigned len;
39a9de470cSBruce Richardson 	} validAuthLenInBits;
40a9de470cSBruce Richardson 
41a9de470cSBruce Richardson 	struct {
42a9de470cSBruce Richardson 		uint8_t data[64];
43a9de470cSBruce Richardson 		unsigned len;
44a9de470cSBruce Richardson 	} auth_iv;
45a9de470cSBruce Richardson 
46a9de470cSBruce Richardson 	struct {
47a9de470cSBruce Richardson 		uint8_t data[64];
4824342adeSLukasz Krakowiak 		unsigned int len; /* length must be in Bytes */
4924342adeSLukasz Krakowiak 		unsigned int offset_bytes; /* offset must be in Bytes */
50a9de470cSBruce Richardson 	} digest;
5124342adeSLukasz Krakowiak 
5224342adeSLukasz Krakowiak 	struct {
5324342adeSLukasz Krakowiak 		unsigned int len_bits; /* length must be in Bits */
5424342adeSLukasz Krakowiak 		unsigned int offset_bits;
5524342adeSLukasz Krakowiak 	} cipher;
5624342adeSLukasz Krakowiak 
5724342adeSLukasz Krakowiak 	struct {
5824342adeSLukasz Krakowiak 		unsigned int len_bits; /* length must be in Bits */
5924342adeSLukasz Krakowiak 		unsigned int offset_bits;
6024342adeSLukasz Krakowiak 	} auth;
61a9de470cSBruce Richardson };
6202ed7b38SDamian Nowak 
63a9de470cSBruce Richardson struct snow3g_test_data snow3g_test_case_1 = {
64a9de470cSBruce Richardson 	.key = {
65a9de470cSBruce Richardson 		.data = {
66a9de470cSBruce Richardson 			0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
67a9de470cSBruce Richardson 			0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
68a9de470cSBruce Richardson 		},
69a9de470cSBruce Richardson 		.len = 16
70a9de470cSBruce Richardson 	},
71a9de470cSBruce Richardson 	.cipher_iv = {
72a9de470cSBruce Richardson 		.data = {
73a9de470cSBruce Richardson 			0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
74a9de470cSBruce Richardson 			0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
75a9de470cSBruce Richardson 		},
76a9de470cSBruce Richardson 		.len = 16
77a9de470cSBruce Richardson 	},
78a9de470cSBruce Richardson 	.plaintext = {
79a9de470cSBruce Richardson 		.data = {
80a9de470cSBruce Richardson 			0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
81a9de470cSBruce Richardson 			0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
82a9de470cSBruce Richardson 			0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
83a9de470cSBruce Richardson 			0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
84a9de470cSBruce Richardson 			0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
85a9de470cSBruce Richardson 			0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
86a9de470cSBruce Richardson 			0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
87a9de470cSBruce Richardson 			0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
88a9de470cSBruce Richardson 			0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
89a9de470cSBruce Richardson 			0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
90a9de470cSBruce Richardson 			0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
91a9de470cSBruce Richardson 			0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
92a9de470cSBruce Richardson 			0x9B, 0x13, 0x48, 0x80
93a9de470cSBruce Richardson 		},
94a9de470cSBruce Richardson 		.len = 800
95a9de470cSBruce Richardson 	},
96a9de470cSBruce Richardson 	.ciphertext = {
97a9de470cSBruce Richardson 		.data = {
98a9de470cSBruce Richardson 			0x8C, 0xEB, 0xA6, 0x29, 0x43, 0xDC, 0xED, 0x3A,
99a9de470cSBruce Richardson 			0x09, 0x90, 0xB0, 0x6E, 0xA1, 0xB0, 0xA2, 0xC4,
100a9de470cSBruce Richardson 			0xFB, 0x3C, 0xED, 0xC7, 0x1B, 0x36, 0x9F, 0x42,
101a9de470cSBruce Richardson 			0xBA, 0x64, 0xC1, 0xEB, 0x66, 0x65, 0xE7, 0x2A,
102a9de470cSBruce Richardson 			0xA1, 0xC9, 0xBB, 0x0D, 0xEA, 0xA2, 0x0F, 0xE8,
103a9de470cSBruce Richardson 			0x60, 0x58, 0xB8, 0xBA, 0xEE, 0x2C, 0x2E, 0x7F,
104a9de470cSBruce Richardson 			0x0B, 0xEC, 0xCE, 0x48, 0xB5, 0x29, 0x32, 0xA5,
105a9de470cSBruce Richardson 			0x3C, 0x9D, 0x5F, 0x93, 0x1A, 0x3A, 0x7C, 0x53,
106a9de470cSBruce Richardson 			0x22, 0x59, 0xAF, 0x43, 0x25, 0xE2, 0xA6, 0x5E,
107a9de470cSBruce Richardson 			0x30, 0x84, 0xAD, 0x5F, 0x6A, 0x51, 0x3B, 0x7B,
108a9de470cSBruce Richardson 			0xDD, 0xC1, 0xB6, 0x5F, 0x0A, 0xA0, 0xD9, 0x7A,
109a9de470cSBruce Richardson 			0x05, 0x3D, 0xB5, 0x5A, 0x88, 0xC4, 0xC4, 0xF9,
110a9de470cSBruce Richardson 			0x60, 0x5E, 0x41, 0x40
111a9de470cSBruce Richardson 		},
112a9de470cSBruce Richardson 		.len = 800
113a9de470cSBruce Richardson 	},
11424342adeSLukasz Krakowiak 	.cipher = {
11524342adeSLukasz Krakowiak 		.offset_bits = 0
11624342adeSLukasz Krakowiak 	},
117a9de470cSBruce Richardson 	.validDataLenInBits = {
118a9de470cSBruce Richardson 		.len = 798
119a9de470cSBruce Richardson 	},
120a9de470cSBruce Richardson 	.validCipherLenInBits = {
121a9de470cSBruce Richardson 		.len = 800
122a9de470cSBruce Richardson 	},
123a9de470cSBruce Richardson 	.auth_iv = {
124a9de470cSBruce Richardson 		.data = {
125a9de470cSBruce Richardson 			 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
126a9de470cSBruce Richardson 			 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
127a9de470cSBruce Richardson 		},
128a9de470cSBruce Richardson 		.len = 16
129a9de470cSBruce Richardson 	}
130a9de470cSBruce Richardson };
131a9de470cSBruce Richardson 
132a9de470cSBruce Richardson struct snow3g_test_data snow3g_test_case_2 = {
133a9de470cSBruce Richardson 	.key = {
134a9de470cSBruce Richardson 		.data = {
135a9de470cSBruce Richardson 			0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
136a9de470cSBruce Richardson 			0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
137a9de470cSBruce Richardson 		},
138a9de470cSBruce Richardson 		.len = 16
139a9de470cSBruce Richardson 	},
140a9de470cSBruce Richardson 	.cipher_iv = {
141a9de470cSBruce Richardson 		.data = {
142a9de470cSBruce Richardson 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
143a9de470cSBruce Richardson 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
144a9de470cSBruce Richardson 		},
145a9de470cSBruce Richardson 		.len = 16
146a9de470cSBruce Richardson 	},
147a9de470cSBruce Richardson 	.plaintext = {
148a9de470cSBruce Richardson 		.data = {
149a9de470cSBruce Richardson 			0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
150a9de470cSBruce Richardson 			0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
151a9de470cSBruce Richardson 			0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
152a9de470cSBruce Richardson 			0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
153a9de470cSBruce Richardson 			0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
154a9de470cSBruce Richardson 			0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
155a9de470cSBruce Richardson 			0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
156a9de470cSBruce Richardson 			0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
157a9de470cSBruce Richardson 		},
158a9de470cSBruce Richardson 		.len = 512
159a9de470cSBruce Richardson 	},
160a9de470cSBruce Richardson 	.ciphertext = {
161a9de470cSBruce Richardson 		.data = {
162a9de470cSBruce Richardson 				0xE0, 0xDA, 0x15, 0xCA, 0x8E, 0x25, 0x54, 0xF5,
163a9de470cSBruce Richardson 				0xE5, 0x6C, 0x94, 0x68, 0xDC, 0x6C, 0x7C, 0x12,
164a9de470cSBruce Richardson 				0x9C, 0x56, 0x8A, 0xA5, 0x03, 0x23, 0x17, 0xE0,
165a9de470cSBruce Richardson 				0x4E, 0x07, 0x29, 0x64, 0x6C, 0xAB, 0xEF, 0xA6,
166a9de470cSBruce Richardson 				0x89, 0x86, 0x4C, 0x41, 0x0F, 0x24, 0xF9, 0x19,
167a9de470cSBruce Richardson 				0xE6, 0x1E, 0x3D, 0xFD, 0xFA, 0xD7, 0x7E, 0x56,
168a9de470cSBruce Richardson 				0x0D, 0xB0, 0xA9, 0xCD, 0x36, 0xC3, 0x4A, 0xE4,
169a9de470cSBruce Richardson 				0x18, 0x14, 0x90, 0xB2, 0x9F, 0x5F, 0xA2, 0xFC
170a9de470cSBruce Richardson 		},
171a9de470cSBruce Richardson 		.len = 512
172a9de470cSBruce Richardson 	},
17324342adeSLukasz Krakowiak 	.cipher = {
17424342adeSLukasz Krakowiak 		.offset_bits = 0
17524342adeSLukasz Krakowiak 	},
176a9de470cSBruce Richardson 	.validDataLenInBits = {
177a9de470cSBruce Richardson 		.len = 510
178a9de470cSBruce Richardson 	},
179a9de470cSBruce Richardson 	.validCipherLenInBits = {
180a9de470cSBruce Richardson 		.len = 512
181a9de470cSBruce Richardson 	},
182a9de470cSBruce Richardson 	.auth_iv = {
183a9de470cSBruce Richardson 		.data = {
184a9de470cSBruce Richardson 			 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
185a9de470cSBruce Richardson 			 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
186a9de470cSBruce Richardson 		},
187a9de470cSBruce Richardson 		.len = 16
188a9de470cSBruce Richardson 	}
189a9de470cSBruce Richardson };
190a9de470cSBruce Richardson 
191a9de470cSBruce Richardson struct snow3g_test_data snow3g_test_case_3 = {
192a9de470cSBruce Richardson 	.key = {
193a9de470cSBruce Richardson 		.data = {
194a9de470cSBruce Richardson 			 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
195a9de470cSBruce Richardson 			 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
196a9de470cSBruce Richardson 		},
197a9de470cSBruce Richardson 		.len = 16
198a9de470cSBruce Richardson 	},
199a9de470cSBruce Richardson 	.cipher_iv = {
200a9de470cSBruce Richardson 		.data = {
201a9de470cSBruce Richardson 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
202a9de470cSBruce Richardson 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
203a9de470cSBruce Richardson 		},
204a9de470cSBruce Richardson 		.len = 16
205a9de470cSBruce Richardson 	},
206a9de470cSBruce Richardson 	.plaintext = {
207a9de470cSBruce Richardson 		.data = {
208a9de470cSBruce Richardson 			0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
209a9de470cSBruce Richardson 			0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8
210a9de470cSBruce Richardson 		},
211a9de470cSBruce Richardson 		.len = 120
212a9de470cSBruce Richardson 	},
213a9de470cSBruce Richardson 	.ciphertext = {
214a9de470cSBruce Richardson 		.data = {
215a9de470cSBruce Richardson 			0xBA, 0x0F, 0x31, 0x30, 0x03, 0x34, 0xC5, 0x6B,
216a9de470cSBruce Richardson 			0x52, 0xA7, 0x49, 0x7C, 0xBA, 0xC0, 0x46
217a9de470cSBruce Richardson 		},
218a9de470cSBruce Richardson 		.len = 120
219a9de470cSBruce Richardson 	},
22024342adeSLukasz Krakowiak 	.cipher = {
22124342adeSLukasz Krakowiak 		.offset_bits = 0
22224342adeSLukasz Krakowiak 	},
223a9de470cSBruce Richardson 	.validDataLenInBits = {
224a9de470cSBruce Richardson 		.len = 120
225a9de470cSBruce Richardson 	},
226a9de470cSBruce Richardson 	.validCipherLenInBits = {
227a9de470cSBruce Richardson 		.len = 120
228a9de470cSBruce Richardson 	},
229a9de470cSBruce Richardson 	.auth_iv = {
230a9de470cSBruce Richardson 		.data = {
231a9de470cSBruce Richardson 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
232a9de470cSBruce Richardson 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
233a9de470cSBruce Richardson 		},
234a9de470cSBruce Richardson 		.len = 16
235a9de470cSBruce Richardson 	},
236a9de470cSBruce Richardson 	.digest = {
237a9de470cSBruce Richardson 		.data = {0xE8, 0x60, 0x5A, 0x3E},
238a9de470cSBruce Richardson 		.len  = 4
239a9de470cSBruce Richardson 	},
240a9de470cSBruce Richardson 	.validAuthLenInBits = {
241a9de470cSBruce Richardson 		.len = 120
242a9de470cSBruce Richardson 	}
243a9de470cSBruce Richardson };
244a9de470cSBruce Richardson 
245a9de470cSBruce Richardson struct snow3g_test_data snow3g_test_case_4 = {
246a9de470cSBruce Richardson 	.key = {
247a9de470cSBruce Richardson 		.data = {
248a9de470cSBruce Richardson 			0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
249a9de470cSBruce Richardson 			0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
250a9de470cSBruce Richardson 		},
251a9de470cSBruce Richardson 		.len = 16
252a9de470cSBruce Richardson 	},
253a9de470cSBruce Richardson 	.cipher_iv = {
254a9de470cSBruce Richardson 		.data = {
255a9de470cSBruce Richardson 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
256a9de470cSBruce Richardson 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
257a9de470cSBruce Richardson 		},
258a9de470cSBruce Richardson 		.len = 16
259a9de470cSBruce Richardson 	},
260a9de470cSBruce Richardson 	.plaintext = {
261a9de470cSBruce Richardson 		.data = {
262a9de470cSBruce Richardson 			0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
263a9de470cSBruce Richardson 			0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
264a9de470cSBruce Richardson 			0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
265a9de470cSBruce Richardson 			0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
266a9de470cSBruce Richardson 		},
267a9de470cSBruce Richardson 		.len = 256
268a9de470cSBruce Richardson 	},
269a9de470cSBruce Richardson 	.ciphertext = {
270a9de470cSBruce Richardson 		.data = {
271a9de470cSBruce Richardson 			0x98, 0x9B, 0x71, 0x9C, 0xDC, 0x33, 0xCE, 0xB7,
272a9de470cSBruce Richardson 			0xCF, 0x27, 0x6A, 0x52, 0x82, 0x7C, 0xEF, 0x94,
273a9de470cSBruce Richardson 			0xA5, 0x6C, 0x40, 0xC0, 0xAB, 0x9D, 0x81, 0xF7,
274a9de470cSBruce Richardson 			0xA2, 0xA9, 0xBA, 0xC6, 0x0E, 0x11, 0xC4, 0xB0
275a9de470cSBruce Richardson 		},
276a9de470cSBruce Richardson 		.len = 256
277a9de470cSBruce Richardson 	},
27824342adeSLukasz Krakowiak 	.cipher = {
27924342adeSLukasz Krakowiak 		.offset_bits = 0
28024342adeSLukasz Krakowiak 	},
281a9de470cSBruce Richardson 	.validDataLenInBits = {
282a9de470cSBruce Richardson 		.len = 253
283a9de470cSBruce Richardson 	},
284a9de470cSBruce Richardson 	.validCipherLenInBits = {
285a9de470cSBruce Richardson 		.len = 256
286a9de470cSBruce Richardson 	}
287a9de470cSBruce Richardson };
288a9de470cSBruce Richardson 
289a9de470cSBruce Richardson struct snow3g_test_data snow3g_test_case_5 = {
290a9de470cSBruce Richardson 	.key = {
291a9de470cSBruce Richardson 		.data = {
292a9de470cSBruce Richardson 			0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
293a9de470cSBruce Richardson 			0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
294a9de470cSBruce Richardson 		},
295a9de470cSBruce Richardson 		.len = 16
296a9de470cSBruce Richardson 	},
297a9de470cSBruce Richardson 	.cipher_iv = {
298a9de470cSBruce Richardson 		.data = {
299a9de470cSBruce Richardson 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
300a9de470cSBruce Richardson 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
301a9de470cSBruce Richardson 		},
302a9de470cSBruce Richardson 		.len = 16},
303a9de470cSBruce Richardson 	.plaintext = {
304a9de470cSBruce Richardson 		.data = {
305a9de470cSBruce Richardson 			0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
306a9de470cSBruce Richardson 			0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
307a9de470cSBruce Richardson 			0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
308a9de470cSBruce Richardson 			0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
309a9de470cSBruce Richardson 			0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
310a9de470cSBruce Richardson 			0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
311a9de470cSBruce Richardson 			0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
312a9de470cSBruce Richardson 			0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
313a9de470cSBruce Richardson 			0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
314a9de470cSBruce Richardson 			0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
315a9de470cSBruce Richardson 			0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
316a9de470cSBruce Richardson 			0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
317a9de470cSBruce Richardson 			0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
318a9de470cSBruce Richardson 			0xB0
319a9de470cSBruce Richardson 		},
320a9de470cSBruce Richardson 		.len = 840
321a9de470cSBruce Richardson 	},
322a9de470cSBruce Richardson 	.ciphertext = {
323a9de470cSBruce Richardson 		.data = {
324a9de470cSBruce Richardson 			0x58, 0x92, 0xBB, 0xA8, 0x8B, 0xBB, 0xCA, 0xAE,
325a9de470cSBruce Richardson 			0xAE, 0x76, 0x9A, 0xA0, 0x6B, 0x68, 0x3D, 0x3A,
326a9de470cSBruce Richardson 			0x17, 0xCC, 0x04, 0xA3, 0x69, 0x88, 0x16, 0x97,
327a9de470cSBruce Richardson 			0x43, 0x5E, 0x44, 0xFE, 0xD5, 0xFF, 0x9A, 0xF5,
328a9de470cSBruce Richardson 			0x7B, 0x9E, 0x89, 0x0D, 0x4D, 0x5C, 0x64, 0x70,
329a9de470cSBruce Richardson 			0x98, 0x85, 0xD4, 0x8A, 0xE4, 0x06, 0x90, 0xEC,
330a9de470cSBruce Richardson 			0x04, 0x3B, 0xAA, 0xE9, 0x70, 0x57, 0x96, 0xE4,
331a9de470cSBruce Richardson 			0xA9, 0xFF, 0x5A, 0x4B, 0x8D, 0x8B, 0x36, 0xD7,
332a9de470cSBruce Richardson 			0xF3, 0xFE, 0x57, 0xCC, 0x6C, 0xFD, 0x6C, 0xD0,
333a9de470cSBruce Richardson 			0x05, 0xCD, 0x38, 0x52, 0xA8, 0x5E, 0x94, 0xCE,
334a9de470cSBruce Richardson 			0x6B, 0xCD, 0x90, 0xD0, 0xD0, 0x78, 0x39, 0xCE,
335a9de470cSBruce Richardson 			0x09, 0x73, 0x35, 0x44, 0xCA, 0x8E, 0x35, 0x08,
336a9de470cSBruce Richardson 			0x43, 0x24, 0x85, 0x50, 0x92, 0x2A, 0xC1, 0x28,
337a9de470cSBruce Richardson 			0x18
338a9de470cSBruce Richardson 		},
339a9de470cSBruce Richardson 		.len = 840
340a9de470cSBruce Richardson 	},
34124342adeSLukasz Krakowiak 	.cipher = {
34224342adeSLukasz Krakowiak 		.offset_bits = 0
34324342adeSLukasz Krakowiak 	},
344a9de470cSBruce Richardson 	.validDataLenInBits = {
345a9de470cSBruce Richardson 		.len = 837
346a9de470cSBruce Richardson 	},
347a9de470cSBruce Richardson 	.validCipherLenInBits = {
348a9de470cSBruce Richardson 		.len = 840
349a9de470cSBruce Richardson 	},
350a9de470cSBruce Richardson };
35102ed7b38SDamian Nowak 
35202ed7b38SDamian Nowak struct snow3g_test_data snow3g_auth_cipher_test_case_1 = {
353a9de470cSBruce Richardson 	.key = {
354a9de470cSBruce Richardson 		.data = {
355a9de470cSBruce Richardson 			0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
356a9de470cSBruce Richardson 			0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
357a9de470cSBruce Richardson 		},
358a9de470cSBruce Richardson 		.len = 16
359a9de470cSBruce Richardson 	},
360a9de470cSBruce Richardson 	.cipher_iv = {
361a9de470cSBruce Richardson 		.data = {
3623271c24bSCiara Power 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
3633271c24bSCiara Power 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
364a9de470cSBruce Richardson 		},
365a9de470cSBruce Richardson 		.len = 16
366a9de470cSBruce Richardson 	},
367a9de470cSBruce Richardson 	.auth_iv = {
368a9de470cSBruce Richardson 		.data = {
369a9de470cSBruce Richardson 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
370a9de470cSBruce Richardson 			0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
371a9de470cSBruce Richardson 		},
372a9de470cSBruce Richardson 		.len = 16
373a9de470cSBruce Richardson 	},
374a9de470cSBruce Richardson 	.plaintext = {
375a9de470cSBruce Richardson 		.data = {
376a9de470cSBruce Richardson 			0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
377a9de470cSBruce Richardson 			0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
378a9de470cSBruce Richardson 			0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
379a9de470cSBruce Richardson 			0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
380a9de470cSBruce Richardson 			0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
381a9de470cSBruce Richardson 			0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09
382a9de470cSBruce Richardson 		},
383a9de470cSBruce Richardson 		.len = 384
384a9de470cSBruce Richardson 	},
385a9de470cSBruce Richardson 	.ciphertext = {
386a9de470cSBruce Richardson 	  .data = {
3873271c24bSCiara Power 			0x86, 0x4F, 0x4D, 0xE8, 0x86, 0xE6, 0x3E, 0x66,
3883271c24bSCiara Power 			0x52, 0x97, 0xC7, 0x62, 0xAE, 0x8E, 0xA2, 0xDB,
3893271c24bSCiara Power 			0x01, 0xD6, 0x33, 0xA9, 0xA4, 0xCE, 0x02, 0xD5,
3903271c24bSCiara Power 			0xC2, 0xC5, 0x5F, 0x90, 0xE0, 0x89, 0x48, 0xD4,
3913271c24bSCiara Power 			0x92, 0xF4, 0xE5, 0x9A, 0xDA, 0x13, 0x76, 0xFF,
3923271c24bSCiara Power 			0x6E, 0x76, 0x6B, 0x71, 0x62, 0x28, 0xB2, 0xEC
393a9de470cSBruce Richardson 		},
394a9de470cSBruce Richardson 		.len = 384
395a9de470cSBruce Richardson 	},
39624342adeSLukasz Krakowiak 	.cipher = {
39724342adeSLukasz Krakowiak 		.len_bits = 384,
39824342adeSLukasz Krakowiak 		.offset_bits = 0
39924342adeSLukasz Krakowiak 	},
40024342adeSLukasz Krakowiak 	.auth = {
40124342adeSLukasz Krakowiak 		.len_bits = 384,
40224342adeSLukasz Krakowiak 		.offset_bits = 0
40324342adeSLukasz Krakowiak 	},
404a9de470cSBruce Richardson 	.digest = {
405a9de470cSBruce Richardson 		.data = {0x38, 0xB5, 0x54, 0xC0 },
40624342adeSLukasz Krakowiak 		.len  = 4,
40724342adeSLukasz Krakowiak 		.offset_bytes = 0
408a9de470cSBruce Richardson 	},
409a9de470cSBruce Richardson 	.validDataLenInBits = {
410a9de470cSBruce Richardson 		.len = 384
411a9de470cSBruce Richardson 	},
412a9de470cSBruce Richardson 	.validCipherLenInBits = {
413a9de470cSBruce Richardson 		.len = 384
414a9de470cSBruce Richardson 	},
415a9de470cSBruce Richardson 	.validAuthLenInBits = {
416a9de470cSBruce Richardson 		.len = 384
417a9de470cSBruce Richardson 	},
418a9de470cSBruce Richardson };
419a9de470cSBruce Richardson 
42024342adeSLukasz Krakowiak struct snow3g_test_data snow3g_test_case_7 = {
42124342adeSLukasz Krakowiak 	.key = {
42224342adeSLukasz Krakowiak 		.data = {
42324342adeSLukasz Krakowiak 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
42424342adeSLukasz Krakowiak 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
42524342adeSLukasz Krakowiak 
42624342adeSLukasz Krakowiak 			},
42724342adeSLukasz Krakowiak 		.len = 16
42824342adeSLukasz Krakowiak 	},
42924342adeSLukasz Krakowiak 	.cipher_iv = {
43024342adeSLukasz Krakowiak 		.data = {
4313271c24bSCiara Power 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
4323271c24bSCiara Power 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
43324342adeSLukasz Krakowiak 		},
43424342adeSLukasz Krakowiak 		.len = 16
43524342adeSLukasz Krakowiak 	},
43624342adeSLukasz Krakowiak 	.auth_iv = {
43724342adeSLukasz Krakowiak 		.data = {
4383271c24bSCiara Power 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A,
4393271c24bSCiara Power 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A
44024342adeSLukasz Krakowiak 		},
44124342adeSLukasz Krakowiak 		.len = 16
44224342adeSLukasz Krakowiak 	},
44324342adeSLukasz Krakowiak 	.plaintext = {
44424342adeSLukasz Krakowiak 		.data = {
44524342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
44624342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
44724342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
44824342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
44924342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45024342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45124342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45224342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45324342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45424342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45524342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45624342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45724342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45824342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
45924342adeSLukasz Krakowiak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
4603271c24bSCiara Power 			0x5A,  0x5A,  0x5A,  0x5A,  0xBB,  0x2B,  0x8B,  0x15,
46124342adeSLukasz Krakowiak 		},
46224342adeSLukasz Krakowiak 		.len = 128 << 3
46324342adeSLukasz Krakowiak 	},
46424342adeSLukasz Krakowiak 	.ciphertext = {
46524342adeSLukasz Krakowiak 		.data = {
4663271c24bSCiara Power 			0x5A,  0x5A,  0x8A,  0x35,  0xF7,  0x36,  0xDA,  0xD7,
4673271c24bSCiara Power 			0xC4,  0x2C,  0x10,  0xEA,  0x92,  0x9C,  0x00,  0xF0,
4683271c24bSCiara Power 			0xAE,  0x35,  0x5E,  0x8D,  0xB6,  0x88,  0x30,  0x66,
4693271c24bSCiara Power 			0x74,  0x8B,  0xA2,  0x82,  0x5C,  0xA7,  0xF3,  0x54,
4703271c24bSCiara Power 			0x75,  0x02,  0xA9,  0x90,  0x6B,  0x4B,  0x6A,  0x63,
4713271c24bSCiara Power 			0xFF,  0x4B,  0x08,  0xFE,  0x11,  0x3C,  0x5A,  0x53,
4723271c24bSCiara Power 			0xEE,  0x68,  0x14,  0x41,  0x17,  0xCD,  0x7B,  0x27,
4733271c24bSCiara Power 			0x88,  0xAF,  0x99,  0xE2,  0x9C,  0x86,  0x42,  0x12,
4743271c24bSCiara Power 			0x97,  0x93,  0xF0,  0xE6,  0xE2,  0xB2,  0x2D,  0xDA,
4753271c24bSCiara Power 			0x2C,  0x59,  0xB0,  0xA7,  0x09,  0xF6,  0x32,  0xC0,
4763271c24bSCiara Power 			0x35,  0x9A,  0xD3,  0xBA,  0xDC,  0x8F,  0x2E,  0x18,
4773271c24bSCiara Power 			0x97,  0x87,  0x44,  0xD6,  0x43,  0xFA,  0x86,  0x5A,
4783271c24bSCiara Power 			0xB0,  0xA2,  0x5A,  0xB8,  0x5F,  0x57,  0xE3,  0x2F,
4793271c24bSCiara Power 			0x73,  0x9C,  0x01,  0x3A,  0x02,  0x08,  0x8C,  0xEB,
4803271c24bSCiara Power 			0xA0,  0x5D,  0x74,  0x58,  0x5A,  0xA1,  0x58,  0x17,
4813271c24bSCiara Power 			0x5E,  0x86,  0x96,  0xE6,  0x9C,  0xEE,  0x8C,  0xA8
48224342adeSLukasz Krakowiak 
48324342adeSLukasz Krakowiak 		},
48424342adeSLukasz Krakowiak 		.len = 128 << 3
48524342adeSLukasz Krakowiak 	},
48624342adeSLukasz Krakowiak 	.cipher = {
48724342adeSLukasz Krakowiak 		.len_bits = 126 << 3,
48824342adeSLukasz Krakowiak 		.offset_bits = 2 << 3
48924342adeSLukasz Krakowiak 	},
49024342adeSLukasz Krakowiak 	.auth = {
49124342adeSLukasz Krakowiak 		.len_bits = 124 << 3,
49224342adeSLukasz Krakowiak 		.offset_bits = 0
49324342adeSLukasz Krakowiak 	},
49424342adeSLukasz Krakowiak 	.digest = {
49524342adeSLukasz Krakowiak 		.data = {
4963271c24bSCiara Power 			0x9C, 0xEE, 0x8C, 0xA8
49724342adeSLukasz Krakowiak 		},
49824342adeSLukasz Krakowiak 		.len = 4,
49924342adeSLukasz Krakowiak 		.offset_bytes = 124
50024342adeSLukasz Krakowiak 	},
50124342adeSLukasz Krakowiak 	.validDataLenInBits = {
50224342adeSLukasz Krakowiak 		.len = 128 << 3
50324342adeSLukasz Krakowiak 	},
50424342adeSLukasz Krakowiak 	.validCipherLenInBits = {
50524342adeSLukasz Krakowiak 		.len = 126 << 3
50624342adeSLukasz Krakowiak 	},
50724342adeSLukasz Krakowiak 	.validAuthLenInBits = {
50824342adeSLukasz Krakowiak 		.len = 124 << 3
50924342adeSLukasz Krakowiak 	},
51024342adeSLukasz Krakowiak };
51124342adeSLukasz Krakowiak 
51202ed7b38SDamian Nowak struct snow3g_test_data snow3g_auth_cipher_test_case_2 = {
51302ed7b38SDamian Nowak 	.key = {
51402ed7b38SDamian Nowak 		.data = {
51502ed7b38SDamian Nowak 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
51602ed7b38SDamian Nowak 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
51702ed7b38SDamian Nowak 
51802ed7b38SDamian Nowak 			},
51902ed7b38SDamian Nowak 		.len = 16
52002ed7b38SDamian Nowak 	},
52102ed7b38SDamian Nowak 	.cipher_iv = {
52202ed7b38SDamian Nowak 		.data = {
5233271c24bSCiara Power 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
5243271c24bSCiara Power 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
52502ed7b38SDamian Nowak 		},
52602ed7b38SDamian Nowak 		.len = 16
52702ed7b38SDamian Nowak 	},
52802ed7b38SDamian Nowak 	.auth_iv = {
52902ed7b38SDamian Nowak 		.data = {
5303271c24bSCiara Power 			0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2,
5313271c24bSCiara Power 			0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2
53202ed7b38SDamian Nowak 		},
53302ed7b38SDamian Nowak 		.len = 16
53402ed7b38SDamian Nowak 	},
53502ed7b38SDamian Nowak 	.plaintext = {
53602ed7b38SDamian Nowak 		.data = {
53702ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
53802ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
53902ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54002ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54102ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54202ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54302ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54402ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54502ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54602ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54702ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54802ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
54902ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
55002ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
55102ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
55202ed7b38SDamian Nowak 			0x5A,  0x5A,  0x5A,  0x5A,  0x01,  0x02,  0x03,  0x04,
55302ed7b38SDamian Nowak 
55402ed7b38SDamian Nowak 		},
55502ed7b38SDamian Nowak 		.len = 128 << 3
55602ed7b38SDamian Nowak 	},
55702ed7b38SDamian Nowak 	.ciphertext = {
55802ed7b38SDamian Nowak 		.data = {
5593271c24bSCiara Power 			0x5A,  0x5A,  0xCF,  0xCF,  0x3D,  0x11,  0xBF,  0xD9,
5603271c24bSCiara Power 			0xC3,  0x7F,  0x7C,  0xA8,  0x1A,  0x9F,  0x9F,  0x34,
5613271c24bSCiara Power 			0xC5,  0x6E,  0x1B,  0x2C,  0xE0,  0x81,  0x4B,  0x66,
5623271c24bSCiara Power 			0x87,  0xCB,  0xD5,  0x61,  0x04,  0xED,  0xBC,  0x69,
5633271c24bSCiara Power 			0x79,  0x86,  0x73,  0x48,  0x69,  0x4A,  0xBA,  0x55,
5643271c24bSCiara Power 			0x44,  0x6C,  0xEF,  0xD9,  0x34,  0x61,  0x59,  0x67,
5653271c24bSCiara Power 			0x80,  0x4E,  0x03,  0x95,  0x0A,  0xA1,  0x6C,  0xBA,
5663271c24bSCiara Power 			0x74,  0xBD,  0xAF,  0x11,  0x4B,  0xE6,  0x98,  0x61,
5673271c24bSCiara Power 			0x4E,  0xD4,  0x3E,  0xE4,  0x99,  0x55,  0x5C,  0x3A,
5683271c24bSCiara Power 			0x8C,  0x3E,  0xC0,  0x01,  0x6E,  0x15,  0xE1,  0x0E,
5693271c24bSCiara Power 			0x71,  0x4C,  0x89,  0x43,  0x8A,  0x48,  0x69,  0x6D,
5703271c24bSCiara Power 			0x02,  0x10,  0xC6,  0x54,  0x37,  0x18,  0xAA,  0x10,
5713271c24bSCiara Power 			0x90,  0x80,  0x0B,  0x69,  0x08,  0xB4,  0xF9,  0x4D,
5723271c24bSCiara Power 			0xD1,  0x2E,  0x43,  0xD9,  0x92,  0xAF,  0x06,  0x4A,
5733271c24bSCiara Power 			0xAF,  0x26,  0x25,  0x77,  0x37,  0xD0,  0xFC,  0x3C,
5743271c24bSCiara Power 			0xA0,  0xCB,  0xAF,  0x06,  0x95,  0x26,  0x30,  0x38,
57502ed7b38SDamian Nowak 
57602ed7b38SDamian Nowak 		},
57702ed7b38SDamian Nowak 		.len = 128 << 3
57802ed7b38SDamian Nowak 	},
57902ed7b38SDamian Nowak 	.cipher = {
58002ed7b38SDamian Nowak 		.len_bits = 126 << 3,
58102ed7b38SDamian Nowak 		.offset_bits = 2 << 3
58202ed7b38SDamian Nowak 	},
58302ed7b38SDamian Nowak 	.auth = {
58402ed7b38SDamian Nowak 		.len_bits = 124 << 3,
58502ed7b38SDamian Nowak 		.offset_bits = 0
58602ed7b38SDamian Nowak 	},
58702ed7b38SDamian Nowak 	.digest = {
58802ed7b38SDamian Nowak 		.data = {
5893271c24bSCiara Power 			0x95, 0x26, 0x30, 0x38
59002ed7b38SDamian Nowak 		},
59102ed7b38SDamian Nowak 		.len = 4,
59202ed7b38SDamian Nowak 		.offset_bytes = 124
59302ed7b38SDamian Nowak 	},
59402ed7b38SDamian Nowak 	.validDataLenInBits = {
59502ed7b38SDamian Nowak 		.len = 128 << 3
59602ed7b38SDamian Nowak 	},
59702ed7b38SDamian Nowak 	.validCipherLenInBits = {
59802ed7b38SDamian Nowak 		.len = 126 << 3
59902ed7b38SDamian Nowak 	},
60002ed7b38SDamian Nowak 	.validAuthLenInBits = {
60102ed7b38SDamian Nowak 		.len = 124 << 3
60202ed7b38SDamian Nowak 	},
60302ed7b38SDamian Nowak };
60402ed7b38SDamian Nowak 
60511c5485bSDamian Nowak struct snow3g_test_data snow3g_auth_cipher_test_case_3 = {
60611c5485bSDamian Nowak 	.key = {
60711c5485bSDamian Nowak 		.data = {
60811c5485bSDamian Nowak 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
60911c5485bSDamian Nowak 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
61011c5485bSDamian Nowak 
61111c5485bSDamian Nowak 			},
61211c5485bSDamian Nowak 		.len = 16
61311c5485bSDamian Nowak 	},
61411c5485bSDamian Nowak 	.cipher_iv = {
61511c5485bSDamian Nowak 		.data = {
6163271c24bSCiara Power 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
6173271c24bSCiara Power 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
61811c5485bSDamian Nowak 		},
61911c5485bSDamian Nowak 		.len = 16
62011c5485bSDamian Nowak 	},
62111c5485bSDamian Nowak 	.auth_iv = {
62211c5485bSDamian Nowak 		.data = {
6233271c24bSCiara Power 			0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37,
6243271c24bSCiara Power 			0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37
62511c5485bSDamian Nowak 		},
62611c5485bSDamian Nowak 		.len = 16
62711c5485bSDamian Nowak 	},
62811c5485bSDamian Nowak 	.plaintext = {
62911c5485bSDamian Nowak 		.data = {
63011c5485bSDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
63111c5485bSDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
63211c5485bSDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
63311c5485bSDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
63411c5485bSDamian Nowak 		},
63511c5485bSDamian Nowak 		.len = 32 << 3
63611c5485bSDamian Nowak 	},
63711c5485bSDamian Nowak 	.ciphertext = {
63811c5485bSDamian Nowak 		.data = {
6393271c24bSCiara Power 			0x5A, 0x5A, 0x93, 0xB0, 0x3F, 0xA4, 0xEB, 0xD4,
6403271c24bSCiara Power 			0x51, 0x12, 0x3B, 0x95, 0x93, 0x12, 0xBF, 0xBE,
6413271c24bSCiara Power 			0xF2, 0xFE, 0xA5, 0xAE, 0xE7, 0xF4, 0x80, 0x3E,
6423271c24bSCiara Power 			0xB2, 0xD1, 0xFF, 0x5F, 0xD9, 0x32, 0x72, 0xFE,
64311c5485bSDamian Nowak 		},
64411c5485bSDamian Nowak 		.len = 32 << 3
64511c5485bSDamian Nowak 	},
64611c5485bSDamian Nowak 	.cipher = {
64711c5485bSDamian Nowak 		.len_bits = 30 << 3,
64811c5485bSDamian Nowak 		.offset_bits = 2 << 3
64911c5485bSDamian Nowak 	},
65011c5485bSDamian Nowak 	.auth = {
65111c5485bSDamian Nowak 		.len_bits = 28 << 3,
65211c5485bSDamian Nowak 		.offset_bits = 0
65311c5485bSDamian Nowak 	},
65411c5485bSDamian Nowak 	.digest = {
65511c5485bSDamian Nowak 		.data = {
6563271c24bSCiara Power 			0xD9, 0x32, 0x72, 0xFE
65711c5485bSDamian Nowak 		},
65811c5485bSDamian Nowak 		.len = 4,
65911c5485bSDamian Nowak 		.offset_bytes = 28
66011c5485bSDamian Nowak 	},
66111c5485bSDamian Nowak 	.validDataLenInBits = {
66211c5485bSDamian Nowak 		.len = 32 << 3
66311c5485bSDamian Nowak 	},
66411c5485bSDamian Nowak 	.validCipherLenInBits = {
66511c5485bSDamian Nowak 		.len = 30 << 3
66611c5485bSDamian Nowak 	},
66711c5485bSDamian Nowak 	.validAuthLenInBits = {
66811c5485bSDamian Nowak 		.len = 28 << 3
66911c5485bSDamian Nowak 	},
67011c5485bSDamian Nowak };
67111c5485bSDamian Nowak 
67202ed7b38SDamian Nowak struct snow3g_test_data snow3g_auth_cipher_partial_digest_encryption = {
67302ed7b38SDamian Nowak 	.key = {
67402ed7b38SDamian Nowak 		.data = {
67502ed7b38SDamian Nowak 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
67602ed7b38SDamian Nowak 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
67702ed7b38SDamian Nowak 
67802ed7b38SDamian Nowak 			},
67902ed7b38SDamian Nowak 		.len = 16
68002ed7b38SDamian Nowak 	},
68102ed7b38SDamian Nowak 	.cipher_iv = {
68202ed7b38SDamian Nowak 		.data = {
6833271c24bSCiara Power 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
6843271c24bSCiara Power 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
68502ed7b38SDamian Nowak 		},
68602ed7b38SDamian Nowak 		.len = 16
68702ed7b38SDamian Nowak 	},
68802ed7b38SDamian Nowak 	.auth_iv = {
68902ed7b38SDamian Nowak 		.data = {
6903271c24bSCiara Power 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
6913271c24bSCiara Power 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD
69202ed7b38SDamian Nowak 		},
69302ed7b38SDamian Nowak 		.len = 16
69402ed7b38SDamian Nowak 	},
69502ed7b38SDamian Nowak 	.plaintext = {
69602ed7b38SDamian Nowak 		.data = {
69702ed7b38SDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
69802ed7b38SDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
69902ed7b38SDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
70002ed7b38SDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A
70102ed7b38SDamian Nowak 		},
70202ed7b38SDamian Nowak 		.len = 32 << 3
70302ed7b38SDamian Nowak 	},
70402ed7b38SDamian Nowak 	.ciphertext = {
70502ed7b38SDamian Nowak 		.data = {
70602ed7b38SDamian Nowak 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
7073271c24bSCiara Power 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0xA2, 0xB7,
7083271c24bSCiara Power 			0xDF, 0xA7, 0x98, 0xA1, 0xD8, 0xD4, 0x9B, 0x6E,
7093271c24bSCiara Power 			0x2C, 0x7A, 0x66, 0x15, 0xCC, 0x4C, 0xE5, 0xE0
71002ed7b38SDamian Nowak 		},
71102ed7b38SDamian Nowak 		.len = 32 << 3
71202ed7b38SDamian Nowak 	},
71302ed7b38SDamian Nowak 	.cipher = {
71402ed7b38SDamian Nowak 		.len_bits = 16 << 3,
71502ed7b38SDamian Nowak 		.offset_bits = 14 << 3
71602ed7b38SDamian Nowak 	},
71702ed7b38SDamian Nowak 	.auth = {
71802ed7b38SDamian Nowak 		.len_bits = 28 << 3,
71902ed7b38SDamian Nowak 		.offset_bits = 0
72002ed7b38SDamian Nowak 	},
72102ed7b38SDamian Nowak 	.digest = {
72202ed7b38SDamian Nowak 		.data = {
7233271c24bSCiara Power 			0xCC, 0x4C, 0xE5, 0xE0
72402ed7b38SDamian Nowak 		},
72502ed7b38SDamian Nowak 		.len = 4,
72602ed7b38SDamian Nowak 		.offset_bytes = 28
72702ed7b38SDamian Nowak 	},
72802ed7b38SDamian Nowak 	.validDataLenInBits = {
72902ed7b38SDamian Nowak 		.len = 32 << 3
73002ed7b38SDamian Nowak 	},
73102ed7b38SDamian Nowak 	.validCipherLenInBits = {
73202ed7b38SDamian Nowak 		.len = 16 << 3
73302ed7b38SDamian Nowak 	},
73402ed7b38SDamian Nowak 	.validAuthLenInBits = {
73502ed7b38SDamian Nowak 		.len = 28 << 3
73602ed7b38SDamian Nowak 	},
73702ed7b38SDamian Nowak };
73802ed7b38SDamian Nowak 
7395f8cdb8dSTejasree Kondoj struct snow3g_test_data snow3g_auth_cipher_total_digest_encryption_1 = {
7405f8cdb8dSTejasree Kondoj 	.key = {
7415f8cdb8dSTejasree Kondoj 		.data = {
7425f8cdb8dSTejasree Kondoj 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
7435f8cdb8dSTejasree Kondoj 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
7445f8cdb8dSTejasree Kondoj 
7455f8cdb8dSTejasree Kondoj 			},
7465f8cdb8dSTejasree Kondoj 		.len = 16
7475f8cdb8dSTejasree Kondoj 	},
7485f8cdb8dSTejasree Kondoj 	.cipher_iv = {
7495f8cdb8dSTejasree Kondoj 		.data = {
7505f8cdb8dSTejasree Kondoj 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
7515f8cdb8dSTejasree Kondoj 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
7525f8cdb8dSTejasree Kondoj 		},
7535f8cdb8dSTejasree Kondoj 		.len = 16
7545f8cdb8dSTejasree Kondoj 	},
7555f8cdb8dSTejasree Kondoj 	.auth_iv = {
7565f8cdb8dSTejasree Kondoj 		.data = {
7575f8cdb8dSTejasree Kondoj 			0xB6, 0xAF, 0x61, 0x44, 0x98, 0x38, 0x70, 0x3A,
7585f8cdb8dSTejasree Kondoj 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A
7595f8cdb8dSTejasree Kondoj 		},
7605f8cdb8dSTejasree Kondoj 		.len = 16
7615f8cdb8dSTejasree Kondoj 	},
7625f8cdb8dSTejasree Kondoj 	.plaintext = {
7635f8cdb8dSTejasree Kondoj 		.data = {
7645f8cdb8dSTejasree Kondoj 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
7655f8cdb8dSTejasree Kondoj 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
7665f8cdb8dSTejasree Kondoj 			0x06, 0xC3, 0x52, 0x5B, 0x98, 0x07, 0xE4, 0x67,
7675f8cdb8dSTejasree Kondoj 			0xE2, 0xD8, 0xFF, 0x58, 0x05, 0xF5, 0x13, 0x22,
7685f8cdb8dSTejasree Kondoj 		},
7695f8cdb8dSTejasree Kondoj 		.len = 32 << 3
7705f8cdb8dSTejasree Kondoj 	},
7715f8cdb8dSTejasree Kondoj 	.ciphertext = {
7725f8cdb8dSTejasree Kondoj 		.data = {
7735f8cdb8dSTejasree Kondoj 			0x5A, 0x5A, 0xCF, 0xCF, 0x3D, 0x11, 0xBF, 0xD9,
7745f8cdb8dSTejasree Kondoj 			0xC3, 0x7F, 0x7C, 0xA8, 0x1A, 0x9F, 0x9F, 0x34,
7755f8cdb8dSTejasree Kondoj 			0x99, 0xF7, 0x13, 0x2D, 0x22, 0xDC, 0xF5, 0x5B,
7765f8cdb8dSTejasree Kondoj 			0x3F, 0x49, 0x70, 0x63, 0x26, 0x6C, 0x4E, 0x8E
7775f8cdb8dSTejasree Kondoj 		},
7785f8cdb8dSTejasree Kondoj 		.len = 32 << 3
7795f8cdb8dSTejasree Kondoj 	},
7805f8cdb8dSTejasree Kondoj 	.cipher = {
7815f8cdb8dSTejasree Kondoj 		.len_bits = 30 << 3,
7825f8cdb8dSTejasree Kondoj 		.offset_bits = 2 << 3
7835f8cdb8dSTejasree Kondoj 	},
7845f8cdb8dSTejasree Kondoj 	.auth = {
7855f8cdb8dSTejasree Kondoj 		.len_bits = 26 << 3,
7865f8cdb8dSTejasree Kondoj 		.offset_bits = 2 << 3
7875f8cdb8dSTejasree Kondoj 	},
7885f8cdb8dSTejasree Kondoj 	.digest = {
7895f8cdb8dSTejasree Kondoj 		.data = {
7905f8cdb8dSTejasree Kondoj 			0x26, 0x6C, 0x4E, 0x8E
7915f8cdb8dSTejasree Kondoj 		},
7925f8cdb8dSTejasree Kondoj 		.len = 4,
7935f8cdb8dSTejasree Kondoj 		.offset_bytes = 28
7945f8cdb8dSTejasree Kondoj 	},
7955f8cdb8dSTejasree Kondoj 	.validDataLenInBits = {
7965f8cdb8dSTejasree Kondoj 		.len = 32 << 3
7975f8cdb8dSTejasree Kondoj 	},
7985f8cdb8dSTejasree Kondoj 	.validCipherLenInBits = {
7995f8cdb8dSTejasree Kondoj 		.len = 30 << 3
8005f8cdb8dSTejasree Kondoj 	},
8015f8cdb8dSTejasree Kondoj 	.validAuthLenInBits = {
8025f8cdb8dSTejasree Kondoj 		.len = 26 << 3
8035f8cdb8dSTejasree Kondoj 	},
8045f8cdb8dSTejasree Kondoj };
8055f8cdb8dSTejasree Kondoj 
806a9de470cSBruce Richardson #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
807