4 * Copyright(c) 2016 Intel Corporation. All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
16 * * Neither the name of Intel Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 #ifndef TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_
34 #define TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_
36 struct kasumi_hash_test_data {
42 /* Includes: COUNT (4 bytes) and FRESH (4 bytes) */
48 /* Includes message and DIRECTION (1 bit), plus 1 0*,
49 * with enough 0s, so total length is multiple of 64 bits */
52 unsigned len; /* length must be in Bits */
55 /* Actual length of data to be hashed */
62 } validAuthOffsetLenInBits;
70 struct kasumi_hash_test_data kasumi_hash_test_case_1 = {
73 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
74 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
80 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
86 0x6B, 0x22, 0x77, 0x37, 0x29, 0x6F, 0x39, 0x3C,
87 0x80, 0x79, 0x35, 0x3E, 0xDC, 0x87, 0xE2, 0xE8,
88 0x05, 0xD2, 0xEC, 0x49, 0xA4, 0xF2, 0xD8, 0xE2
92 .validAuthLenInBits = {
95 .validAuthOffsetLenInBits = {
99 .data = {0xF6, 0x3B, 0xD7, 0x2C},
104 struct kasumi_hash_test_data kasumi_hash_test_case_2 = {
107 0xD4, 0x2F, 0x68, 0x24, 0x28, 0x20, 0x1C, 0xAF,
108 0xCD, 0x9F, 0x97, 0x94, 0x5E, 0x6D, 0xE7, 0xB7
114 0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2,
120 0xB5, 0x92, 0x43, 0x84, 0x32, 0x8A, 0x4A, 0xE0,
121 0x0B, 0x73, 0x71, 0x09, 0xF8, 0xB6, 0xC8, 0xDD,
122 0x2B, 0x4D, 0xB6, 0x3D, 0xD5, 0x33, 0x98, 0x1C,
123 0xEB, 0x19, 0xAA, 0xD5, 0x2A, 0x5B, 0x2B, 0xC3
127 .validAuthLenInBits = {
130 .validAuthOffsetLenInBits = {
134 .data = {0xA9, 0xDA, 0xF1, 0xFF},
139 struct kasumi_hash_test_data kasumi_hash_test_case_3 = {
142 0xFD, 0xB9, 0xCF, 0xDF, 0x28, 0x93, 0x6C, 0xC4,
143 0x83, 0xA3, 0x18, 0x69, 0xD8, 0x1B, 0x8F, 0xAB
149 0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A,
155 0x59, 0x32, 0xBC, 0x0A, 0xCE, 0x2B, 0x0A, 0xBA,
156 0x33, 0xD8, 0xAC, 0x18, 0x8A, 0xC5, 0x4F, 0x34,
157 0x6F, 0xAD, 0x10, 0xBF, 0x9D, 0xEE, 0x29, 0x20,
158 0xB4, 0x3B, 0xD0, 0xC5, 0x3A, 0x91, 0x5C, 0xB7,
159 0xDF, 0x6C, 0xAA, 0x72, 0x05, 0x3A, 0xBF, 0xF3,
160 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
164 .validAuthLenInBits = {
167 .validAuthOffsetLenInBits = {
171 .data = {0x15, 0x37, 0xD3, 0x16},
176 struct kasumi_hash_test_data kasumi_hash_test_case_4 = {
179 0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
180 0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
186 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD
192 0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
193 0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
194 0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
195 0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
196 0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
197 0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09,
198 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
202 .validAuthLenInBits = {
205 .validAuthOffsetLenInBits = {
209 .data = {0xDD, 0x7D, 0xFA, 0xDD },
214 struct kasumi_hash_test_data kasumi_hash_test_case_5 = {
217 0xF4, 0xEB, 0xEC, 0x69, 0xE7, 0x3E, 0xAF, 0x2E,
218 0xB2, 0xCF, 0x6A, 0xF4, 0xB3, 0x12, 0x0F, 0xFD
224 0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37,
230 0x10, 0xBF, 0xFF, 0x83, 0x9E, 0x0C, 0x71, 0x65,
231 0x8D, 0xBB, 0x2D, 0x17, 0x07, 0xE1, 0x45, 0x72,
232 0x4F, 0x41, 0xC1, 0x6F, 0x48, 0xBF, 0x40, 0x3C,
233 0x3B, 0x18, 0xE3, 0x8F, 0xD5, 0xD1, 0x66, 0x3B,
234 0x6F, 0x6D, 0x90, 0x01, 0x93, 0xE3, 0xCE, 0xA8,
235 0xBB, 0x4F, 0x1B, 0x4F, 0x5B, 0xE8, 0x22, 0x03,
236 0x22, 0x32, 0xA7, 0x8D, 0x7D, 0x75, 0x23, 0x8D,
237 0x5E, 0x6D, 0xAE, 0xCD, 0x3B, 0x43, 0x22, 0xCF,
238 0x59, 0xBC, 0x7E, 0xA8, 0x4A, 0xB1, 0x88, 0x11,
239 0xB5, 0xBF, 0xB7, 0xBC, 0x55, 0x3F, 0x4F, 0xE4,
240 0x44, 0x78, 0xCE, 0x28, 0x7A, 0x14, 0x87, 0x99,
241 0x90, 0xD1, 0x8D, 0x12, 0xCA, 0x79, 0xD2, 0xC8,
242 0x55, 0x14, 0x90, 0x21, 0xCD, 0x5C, 0xE8, 0xCA,
243 0x03, 0x71, 0xCA, 0x04, 0xFC, 0xCE, 0x14, 0x3E,
244 0x3D, 0x7C, 0xFE, 0xE9, 0x45, 0x85, 0xB5, 0x88,
245 0x5C, 0xAC, 0x46, 0x06, 0x8B, 0xC0, 0x00, 0x00
249 .validAuthLenInBits = {
252 .validAuthOffsetLenInBits = {
256 .data = {0xC3, 0x83, 0x83, 0x9D},
261 struct kasumi_hash_test_data kasumi_hash_test_case_6 = {
264 0x83, 0xFD, 0x23, 0xA2, 0x44, 0xA7, 0x4C, 0xF3,
265 0x58, 0xDA, 0x30, 0x19, 0xF1, 0x72, 0x26, 0x35
271 0x36, 0xAF, 0x61, 0x44, 0x4F, 0x30, 0x2A, 0xD2
277 0x35, 0xC6, 0x87, 0x16, 0x63, 0x3C, 0x66, 0xFB,
278 0x75, 0x0C, 0x26, 0x68, 0x65, 0xD5, 0x3C, 0x11,
279 0xEA, 0x05, 0xB1, 0xE9, 0xFA, 0x49, 0xC8, 0x39,
280 0x8D, 0x48, 0xE1, 0xEF, 0xA5, 0x90, 0x9D, 0x39,
281 0x47, 0x90, 0x28, 0x37, 0xF5, 0xAE, 0x96, 0xD5,
282 0xA0, 0x5B, 0xC8, 0xD6, 0x1C, 0xA8, 0xDB, 0xEF,
283 0x1B, 0x13, 0xA4, 0xB4, 0xAB, 0xFE, 0x4F, 0xB1,
284 0x00, 0x60, 0x45, 0xB6, 0x74, 0xBB, 0x54, 0x72,
285 0x93, 0x04, 0xC3, 0x82, 0xBE, 0x53, 0xA5, 0xAF,
286 0x05, 0x55, 0x61, 0x76, 0xF6, 0xEA, 0xA2, 0xEF,
287 0x1D, 0x05, 0xE4, 0xB0, 0x83, 0x18, 0x1E, 0xE6,
288 0x74, 0xCD, 0xA5, 0xA4, 0x85, 0xF7, 0x4D, 0x7A,
293 .validAuthLenInBits = {
296 .validAuthOffsetLenInBits = {
300 .data = {0x95, 0xAE, 0x41, 0xBA},
305 struct kasumi_hash_test_data kasumi_hash_test_case_7 = {
308 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
309 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
315 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
321 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
322 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0
326 .validAuthLenInBits = {
329 .validAuthOffsetLenInBits = {
333 .data = {0x87, 0x5F, 0xE4, 0x89},
337 #endif /* TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_ */