1 From 956c2d9a4e69f7458c9b7cb81db98ec1be75ea49 Mon Sep 17 00:00:00 2001
2 From: "Jason A. Donenfeld" <Jason@zx2c4.com>
3 Date: Thu, 16 Jan 2020 21:26:34 +0100
4 Subject: [PATCH 047/124] crypto: chacha20poly1305 - add back missing test
5 vectors and test chunking
7 commit 72c7943792c9e7788ddd182337bcf8f650cf56f5 upstream.
9 When this was originally ported, the 12-byte nonce vectors were left out
10 to keep things simple. I agree that we don't need nor want a library
11 interface for 12-byte nonces. But these test vectors were specially
12 crafted to look at issues in the underlying primitives and related
13 interactions. Therefore, we actually want to keep around all of the
14 test vectors, and simply have a helper function to test them with.
16 Secondly, the sglist-based chunking code in the library interface is
17 rather complicated, so this adds a developer-only test for ensuring that
18 all the book keeping is correct, across a wide array of possibilities.
20 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
21 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
22 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
24 lib/crypto/chacha20poly1305-selftest.c | 1712 +++++++++++++++++++++++-
25 1 file changed, 1698 insertions(+), 14 deletions(-)
27 --- a/lib/crypto/chacha20poly1305-selftest.c
28 +++ b/lib/crypto/chacha20poly1305-selftest.c
32 #include <crypto/chacha20poly1305.h>
33 +#include <crypto/chacha.h>
34 #include <crypto/poly1305.h>
36 #include <asm/unaligned.h>
37 @@ -1926,6 +1927,1104 @@ static const u8 enc_key012[] __initconst
38 0x65, 0x91, 0x6e, 0x2a, 0x79, 0x22, 0xda, 0x64
41 +/* wycheproof - rfc7539 */
42 +static const u8 enc_input013[] __initconst = {
43 + 0x4c, 0x61, 0x64, 0x69, 0x65, 0x73, 0x20, 0x61,
44 + 0x6e, 0x64, 0x20, 0x47, 0x65, 0x6e, 0x74, 0x6c,
45 + 0x65, 0x6d, 0x65, 0x6e, 0x20, 0x6f, 0x66, 0x20,
46 + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73,
47 + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x27, 0x39, 0x39,
48 + 0x3a, 0x20, 0x49, 0x66, 0x20, 0x49, 0x20, 0x63,
49 + 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6f, 0x66, 0x66,
50 + 0x65, 0x72, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6f,
51 + 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20,
52 + 0x74, 0x69, 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20,
53 + 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75,
54 + 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x6e, 0x73,
55 + 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x77, 0x6f,
56 + 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x69,
59 +static const u8 enc_output013[] __initconst = {
60 + 0xd3, 0x1a, 0x8d, 0x34, 0x64, 0x8e, 0x60, 0xdb,
61 + 0x7b, 0x86, 0xaf, 0xbc, 0x53, 0xef, 0x7e, 0xc2,
62 + 0xa4, 0xad, 0xed, 0x51, 0x29, 0x6e, 0x08, 0xfe,
63 + 0xa9, 0xe2, 0xb5, 0xa7, 0x36, 0xee, 0x62, 0xd6,
64 + 0x3d, 0xbe, 0xa4, 0x5e, 0x8c, 0xa9, 0x67, 0x12,
65 + 0x82, 0xfa, 0xfb, 0x69, 0xda, 0x92, 0x72, 0x8b,
66 + 0x1a, 0x71, 0xde, 0x0a, 0x9e, 0x06, 0x0b, 0x29,
67 + 0x05, 0xd6, 0xa5, 0xb6, 0x7e, 0xcd, 0x3b, 0x36,
68 + 0x92, 0xdd, 0xbd, 0x7f, 0x2d, 0x77, 0x8b, 0x8c,
69 + 0x98, 0x03, 0xae, 0xe3, 0x28, 0x09, 0x1b, 0x58,
70 + 0xfa, 0xb3, 0x24, 0xe4, 0xfa, 0xd6, 0x75, 0x94,
71 + 0x55, 0x85, 0x80, 0x8b, 0x48, 0x31, 0xd7, 0xbc,
72 + 0x3f, 0xf4, 0xde, 0xf0, 0x8e, 0x4b, 0x7a, 0x9d,
73 + 0xe5, 0x76, 0xd2, 0x65, 0x86, 0xce, 0xc6, 0x4b,
74 + 0x61, 0x16, 0x1a, 0xe1, 0x0b, 0x59, 0x4f, 0x09,
75 + 0xe2, 0x6a, 0x7e, 0x90, 0x2e, 0xcb, 0xd0, 0x60,
78 +static const u8 enc_assoc013[] __initconst = {
79 + 0x50, 0x51, 0x52, 0x53, 0xc0, 0xc1, 0xc2, 0xc3,
80 + 0xc4, 0xc5, 0xc6, 0xc7
82 +static const u8 enc_nonce013[] __initconst = {
83 + 0x07, 0x00, 0x00, 0x00, 0x40, 0x41, 0x42, 0x43,
84 + 0x44, 0x45, 0x46, 0x47
86 +static const u8 enc_key013[] __initconst = {
87 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
88 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
89 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
90 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
93 +/* wycheproof - misc */
94 +static const u8 enc_input014[] __initconst = { };
95 +static const u8 enc_output014[] __initconst = {
96 + 0x76, 0xac, 0xb3, 0x42, 0xcf, 0x31, 0x66, 0xa5,
97 + 0xb6, 0x3c, 0x0c, 0x0e, 0xa1, 0x38, 0x3c, 0x8d
99 +static const u8 enc_assoc014[] __initconst = { };
100 +static const u8 enc_nonce014[] __initconst = {
101 + 0x4d, 0xa5, 0xbf, 0x8d, 0xfd, 0x58, 0x52, 0xc1,
102 + 0xea, 0x12, 0x37, 0x9d
104 +static const u8 enc_key014[] __initconst = {
105 + 0x80, 0xba, 0x31, 0x92, 0xc8, 0x03, 0xce, 0x96,
106 + 0x5e, 0xa3, 0x71, 0xd5, 0xff, 0x07, 0x3c, 0xf0,
107 + 0xf4, 0x3b, 0x6a, 0x2a, 0xb5, 0x76, 0xb2, 0x08,
108 + 0x42, 0x6e, 0x11, 0x40, 0x9c, 0x09, 0xb9, 0xb0
111 +/* wycheproof - misc */
112 +static const u8 enc_input015[] __initconst = { };
113 +static const u8 enc_output015[] __initconst = {
114 + 0x90, 0x6f, 0xa6, 0x28, 0x4b, 0x52, 0xf8, 0x7b,
115 + 0x73, 0x59, 0xcb, 0xaa, 0x75, 0x63, 0xc7, 0x09
117 +static const u8 enc_assoc015[] __initconst = {
118 + 0xbd, 0x50, 0x67, 0x64, 0xf2, 0xd2, 0xc4, 0x10
120 +static const u8 enc_nonce015[] __initconst = {
121 + 0xa9, 0x2e, 0xf0, 0xac, 0x99, 0x1d, 0xd5, 0x16,
122 + 0xa3, 0xc6, 0xf6, 0x89
124 +static const u8 enc_key015[] __initconst = {
125 + 0x7a, 0x4c, 0xd7, 0x59, 0x17, 0x2e, 0x02, 0xeb,
126 + 0x20, 0x4d, 0xb2, 0xc3, 0xf5, 0xc7, 0x46, 0x22,
127 + 0x7d, 0xf5, 0x84, 0xfc, 0x13, 0x45, 0x19, 0x63,
128 + 0x91, 0xdb, 0xb9, 0x57, 0x7a, 0x25, 0x07, 0x42
131 +/* wycheproof - misc */
132 +static const u8 enc_input016[] __initconst = {
135 +static const u8 enc_output016[] __initconst = {
136 + 0x3a, 0xca, 0xc2, 0x7d, 0xec, 0x09, 0x68, 0x80,
137 + 0x1e, 0x9f, 0x6e, 0xde, 0xd6, 0x9d, 0x80, 0x75,
140 +static const u8 enc_assoc016[] __initconst = { };
141 +static const u8 enc_nonce016[] __initconst = {
142 + 0x99, 0xe2, 0x3e, 0xc4, 0x89, 0x85, 0xbc, 0xcd,
143 + 0xee, 0xab, 0x60, 0xf1
145 +static const u8 enc_key016[] __initconst = {
146 + 0xcc, 0x56, 0xb6, 0x80, 0x55, 0x2e, 0xb7, 0x50,
147 + 0x08, 0xf5, 0x48, 0x4b, 0x4c, 0xb8, 0x03, 0xfa,
148 + 0x50, 0x63, 0xeb, 0xd6, 0xea, 0xb9, 0x1f, 0x6a,
149 + 0xb6, 0xae, 0xf4, 0x91, 0x6a, 0x76, 0x62, 0x73
152 +/* wycheproof - misc */
153 +static const u8 enc_input017[] __initconst = {
156 +static const u8 enc_output017[] __initconst = {
157 + 0xc4, 0x16, 0x83, 0x10, 0xca, 0x45, 0xb1, 0xf7,
158 + 0xc6, 0x6c, 0xad, 0x4e, 0x99, 0xe4, 0x3f, 0x72,
161 +static const u8 enc_assoc017[] __initconst = {
162 + 0x91, 0xca, 0x6c, 0x59, 0x2c, 0xbc, 0xca, 0x53
164 +static const u8 enc_nonce017[] __initconst = {
165 + 0xab, 0x0d, 0xca, 0x71, 0x6e, 0xe0, 0x51, 0xd2,
166 + 0x78, 0x2f, 0x44, 0x03
168 +static const u8 enc_key017[] __initconst = {
169 + 0x46, 0xf0, 0x25, 0x49, 0x65, 0xf7, 0x69, 0xd5,
170 + 0x2b, 0xdb, 0x4a, 0x70, 0xb4, 0x43, 0x19, 0x9f,
171 + 0x8e, 0xf2, 0x07, 0x52, 0x0d, 0x12, 0x20, 0xc5,
172 + 0x5e, 0x4b, 0x70, 0xf0, 0xfd, 0xa6, 0x20, 0xee
175 +/* wycheproof - misc */
176 +static const u8 enc_input018[] __initconst = {
179 +static const u8 enc_output018[] __initconst = {
180 + 0x4d, 0x13, 0x91, 0xe8, 0xb6, 0x1e, 0xfb, 0x39,
181 + 0xc1, 0x22, 0x19, 0x54, 0x53, 0x07, 0x7b, 0x22,
184 +static const u8 enc_assoc018[] __initconst = { };
185 +static const u8 enc_nonce018[] __initconst = {
186 + 0x46, 0x1a, 0xf1, 0x22, 0xe9, 0xf2, 0xe0, 0x34,
187 + 0x7e, 0x03, 0xf2, 0xdb
189 +static const u8 enc_key018[] __initconst = {
190 + 0x2f, 0x7f, 0x7e, 0x4f, 0x59, 0x2b, 0xb3, 0x89,
191 + 0x19, 0x49, 0x89, 0x74, 0x35, 0x07, 0xbf, 0x3e,
192 + 0xe9, 0xcb, 0xde, 0x17, 0x86, 0xb6, 0x69, 0x5f,
193 + 0xe6, 0xc0, 0x25, 0xfd, 0x9b, 0xa4, 0xc1, 0x00
196 +/* wycheproof - misc */
197 +static const u8 enc_input019[] __initconst = {
200 +static const u8 enc_output019[] __initconst = {
201 + 0xb6, 0x0d, 0xea, 0xd0, 0xfd, 0x46, 0x97, 0xec,
202 + 0x2e, 0x55, 0x58, 0x23, 0x77, 0x19, 0xd0, 0x24,
205 +static const u8 enc_assoc019[] __initconst = {
206 + 0x88, 0x36, 0x4f, 0xc8, 0x06, 0x05, 0x18, 0xbf
208 +static const u8 enc_nonce019[] __initconst = {
209 + 0x61, 0x54, 0x6b, 0xa5, 0xf1, 0x72, 0x05, 0x90,
210 + 0xb6, 0x04, 0x0a, 0xc6
212 +static const u8 enc_key019[] __initconst = {
213 + 0xc8, 0x83, 0x3d, 0xce, 0x5e, 0xa9, 0xf2, 0x48,
214 + 0xaa, 0x20, 0x30, 0xea, 0xcf, 0xe7, 0x2b, 0xff,
215 + 0xe6, 0x9a, 0x62, 0x0c, 0xaf, 0x79, 0x33, 0x44,
216 + 0xe5, 0x71, 0x8f, 0xe0, 0xd7, 0xab, 0x1a, 0x58
219 +/* wycheproof - misc */
220 +static const u8 enc_input020[] __initconst = {
221 + 0xab, 0x85, 0xe9, 0xc1, 0x57, 0x17, 0x31
223 +static const u8 enc_output020[] __initconst = {
224 + 0x5d, 0xfe, 0x34, 0x40, 0xdb, 0xb3, 0xc3, 0xed,
225 + 0x7a, 0x43, 0x4e, 0x26, 0x02, 0xd3, 0x94, 0x28,
226 + 0x1e, 0x0a, 0xfa, 0x9f, 0xb7, 0xaa, 0x42
228 +static const u8 enc_assoc020[] __initconst = { };
229 +static const u8 enc_nonce020[] __initconst = {
230 + 0x3c, 0x4e, 0x65, 0x4d, 0x66, 0x3f, 0xa4, 0x59,
231 + 0x6d, 0xc5, 0x5b, 0xb7
233 +static const u8 enc_key020[] __initconst = {
234 + 0x55, 0x56, 0x81, 0x58, 0xd3, 0xa6, 0x48, 0x3f,
235 + 0x1f, 0x70, 0x21, 0xea, 0xb6, 0x9b, 0x70, 0x3f,
236 + 0x61, 0x42, 0x51, 0xca, 0xdc, 0x1a, 0xf5, 0xd3,
237 + 0x4a, 0x37, 0x4f, 0xdb, 0xfc, 0x5a, 0xda, 0xc7
240 +/* wycheproof - misc */
241 +static const u8 enc_input021[] __initconst = {
242 + 0x4e, 0xe5, 0xcd, 0xa2, 0x0d, 0x42, 0x90
244 +static const u8 enc_output021[] __initconst = {
245 + 0x4b, 0xd4, 0x72, 0x12, 0x94, 0x1c, 0xe3, 0x18,
246 + 0x5f, 0x14, 0x08, 0xee, 0x7f, 0xbf, 0x18, 0xf5,
247 + 0xab, 0xad, 0x6e, 0x22, 0x53, 0xa1, 0xba
249 +static const u8 enc_assoc021[] __initconst = {
250 + 0x84, 0xe4, 0x6b, 0xe8, 0xc0, 0x91, 0x90, 0x53
252 +static const u8 enc_nonce021[] __initconst = {
253 + 0x58, 0x38, 0x93, 0x75, 0xc6, 0x9e, 0xe3, 0x98,
254 + 0xde, 0x94, 0x83, 0x96
256 +static const u8 enc_key021[] __initconst = {
257 + 0xe3, 0xc0, 0x9e, 0x7f, 0xab, 0x1a, 0xef, 0xb5,
258 + 0x16, 0xda, 0x6a, 0x33, 0x02, 0x2a, 0x1d, 0xd4,
259 + 0xeb, 0x27, 0x2c, 0x80, 0xd5, 0x40, 0xc5, 0xda,
260 + 0x52, 0xa7, 0x30, 0xf3, 0x4d, 0x84, 0x0d, 0x7f
263 +/* wycheproof - misc */
264 +static const u8 enc_input022[] __initconst = {
265 + 0xbe, 0x33, 0x08, 0xf7, 0x2a, 0x2c, 0x6a, 0xed
267 +static const u8 enc_output022[] __initconst = {
268 + 0x8e, 0x94, 0x39, 0xa5, 0x6e, 0xee, 0xc8, 0x17,
269 + 0xfb, 0xe8, 0xa6, 0xed, 0x8f, 0xab, 0xb1, 0x93,
270 + 0x75, 0x39, 0xdd, 0x6c, 0x00, 0xe9, 0x00, 0x21
272 +static const u8 enc_assoc022[] __initconst = { };
273 +static const u8 enc_nonce022[] __initconst = {
274 + 0x4f, 0x07, 0xaf, 0xed, 0xfd, 0xc3, 0xb6, 0xc2,
275 + 0x36, 0x18, 0x23, 0xd3
277 +static const u8 enc_key022[] __initconst = {
278 + 0x51, 0xe4, 0xbf, 0x2b, 0xad, 0x92, 0xb7, 0xaf,
279 + 0xf1, 0xa4, 0xbc, 0x05, 0x55, 0x0b, 0xa8, 0x1d,
280 + 0xf4, 0xb9, 0x6f, 0xab, 0xf4, 0x1c, 0x12, 0xc7,
281 + 0xb0, 0x0e, 0x60, 0xe4, 0x8d, 0xb7, 0xe1, 0x52
284 +/* wycheproof - misc */
285 +static const u8 enc_input023[] __initconst = {
286 + 0xa4, 0xc9, 0xc2, 0x80, 0x1b, 0x71, 0xf7, 0xdf
288 +static const u8 enc_output023[] __initconst = {
289 + 0xb9, 0xb9, 0x10, 0x43, 0x3a, 0xf0, 0x52, 0xb0,
290 + 0x45, 0x30, 0xf5, 0x1a, 0xee, 0xe0, 0x24, 0xe0,
291 + 0xa4, 0x45, 0xa6, 0x32, 0x8f, 0xa6, 0x7a, 0x18
293 +static const u8 enc_assoc023[] __initconst = {
294 + 0x66, 0xc0, 0xae, 0x70, 0x07, 0x6c, 0xb1, 0x4d
296 +static const u8 enc_nonce023[] __initconst = {
297 + 0xb4, 0xea, 0x66, 0x6e, 0xe1, 0x19, 0x56, 0x33,
298 + 0x66, 0x48, 0x4a, 0x78
300 +static const u8 enc_key023[] __initconst = {
301 + 0x11, 0x31, 0xc1, 0x41, 0x85, 0x77, 0xa0, 0x54,
302 + 0xde, 0x7a, 0x4a, 0xc5, 0x51, 0x95, 0x0f, 0x1a,
303 + 0x05, 0x3f, 0x9a, 0xe4, 0x6e, 0x5b, 0x75, 0xfe,
304 + 0x4a, 0xbd, 0x56, 0x08, 0xd7, 0xcd, 0xda, 0xdd
307 +/* wycheproof - misc */
308 +static const u8 enc_input024[] __initconst = {
309 + 0x42, 0xba, 0xae, 0x59, 0x78, 0xfe, 0xaf, 0x5c,
310 + 0x36, 0x8d, 0x14, 0xe0
312 +static const u8 enc_output024[] __initconst = {
313 + 0xff, 0x7d, 0xc2, 0x03, 0xb2, 0x6c, 0x46, 0x7a,
314 + 0x6b, 0x50, 0xdb, 0x33, 0x57, 0x8c, 0x0f, 0x27,
315 + 0x58, 0xc2, 0xe1, 0x4e, 0x36, 0xd4, 0xfc, 0x10,
316 + 0x6d, 0xcb, 0x29, 0xb4
318 +static const u8 enc_assoc024[] __initconst = { };
319 +static const u8 enc_nonce024[] __initconst = {
320 + 0x9a, 0x59, 0xfc, 0xe2, 0x6d, 0xf0, 0x00, 0x5e,
321 + 0x07, 0x53, 0x86, 0x56
323 +static const u8 enc_key024[] __initconst = {
324 + 0x99, 0xb6, 0x2b, 0xd5, 0xaf, 0xbe, 0x3f, 0xb0,
325 + 0x15, 0xbd, 0xe9, 0x3f, 0x0a, 0xbf, 0x48, 0x39,
326 + 0x57, 0xa1, 0xc3, 0xeb, 0x3c, 0xa5, 0x9c, 0xb5,
327 + 0x0b, 0x39, 0xf7, 0xf8, 0xa9, 0xcc, 0x51, 0xbe
330 +/* wycheproof - misc */
331 +static const u8 enc_input025[] __initconst = {
332 + 0xfd, 0xc8, 0x5b, 0x94, 0xa4, 0xb2, 0xa6, 0xb7,
333 + 0x59, 0xb1, 0xa0, 0xda
335 +static const u8 enc_output025[] __initconst = {
336 + 0x9f, 0x88, 0x16, 0xde, 0x09, 0x94, 0xe9, 0x38,
337 + 0xd9, 0xe5, 0x3f, 0x95, 0xd0, 0x86, 0xfc, 0x6c,
338 + 0x9d, 0x8f, 0xa9, 0x15, 0xfd, 0x84, 0x23, 0xa7,
339 + 0xcf, 0x05, 0x07, 0x2f
341 +static const u8 enc_assoc025[] __initconst = {
342 + 0xa5, 0x06, 0xe1, 0xa5, 0xc6, 0x90, 0x93, 0xf9
344 +static const u8 enc_nonce025[] __initconst = {
345 + 0x58, 0xdb, 0xd4, 0xad, 0x2c, 0x4a, 0xd3, 0x5d,
346 + 0xd9, 0x06, 0xe9, 0xce
348 +static const u8 enc_key025[] __initconst = {
349 + 0x85, 0xf3, 0x5b, 0x62, 0x82, 0xcf, 0xf4, 0x40,
350 + 0xbc, 0x10, 0x20, 0xc8, 0x13, 0x6f, 0xf2, 0x70,
351 + 0x31, 0x11, 0x0f, 0xa6, 0x3e, 0xc1, 0x6f, 0x1e,
352 + 0x82, 0x51, 0x18, 0xb0, 0x06, 0xb9, 0x12, 0x57
355 +/* wycheproof - misc */
356 +static const u8 enc_input026[] __initconst = {
357 + 0x51, 0xf8, 0xc1, 0xf7, 0x31, 0xea, 0x14, 0xac,
358 + 0xdb, 0x21, 0x0a, 0x6d, 0x97, 0x3e, 0x07
360 +static const u8 enc_output026[] __initconst = {
361 + 0x0b, 0x29, 0x63, 0x8e, 0x1f, 0xbd, 0xd6, 0xdf,
362 + 0x53, 0x97, 0x0b, 0xe2, 0x21, 0x00, 0x42, 0x2a,
363 + 0x91, 0x34, 0x08, 0x7d, 0x67, 0xa4, 0x6e, 0x79,
364 + 0x17, 0x8d, 0x0a, 0x93, 0xf5, 0xe1, 0xd2
366 +static const u8 enc_assoc026[] __initconst = { };
367 +static const u8 enc_nonce026[] __initconst = {
368 + 0x68, 0xab, 0x7f, 0xdb, 0xf6, 0x19, 0x01, 0xda,
369 + 0xd4, 0x61, 0xd2, 0x3c
371 +static const u8 enc_key026[] __initconst = {
372 + 0x67, 0x11, 0x96, 0x27, 0xbd, 0x98, 0x8e, 0xda,
373 + 0x90, 0x62, 0x19, 0xe0, 0x8c, 0x0d, 0x0d, 0x77,
374 + 0x9a, 0x07, 0xd2, 0x08, 0xce, 0x8a, 0x4f, 0xe0,
375 + 0x70, 0x9a, 0xf7, 0x55, 0xee, 0xec, 0x6d, 0xcb
378 +/* wycheproof - misc */
379 +static const u8 enc_input027[] __initconst = {
380 + 0x97, 0x46, 0x9d, 0xa6, 0x67, 0xd6, 0x11, 0x0f,
381 + 0x9c, 0xbd, 0xa1, 0xd1, 0xa2, 0x06, 0x73
383 +static const u8 enc_output027[] __initconst = {
384 + 0x32, 0xdb, 0x66, 0xc4, 0xa3, 0x81, 0x9d, 0x81,
385 + 0x55, 0x74, 0x55, 0xe5, 0x98, 0x0f, 0xed, 0xfe,
386 + 0xae, 0x30, 0xde, 0xc9, 0x4e, 0x6a, 0xd3, 0xa9,
387 + 0xee, 0xa0, 0x6a, 0x0d, 0x70, 0x39, 0x17
389 +static const u8 enc_assoc027[] __initconst = {
390 + 0x64, 0x53, 0xa5, 0x33, 0x84, 0x63, 0x22, 0x12
392 +static const u8 enc_nonce027[] __initconst = {
393 + 0xd9, 0x5b, 0x32, 0x43, 0xaf, 0xae, 0xf7, 0x14,
394 + 0xc5, 0x03, 0x5b, 0x6a
396 +static const u8 enc_key027[] __initconst = {
397 + 0xe6, 0xf1, 0x11, 0x8d, 0x41, 0xe4, 0xb4, 0x3f,
398 + 0xb5, 0x82, 0x21, 0xb7, 0xed, 0x79, 0x67, 0x38,
399 + 0x34, 0xe0, 0xd8, 0xac, 0x5c, 0x4f, 0xa6, 0x0b,
400 + 0xbc, 0x8b, 0xc4, 0x89, 0x3a, 0x58, 0x89, 0x4d
403 +/* wycheproof - misc */
404 +static const u8 enc_input028[] __initconst = {
405 + 0x54, 0x9b, 0x36, 0x5a, 0xf9, 0x13, 0xf3, 0xb0,
406 + 0x81, 0x13, 0x1c, 0xcb, 0x6b, 0x82, 0x55, 0x88
408 +static const u8 enc_output028[] __initconst = {
409 + 0xe9, 0x11, 0x0e, 0x9f, 0x56, 0xab, 0x3c, 0xa4,
410 + 0x83, 0x50, 0x0c, 0xea, 0xba, 0xb6, 0x7a, 0x13,
411 + 0x83, 0x6c, 0xca, 0xbf, 0x15, 0xa6, 0xa2, 0x2a,
412 + 0x51, 0xc1, 0x07, 0x1c, 0xfa, 0x68, 0xfa, 0x0c
414 +static const u8 enc_assoc028[] __initconst = { };
415 +static const u8 enc_nonce028[] __initconst = {
416 + 0x2f, 0xcb, 0x1b, 0x38, 0xa9, 0x9e, 0x71, 0xb8,
417 + 0x47, 0x40, 0xad, 0x9b
419 +static const u8 enc_key028[] __initconst = {
420 + 0x59, 0xd4, 0xea, 0xfb, 0x4d, 0xe0, 0xcf, 0xc7,
421 + 0xd3, 0xdb, 0x99, 0xa8, 0xf5, 0x4b, 0x15, 0xd7,
422 + 0xb3, 0x9f, 0x0a, 0xcc, 0x8d, 0xa6, 0x97, 0x63,
423 + 0xb0, 0x19, 0xc1, 0x69, 0x9f, 0x87, 0x67, 0x4a
426 +/* wycheproof - misc */
427 +static const u8 enc_input029[] __initconst = {
428 + 0x55, 0xa4, 0x65, 0x64, 0x4f, 0x5b, 0x65, 0x09,
429 + 0x28, 0xcb, 0xee, 0x7c, 0x06, 0x32, 0x14, 0xd6
431 +static const u8 enc_output029[] __initconst = {
432 + 0xe4, 0xb1, 0x13, 0xcb, 0x77, 0x59, 0x45, 0xf3,
433 + 0xd3, 0xa8, 0xae, 0x9e, 0xc1, 0x41, 0xc0, 0x0c,
434 + 0x7c, 0x43, 0xf1, 0x6c, 0xe0, 0x96, 0xd0, 0xdc,
435 + 0x27, 0xc9, 0x58, 0x49, 0xdc, 0x38, 0x3b, 0x7d
437 +static const u8 enc_assoc029[] __initconst = {
438 + 0x03, 0x45, 0x85, 0x62, 0x1a, 0xf8, 0xd7, 0xff
440 +static const u8 enc_nonce029[] __initconst = {
441 + 0x11, 0x8a, 0x69, 0x64, 0xc2, 0xd3, 0xe3, 0x80,
442 + 0x07, 0x1f, 0x52, 0x66
444 +static const u8 enc_key029[] __initconst = {
445 + 0xb9, 0x07, 0xa4, 0x50, 0x75, 0x51, 0x3f, 0xe8,
446 + 0xa8, 0x01, 0x9e, 0xde, 0xe3, 0xf2, 0x59, 0x14,
447 + 0x87, 0xb2, 0xa0, 0x30, 0xb0, 0x3c, 0x6e, 0x1d,
448 + 0x77, 0x1c, 0x86, 0x25, 0x71, 0xd2, 0xea, 0x1e
451 +/* wycheproof - misc */
452 +static const u8 enc_input030[] __initconst = {
453 + 0x3f, 0xf1, 0x51, 0x4b, 0x1c, 0x50, 0x39, 0x15,
454 + 0x91, 0x8f, 0x0c, 0x0c, 0x31, 0x09, 0x4a, 0x6e,
457 +static const u8 enc_output030[] __initconst = {
458 + 0x02, 0xcc, 0x3a, 0xcb, 0x5e, 0xe1, 0xfc, 0xdd,
459 + 0x12, 0xa0, 0x3b, 0xb8, 0x57, 0x97, 0x64, 0x74,
460 + 0xd3, 0xd8, 0x3b, 0x74, 0x63, 0xa2, 0xc3, 0x80,
461 + 0x0f, 0xe9, 0x58, 0xc2, 0x8e, 0xaa, 0x29, 0x08,
464 +static const u8 enc_assoc030[] __initconst = { };
465 +static const u8 enc_nonce030[] __initconst = {
466 + 0x45, 0xaa, 0xa3, 0xe5, 0xd1, 0x6d, 0x2d, 0x42,
467 + 0xdc, 0x03, 0x44, 0x5d
469 +static const u8 enc_key030[] __initconst = {
470 + 0x3b, 0x24, 0x58, 0xd8, 0x17, 0x6e, 0x16, 0x21,
471 + 0xc0, 0xcc, 0x24, 0xc0, 0xc0, 0xe2, 0x4c, 0x1e,
472 + 0x80, 0xd7, 0x2f, 0x7e, 0xe9, 0x14, 0x9a, 0x4b,
473 + 0x16, 0x61, 0x76, 0x62, 0x96, 0x16, 0xd0, 0x11
476 +/* wycheproof - misc */
477 +static const u8 enc_input031[] __initconst = {
478 + 0x63, 0x85, 0x8c, 0xa3, 0xe2, 0xce, 0x69, 0x88,
479 + 0x7b, 0x57, 0x8a, 0x3c, 0x16, 0x7b, 0x42, 0x1c,
482 +static const u8 enc_output031[] __initconst = {
483 + 0x35, 0x76, 0x64, 0x88, 0xd2, 0xbc, 0x7c, 0x2b,
484 + 0x8d, 0x17, 0xcb, 0xbb, 0x9a, 0xbf, 0xad, 0x9e,
485 + 0x6d, 0x1f, 0x39, 0x1e, 0x65, 0x7b, 0x27, 0x38,
486 + 0xdd, 0xa0, 0x84, 0x48, 0xcb, 0xa2, 0x81, 0x1c,
489 +static const u8 enc_assoc031[] __initconst = {
490 + 0x9a, 0xaf, 0x29, 0x9e, 0xee, 0xa7, 0x8f, 0x79
492 +static const u8 enc_nonce031[] __initconst = {
493 + 0xf0, 0x38, 0x4f, 0xb8, 0x76, 0x12, 0x14, 0x10,
494 + 0x63, 0x3d, 0x99, 0x3d
496 +static const u8 enc_key031[] __initconst = {
497 + 0xf6, 0x0c, 0x6a, 0x1b, 0x62, 0x57, 0x25, 0xf7,
498 + 0x6c, 0x70, 0x37, 0xb4, 0x8f, 0xe3, 0x57, 0x7f,
499 + 0xa7, 0xf7, 0xb8, 0x7b, 0x1b, 0xd5, 0xa9, 0x82,
500 + 0x17, 0x6d, 0x18, 0x23, 0x06, 0xff, 0xb8, 0x70
503 +/* wycheproof - misc */
504 +static const u8 enc_input032[] __initconst = {
505 + 0x10, 0xf1, 0xec, 0xf9, 0xc6, 0x05, 0x84, 0x66,
506 + 0x5d, 0x9a, 0xe5, 0xef, 0xe2, 0x79, 0xe7, 0xf7,
507 + 0x37, 0x7e, 0xea, 0x69, 0x16, 0xd2, 0xb1, 0x11
509 +static const u8 enc_output032[] __initconst = {
510 + 0x42, 0xf2, 0x6c, 0x56, 0xcb, 0x4b, 0xe2, 0x1d,
511 + 0x9d, 0x8d, 0x0c, 0x80, 0xfc, 0x99, 0xdd, 0xe0,
512 + 0x0d, 0x75, 0xf3, 0x80, 0x74, 0xbf, 0xe7, 0x64,
513 + 0x54, 0xaa, 0x7e, 0x13, 0xd4, 0x8f, 0xff, 0x7d,
514 + 0x75, 0x57, 0x03, 0x94, 0x57, 0x04, 0x0a, 0x3a
516 +static const u8 enc_assoc032[] __initconst = { };
517 +static const u8 enc_nonce032[] __initconst = {
518 + 0xe6, 0xb1, 0xad, 0xf2, 0xfd, 0x58, 0xa8, 0x76,
519 + 0x2c, 0x65, 0xf3, 0x1b
521 +static const u8 enc_key032[] __initconst = {
522 + 0x02, 0x12, 0xa8, 0xde, 0x50, 0x07, 0xed, 0x87,
523 + 0xb3, 0x3f, 0x1a, 0x70, 0x90, 0xb6, 0x11, 0x4f,
524 + 0x9e, 0x08, 0xce, 0xfd, 0x96, 0x07, 0xf2, 0xc2,
525 + 0x76, 0xbd, 0xcf, 0xdb, 0xc5, 0xce, 0x9c, 0xd7
528 +/* wycheproof - misc */
529 +static const u8 enc_input033[] __initconst = {
530 + 0x92, 0x22, 0xf9, 0x01, 0x8e, 0x54, 0xfd, 0x6d,
531 + 0xe1, 0x20, 0x08, 0x06, 0xa9, 0xee, 0x8e, 0x4c,
532 + 0xc9, 0x04, 0xd2, 0x9f, 0x25, 0xcb, 0xa1, 0x93
534 +static const u8 enc_output033[] __initconst = {
535 + 0x12, 0x30, 0x32, 0x43, 0x7b, 0x4b, 0xfd, 0x69,
536 + 0x20, 0xe8, 0xf7, 0xe7, 0xe0, 0x08, 0x7a, 0xe4,
537 + 0x88, 0x9e, 0xbe, 0x7a, 0x0a, 0xd0, 0xe9, 0x00,
538 + 0x3c, 0xf6, 0x8f, 0x17, 0x95, 0x50, 0xda, 0x63,
539 + 0xd3, 0xb9, 0x6c, 0x2d, 0x55, 0x41, 0x18, 0x65
541 +static const u8 enc_assoc033[] __initconst = {
542 + 0x3e, 0x8b, 0xc5, 0xad, 0xe1, 0x82, 0xff, 0x08
544 +static const u8 enc_nonce033[] __initconst = {
545 + 0x6b, 0x28, 0x2e, 0xbe, 0xcc, 0x54, 0x1b, 0xcd,
546 + 0x78, 0x34, 0xed, 0x55
548 +static const u8 enc_key033[] __initconst = {
549 + 0xc5, 0xbc, 0x09, 0x56, 0x56, 0x46, 0xe7, 0xed,
550 + 0xda, 0x95, 0x4f, 0x1f, 0x73, 0x92, 0x23, 0xda,
551 + 0xda, 0x20, 0xb9, 0x5c, 0x44, 0xab, 0x03, 0x3d,
552 + 0x0f, 0xae, 0x4b, 0x02, 0x83, 0xd1, 0x8b, 0xe3
555 +/* wycheproof - misc */
556 +static const u8 enc_input034[] __initconst = {
557 + 0xb0, 0x53, 0x99, 0x92, 0x86, 0xa2, 0x82, 0x4f,
558 + 0x42, 0xcc, 0x8c, 0x20, 0x3a, 0xb2, 0x4e, 0x2c,
559 + 0x97, 0xa6, 0x85, 0xad, 0xcc, 0x2a, 0xd3, 0x26,
560 + 0x62, 0x55, 0x8e, 0x55, 0xa5, 0xc7, 0x29
562 +static const u8 enc_output034[] __initconst = {
563 + 0x45, 0xc7, 0xd6, 0xb5, 0x3a, 0xca, 0xd4, 0xab,
564 + 0xb6, 0x88, 0x76, 0xa6, 0xe9, 0x6a, 0x48, 0xfb,
565 + 0x59, 0x52, 0x4d, 0x2c, 0x92, 0xc9, 0xd8, 0xa1,
566 + 0x89, 0xc9, 0xfd, 0x2d, 0xb9, 0x17, 0x46, 0x56,
567 + 0x6d, 0x3c, 0xa1, 0x0e, 0x31, 0x1b, 0x69, 0x5f,
568 + 0x3e, 0xae, 0x15, 0x51, 0x65, 0x24, 0x93
570 +static const u8 enc_assoc034[] __initconst = { };
571 +static const u8 enc_nonce034[] __initconst = {
572 + 0x04, 0xa9, 0xbe, 0x03, 0x50, 0x8a, 0x5f, 0x31,
573 + 0x37, 0x1a, 0x6f, 0xd2
575 +static const u8 enc_key034[] __initconst = {
576 + 0x2e, 0xb5, 0x1c, 0x46, 0x9a, 0xa8, 0xeb, 0x9e,
577 + 0x6c, 0x54, 0xa8, 0x34, 0x9b, 0xae, 0x50, 0xa2,
578 + 0x0f, 0x0e, 0x38, 0x27, 0x11, 0xbb, 0xa1, 0x15,
579 + 0x2c, 0x42, 0x4f, 0x03, 0xb6, 0x67, 0x1d, 0x71
582 +/* wycheproof - misc */
583 +static const u8 enc_input035[] __initconst = {
584 + 0xf4, 0x52, 0x06, 0xab, 0xc2, 0x55, 0x52, 0xb2,
585 + 0xab, 0xc9, 0xab, 0x7f, 0xa2, 0x43, 0x03, 0x5f,
586 + 0xed, 0xaa, 0xdd, 0xc3, 0xb2, 0x29, 0x39, 0x56,
587 + 0xf1, 0xea, 0x6e, 0x71, 0x56, 0xe7, 0xeb
589 +static const u8 enc_output035[] __initconst = {
590 + 0x46, 0xa8, 0x0c, 0x41, 0x87, 0x02, 0x47, 0x20,
591 + 0x08, 0x46, 0x27, 0x58, 0x00, 0x80, 0xdd, 0xe5,
592 + 0xa3, 0xf4, 0xa1, 0x10, 0x93, 0xa7, 0x07, 0x6e,
593 + 0xd6, 0xf3, 0xd3, 0x26, 0xbc, 0x7b, 0x70, 0x53,
594 + 0x4d, 0x4a, 0xa2, 0x83, 0x5a, 0x52, 0xe7, 0x2d,
595 + 0x14, 0xdf, 0x0e, 0x4f, 0x47, 0xf2, 0x5f
597 +static const u8 enc_assoc035[] __initconst = {
598 + 0x37, 0x46, 0x18, 0xa0, 0x6e, 0xa9, 0x8a, 0x48
600 +static const u8 enc_nonce035[] __initconst = {
601 + 0x47, 0x0a, 0x33, 0x9e, 0xcb, 0x32, 0x19, 0xb8,
602 + 0xb8, 0x1a, 0x1f, 0x8b
604 +static const u8 enc_key035[] __initconst = {
605 + 0x7f, 0x5b, 0x74, 0xc0, 0x7e, 0xd1, 0xb4, 0x0f,
606 + 0xd1, 0x43, 0x58, 0xfe, 0x2f, 0xf2, 0xa7, 0x40,
607 + 0xc1, 0x16, 0xc7, 0x70, 0x65, 0x10, 0xe6, 0xa4,
608 + 0x37, 0xf1, 0x9e, 0xa4, 0x99, 0x11, 0xce, 0xc4
611 +/* wycheproof - misc */
612 +static const u8 enc_input036[] __initconst = {
613 + 0xb9, 0xc5, 0x54, 0xcb, 0xc3, 0x6a, 0xc1, 0x8a,
614 + 0xe8, 0x97, 0xdf, 0x7b, 0xee, 0xca, 0xc1, 0xdb,
615 + 0xeb, 0x4e, 0xaf, 0xa1, 0x56, 0xbb, 0x60, 0xce,
616 + 0x2e, 0x5d, 0x48, 0xf0, 0x57, 0x15, 0xe6, 0x78
618 +static const u8 enc_output036[] __initconst = {
619 + 0xea, 0x29, 0xaf, 0xa4, 0x9d, 0x36, 0xe8, 0x76,
620 + 0x0f, 0x5f, 0xe1, 0x97, 0x23, 0xb9, 0x81, 0x1e,
621 + 0xd5, 0xd5, 0x19, 0x93, 0x4a, 0x44, 0x0f, 0x50,
622 + 0x81, 0xac, 0x43, 0x0b, 0x95, 0x3b, 0x0e, 0x21,
623 + 0x22, 0x25, 0x41, 0xaf, 0x46, 0xb8, 0x65, 0x33,
624 + 0xc6, 0xb6, 0x8d, 0x2f, 0xf1, 0x08, 0xa7, 0xea
626 +static const u8 enc_assoc036[] __initconst = { };
627 +static const u8 enc_nonce036[] __initconst = {
628 + 0x72, 0xcf, 0xd9, 0x0e, 0xf3, 0x02, 0x6c, 0xa2,
629 + 0x2b, 0x7e, 0x6e, 0x6a
631 +static const u8 enc_key036[] __initconst = {
632 + 0xe1, 0x73, 0x1d, 0x58, 0x54, 0xe1, 0xb7, 0x0c,
633 + 0xb3, 0xff, 0xe8, 0xb7, 0x86, 0xa2, 0xb3, 0xeb,
634 + 0xf0, 0x99, 0x43, 0x70, 0x95, 0x47, 0x57, 0xb9,
635 + 0xdc, 0x8c, 0x7b, 0xc5, 0x35, 0x46, 0x34, 0xa3
638 +/* wycheproof - misc */
639 +static const u8 enc_input037[] __initconst = {
640 + 0x6b, 0x26, 0x04, 0x99, 0x6c, 0xd3, 0x0c, 0x14,
641 + 0xa1, 0x3a, 0x52, 0x57, 0xed, 0x6c, 0xff, 0xd3,
642 + 0xbc, 0x5e, 0x29, 0xd6, 0xb9, 0x7e, 0xb1, 0x79,
643 + 0x9e, 0xb3, 0x35, 0xe2, 0x81, 0xea, 0x45, 0x1e
645 +static const u8 enc_output037[] __initconst = {
646 + 0x6d, 0xad, 0x63, 0x78, 0x97, 0x54, 0x4d, 0x8b,
647 + 0xf6, 0xbe, 0x95, 0x07, 0xed, 0x4d, 0x1b, 0xb2,
648 + 0xe9, 0x54, 0xbc, 0x42, 0x7e, 0x5d, 0xe7, 0x29,
649 + 0xda, 0xf5, 0x07, 0x62, 0x84, 0x6f, 0xf2, 0xf4,
650 + 0x7b, 0x99, 0x7d, 0x93, 0xc9, 0x82, 0x18, 0x9d,
651 + 0x70, 0x95, 0xdc, 0x79, 0x4c, 0x74, 0x62, 0x32
653 +static const u8 enc_assoc037[] __initconst = {
654 + 0x23, 0x33, 0xe5, 0xce, 0x0f, 0x93, 0xb0, 0x59
656 +static const u8 enc_nonce037[] __initconst = {
657 + 0x26, 0x28, 0x80, 0xd4, 0x75, 0xf3, 0xda, 0xc5,
658 + 0x34, 0x0d, 0xd1, 0xb8
660 +static const u8 enc_key037[] __initconst = {
661 + 0x27, 0xd8, 0x60, 0x63, 0x1b, 0x04, 0x85, 0xa4,
662 + 0x10, 0x70, 0x2f, 0xea, 0x61, 0xbc, 0x87, 0x3f,
663 + 0x34, 0x42, 0x26, 0x0c, 0xad, 0xed, 0x4a, 0xbd,
664 + 0xe2, 0x5b, 0x78, 0x6a, 0x2d, 0x97, 0xf1, 0x45
667 +/* wycheproof - misc */
668 +static const u8 enc_input038[] __initconst = {
669 + 0x97, 0x3d, 0x0c, 0x75, 0x38, 0x26, 0xba, 0xe4,
670 + 0x66, 0xcf, 0x9a, 0xbb, 0x34, 0x93, 0x15, 0x2e,
671 + 0x9d, 0xe7, 0x81, 0x9e, 0x2b, 0xd0, 0xc7, 0x11,
672 + 0x71, 0x34, 0x6b, 0x4d, 0x2c, 0xeb, 0xf8, 0x04,
673 + 0x1a, 0xa3, 0xce, 0xdc, 0x0d, 0xfd, 0x7b, 0x46,
674 + 0x7e, 0x26, 0x22, 0x8b, 0xc8, 0x6c, 0x9a
676 +static const u8 enc_output038[] __initconst = {
677 + 0xfb, 0xa7, 0x8a, 0xe4, 0xf9, 0xd8, 0x08, 0xa6,
678 + 0x2e, 0x3d, 0xa4, 0x0b, 0xe2, 0xcb, 0x77, 0x00,
679 + 0xc3, 0x61, 0x3d, 0x9e, 0xb2, 0xc5, 0x29, 0xc6,
680 + 0x52, 0xe7, 0x6a, 0x43, 0x2c, 0x65, 0x8d, 0x27,
681 + 0x09, 0x5f, 0x0e, 0xb8, 0xf9, 0x40, 0xc3, 0x24,
682 + 0x98, 0x1e, 0xa9, 0x35, 0xe5, 0x07, 0xf9, 0x8f,
683 + 0x04, 0x69, 0x56, 0xdb, 0x3a, 0x51, 0x29, 0x08,
684 + 0xbd, 0x7a, 0xfc, 0x8f, 0x2a, 0xb0, 0xa9
686 +static const u8 enc_assoc038[] __initconst = { };
687 +static const u8 enc_nonce038[] __initconst = {
688 + 0xe7, 0x4a, 0x51, 0x5e, 0x7e, 0x21, 0x02, 0xb9,
689 + 0x0b, 0xef, 0x55, 0xd2
691 +static const u8 enc_key038[] __initconst = {
692 + 0xcf, 0x0d, 0x40, 0xa4, 0x64, 0x4e, 0x5f, 0x51,
693 + 0x81, 0x51, 0x65, 0xd5, 0x30, 0x1b, 0x22, 0x63,
694 + 0x1f, 0x45, 0x44, 0xc4, 0x9a, 0x18, 0x78, 0xe3,
695 + 0xa0, 0xa5, 0xe8, 0xe1, 0xaa, 0xe0, 0xf2, 0x64
698 +/* wycheproof - misc */
699 +static const u8 enc_input039[] __initconst = {
700 + 0xa9, 0x89, 0x95, 0x50, 0x4d, 0xf1, 0x6f, 0x74,
701 + 0x8b, 0xfb, 0x77, 0x85, 0xff, 0x91, 0xee, 0xb3,
702 + 0xb6, 0x60, 0xea, 0x9e, 0xd3, 0x45, 0x0c, 0x3d,
703 + 0x5e, 0x7b, 0x0e, 0x79, 0xef, 0x65, 0x36, 0x59,
704 + 0xa9, 0x97, 0x8d, 0x75, 0x54, 0x2e, 0xf9, 0x1c,
705 + 0x45, 0x67, 0x62, 0x21, 0x56, 0x40, 0xb9
707 +static const u8 enc_output039[] __initconst = {
708 + 0xa1, 0xff, 0xed, 0x80, 0x76, 0x18, 0x29, 0xec,
709 + 0xce, 0x24, 0x2e, 0x0e, 0x88, 0xb1, 0x38, 0x04,
710 + 0x90, 0x16, 0xbc, 0xa0, 0x18, 0xda, 0x2b, 0x6e,
711 + 0x19, 0x98, 0x6b, 0x3e, 0x31, 0x8c, 0xae, 0x8d,
712 + 0x80, 0x61, 0x98, 0xfb, 0x4c, 0x52, 0x7c, 0xc3,
713 + 0x93, 0x50, 0xeb, 0xdd, 0xea, 0xc5, 0x73, 0xc4,
714 + 0xcb, 0xf0, 0xbe, 0xfd, 0xa0, 0xb7, 0x02, 0x42,
715 + 0xc6, 0x40, 0xd7, 0xcd, 0x02, 0xd7, 0xa3
717 +static const u8 enc_assoc039[] __initconst = {
718 + 0xb3, 0xe4, 0x06, 0x46, 0x83, 0xb0, 0x2d, 0x84
720 +static const u8 enc_nonce039[] __initconst = {
721 + 0xd4, 0xd8, 0x07, 0x34, 0x16, 0x83, 0x82, 0x5b,
722 + 0x31, 0xcd, 0x4d, 0x95
724 +static const u8 enc_key039[] __initconst = {
725 + 0x6c, 0xbf, 0xd7, 0x1c, 0x64, 0x5d, 0x18, 0x4c,
726 + 0xf5, 0xd2, 0x3c, 0x40, 0x2b, 0xdb, 0x0d, 0x25,
727 + 0xec, 0x54, 0x89, 0x8c, 0x8a, 0x02, 0x73, 0xd4,
728 + 0x2e, 0xb5, 0xbe, 0x10, 0x9f, 0xdc, 0xb2, 0xac
731 +/* wycheproof - misc */
732 +static const u8 enc_input040[] __initconst = {
733 + 0xd0, 0x96, 0x80, 0x31, 0x81, 0xbe, 0xef, 0x9e,
734 + 0x00, 0x8f, 0xf8, 0x5d, 0x5d, 0xdc, 0x38, 0xdd,
735 + 0xac, 0xf0, 0xf0, 0x9e, 0xe5, 0xf7, 0xe0, 0x7f,
736 + 0x1e, 0x40, 0x79, 0xcb, 0x64, 0xd0, 0xdc, 0x8f,
737 + 0x5e, 0x67, 0x11, 0xcd, 0x49, 0x21, 0xa7, 0x88,
738 + 0x7d, 0xe7, 0x6e, 0x26, 0x78, 0xfd, 0xc6, 0x76,
739 + 0x18, 0xf1, 0x18, 0x55, 0x86, 0xbf, 0xea, 0x9d,
740 + 0x4c, 0x68, 0x5d, 0x50, 0xe4, 0xbb, 0x9a, 0x82
742 +static const u8 enc_output040[] __initconst = {
743 + 0x9a, 0x4e, 0xf2, 0x2b, 0x18, 0x16, 0x77, 0xb5,
744 + 0x75, 0x5c, 0x08, 0xf7, 0x47, 0xc0, 0xf8, 0xd8,
745 + 0xe8, 0xd4, 0xc1, 0x8a, 0x9c, 0xc2, 0x40, 0x5c,
746 + 0x12, 0xbb, 0x51, 0xbb, 0x18, 0x72, 0xc8, 0xe8,
747 + 0xb8, 0x77, 0x67, 0x8b, 0xec, 0x44, 0x2c, 0xfc,
748 + 0xbb, 0x0f, 0xf4, 0x64, 0xa6, 0x4b, 0x74, 0x33,
749 + 0x2c, 0xf0, 0x72, 0x89, 0x8c, 0x7e, 0x0e, 0xdd,
750 + 0xf6, 0x23, 0x2e, 0xa6, 0xe2, 0x7e, 0xfe, 0x50,
751 + 0x9f, 0xf3, 0x42, 0x7a, 0x0f, 0x32, 0xfa, 0x56,
752 + 0x6d, 0x9c, 0xa0, 0xa7, 0x8a, 0xef, 0xc0, 0x13
754 +static const u8 enc_assoc040[] __initconst = { };
755 +static const u8 enc_nonce040[] __initconst = {
756 + 0xd6, 0x10, 0x40, 0xa3, 0x13, 0xed, 0x49, 0x28,
757 + 0x23, 0xcc, 0x06, 0x5b
759 +static const u8 enc_key040[] __initconst = {
760 + 0x5b, 0x1d, 0x10, 0x35, 0xc0, 0xb1, 0x7e, 0xe0,
761 + 0xb0, 0x44, 0x47, 0x67, 0xf8, 0x0a, 0x25, 0xb8,
762 + 0xc1, 0xb7, 0x41, 0xf4, 0xb5, 0x0a, 0x4d, 0x30,
763 + 0x52, 0x22, 0x6b, 0xaa, 0x1c, 0x6f, 0xb7, 0x01
766 +/* wycheproof - misc */
767 +static const u8 enc_input041[] __initconst = {
768 + 0x94, 0xee, 0x16, 0x6d, 0x6d, 0x6e, 0xcf, 0x88,
769 + 0x32, 0x43, 0x71, 0x36, 0xb4, 0xae, 0x80, 0x5d,
770 + 0x42, 0x88, 0x64, 0x35, 0x95, 0x86, 0xd9, 0x19,
771 + 0x3a, 0x25, 0x01, 0x62, 0x93, 0xed, 0xba, 0x44,
772 + 0x3c, 0x58, 0xe0, 0x7e, 0x7b, 0x71, 0x95, 0xec,
773 + 0x5b, 0xd8, 0x45, 0x82, 0xa9, 0xd5, 0x6c, 0x8d,
774 + 0x4a, 0x10, 0x8c, 0x7d, 0x7c, 0xe3, 0x4e, 0x6c,
775 + 0x6f, 0x8e, 0xa1, 0xbe, 0xc0, 0x56, 0x73, 0x17
777 +static const u8 enc_output041[] __initconst = {
778 + 0x5f, 0xbb, 0xde, 0xcc, 0x34, 0xbe, 0x20, 0x16,
779 + 0x14, 0xf6, 0x36, 0x03, 0x1e, 0xeb, 0x42, 0xf1,
780 + 0xca, 0xce, 0x3c, 0x79, 0xa1, 0x2c, 0xff, 0xd8,
781 + 0x71, 0xee, 0x8e, 0x73, 0x82, 0x0c, 0x82, 0x97,
782 + 0x49, 0xf1, 0xab, 0xb4, 0x29, 0x43, 0x67, 0x84,
783 + 0x9f, 0xb6, 0xc2, 0xaa, 0x56, 0xbd, 0xa8, 0xa3,
784 + 0x07, 0x8f, 0x72, 0x3d, 0x7c, 0x1c, 0x85, 0x20,
785 + 0x24, 0xb0, 0x17, 0xb5, 0x89, 0x73, 0xfb, 0x1e,
786 + 0x09, 0x26, 0x3d, 0xa7, 0xb4, 0xcb, 0x92, 0x14,
787 + 0x52, 0xf9, 0x7d, 0xca, 0x40, 0xf5, 0x80, 0xec
789 +static const u8 enc_assoc041[] __initconst = {
790 + 0x71, 0x93, 0xf6, 0x23, 0x66, 0x33, 0x21, 0xa2
792 +static const u8 enc_nonce041[] __initconst = {
793 + 0xd3, 0x1c, 0x21, 0xab, 0xa1, 0x75, 0xb7, 0x0d,
794 + 0xe4, 0xeb, 0xb1, 0x9c
796 +static const u8 enc_key041[] __initconst = {
797 + 0x97, 0xd6, 0x35, 0xc4, 0xf4, 0x75, 0x74, 0xd9,
798 + 0x99, 0x8a, 0x90, 0x87, 0x5d, 0xa1, 0xd3, 0xa2,
799 + 0x84, 0xb7, 0x55, 0xb2, 0xd3, 0x92, 0x97, 0xa5,
800 + 0x72, 0x52, 0x35, 0x19, 0x0e, 0x10, 0xa9, 0x7e
803 +/* wycheproof - misc */
804 +static const u8 enc_input042[] __initconst = {
805 + 0xb4, 0x29, 0xeb, 0x80, 0xfb, 0x8f, 0xe8, 0xba,
806 + 0xed, 0xa0, 0xc8, 0x5b, 0x9c, 0x33, 0x34, 0x58,
807 + 0xe7, 0xc2, 0x99, 0x2e, 0x55, 0x84, 0x75, 0x06,
808 + 0x9d, 0x12, 0xd4, 0x5c, 0x22, 0x21, 0x75, 0x64,
809 + 0x12, 0x15, 0x88, 0x03, 0x22, 0x97, 0xef, 0xf5,
810 + 0x67, 0x83, 0x74, 0x2a, 0x5f, 0xc2, 0x2d, 0x74,
811 + 0x10, 0xff, 0xb2, 0x9d, 0x66, 0x09, 0x86, 0x61,
812 + 0xd7, 0x6f, 0x12, 0x6c, 0x3c, 0x27, 0x68, 0x9e,
813 + 0x43, 0xb3, 0x72, 0x67, 0xca, 0xc5, 0xa3, 0xa6,
814 + 0xd3, 0xab, 0x49, 0xe3, 0x91, 0xda, 0x29, 0xcd,
815 + 0x30, 0x54, 0xa5, 0x69, 0x2e, 0x28, 0x07, 0xe4,
816 + 0xc3, 0xea, 0x46, 0xc8, 0x76, 0x1d, 0x50, 0xf5,
819 +static const u8 enc_output042[] __initconst = {
820 + 0xd0, 0x10, 0x2f, 0x6c, 0x25, 0x8b, 0xf4, 0x97,
821 + 0x42, 0xce, 0xc3, 0x4c, 0xf2, 0xd0, 0xfe, 0xdf,
822 + 0x23, 0xd1, 0x05, 0xfb, 0x4c, 0x84, 0xcf, 0x98,
823 + 0x51, 0x5e, 0x1b, 0xc9, 0xa6, 0x4f, 0x8a, 0xd5,
824 + 0xbe, 0x8f, 0x07, 0x21, 0xbd, 0xe5, 0x06, 0x45,
825 + 0xd0, 0x00, 0x83, 0xc3, 0xa2, 0x63, 0xa3, 0x10,
826 + 0x53, 0xb7, 0x60, 0x24, 0x5f, 0x52, 0xae, 0x28,
827 + 0x66, 0xa5, 0xec, 0x83, 0xb1, 0x9f, 0x61, 0xbe,
828 + 0x1d, 0x30, 0xd5, 0xc5, 0xd9, 0xfe, 0xcc, 0x4c,
829 + 0xbb, 0xe0, 0x8f, 0xd3, 0x85, 0x81, 0x3a, 0x2a,
830 + 0xa3, 0x9a, 0x00, 0xff, 0x9c, 0x10, 0xf7, 0xf2,
831 + 0x37, 0x02, 0xad, 0xd1, 0xe4, 0xb2, 0xff, 0xa3,
832 + 0x1c, 0x41, 0x86, 0x5f, 0xc7, 0x1d, 0xe1, 0x2b,
833 + 0x19, 0x61, 0x21, 0x27, 0xce, 0x49, 0x99, 0x3b,
836 +static const u8 enc_assoc042[] __initconst = { };
837 +static const u8 enc_nonce042[] __initconst = {
838 + 0x17, 0xc8, 0x6a, 0x8a, 0xbb, 0xb7, 0xe0, 0x03,
839 + 0xac, 0xde, 0x27, 0x99
841 +static const u8 enc_key042[] __initconst = {
842 + 0xfe, 0x6e, 0x55, 0xbd, 0xae, 0xd1, 0xf7, 0x28,
843 + 0x4c, 0xa5, 0xfc, 0x0f, 0x8c, 0x5f, 0x2b, 0x8d,
844 + 0xf5, 0x6d, 0xc0, 0xf4, 0x9e, 0x8c, 0xa6, 0x6a,
845 + 0x41, 0x99, 0x5e, 0x78, 0x33, 0x51, 0xf9, 0x01
848 +/* wycheproof - misc */
849 +static const u8 enc_input043[] __initconst = {
850 + 0xce, 0xb5, 0x34, 0xce, 0x50, 0xdc, 0x23, 0xff,
851 + 0x63, 0x8a, 0xce, 0x3e, 0xf6, 0x3a, 0xb2, 0xcc,
852 + 0x29, 0x73, 0xee, 0xad, 0xa8, 0x07, 0x85, 0xfc,
853 + 0x16, 0x5d, 0x06, 0xc2, 0xf5, 0x10, 0x0f, 0xf5,
854 + 0xe8, 0xab, 0x28, 0x82, 0xc4, 0x75, 0xaf, 0xcd,
855 + 0x05, 0xcc, 0xd4, 0x9f, 0x2e, 0x7d, 0x8f, 0x55,
856 + 0xef, 0x3a, 0x72, 0xe3, 0xdc, 0x51, 0xd6, 0x85,
857 + 0x2b, 0x8e, 0x6b, 0x9e, 0x7a, 0xec, 0xe5, 0x7b,
858 + 0xe6, 0x55, 0x6b, 0x0b, 0x6d, 0x94, 0x13, 0xe3,
859 + 0x3f, 0xc5, 0xfc, 0x24, 0xa9, 0xa2, 0x05, 0xad,
860 + 0x59, 0x57, 0x4b, 0xb3, 0x9d, 0x94, 0x4a, 0x92,
861 + 0xdc, 0x47, 0x97, 0x0d, 0x84, 0xa6, 0xad, 0x31,
864 +static const u8 enc_output043[] __initconst = {
865 + 0x75, 0x45, 0x39, 0x1b, 0x51, 0xde, 0x01, 0xd5,
866 + 0xc5, 0x3d, 0xfa, 0xca, 0x77, 0x79, 0x09, 0x06,
867 + 0x3e, 0x58, 0xed, 0xee, 0x4b, 0xb1, 0x22, 0x7e,
868 + 0x71, 0x10, 0xac, 0x4d, 0x26, 0x20, 0xc2, 0xae,
869 + 0xc2, 0xf8, 0x48, 0xf5, 0x6d, 0xee, 0xb0, 0x37,
870 + 0xa8, 0xdc, 0xed, 0x75, 0xaf, 0xa8, 0xa6, 0xc8,
871 + 0x90, 0xe2, 0xde, 0xe4, 0x2f, 0x95, 0x0b, 0xb3,
872 + 0x3d, 0x9e, 0x24, 0x24, 0xd0, 0x8a, 0x50, 0x5d,
873 + 0x89, 0x95, 0x63, 0x97, 0x3e, 0xd3, 0x88, 0x70,
874 + 0xf3, 0xde, 0x6e, 0xe2, 0xad, 0xc7, 0xfe, 0x07,
875 + 0x2c, 0x36, 0x6c, 0x14, 0xe2, 0xcf, 0x7c, 0xa6,
876 + 0x2f, 0xb3, 0xd3, 0x6b, 0xee, 0x11, 0x68, 0x54,
877 + 0x61, 0xb7, 0x0d, 0x44, 0xef, 0x8c, 0x66, 0xc5,
878 + 0xc7, 0xbb, 0xf1, 0x0d, 0xca, 0xdd, 0x7f, 0xac,
881 +static const u8 enc_assoc043[] __initconst = {
882 + 0xa1, 0x1c, 0x40, 0xb6, 0x03, 0x76, 0x73, 0x30
884 +static const u8 enc_nonce043[] __initconst = {
885 + 0x46, 0x36, 0x2f, 0x45, 0xd6, 0x37, 0x9e, 0x63,
886 + 0xe5, 0x22, 0x94, 0x60
888 +static const u8 enc_key043[] __initconst = {
889 + 0xaa, 0xbc, 0x06, 0x34, 0x74, 0xe6, 0x5c, 0x4c,
890 + 0x3e, 0x9b, 0xdc, 0x48, 0x0d, 0xea, 0x97, 0xb4,
891 + 0x51, 0x10, 0xc8, 0x61, 0x88, 0x46, 0xff, 0x6b,
892 + 0x15, 0xbd, 0xd2, 0xa4, 0xa5, 0x68, 0x2c, 0x4e
895 +/* wycheproof - misc */
896 +static const u8 enc_input044[] __initconst = {
897 + 0xe5, 0xcc, 0xaa, 0x44, 0x1b, 0xc8, 0x14, 0x68,
898 + 0x8f, 0x8f, 0x6e, 0x8f, 0x28, 0xb5, 0x00, 0xb2
900 +static const u8 enc_output044[] __initconst = {
901 + 0x7e, 0x72, 0xf5, 0xa1, 0x85, 0xaf, 0x16, 0xa6,
902 + 0x11, 0x92, 0x1b, 0x43, 0x8f, 0x74, 0x9f, 0x0b,
903 + 0x12, 0x42, 0xc6, 0x70, 0x73, 0x23, 0x34, 0x02,
904 + 0x9a, 0xdf, 0xe1, 0xc5, 0x00, 0x16, 0x51, 0xe4
906 +static const u8 enc_assoc044[] __initconst = {
909 +static const u8 enc_nonce044[] __initconst = {
910 + 0x87, 0x34, 0x5f, 0x10, 0x55, 0xfd, 0x9e, 0x21,
911 + 0x02, 0xd5, 0x06, 0x56
913 +static const u8 enc_key044[] __initconst = {
914 + 0x7d, 0x00, 0xb4, 0x80, 0x95, 0xad, 0xfa, 0x32,
915 + 0x72, 0x05, 0x06, 0x07, 0xb2, 0x64, 0x18, 0x50,
916 + 0x02, 0xba, 0x99, 0x95, 0x7c, 0x49, 0x8b, 0xe0,
917 + 0x22, 0x77, 0x0f, 0x2c, 0xe2, 0xf3, 0x14, 0x3c
920 +/* wycheproof - misc */
921 +static const u8 enc_input045[] __initconst = {
922 + 0x02, 0xcd, 0xe1, 0x68, 0xfb, 0xa3, 0xf5, 0x44,
923 + 0xbb, 0xd0, 0x33, 0x2f, 0x7a, 0xde, 0xad, 0xa8
925 +static const u8 enc_output045[] __initconst = {
926 + 0x85, 0xf2, 0x9a, 0x71, 0x95, 0x57, 0xcd, 0xd1,
927 + 0x4d, 0x1f, 0x8f, 0xff, 0xab, 0x6d, 0x9e, 0x60,
928 + 0x73, 0x2c, 0xa3, 0x2b, 0xec, 0xd5, 0x15, 0xa1,
929 + 0xed, 0x35, 0x3f, 0x54, 0x2e, 0x99, 0x98, 0x58
931 +static const u8 enc_assoc045[] __initconst = {
934 +static const u8 enc_nonce045[] __initconst = {
935 + 0x87, 0xa3, 0x16, 0x3e, 0xc0, 0x59, 0x8a, 0xd9,
936 + 0x5b, 0x3a, 0xa7, 0x13
938 +static const u8 enc_key045[] __initconst = {
939 + 0x64, 0x32, 0x71, 0x7f, 0x1d, 0xb8, 0x5e, 0x41,
940 + 0xac, 0x78, 0x36, 0xbc, 0xe2, 0x51, 0x85, 0xa0,
941 + 0x80, 0xd5, 0x76, 0x2b, 0x9e, 0x2b, 0x18, 0x44,
942 + 0x4b, 0x6e, 0xc7, 0x2c, 0x3b, 0xd8, 0xe4, 0xdc
945 +/* wycheproof - misc */
946 +static const u8 enc_input046[] __initconst = {
947 + 0x16, 0xdd, 0xd2, 0x3f, 0xf5, 0x3f, 0x3d, 0x23,
948 + 0xc0, 0x63, 0x34, 0x48, 0x70, 0x40, 0xeb, 0x47
950 +static const u8 enc_output046[] __initconst = {
951 + 0xc1, 0xb2, 0x95, 0x93, 0x6d, 0x56, 0xfa, 0xda,
952 + 0xc0, 0x3e, 0x5f, 0x74, 0x2b, 0xff, 0x73, 0xa1,
953 + 0x39, 0xc4, 0x57, 0xdb, 0xab, 0x66, 0x38, 0x2b,
954 + 0xab, 0xb3, 0xb5, 0x58, 0x00, 0xcd, 0xa5, 0xb8
956 +static const u8 enc_assoc046[] __initconst = {
957 + 0xbd, 0x4c, 0xd0, 0x2f, 0xc7, 0x50, 0x2b, 0xbd,
958 + 0xbd, 0xf6, 0xc9, 0xa3, 0xcb, 0xe8, 0xf0
960 +static const u8 enc_nonce046[] __initconst = {
961 + 0x6f, 0x57, 0x3a, 0xa8, 0x6b, 0xaa, 0x49, 0x2b,
962 + 0xa4, 0x65, 0x96, 0xdf
964 +static const u8 enc_key046[] __initconst = {
965 + 0x8e, 0x34, 0xcf, 0x73, 0xd2, 0x45, 0xa1, 0x08,
966 + 0x2a, 0x92, 0x0b, 0x86, 0x36, 0x4e, 0xb8, 0x96,
967 + 0xc4, 0x94, 0x64, 0x67, 0xbc, 0xb3, 0xd5, 0x89,
968 + 0x29, 0xfc, 0xb3, 0x66, 0x90, 0xe6, 0x39, 0x4f
971 +/* wycheproof - misc */
972 +static const u8 enc_input047[] __initconst = {
973 + 0x62, 0x3b, 0x78, 0x50, 0xc3, 0x21, 0xe2, 0xcf,
974 + 0x0c, 0x6f, 0xbc, 0xc8, 0xdf, 0xd1, 0xaf, 0xf2
976 +static const u8 enc_output047[] __initconst = {
977 + 0xc8, 0x4c, 0x9b, 0xb7, 0xc6, 0x1c, 0x1b, 0xcb,
978 + 0x17, 0x77, 0x2a, 0x1c, 0x50, 0x0c, 0x50, 0x95,
979 + 0xdb, 0xad, 0xf7, 0xa5, 0x13, 0x8c, 0xa0, 0x34,
980 + 0x59, 0xa2, 0xcd, 0x65, 0x83, 0x1e, 0x09, 0x2f
982 +static const u8 enc_assoc047[] __initconst = {
983 + 0x89, 0xcc, 0xe9, 0xfb, 0x47, 0x44, 0x1d, 0x07,
984 + 0xe0, 0x24, 0x5a, 0x66, 0xfe, 0x8b, 0x77, 0x8b
986 +static const u8 enc_nonce047[] __initconst = {
987 + 0x1a, 0x65, 0x18, 0xf0, 0x2e, 0xde, 0x1d, 0xa6,
988 + 0x80, 0x92, 0x66, 0xd9
990 +static const u8 enc_key047[] __initconst = {
991 + 0xcb, 0x55, 0x75, 0xf5, 0xc7, 0xc4, 0x5c, 0x91,
992 + 0xcf, 0x32, 0x0b, 0x13, 0x9f, 0xb5, 0x94, 0x23,
993 + 0x75, 0x60, 0xd0, 0xa3, 0xe6, 0xf8, 0x65, 0xa6,
994 + 0x7d, 0x4f, 0x63, 0x3f, 0x2c, 0x08, 0xf0, 0x16
997 +/* wycheproof - misc */
998 +static const u8 enc_input048[] __initconst = {
999 + 0x87, 0xb3, 0xa4, 0xd7, 0xb2, 0x6d, 0x8d, 0x32,
1000 + 0x03, 0xa0, 0xde, 0x1d, 0x64, 0xef, 0x82, 0xe3
1002 +static const u8 enc_output048[] __initconst = {
1003 + 0x94, 0xbc, 0x80, 0x62, 0x1e, 0xd1, 0xe7, 0x1b,
1004 + 0x1f, 0xd2, 0xb5, 0xc3, 0xa1, 0x5e, 0x35, 0x68,
1005 + 0x33, 0x35, 0x11, 0x86, 0x17, 0x96, 0x97, 0x84,
1006 + 0x01, 0x59, 0x8b, 0x96, 0x37, 0x22, 0xf5, 0xb3
1008 +static const u8 enc_assoc048[] __initconst = {
1009 + 0xd1, 0x9f, 0x2d, 0x98, 0x90, 0x95, 0xf7, 0xab,
1010 + 0x03, 0xa5, 0xfd, 0xe8, 0x44, 0x16, 0xe0, 0x0c,
1013 +static const u8 enc_nonce048[] __initconst = {
1014 + 0x56, 0x4d, 0xee, 0x49, 0xab, 0x00, 0xd2, 0x40,
1015 + 0xfc, 0x10, 0x68, 0xc3
1017 +static const u8 enc_key048[] __initconst = {
1018 + 0xa5, 0x56, 0x9e, 0x72, 0x9a, 0x69, 0xb2, 0x4b,
1019 + 0xa6, 0xe0, 0xff, 0x15, 0xc4, 0x62, 0x78, 0x97,
1020 + 0x43, 0x68, 0x24, 0xc9, 0x41, 0xe9, 0xd0, 0x0b,
1021 + 0x2e, 0x93, 0xfd, 0xdc, 0x4b, 0xa7, 0x76, 0x57
1024 +/* wycheproof - misc */
1025 +static const u8 enc_input049[] __initconst = {
1026 + 0xe6, 0x01, 0xb3, 0x85, 0x57, 0x79, 0x7d, 0xa2,
1027 + 0xf8, 0xa4, 0x10, 0x6a, 0x08, 0x9d, 0x1d, 0xa6
1029 +static const u8 enc_output049[] __initconst = {
1030 + 0x29, 0x9b, 0x5d, 0x3f, 0x3d, 0x03, 0xc0, 0x87,
1031 + 0x20, 0x9a, 0x16, 0xe2, 0x85, 0x14, 0x31, 0x11,
1032 + 0x4b, 0x45, 0x4e, 0xd1, 0x98, 0xde, 0x11, 0x7e,
1033 + 0x83, 0xec, 0x49, 0xfa, 0x8d, 0x85, 0x08, 0xd6
1035 +static const u8 enc_assoc049[] __initconst = {
1036 + 0x5e, 0x64, 0x70, 0xfa, 0xcd, 0x99, 0xc1, 0xd8,
1037 + 0x1e, 0x37, 0xcd, 0x44, 0x01, 0x5f, 0xe1, 0x94,
1038 + 0x80, 0xa2, 0xa4, 0xd3, 0x35, 0x2a, 0x4f, 0xf5,
1039 + 0x60, 0xc0, 0x64, 0x0f, 0xdb, 0xda
1041 +static const u8 enc_nonce049[] __initconst = {
1042 + 0xdf, 0x87, 0x13, 0xe8, 0x7e, 0xc3, 0xdb, 0xcf,
1043 + 0xad, 0x14, 0xd5, 0x3e
1045 +static const u8 enc_key049[] __initconst = {
1046 + 0x56, 0x20, 0x74, 0x65, 0xb4, 0xe4, 0x8e, 0x6d,
1047 + 0x04, 0x63, 0x0f, 0x4a, 0x42, 0xf3, 0x5c, 0xfc,
1048 + 0x16, 0x3a, 0xb2, 0x89, 0xc2, 0x2a, 0x2b, 0x47,
1049 + 0x84, 0xf6, 0xf9, 0x29, 0x03, 0x30, 0xbe, 0xe0
1052 +/* wycheproof - misc */
1053 +static const u8 enc_input050[] __initconst = {
1054 + 0xdc, 0x9e, 0x9e, 0xaf, 0x11, 0xe3, 0x14, 0x18,
1055 + 0x2d, 0xf6, 0xa4, 0xeb, 0xa1, 0x7a, 0xec, 0x9c
1057 +static const u8 enc_output050[] __initconst = {
1058 + 0x60, 0x5b, 0xbf, 0x90, 0xae, 0xb9, 0x74, 0xf6,
1059 + 0x60, 0x2b, 0xc7, 0x78, 0x05, 0x6f, 0x0d, 0xca,
1060 + 0x38, 0xea, 0x23, 0xd9, 0x90, 0x54, 0xb4, 0x6b,
1061 + 0x42, 0xff, 0xe0, 0x04, 0x12, 0x9d, 0x22, 0x04
1063 +static const u8 enc_assoc050[] __initconst = {
1064 + 0xba, 0x44, 0x6f, 0x6f, 0x9a, 0x0c, 0xed, 0x22,
1065 + 0x45, 0x0f, 0xeb, 0x10, 0x73, 0x7d, 0x90, 0x07,
1066 + 0xfd, 0x69, 0xab, 0xc1, 0x9b, 0x1d, 0x4d, 0x90,
1067 + 0x49, 0xa5, 0x55, 0x1e, 0x86, 0xec, 0x2b, 0x37
1069 +static const u8 enc_nonce050[] __initconst = {
1070 + 0x8d, 0xf4, 0xb1, 0x5a, 0x88, 0x8c, 0x33, 0x28,
1071 + 0x6a, 0x7b, 0x76, 0x51
1073 +static const u8 enc_key050[] __initconst = {
1074 + 0x39, 0x37, 0x98, 0x6a, 0xf8, 0x6d, 0xaf, 0xc1,
1075 + 0xba, 0x0c, 0x46, 0x72, 0xd8, 0xab, 0xc4, 0x6c,
1076 + 0x20, 0x70, 0x62, 0x68, 0x2d, 0x9c, 0x26, 0x4a,
1077 + 0xb0, 0x6d, 0x6c, 0x58, 0x07, 0x20, 0x51, 0x30
1080 +/* wycheproof - misc */
1081 +static const u8 enc_input051[] __initconst = {
1082 + 0x81, 0xce, 0x84, 0xed, 0xe9, 0xb3, 0x58, 0x59,
1083 + 0xcc, 0x8c, 0x49, 0xa8, 0xf6, 0xbe, 0x7d, 0xc6
1085 +static const u8 enc_output051[] __initconst = {
1086 + 0x7b, 0x7c, 0xe0, 0xd8, 0x24, 0x80, 0x9a, 0x70,
1087 + 0xde, 0x32, 0x56, 0x2c, 0xcf, 0x2c, 0x2b, 0xbd,
1088 + 0x15, 0xd4, 0x4a, 0x00, 0xce, 0x0d, 0x19, 0xb4,
1089 + 0x23, 0x1f, 0x92, 0x1e, 0x22, 0xbc, 0x0a, 0x43
1091 +static const u8 enc_assoc051[] __initconst = {
1092 + 0xd4, 0x1a, 0x82, 0x8d, 0x5e, 0x71, 0x82, 0x92,
1093 + 0x47, 0x02, 0x19, 0x05, 0x40, 0x2e, 0xa2, 0x57,
1094 + 0xdc, 0xcb, 0xc3, 0xb8, 0x0f, 0xcd, 0x56, 0x75,
1095 + 0x05, 0x6b, 0x68, 0xbb, 0x59, 0xe6, 0x2e, 0x88,
1098 +static const u8 enc_nonce051[] __initconst = {
1099 + 0xbe, 0x40, 0xe5, 0xf1, 0xa1, 0x18, 0x17, 0xa0,
1100 + 0xa8, 0xfa, 0x89, 0x49
1102 +static const u8 enc_key051[] __initconst = {
1103 + 0x36, 0x37, 0x2a, 0xbc, 0xdb, 0x78, 0xe0, 0x27,
1104 + 0x96, 0x46, 0xac, 0x3d, 0x17, 0x6b, 0x96, 0x74,
1105 + 0xe9, 0x15, 0x4e, 0xec, 0xf0, 0xd5, 0x46, 0x9c,
1106 + 0x65, 0x1e, 0xc7, 0xe1, 0x6b, 0x4c, 0x11, 0x99
1109 +/* wycheproof - misc */
1110 +static const u8 enc_input052[] __initconst = {
1111 + 0xa6, 0x67, 0x47, 0xc8, 0x9e, 0x85, 0x7a, 0xf3,
1112 + 0xa1, 0x8e, 0x2c, 0x79, 0x50, 0x00, 0x87, 0xed
1114 +static const u8 enc_output052[] __initconst = {
1115 + 0xca, 0x82, 0xbf, 0xf3, 0xe2, 0xf3, 0x10, 0xcc,
1116 + 0xc9, 0x76, 0x67, 0x2c, 0x44, 0x15, 0xe6, 0x9b,
1117 + 0x57, 0x63, 0x8c, 0x62, 0xa5, 0xd8, 0x5d, 0xed,
1118 + 0x77, 0x4f, 0x91, 0x3c, 0x81, 0x3e, 0xa0, 0x32
1120 +static const u8 enc_assoc052[] __initconst = {
1121 + 0x3f, 0x2d, 0xd4, 0x9b, 0xbf, 0x09, 0xd6, 0x9a,
1122 + 0x78, 0xa3, 0xd8, 0x0e, 0xa2, 0x56, 0x66, 0x14,
1123 + 0xfc, 0x37, 0x94, 0x74, 0x19, 0x6c, 0x1a, 0xae,
1124 + 0x84, 0x58, 0x3d, 0xa7, 0x3d, 0x7f, 0xf8, 0x5c,
1125 + 0x6f, 0x42, 0xca, 0x42, 0x05, 0x6a, 0x97, 0x92,
1126 + 0xcc, 0x1b, 0x9f, 0xb3, 0xc7, 0xd2, 0x61
1128 +static const u8 enc_nonce052[] __initconst = {
1129 + 0x84, 0xc8, 0x7d, 0xae, 0x4e, 0xee, 0x27, 0x73,
1130 + 0x0e, 0xc3, 0x5d, 0x12
1132 +static const u8 enc_key052[] __initconst = {
1133 + 0x9f, 0x14, 0x79, 0xed, 0x09, 0x7d, 0x7f, 0xe5,
1134 + 0x29, 0xc1, 0x1f, 0x2f, 0x5a, 0xdd, 0x9a, 0xaf,
1135 + 0xf4, 0xa1, 0xca, 0x0b, 0x68, 0x99, 0x7a, 0x2c,
1136 + 0xb7, 0xf7, 0x97, 0x49, 0xbd, 0x90, 0xaa, 0xf4
1139 /* wycheproof - misc */
1140 static const u8 enc_input053[] __initconst = {
1141 0x25, 0x6d, 0x40, 0x88, 0x80, 0x94, 0x17, 0x83,
1142 @@ -2760,6 +3859,126 @@ static const u8 enc_key073[] __initconst
1145 /* wycheproof - checking for int overflows */
1146 +static const u8 enc_input074[] __initconst = {
1147 + 0xd4, 0x50, 0x0b, 0xf0, 0x09, 0x49, 0x35, 0x51,
1148 + 0xc3, 0x80, 0xad, 0xf5, 0x2c, 0x57, 0x3a, 0x69,
1149 + 0xdf, 0x7e, 0x8b, 0x76, 0x24, 0x63, 0x33, 0x0f,
1150 + 0xac, 0xc1, 0x6a, 0x57, 0x26, 0xbe, 0x71, 0x90,
1151 + 0xc6, 0x3c, 0x5a, 0x1c, 0x92, 0x65, 0x84, 0xa0,
1152 + 0x96, 0x75, 0x68, 0x28, 0xdc, 0xdc, 0x64, 0xac,
1153 + 0xdf, 0x96, 0x3d, 0x93, 0x1b, 0xf1, 0xda, 0xe2,
1154 + 0x38, 0xf3, 0xf1, 0x57, 0x22, 0x4a, 0xc4, 0xb5,
1155 + 0x42, 0xd7, 0x85, 0xb0, 0xdd, 0x84, 0xdb, 0x6b,
1156 + 0xe3, 0xbc, 0x5a, 0x36, 0x63, 0xe8, 0x41, 0x49,
1157 + 0xff, 0xbe, 0xd0, 0x9e, 0x54, 0xf7, 0x8f, 0x16,
1158 + 0xa8, 0x22, 0x3b, 0x24, 0xcb, 0x01, 0x9f, 0x58,
1159 + 0xb2, 0x1b, 0x0e, 0x55, 0x1e, 0x7a, 0xa0, 0x73,
1160 + 0x27, 0x62, 0x95, 0x51, 0x37, 0x6c, 0xcb, 0xc3,
1161 + 0x93, 0x76, 0x71, 0xa0, 0x62, 0x9b, 0xd9, 0x5c,
1162 + 0x99, 0x15, 0xc7, 0x85, 0x55, 0x77, 0x1e, 0x7a
1164 +static const u8 enc_output074[] __initconst = {
1165 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1166 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1167 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1168 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1169 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1170 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1171 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1172 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1173 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1174 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1175 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1176 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1177 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1178 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1179 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1180 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1181 + 0x0b, 0x30, 0x0d, 0x8d, 0xa5, 0x6c, 0x21, 0x85,
1182 + 0x75, 0x52, 0x79, 0x55, 0x3c, 0x4c, 0x82, 0xca
1184 +static const u8 enc_assoc074[] __initconst = {
1185 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1186 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1187 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1188 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1189 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1190 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1191 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1192 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1194 +static const u8 enc_nonce074[] __initconst = {
1195 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1196 + 0x00, 0x02, 0x50, 0x6e
1198 +static const u8 enc_key074[] __initconst = {
1199 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1200 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1201 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1202 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30
1205 +/* wycheproof - checking for int overflows */
1206 +static const u8 enc_input075[] __initconst = {
1207 + 0x7d, 0xe8, 0x7f, 0x67, 0x29, 0x94, 0x52, 0x75,
1208 + 0xd0, 0x65, 0x5d, 0xa4, 0xc7, 0xfd, 0xe4, 0x56,
1209 + 0x9e, 0x16, 0xf1, 0x11, 0xb5, 0xeb, 0x26, 0xc2,
1210 + 0x2d, 0x85, 0x9e, 0x3f, 0xf8, 0x22, 0xec, 0xed,
1211 + 0x3a, 0x6d, 0xd9, 0xa6, 0x0f, 0x22, 0x95, 0x7f,
1212 + 0x7b, 0x7c, 0x85, 0x7e, 0x88, 0x22, 0xeb, 0x9f,
1213 + 0xe0, 0xb8, 0xd7, 0x02, 0x21, 0x41, 0xf2, 0xd0,
1214 + 0xb4, 0x8f, 0x4b, 0x56, 0x12, 0xd3, 0x22, 0xa8,
1215 + 0x8d, 0xd0, 0xfe, 0x0b, 0x4d, 0x91, 0x79, 0x32,
1216 + 0x4f, 0x7c, 0x6c, 0x9e, 0x99, 0x0e, 0xfb, 0xd8,
1217 + 0x0e, 0x5e, 0xd6, 0x77, 0x58, 0x26, 0x49, 0x8b,
1218 + 0x1e, 0xfe, 0x0f, 0x71, 0xa0, 0xf3, 0xec, 0x5b,
1219 + 0x29, 0xcb, 0x28, 0xc2, 0x54, 0x0a, 0x7d, 0xcd,
1220 + 0x51, 0xb7, 0xda, 0xae, 0xe0, 0xff, 0x4a, 0x7f,
1221 + 0x3a, 0xc1, 0xee, 0x54, 0xc2, 0x9e, 0xe4, 0xc1,
1222 + 0x70, 0xde, 0x40, 0x8f, 0x66, 0x69, 0x21, 0x94
1224 +static const u8 enc_output075[] __initconst = {
1225 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1226 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1227 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1228 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1229 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1230 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1231 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1232 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1233 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1234 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1235 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1236 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1237 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1238 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1239 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1240 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1241 + 0xc5, 0x78, 0xe2, 0xaa, 0x44, 0xd3, 0x09, 0xb7,
1242 + 0xb6, 0xa5, 0x19, 0x3b, 0xdc, 0x61, 0x18, 0xf5
1244 +static const u8 enc_assoc075[] __initconst = {
1245 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1246 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1247 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1248 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1249 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1250 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1251 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1252 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1254 +static const u8 enc_nonce075[] __initconst = {
1255 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1256 + 0x00, 0x03, 0x18, 0xa5
1258 +static const u8 enc_key075[] __initconst = {
1259 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1260 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1261 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1262 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30
1265 +/* wycheproof - checking for int overflows */
1266 static const u8 enc_input076[] __initconst = {
1267 0x1b, 0x99, 0x6f, 0x9a, 0x3c, 0xcc, 0x67, 0x85,
1268 0xde, 0x22, 0xff, 0x5b, 0x8a, 0xdd, 0x95, 0x02,
1269 @@ -3349,6 +4568,286 @@ static const u8 enc_key085[] __initconst
1270 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1273 +/* wycheproof - special case tag */
1274 +static const u8 enc_input086[] __initconst = {
1275 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1276 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1277 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1278 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1279 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1280 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1281 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1282 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1284 +static const u8 enc_output086[] __initconst = {
1285 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1286 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1287 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1288 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1289 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1290 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1291 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1292 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1293 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1294 + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
1296 +static const u8 enc_assoc086[] __initconst = {
1297 + 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1298 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1299 + 0xa6, 0x90, 0x2f, 0xcb, 0xc8, 0x83, 0xbb, 0xc1,
1300 + 0x80, 0xb2, 0x56, 0xae, 0x34, 0xad, 0x7f, 0x00
1302 +static const u8 enc_nonce086[] __initconst = {
1303 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1304 + 0x08, 0x09, 0x0a, 0x0b
1306 +static const u8 enc_key086[] __initconst = {
1307 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1308 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1309 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1310 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1313 +/* wycheproof - special case tag */
1314 +static const u8 enc_input087[] __initconst = {
1315 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1316 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1317 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1318 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1319 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1320 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1321 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1322 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1324 +static const u8 enc_output087[] __initconst = {
1325 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1326 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1327 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1328 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1329 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1330 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1331 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1332 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1333 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1334 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1336 +static const u8 enc_assoc087[] __initconst = {
1337 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1338 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1339 + 0x24, 0x7e, 0x50, 0x64, 0x2a, 0x1c, 0x0a, 0x2f,
1340 + 0x8f, 0x77, 0x21, 0x96, 0x09, 0xdb, 0xa9, 0x58
1342 +static const u8 enc_nonce087[] __initconst = {
1343 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1344 + 0x08, 0x09, 0x0a, 0x0b
1346 +static const u8 enc_key087[] __initconst = {
1347 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1348 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1349 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1350 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1353 +/* wycheproof - special case tag */
1354 +static const u8 enc_input088[] __initconst = {
1355 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1356 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1357 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1358 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1359 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1360 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1361 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1362 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1364 +static const u8 enc_output088[] __initconst = {
1365 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1366 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1367 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1368 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1369 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1370 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1371 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1372 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1373 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1374 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1376 +static const u8 enc_assoc088[] __initconst = {
1377 + 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1378 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1379 + 0xd9, 0xe7, 0x2c, 0x06, 0x4a, 0xc8, 0x96, 0x1f,
1380 + 0x3f, 0xa5, 0x85, 0xe0, 0xe2, 0xab, 0xd6, 0x00
1382 +static const u8 enc_nonce088[] __initconst = {
1383 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1384 + 0x08, 0x09, 0x0a, 0x0b
1386 +static const u8 enc_key088[] __initconst = {
1387 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1388 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1389 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1390 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1393 +/* wycheproof - special case tag */
1394 +static const u8 enc_input089[] __initconst = {
1395 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1396 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1397 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1398 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1399 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1400 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1401 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1402 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1404 +static const u8 enc_output089[] __initconst = {
1405 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1406 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1407 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1408 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1409 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1410 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1411 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1412 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1413 + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
1414 + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80
1416 +static const u8 enc_assoc089[] __initconst = {
1417 + 0x65, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1418 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1419 + 0x95, 0xaf, 0x0f, 0x4d, 0x0b, 0x68, 0x6e, 0xae,
1420 + 0xcc, 0xca, 0x43, 0x07, 0xd5, 0x96, 0xf5, 0x02
1422 +static const u8 enc_nonce089[] __initconst = {
1423 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1424 + 0x08, 0x09, 0x0a, 0x0b
1426 +static const u8 enc_key089[] __initconst = {
1427 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1428 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1429 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1430 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1433 +/* wycheproof - special case tag */
1434 +static const u8 enc_input090[] __initconst = {
1435 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1436 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1437 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1438 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1439 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1440 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1441 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1442 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1444 +static const u8 enc_output090[] __initconst = {
1445 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1446 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1447 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1448 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1449 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1450 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1451 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1452 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1453 + 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f,
1454 + 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f
1456 +static const u8 enc_assoc090[] __initconst = {
1457 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1458 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1459 + 0x85, 0x40, 0xb4, 0x64, 0x35, 0x77, 0x07, 0xbe,
1460 + 0x3a, 0x39, 0xd5, 0x5c, 0x34, 0xf8, 0xbc, 0xb3
1462 +static const u8 enc_nonce090[] __initconst = {
1463 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1464 + 0x08, 0x09, 0x0a, 0x0b
1466 +static const u8 enc_key090[] __initconst = {
1467 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1468 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1469 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1470 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1473 +/* wycheproof - special case tag */
1474 +static const u8 enc_input091[] __initconst = {
1475 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1476 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1477 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1478 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1479 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1480 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1481 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1482 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1484 +static const u8 enc_output091[] __initconst = {
1485 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1486 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1487 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1488 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1489 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1490 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1491 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1492 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1493 + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1494 + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
1496 +static const u8 enc_assoc091[] __initconst = {
1497 + 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1498 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1499 + 0x66, 0x23, 0xd9, 0x90, 0xb8, 0x98, 0xd8, 0x30,
1500 + 0xd2, 0x12, 0xaf, 0x23, 0x83, 0x33, 0x07, 0x01
1502 +static const u8 enc_nonce091[] __initconst = {
1503 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1504 + 0x08, 0x09, 0x0a, 0x0b
1506 +static const u8 enc_key091[] __initconst = {
1507 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1508 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1509 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1510 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1513 +/* wycheproof - special case tag */
1514 +static const u8 enc_input092[] __initconst = {
1515 + 0x9a, 0x49, 0xc4, 0x0f, 0x8b, 0x48, 0xd7, 0xc6,
1516 + 0x6d, 0x1d, 0xb4, 0xe5, 0x3f, 0x20, 0xf2, 0xdd,
1517 + 0x4a, 0xaa, 0x24, 0x1d, 0xda, 0xb2, 0x6b, 0x5b,
1518 + 0xc0, 0xe2, 0x18, 0xb7, 0x2c, 0x33, 0x90, 0xf2,
1519 + 0xdf, 0x3e, 0xbd, 0x01, 0x76, 0x70, 0x44, 0x19,
1520 + 0x97, 0x2b, 0xcd, 0xbc, 0x6b, 0xbc, 0xb3, 0xe4,
1521 + 0xe7, 0x4a, 0x71, 0x52, 0x8e, 0xf5, 0x12, 0x63,
1522 + 0xce, 0x24, 0xe0, 0xd5, 0x75, 0xe0, 0xe4, 0x4d
1524 +static const u8 enc_output092[] __initconst = {
1525 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1526 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1527 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1528 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1529 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1530 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1531 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1532 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1533 + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
1534 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1536 +static const u8 enc_assoc092[] __initconst = {
1537 + 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1538 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1539 + 0x5f, 0x16, 0xd0, 0x9f, 0x17, 0x78, 0x72, 0x11,
1540 + 0xb7, 0xd4, 0x84, 0xe0, 0x24, 0xf8, 0x97, 0x01
1542 +static const u8 enc_nonce092[] __initconst = {
1543 + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1544 + 0x08, 0x09, 0x0a, 0x0b
1546 +static const u8 enc_key092[] __initconst = {
1547 + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1548 + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1549 + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1550 + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
1553 /* wycheproof - edge case intermediate sums in poly1305 */
1554 static const u8 enc_input093[] __initconst = {
1555 0x00, 0x52, 0x35, 0xd2, 0xa9, 0x19, 0xf2, 0x8d,
1556 @@ -4455,6 +5954,86 @@ chacha20poly1305_enc_vectors[] __initcon
1557 sizeof(enc_input011), sizeof(enc_assoc011), sizeof(enc_nonce011) },
1558 { enc_input012, enc_output012, enc_assoc012, enc_nonce012, enc_key012,
1559 sizeof(enc_input012), sizeof(enc_assoc012), sizeof(enc_nonce012) },
1560 + { enc_input013, enc_output013, enc_assoc013, enc_nonce013, enc_key013,
1561 + sizeof(enc_input013), sizeof(enc_assoc013), sizeof(enc_nonce013) },
1562 + { enc_input014, enc_output014, enc_assoc014, enc_nonce014, enc_key014,
1563 + sizeof(enc_input014), sizeof(enc_assoc014), sizeof(enc_nonce014) },
1564 + { enc_input015, enc_output015, enc_assoc015, enc_nonce015, enc_key015,
1565 + sizeof(enc_input015), sizeof(enc_assoc015), sizeof(enc_nonce015) },
1566 + { enc_input016, enc_output016, enc_assoc016, enc_nonce016, enc_key016,
1567 + sizeof(enc_input016), sizeof(enc_assoc016), sizeof(enc_nonce016) },
1568 + { enc_input017, enc_output017, enc_assoc017, enc_nonce017, enc_key017,
1569 + sizeof(enc_input017), sizeof(enc_assoc017), sizeof(enc_nonce017) },
1570 + { enc_input018, enc_output018, enc_assoc018, enc_nonce018, enc_key018,
1571 + sizeof(enc_input018), sizeof(enc_assoc018), sizeof(enc_nonce018) },
1572 + { enc_input019, enc_output019, enc_assoc019, enc_nonce019, enc_key019,
1573 + sizeof(enc_input019), sizeof(enc_assoc019), sizeof(enc_nonce019) },
1574 + { enc_input020, enc_output020, enc_assoc020, enc_nonce020, enc_key020,
1575 + sizeof(enc_input020), sizeof(enc_assoc020), sizeof(enc_nonce020) },
1576 + { enc_input021, enc_output021, enc_assoc021, enc_nonce021, enc_key021,
1577 + sizeof(enc_input021), sizeof(enc_assoc021), sizeof(enc_nonce021) },
1578 + { enc_input022, enc_output022, enc_assoc022, enc_nonce022, enc_key022,
1579 + sizeof(enc_input022), sizeof(enc_assoc022), sizeof(enc_nonce022) },
1580 + { enc_input023, enc_output023, enc_assoc023, enc_nonce023, enc_key023,
1581 + sizeof(enc_input023), sizeof(enc_assoc023), sizeof(enc_nonce023) },
1582 + { enc_input024, enc_output024, enc_assoc024, enc_nonce024, enc_key024,
1583 + sizeof(enc_input024), sizeof(enc_assoc024), sizeof(enc_nonce024) },
1584 + { enc_input025, enc_output025, enc_assoc025, enc_nonce025, enc_key025,
1585 + sizeof(enc_input025), sizeof(enc_assoc025), sizeof(enc_nonce025) },
1586 + { enc_input026, enc_output026, enc_assoc026, enc_nonce026, enc_key026,
1587 + sizeof(enc_input026), sizeof(enc_assoc026), sizeof(enc_nonce026) },
1588 + { enc_input027, enc_output027, enc_assoc027, enc_nonce027, enc_key027,
1589 + sizeof(enc_input027), sizeof(enc_assoc027), sizeof(enc_nonce027) },
1590 + { enc_input028, enc_output028, enc_assoc028, enc_nonce028, enc_key028,
1591 + sizeof(enc_input028), sizeof(enc_assoc028), sizeof(enc_nonce028) },
1592 + { enc_input029, enc_output029, enc_assoc029, enc_nonce029, enc_key029,
1593 + sizeof(enc_input029), sizeof(enc_assoc029), sizeof(enc_nonce029) },
1594 + { enc_input030, enc_output030, enc_assoc030, enc_nonce030, enc_key030,
1595 + sizeof(enc_input030), sizeof(enc_assoc030), sizeof(enc_nonce030) },
1596 + { enc_input031, enc_output031, enc_assoc031, enc_nonce031, enc_key031,
1597 + sizeof(enc_input031), sizeof(enc_assoc031), sizeof(enc_nonce031) },
1598 + { enc_input032, enc_output032, enc_assoc032, enc_nonce032, enc_key032,
1599 + sizeof(enc_input032), sizeof(enc_assoc032), sizeof(enc_nonce032) },
1600 + { enc_input033, enc_output033, enc_assoc033, enc_nonce033, enc_key033,
1601 + sizeof(enc_input033), sizeof(enc_assoc033), sizeof(enc_nonce033) },
1602 + { enc_input034, enc_output034, enc_assoc034, enc_nonce034, enc_key034,
1603 + sizeof(enc_input034), sizeof(enc_assoc034), sizeof(enc_nonce034) },
1604 + { enc_input035, enc_output035, enc_assoc035, enc_nonce035, enc_key035,
1605 + sizeof(enc_input035), sizeof(enc_assoc035), sizeof(enc_nonce035) },
1606 + { enc_input036, enc_output036, enc_assoc036, enc_nonce036, enc_key036,
1607 + sizeof(enc_input036), sizeof(enc_assoc036), sizeof(enc_nonce036) },
1608 + { enc_input037, enc_output037, enc_assoc037, enc_nonce037, enc_key037,
1609 + sizeof(enc_input037), sizeof(enc_assoc037), sizeof(enc_nonce037) },
1610 + { enc_input038, enc_output038, enc_assoc038, enc_nonce038, enc_key038,
1611 + sizeof(enc_input038), sizeof(enc_assoc038), sizeof(enc_nonce038) },
1612 + { enc_input039, enc_output039, enc_assoc039, enc_nonce039, enc_key039,
1613 + sizeof(enc_input039), sizeof(enc_assoc039), sizeof(enc_nonce039) },
1614 + { enc_input040, enc_output040, enc_assoc040, enc_nonce040, enc_key040,
1615 + sizeof(enc_input040), sizeof(enc_assoc040), sizeof(enc_nonce040) },
1616 + { enc_input041, enc_output041, enc_assoc041, enc_nonce041, enc_key041,
1617 + sizeof(enc_input041), sizeof(enc_assoc041), sizeof(enc_nonce041) },
1618 + { enc_input042, enc_output042, enc_assoc042, enc_nonce042, enc_key042,
1619 + sizeof(enc_input042), sizeof(enc_assoc042), sizeof(enc_nonce042) },
1620 + { enc_input043, enc_output043, enc_assoc043, enc_nonce043, enc_key043,
1621 + sizeof(enc_input043), sizeof(enc_assoc043), sizeof(enc_nonce043) },
1622 + { enc_input044, enc_output044, enc_assoc044, enc_nonce044, enc_key044,
1623 + sizeof(enc_input044), sizeof(enc_assoc044), sizeof(enc_nonce044) },
1624 + { enc_input045, enc_output045, enc_assoc045, enc_nonce045, enc_key045,
1625 + sizeof(enc_input045), sizeof(enc_assoc045), sizeof(enc_nonce045) },
1626 + { enc_input046, enc_output046, enc_assoc046, enc_nonce046, enc_key046,
1627 + sizeof(enc_input046), sizeof(enc_assoc046), sizeof(enc_nonce046) },
1628 + { enc_input047, enc_output047, enc_assoc047, enc_nonce047, enc_key047,
1629 + sizeof(enc_input047), sizeof(enc_assoc047), sizeof(enc_nonce047) },
1630 + { enc_input048, enc_output048, enc_assoc048, enc_nonce048, enc_key048,
1631 + sizeof(enc_input048), sizeof(enc_assoc048), sizeof(enc_nonce048) },
1632 + { enc_input049, enc_output049, enc_assoc049, enc_nonce049, enc_key049,
1633 + sizeof(enc_input049), sizeof(enc_assoc049), sizeof(enc_nonce049) },
1634 + { enc_input050, enc_output050, enc_assoc050, enc_nonce050, enc_key050,
1635 + sizeof(enc_input050), sizeof(enc_assoc050), sizeof(enc_nonce050) },
1636 + { enc_input051, enc_output051, enc_assoc051, enc_nonce051, enc_key051,
1637 + sizeof(enc_input051), sizeof(enc_assoc051), sizeof(enc_nonce051) },
1638 + { enc_input052, enc_output052, enc_assoc052, enc_nonce052, enc_key052,
1639 + sizeof(enc_input052), sizeof(enc_assoc052), sizeof(enc_nonce052) },
1640 { enc_input053, enc_output053, enc_assoc053, enc_nonce053, enc_key053,
1641 sizeof(enc_input053), sizeof(enc_assoc053), sizeof(enc_nonce053) },
1642 { enc_input054, enc_output054, enc_assoc054, enc_nonce054, enc_key054,
1643 @@ -4497,6 +6076,10 @@ chacha20poly1305_enc_vectors[] __initcon
1644 sizeof(enc_input072), sizeof(enc_assoc072), sizeof(enc_nonce072) },
1645 { enc_input073, enc_output073, enc_assoc073, enc_nonce073, enc_key073,
1646 sizeof(enc_input073), sizeof(enc_assoc073), sizeof(enc_nonce073) },
1647 + { enc_input074, enc_output074, enc_assoc074, enc_nonce074, enc_key074,
1648 + sizeof(enc_input074), sizeof(enc_assoc074), sizeof(enc_nonce074) },
1649 + { enc_input075, enc_output075, enc_assoc075, enc_nonce075, enc_key075,
1650 + sizeof(enc_input075), sizeof(enc_assoc075), sizeof(enc_nonce075) },
1651 { enc_input076, enc_output076, enc_assoc076, enc_nonce076, enc_key076,
1652 sizeof(enc_input076), sizeof(enc_assoc076), sizeof(enc_nonce076) },
1653 { enc_input077, enc_output077, enc_assoc077, enc_nonce077, enc_key077,
1654 @@ -4517,6 +6100,20 @@ chacha20poly1305_enc_vectors[] __initcon
1655 sizeof(enc_input084), sizeof(enc_assoc084), sizeof(enc_nonce084) },
1656 { enc_input085, enc_output085, enc_assoc085, enc_nonce085, enc_key085,
1657 sizeof(enc_input085), sizeof(enc_assoc085), sizeof(enc_nonce085) },
1658 + { enc_input086, enc_output086, enc_assoc086, enc_nonce086, enc_key086,
1659 + sizeof(enc_input086), sizeof(enc_assoc086), sizeof(enc_nonce086) },
1660 + { enc_input087, enc_output087, enc_assoc087, enc_nonce087, enc_key087,
1661 + sizeof(enc_input087), sizeof(enc_assoc087), sizeof(enc_nonce087) },
1662 + { enc_input088, enc_output088, enc_assoc088, enc_nonce088, enc_key088,
1663 + sizeof(enc_input088), sizeof(enc_assoc088), sizeof(enc_nonce088) },
1664 + { enc_input089, enc_output089, enc_assoc089, enc_nonce089, enc_key089,
1665 + sizeof(enc_input089), sizeof(enc_assoc089), sizeof(enc_nonce089) },
1666 + { enc_input090, enc_output090, enc_assoc090, enc_nonce090, enc_key090,
1667 + sizeof(enc_input090), sizeof(enc_assoc090), sizeof(enc_nonce090) },
1668 + { enc_input091, enc_output091, enc_assoc091, enc_nonce091, enc_key091,
1669 + sizeof(enc_input091), sizeof(enc_assoc091), sizeof(enc_nonce091) },
1670 + { enc_input092, enc_output092, enc_assoc092, enc_nonce092, enc_key092,
1671 + sizeof(enc_input092), sizeof(enc_assoc092), sizeof(enc_nonce092) },
1672 { enc_input093, enc_output093, enc_assoc093, enc_nonce093, enc_key093,
1673 sizeof(enc_input093), sizeof(enc_assoc093), sizeof(enc_nonce093) },
1674 { enc_input094, enc_output094, enc_assoc094, enc_nonce094, enc_key094,
1675 @@ -7224,6 +8821,43 @@ xchacha20poly1305_dec_vectors[] __initco
1676 sizeof(xdec_input001), sizeof(xdec_assoc001), sizeof(xdec_nonce001) }
1679 +/* This is for the selftests-only, since it is only useful for the purpose of
1680 + * testing the underlying primitives and interactions.
1683 +chacha20poly1305_encrypt_bignonce(u8 *dst, const u8 *src, const size_t src_len,
1684 + const u8 *ad, const size_t ad_len,
1685 + const u8 nonce[12],
1686 + const u8 key[CHACHA20POLY1305_KEY_SIZE])
1688 + const u8 *pad0 = page_address(ZERO_PAGE(0));
1689 + struct poly1305_desc_ctx poly1305_state;
1690 + u32 chacha20_state[CHACHA_STATE_WORDS];
1692 + u8 block0[POLY1305_KEY_SIZE];
1695 + u8 bottom_row[16] = { 0 };
1699 + memcpy(&bottom_row[4], nonce, 12);
1700 + for (i = 0; i < 8; ++i)
1701 + le_key[i] = get_unaligned_le32(key + sizeof(le_key[i]) * i);
1702 + chacha_init(chacha20_state, le_key, bottom_row);
1703 + chacha20_crypt(chacha20_state, b.block0, b.block0, sizeof(b.block0));
1704 + poly1305_init(&poly1305_state, b.block0);
1705 + poly1305_update(&poly1305_state, ad, ad_len);
1706 + poly1305_update(&poly1305_state, pad0, (0x10 - ad_len) & 0xf);
1707 + chacha20_crypt(chacha20_state, dst, src, src_len);
1708 + poly1305_update(&poly1305_state, dst, src_len);
1709 + poly1305_update(&poly1305_state, pad0, (0x10 - src_len) & 0xf);
1710 + b.lens[0] = cpu_to_le64(ad_len);
1711 + b.lens[1] = cpu_to_le64(src_len);
1712 + poly1305_update(&poly1305_state, (u8 *)b.lens, sizeof(b.lens));
1713 + poly1305_final(&poly1305_state, dst + src_len);
1717 chacha20poly1305_selftest_encrypt(u8 *dst, const u8 *src, const size_t src_len,
1718 const u8 *ad, const size_t ad_len,
1719 @@ -7233,6 +8867,9 @@ chacha20poly1305_selftest_encrypt(u8 *ds
1721 chacha20poly1305_encrypt(dst, src, src_len, ad, ad_len,
1722 get_unaligned_le64(nonce), key);
1723 + else if (nonce_len == 12)
1724 + chacha20poly1305_encrypt_bignonce(dst, src, src_len, ad,
1725 + ad_len, nonce, key);
1729 @@ -7248,14 +8885,14 @@ decryption_success(bool func_ret, bool e
1730 bool __init chacha20poly1305_selftest(void)
1732 enum { MAXIMUM_TEST_BUFFER_LEN = 1UL << 12 };
1734 - u8 *computed_output = NULL, *heap_src = NULL;
1735 - struct scatterlist sg_src;
1736 + size_t i, j, k, total_len;
1737 + u8 *computed_output = NULL, *input = NULL;
1738 bool success = true, ret;
1739 + struct scatterlist sg_src[3];
1741 - heap_src = kmalloc(MAXIMUM_TEST_BUFFER_LEN, GFP_KERNEL);
1742 computed_output = kmalloc(MAXIMUM_TEST_BUFFER_LEN, GFP_KERNEL);
1743 - if (!heap_src || !computed_output) {
1744 + input = kmalloc(MAXIMUM_TEST_BUFFER_LEN, GFP_KERNEL);
1745 + if (!computed_output || !input) {
1746 pr_err("chacha20poly1305 self-test malloc: FAIL\n");
1749 @@ -7284,17 +8921,17 @@ bool __init chacha20poly1305_selftest(vo
1750 for (i = 0; i < ARRAY_SIZE(chacha20poly1305_enc_vectors); ++i) {
1751 if (chacha20poly1305_enc_vectors[i].nlen != 8)
1753 - memcpy(heap_src, chacha20poly1305_enc_vectors[i].input,
1754 + memcpy(computed_output, chacha20poly1305_enc_vectors[i].input,
1755 chacha20poly1305_enc_vectors[i].ilen);
1756 - sg_init_one(&sg_src, heap_src,
1757 + sg_init_one(sg_src, computed_output,
1758 chacha20poly1305_enc_vectors[i].ilen + POLY1305_DIGEST_SIZE);
1759 - chacha20poly1305_encrypt_sg_inplace(&sg_src,
1760 + ret = chacha20poly1305_encrypt_sg_inplace(sg_src,
1761 chacha20poly1305_enc_vectors[i].ilen,
1762 chacha20poly1305_enc_vectors[i].assoc,
1763 chacha20poly1305_enc_vectors[i].alen,
1764 get_unaligned_le64(chacha20poly1305_enc_vectors[i].nonce),
1765 chacha20poly1305_enc_vectors[i].key);
1766 - if (memcmp(heap_src,
1767 + if (!ret || memcmp(computed_output,
1768 chacha20poly1305_enc_vectors[i].output,
1769 chacha20poly1305_enc_vectors[i].ilen +
1770 POLY1305_DIGEST_SIZE)) {
1771 @@ -7326,11 +8963,11 @@ bool __init chacha20poly1305_selftest(vo
1774 for (i = 0; i < ARRAY_SIZE(chacha20poly1305_dec_vectors); ++i) {
1775 - memcpy(heap_src, chacha20poly1305_dec_vectors[i].input,
1776 + memcpy(computed_output, chacha20poly1305_dec_vectors[i].input,
1777 chacha20poly1305_dec_vectors[i].ilen);
1778 - sg_init_one(&sg_src, heap_src,
1779 + sg_init_one(sg_src, computed_output,
1780 chacha20poly1305_dec_vectors[i].ilen);
1781 - ret = chacha20poly1305_decrypt_sg_inplace(&sg_src,
1782 + ret = chacha20poly1305_decrypt_sg_inplace(sg_src,
1783 chacha20poly1305_dec_vectors[i].ilen,
1784 chacha20poly1305_dec_vectors[i].assoc,
1785 chacha20poly1305_dec_vectors[i].alen,
1786 @@ -7338,7 +8975,7 @@ bool __init chacha20poly1305_selftest(vo
1787 chacha20poly1305_dec_vectors[i].key);
1788 if (!decryption_success(ret,
1789 chacha20poly1305_dec_vectors[i].failure,
1790 - memcmp(heap_src, chacha20poly1305_dec_vectors[i].output,
1791 + memcmp(computed_output, chacha20poly1305_dec_vectors[i].output,
1792 chacha20poly1305_dec_vectors[i].ilen -
1793 POLY1305_DIGEST_SIZE))) {
1794 pr_err("chacha20poly1305 sg decryption self-test %zu: FAIL\n",
1795 @@ -7365,6 +9002,7 @@ bool __init chacha20poly1305_selftest(vo
1800 for (i = 0; i < ARRAY_SIZE(xchacha20poly1305_dec_vectors); ++i) {
1801 memset(computed_output, 0, MAXIMUM_TEST_BUFFER_LEN);
1802 ret = xchacha20poly1305_decrypt(computed_output,
1803 @@ -7386,8 +9024,54 @@ bool __init chacha20poly1305_selftest(vo
1807 + for (total_len = POLY1305_DIGEST_SIZE; IS_ENABLED(DEBUG_CHACHA20POLY1305_SLOW_CHUNK_TEST)
1808 + && total_len <= 1 << 10; ++total_len) {
1809 + for (i = 0; i <= total_len; ++i) {
1810 + for (j = i; j <= total_len; ++j) {
1811 + sg_init_table(sg_src, 3);
1812 + sg_set_buf(&sg_src[0], input, i);
1813 + sg_set_buf(&sg_src[1], input + i, j - i);
1814 + sg_set_buf(&sg_src[2], input + j, total_len - j);
1815 + memset(computed_output, 0, total_len);
1816 + memset(input, 0, total_len);
1818 + if (!chacha20poly1305_encrypt_sg_inplace(sg_src,
1819 + total_len - POLY1305_DIGEST_SIZE, NULL, 0,
1822 + chacha20poly1305_encrypt(computed_output,
1824 + total_len - POLY1305_DIGEST_SIZE, NULL, 0, 0,
1826 + if (memcmp(computed_output, input, total_len))
1828 + if (!chacha20poly1305_decrypt(computed_output,
1829 + input, total_len, NULL, 0, 0, enc_key001))
1831 + for (k = 0; k < total_len - POLY1305_DIGEST_SIZE; ++k) {
1832 + if (computed_output[k])
1835 + if (!chacha20poly1305_decrypt_sg_inplace(sg_src,
1836 + total_len, NULL, 0, 0, enc_key001))
1838 + for (k = 0; k < total_len - POLY1305_DIGEST_SIZE; ++k) {
1845 + pr_err("chacha20poly1305 chunked self-test %zu/%zu/%zu: FAIL\n",
1855 kfree(computed_output);