xref: /dpdk/app/test/test_cryptodev_kasumi_hash_test_vectors.h (revision a9de470cc7c0649221e156fc5f30a2dbdfe7c166)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2016-2017 Intel Corporation
3  */
4 
5 #ifndef TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_
7 
8 struct kasumi_hash_test_data {
9 	struct {
10 		uint8_t data[16];
11 		unsigned len;
12 	} key;
13 
14 	/*
15 	 * Includes COUNT (4 bytes), FRESH (4 bytes), message
16 	 * and DIRECTION (1 bit), plus 1 0*, with enough 0s,
17 	 * so total length is multiple of 8 or 64 bits
18 	 */
19 	struct {
20 		uint8_t data[2056];
21 		unsigned len; /* length must be in Bits */
22 	} plaintext;
23 
24 	struct {
25 		uint8_t data[64];
26 		unsigned len;
27 	} digest;
28 };
29 
30 struct kasumi_hash_test_data kasumi_hash_test_case_1 = {
31 	.key = {
32 		.data = {
33 			0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
34 			0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
35 		},
36 		.len = 16
37 	},
38 	.plaintext = {
39 		.data = {
40 			0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
41 			0x6B, 0x22, 0x77, 0x37, 0x29, 0x6F, 0x39, 0x3C,
42 			0x80, 0x79, 0x35, 0x3E, 0xDC, 0x87, 0xE2, 0xE8,
43 			0x05, 0xD2, 0xEC, 0x49, 0xA4, 0xF2, 0xD8, 0xE2
44 		},
45 		.len = 256
46 	},
47 	.digest = {
48 		.data = {0xF6, 0x3B, 0xD7, 0x2C},
49 		.len  = 4
50 	}
51 };
52 
53 struct kasumi_hash_test_data kasumi_hash_test_case_2 = {
54 	.key = {
55 		.data = {
56 			0xD4, 0x2F, 0x68, 0x24, 0x28, 0x20, 0x1C, 0xAF,
57 			0xCD, 0x9F, 0x97, 0x94, 0x5E, 0x6D, 0xE7, 0xB7
58 		},
59 		.len = 16
60 	},
61 	.plaintext = {
62 		.data = {
63 			0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2,
64 			0xB5, 0x92, 0x43, 0x84, 0x32, 0x8A, 0x4A, 0xE0,
65 			0x0B, 0x73, 0x71, 0x09, 0xF8, 0xB6, 0xC8, 0xDD,
66 			0x2B, 0x4D, 0xB6, 0x3D, 0xD5, 0x33, 0x98, 0x1C,
67 			0xEB, 0x19, 0xAA, 0xD5, 0x2A, 0x5B, 0x2B, 0xC3
68 		},
69 		.len = 320
70 	},
71 	.digest = {
72 		.data = {0xA9, 0xDA, 0xF1, 0xFF},
73 		.len  = 4
74 	}
75 };
76 
77 struct kasumi_hash_test_data kasumi_hash_test_case_3 = {
78 	.key = {
79 		.data = {
80 			0xFD, 0xB9, 0xCF, 0xDF, 0x28, 0x93, 0x6C, 0xC4,
81 			0x83, 0xA3, 0x18, 0x69, 0xD8, 0x1B, 0x8F, 0xAB
82 		},
83 		.len = 16
84 	},
85 	.plaintext = {
86 		.data = {
87 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A,
88 			0x59, 0x32, 0xBC, 0x0A, 0xCE, 0x2B, 0x0A, 0xBA,
89 			0x33, 0xD8, 0xAC, 0x18, 0x8A, 0xC5, 0x4F, 0x34,
90 			0x6F, 0xAD, 0x10, 0xBF, 0x9D, 0xEE, 0x29, 0x20,
91 			0xB4, 0x3B, 0xD0, 0xC5, 0x3A, 0x91, 0x5C, 0xB7,
92 			0xDF, 0x6C, 0xAA, 0x72, 0x05, 0x3A, 0xBF, 0xF3,
93 			0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
94 		},
95 		.len = 448
96 	},
97 	.digest = {
98 		.data = {0x15, 0x37, 0xD3, 0x16},
99 		.len  = 4
100 	}
101 };
102 
103 struct kasumi_hash_test_data kasumi_hash_test_case_4 = {
104 	.key = {
105 		.data = {
106 			0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
107 			0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
108 		},
109 	.len = 16
110 	},
111 	.plaintext = {
112 		.data = {
113 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
114 			0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
115 			0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
116 			0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
117 			0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
118 			0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
119 			0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09,
120 			0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
121 		},
122 		.len = 512
123 	},
124 	.digest = {
125 		.data = {0xDD, 0x7D, 0xFA, 0xDD },
126 		.len  = 4
127 	}
128 };
129 
130 struct kasumi_hash_test_data kasumi_hash_test_case_5 = {
131 	.key = {
132 		.data = {
133 			0xF4, 0xEB, 0xEC, 0x69, 0xE7, 0x3E, 0xAF, 0x2E,
134 			0xB2, 0xCF, 0x6A, 0xF4, 0xB3, 0x12, 0x0F, 0xFD
135 		},
136 		.len = 16
137 	},
138 	.plaintext = {
139 		.data = {
140 			0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37,
141 			0x10, 0xBF, 0xFF, 0x83, 0x9E, 0x0C, 0x71, 0x65,
142 			0x8D, 0xBB, 0x2D, 0x17, 0x07, 0xE1, 0x45, 0x72,
143 			0x4F, 0x41, 0xC1, 0x6F, 0x48, 0xBF, 0x40, 0x3C,
144 			0x3B, 0x18, 0xE3, 0x8F, 0xD5, 0xD1, 0x66, 0x3B,
145 			0x6F, 0x6D, 0x90, 0x01, 0x93, 0xE3, 0xCE, 0xA8,
146 			0xBB, 0x4F, 0x1B, 0x4F, 0x5B, 0xE8, 0x22, 0x03,
147 			0x22, 0x32, 0xA7, 0x8D, 0x7D, 0x75, 0x23, 0x8D,
148 			0x5E, 0x6D, 0xAE, 0xCD, 0x3B, 0x43, 0x22, 0xCF,
149 			0x59, 0xBC, 0x7E, 0xA8, 0x4A, 0xB1, 0x88, 0x11,
150 			0xB5, 0xBF, 0xB7, 0xBC, 0x55, 0x3F, 0x4F, 0xE4,
151 			0x44, 0x78, 0xCE, 0x28, 0x7A, 0x14, 0x87, 0x99,
152 			0x90, 0xD1, 0x8D, 0x12, 0xCA, 0x79, 0xD2, 0xC8,
153 			0x55, 0x14, 0x90, 0x21, 0xCD, 0x5C, 0xE8, 0xCA,
154 			0x03, 0x71, 0xCA, 0x04, 0xFC, 0xCE, 0x14, 0x3E,
155 			0x3D, 0x7C, 0xFE, 0xE9, 0x45, 0x85, 0xB5, 0x88,
156 			0x5C, 0xAC, 0x46, 0x06, 0x8B, 0xC0, 0x00, 0x00
157 		},
158 		.len = 1088
159 	},
160 	.digest = {
161 		.data = {0xC3, 0x83, 0x83, 0x9D},
162 		.len  = 4
163 	}
164 };
165 
166 struct kasumi_hash_test_data kasumi_hash_test_case_6 = {
167 	.key = {
168 		.data = {
169 			0x83, 0xFD, 0x23, 0xA2, 0x44, 0xA7, 0x4C, 0xF3,
170 			0x58, 0xDA, 0x30, 0x19, 0xF1, 0x72, 0x26, 0x35
171 		},
172 		.len = 16
173 	},
174 	.plaintext = {
175 		.data = {
176 			0x36, 0xAF, 0x61, 0x44, 0x4F, 0x30, 0x2A, 0xD2,
177 			0x35, 0xC6, 0x87, 0x16, 0x63, 0x3C, 0x66, 0xFB,
178 			0x75, 0x0C, 0x26, 0x68, 0x65, 0xD5, 0x3C, 0x11,
179 			0xEA, 0x05, 0xB1, 0xE9, 0xFA, 0x49, 0xC8, 0x39,
180 			0x8D, 0x48, 0xE1, 0xEF, 0xA5, 0x90, 0x9D, 0x39,
181 			0x47, 0x90, 0x28, 0x37, 0xF5, 0xAE, 0x96, 0xD5,
182 			0xA0, 0x5B, 0xC8, 0xD6, 0x1C, 0xA8, 0xDB, 0xEF,
183 			0x1B, 0x13, 0xA4, 0xB4, 0xAB, 0xFE, 0x4F, 0xB1,
184 			0x00, 0x60, 0x45, 0xB6, 0x74, 0xBB, 0x54, 0x72,
185 			0x93, 0x04, 0xC3, 0x82, 0xBE, 0x53, 0xA5, 0xAF,
186 			0x05, 0x55, 0x61, 0x76, 0xF6, 0xEA, 0xA2, 0xEF,
187 			0x1D, 0x05, 0xE4, 0xB0, 0x83, 0x18, 0x1E, 0xE6,
188 			0x74, 0xCD, 0xA5, 0xA4, 0x85, 0xF7, 0x4D, 0x7A,
189 			0xC0
190 		},
191 		.len = 840
192 	},
193 	.digest = {
194 		.data = {0x95, 0xAE, 0x41, 0xBA},
195 		.len  = 4
196 	}
197 };
198 
199 struct kasumi_hash_test_data kasumi_hash_test_case_7 = {
200 	.key = {
201 		.data = {
202 			0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
203 			0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
204 		},
205 		.len = 16
206 	},
207 	.plaintext = {
208 		.data = {
209 			0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
210 			0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
211 			0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0
212 		},
213 		.len = 192
214 	},
215 	.digest = {
216 		.data = {0x87, 0x5F, 0xE4, 0x89},
217 		.len  = 4
218 	}
219 };
220 #endif /* TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_ */
221