xref: /linux/lib/crypto/tests/sha3-testvecs.h (revision db425f7a0b158d0dbb07c4f4653795aaad3a7a15)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* This file was generated by: ./scripts/crypto/gen-hash-testvecs.py sha3 */
3 
4 /* SHA3-256 test vectors */
5 
6 static const struct {
7 	size_t data_len;
8 	u8 digest[SHA3_256_DIGEST_SIZE];
9 } hash_testvecs[] = {
10 	{
11 		.data_len = 0,
12 		.digest = {
13 			0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66,
14 			0x51, 0xc1, 0x47, 0x56, 0xa0, 0x61, 0xd6, 0x62,
15 			0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa,
16 			0x82, 0xd8, 0x0a, 0x4b, 0x80, 0xf8, 0x43, 0x4a,
17 		},
18 	},
19 	{
20 		.data_len = 1,
21 		.digest = {
22 			0x11, 0x03, 0xe7, 0x84, 0x51, 0x50, 0x86, 0x35,
23 			0x71, 0x8a, 0x70, 0xe3, 0xc4, 0x26, 0x7b, 0x21,
24 			0x02, 0x13, 0xa0, 0x81, 0xe8, 0xe6, 0x14, 0x25,
25 			0x07, 0x34, 0xe5, 0xc5, 0x40, 0x06, 0xf2, 0x8b,
26 		},
27 	},
28 	{
29 		.data_len = 2,
30 		.digest = {
31 			0x2f, 0x6f, 0x6d, 0x47, 0x48, 0x52, 0x11, 0xb9,
32 			0xe4, 0x3d, 0xc8, 0x71, 0xcf, 0xb2, 0xee, 0xae,
33 			0x5b, 0xf4, 0x12, 0x84, 0x5b, 0x1c, 0xec, 0x6c,
34 			0xc1, 0x66, 0x88, 0xaa, 0xc3, 0x40, 0xbd, 0x7e,
35 		},
36 	},
37 	{
38 		.data_len = 3,
39 		.digest = {
40 			0xec, 0x02, 0xe8, 0x81, 0x4f, 0x84, 0x41, 0x69,
41 			0x06, 0xd8, 0xdc, 0x1d, 0x01, 0x78, 0xd7, 0xcb,
42 			0x39, 0xdf, 0xd3, 0x12, 0x1c, 0x99, 0xfd, 0xf3,
43 			0x5c, 0x83, 0xc9, 0xc2, 0x7a, 0x7b, 0x6a, 0x05,
44 		},
45 	},
46 	{
47 		.data_len = 16,
48 		.digest = {
49 			0xff, 0x6f, 0xc3, 0x41, 0xc3, 0x5f, 0x34, 0x6d,
50 			0xa7, 0xdf, 0x3e, 0xc2, 0x8b, 0x29, 0xb6, 0xf1,
51 			0xf8, 0x67, 0xfd, 0xcd, 0xb1, 0x9f, 0x38, 0x08,
52 			0x1d, 0x8d, 0xd9, 0xc2, 0x43, 0x66, 0x18, 0x6c,
53 		},
54 	},
55 	{
56 		.data_len = 32,
57 		.digest = {
58 			0xe4, 0xb1, 0x06, 0x17, 0xf8, 0x8b, 0x91, 0x95,
59 			0xe7, 0x57, 0x66, 0xac, 0x08, 0xb2, 0x03, 0x3e,
60 			0xf7, 0x84, 0x1f, 0xe3, 0x25, 0xa3, 0x11, 0xd2,
61 			0x11, 0xa4, 0x78, 0x74, 0x2a, 0x43, 0x20, 0xa5,
62 		},
63 	},
64 	{
65 		.data_len = 48,
66 		.digest = {
67 			0xeb, 0x57, 0x5f, 0x20, 0xa3, 0x6b, 0xc7, 0xb4,
68 			0x66, 0x2a, 0xa0, 0x30, 0x3b, 0x52, 0x00, 0xc9,
69 			0xce, 0x6a, 0xd8, 0x1e, 0xbe, 0xed, 0xa1, 0xd1,
70 			0xbe, 0x63, 0xc7, 0xe1, 0xe2, 0x66, 0x67, 0x0c,
71 		},
72 	},
73 	{
74 		.data_len = 49,
75 		.digest = {
76 			0xf0, 0x67, 0xad, 0x66, 0xbe, 0xec, 0x5a, 0xfd,
77 			0x29, 0xd2, 0x4f, 0x1d, 0xb2, 0x24, 0xb8, 0x90,
78 			0x05, 0x28, 0x0e, 0x66, 0x67, 0x74, 0x2d, 0xee,
79 			0x66, 0x25, 0x11, 0xd1, 0x76, 0xa2, 0xfc, 0x3a,
80 		},
81 	},
82 	{
83 		.data_len = 63,
84 		.digest = {
85 			0x57, 0x56, 0x21, 0xb3, 0x2d, 0x2d, 0xe1, 0x9d,
86 			0xbf, 0x2c, 0x82, 0xa8, 0xad, 0x7e, 0x6c, 0x46,
87 			0xfb, 0x30, 0xeb, 0xce, 0xcf, 0xed, 0x2d, 0x65,
88 			0xe7, 0xe4, 0x96, 0x69, 0xe0, 0x48, 0xd2, 0xb6,
89 		},
90 	},
91 	{
92 		.data_len = 64,
93 		.digest = {
94 			0x7b, 0xba, 0x67, 0x15, 0xe5, 0x21, 0xc4, 0x69,
95 			0xd3, 0xef, 0x5c, 0x97, 0x9f, 0x5b, 0xba, 0x9c,
96 			0xfa, 0x55, 0x64, 0xec, 0xb5, 0x37, 0x53, 0x1b,
97 			0x3f, 0x4c, 0x0a, 0xed, 0x51, 0x98, 0x2b, 0x52,
98 		},
99 	},
100 	{
101 		.data_len = 65,
102 		.digest = {
103 			0x44, 0xb6, 0x6b, 0x83, 0x09, 0x83, 0x55, 0x83,
104 			0xde, 0x1f, 0xcc, 0x33, 0xef, 0xdc, 0x05, 0xbb,
105 			0x3b, 0x63, 0x76, 0x45, 0xe4, 0x8e, 0x14, 0x7a,
106 			0x2d, 0xae, 0x90, 0xce, 0x68, 0xc3, 0xa4, 0xf2,
107 		},
108 	},
109 	{
110 		.data_len = 127,
111 		.digest = {
112 			0x50, 0x3e, 0x99, 0x4e, 0x28, 0x2b, 0xc9, 0xf4,
113 			0xf5, 0xeb, 0x2b, 0x16, 0x04, 0x2d, 0xf5, 0xbe,
114 			0xc0, 0x91, 0x41, 0x2a, 0x8e, 0x69, 0x5e, 0x39,
115 			0x53, 0x2c, 0xc1, 0x18, 0xa5, 0xeb, 0xd8, 0xda,
116 		},
117 	},
118 	{
119 		.data_len = 128,
120 		.digest = {
121 			0x90, 0x0b, 0xa6, 0x92, 0x84, 0x30, 0xaf, 0xee,
122 			0x38, 0x59, 0x83, 0x83, 0xe9, 0xfe, 0xab, 0x86,
123 			0x79, 0x1b, 0xcd, 0xe7, 0x0a, 0x0f, 0x58, 0x53,
124 			0x36, 0xab, 0x12, 0xe1, 0x5c, 0x97, 0xc1, 0xfb,
125 		},
126 	},
127 	{
128 		.data_len = 129,
129 		.digest = {
130 			0x2b, 0x52, 0x1e, 0x54, 0xbe, 0x38, 0x4c, 0x3e,
131 			0x73, 0x37, 0x18, 0xf5, 0x25, 0x2c, 0xc8, 0xc7,
132 			0xda, 0x7e, 0xb6, 0x47, 0x9d, 0xf4, 0x46, 0xce,
133 			0xfa, 0x80, 0x20, 0x6b, 0xbd, 0xfd, 0x2a, 0xd8,
134 		},
135 	},
136 	{
137 		.data_len = 256,
138 		.digest = {
139 			0x45, 0xf0, 0xf5, 0x9b, 0xd9, 0x91, 0x26, 0xd5,
140 			0x91, 0x3b, 0xf8, 0x87, 0x8b, 0x34, 0x02, 0x31,
141 			0x64, 0xab, 0xf4, 0x1c, 0x6e, 0x34, 0x72, 0xdf,
142 			0x32, 0x6d, 0xe5, 0xd2, 0x67, 0x5e, 0x86, 0x93,
143 		},
144 	},
145 	{
146 		.data_len = 511,
147 		.digest = {
148 			0xb3, 0xaf, 0x71, 0x64, 0xfa, 0xd4, 0xf1, 0x07,
149 			0x38, 0xef, 0x04, 0x8e, 0x89, 0xf4, 0x02, 0xd2,
150 			0xa5, 0xaf, 0x3b, 0xf5, 0x67, 0x56, 0xcf, 0xa9,
151 			0x8e, 0x43, 0xf5, 0xb5, 0xe3, 0x91, 0x8e, 0xe7,
152 		},
153 	},
154 	{
155 		.data_len = 513,
156 		.digest = {
157 			0x51, 0xac, 0x0a, 0x65, 0xb7, 0x96, 0x20, 0xcf,
158 			0x88, 0xf6, 0x97, 0x35, 0x89, 0x0d, 0x31, 0x0f,
159 			0xbe, 0x17, 0xbe, 0x62, 0x03, 0x67, 0xc0, 0xee,
160 			0x4f, 0xc1, 0xe3, 0x7f, 0x6f, 0xab, 0xac, 0xb4,
161 		},
162 	},
163 	{
164 		.data_len = 1000,
165 		.digest = {
166 			0x7e, 0xea, 0xa8, 0xd7, 0xde, 0x20, 0x1b, 0x58,
167 			0x24, 0xd8, 0x26, 0x40, 0x36, 0x5f, 0x3f, 0xaa,
168 			0xe5, 0x5a, 0xea, 0x98, 0x58, 0xd4, 0xd6, 0xfc,
169 			0x20, 0x4c, 0x5c, 0x4f, 0xaf, 0x56, 0xc7, 0xc3,
170 		},
171 	},
172 	{
173 		.data_len = 3333,
174 		.digest = {
175 			0x61, 0xb1, 0xb1, 0x3e, 0x0e, 0x7e, 0x90, 0x3d,
176 			0x31, 0x54, 0xbd, 0xc9, 0x0d, 0x53, 0x62, 0xf1,
177 			0xcd, 0x18, 0x80, 0xf9, 0x91, 0x75, 0x41, 0xb3,
178 			0x51, 0x39, 0x57, 0xa7, 0xa8, 0x1e, 0xfb, 0xc9,
179 		},
180 	},
181 	{
182 		.data_len = 4096,
183 		.digest = {
184 			0xab, 0x29, 0xda, 0x10, 0xc4, 0x11, 0x2d, 0x5c,
185 			0xd1, 0xce, 0x1c, 0x95, 0xfa, 0xc6, 0xc7, 0xb0,
186 			0x1b, 0xd1, 0xdc, 0x6f, 0xa0, 0x9d, 0x1b, 0x23,
187 			0xfb, 0x6e, 0x90, 0x97, 0xd0, 0x75, 0x44, 0x7a,
188 		},
189 	},
190 	{
191 		.data_len = 4128,
192 		.digest = {
193 			0x02, 0x45, 0x95, 0xf4, 0x19, 0xb5, 0x93, 0x29,
194 			0x90, 0xf2, 0x63, 0x3f, 0x89, 0xe8, 0xa5, 0x31,
195 			0x76, 0xf2, 0x89, 0x79, 0x66, 0xd3, 0x96, 0xdf,
196 			0x33, 0xd1, 0xa6, 0x17, 0x73, 0xb1, 0xd0, 0x45,
197 		},
198 	},
199 	{
200 		.data_len = 4160,
201 		.digest = {
202 			0xd1, 0x8e, 0x22, 0xea, 0x44, 0x87, 0x6e, 0x9d,
203 			0xfb, 0x36, 0x02, 0x20, 0x63, 0xb7, 0x69, 0x45,
204 			0x25, 0x41, 0x69, 0xe0, 0x9b, 0x87, 0xcf, 0xa3,
205 			0x51, 0xbb, 0xfc, 0x8d, 0xf7, 0x29, 0xa7, 0xea,
206 		},
207 	},
208 	{
209 		.data_len = 4224,
210 		.digest = {
211 			0x11, 0x86, 0x7d, 0x84, 0xf9, 0x8c, 0x6e, 0xc4,
212 			0x64, 0x36, 0xc6, 0xf3, 0x42, 0x92, 0x31, 0x2b,
213 			0x1e, 0x12, 0xe6, 0x4d, 0xbe, 0xfa, 0x77, 0x3f,
214 			0x89, 0x41, 0x33, 0x58, 0x1c, 0x98, 0x16, 0x0a,
215 		},
216 	},
217 	{
218 		.data_len = 16384,
219 		.digest = {
220 			0xb2, 0xba, 0x0c, 0x8c, 0x9d, 0xbb, 0x1e, 0xb0,
221 			0x03, 0xb5, 0xdf, 0x4f, 0xf5, 0x35, 0xdb, 0xec,
222 			0x60, 0xf2, 0x5b, 0xb6, 0xd0, 0x49, 0xd3, 0xed,
223 			0x55, 0xc0, 0x7a, 0xd7, 0xaf, 0xa1, 0xea, 0x53,
224 		},
225 	},
226 };
227 
228 static const u8 hash_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
229 	0x3b, 0x33, 0x67, 0xf8, 0xea, 0x92, 0x78, 0x62,
230 	0xdd, 0xbe, 0x72, 0x15, 0xbd, 0x6f, 0xfa, 0xe5,
231 	0x5e, 0xab, 0x9f, 0xb1, 0xe4, 0x23, 0x7c, 0x2c,
232 	0x80, 0xcf, 0x09, 0x75, 0xf8, 0xe2, 0xfa, 0x30,
233 };
234 
235 /* SHAKE test vectors */
236 
237 static const u8 shake128_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
238 	0x89, 0x88, 0x3a, 0x44, 0xec, 0xfe, 0x3c, 0xeb,
239 	0x2f, 0x1c, 0x1d, 0xda, 0x9e, 0x36, 0x64, 0xf0,
240 	0x85, 0x4c, 0x49, 0x12, 0x76, 0x5a, 0x4d, 0xe7,
241 	0xa8, 0xfd, 0xcd, 0xbe, 0x45, 0xb4, 0x6f, 0xb0,
242 };
243 
244 static const u8 shake256_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
245 	0x5a, 0xfd, 0x66, 0x62, 0x5c, 0x37, 0x2b, 0x41,
246 	0x77, 0x1c, 0x01, 0x5d, 0x64, 0x7c, 0x63, 0x7a,
247 	0x7c, 0x76, 0x9e, 0xa8, 0xd1, 0xb0, 0x8e, 0x02,
248 	0x16, 0x9b, 0xfe, 0x0e, 0xb5, 0xd8, 0x6a, 0xb5,
249 };
250