New upstream version 18.02
[deb_dpdk.git] / test / test / test_cryptodev_kasumi_hash_test_vectors.h
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_ */