xref: /netbsd-src/crypto/external/bsd/openssl.old/dist/test/poly1305_internal_test.c (revision 4724848cf0da353df257f730694b7882798e5daf)
1*4724848cSchristos /*
2*4724848cSchristos  * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
3*4724848cSchristos  *
4*4724848cSchristos  * Licensed under the OpenSSL license (the "License").  You may not use
5*4724848cSchristos  * this file except in compliance with the License.  You can obtain a copy
6*4724848cSchristos  * in the file LICENSE in the source distribution or at
7*4724848cSchristos  * https://www.openssl.org/source/license.html
8*4724848cSchristos  */
9*4724848cSchristos 
10*4724848cSchristos /* Internal tests for the poly1305 module */
11*4724848cSchristos 
12*4724848cSchristos #include <stdio.h>
13*4724848cSchristos #include <string.h>
14*4724848cSchristos 
15*4724848cSchristos #include "testutil.h"
16*4724848cSchristos #include "crypto/poly1305.h"
17*4724848cSchristos #include "../crypto/poly1305/poly1305_local.h"
18*4724848cSchristos #include "internal/nelem.h"
19*4724848cSchristos 
20*4724848cSchristos typedef struct {
21*4724848cSchristos     size_t size;
22*4724848cSchristos     const unsigned char data[1024];
23*4724848cSchristos } SIZED_DATA;
24*4724848cSchristos 
25*4724848cSchristos typedef struct {
26*4724848cSchristos     SIZED_DATA input;
27*4724848cSchristos     SIZED_DATA key;
28*4724848cSchristos     SIZED_DATA expected;
29*4724848cSchristos } TESTDATA;
30*4724848cSchristos 
31*4724848cSchristos /**********************************************************************
32*4724848cSchristos  *
33*4724848cSchristos  * Test of poly1305 internal functions
34*4724848cSchristos  *
35*4724848cSchristos  ***/
36*4724848cSchristos 
37*4724848cSchristos static TESTDATA tests[] = {
38*4724848cSchristos     /*
39*4724848cSchristos      * RFC7539
40*4724848cSchristos      */
41*4724848cSchristos     {
42*4724848cSchristos         {
43*4724848cSchristos             34,
44*4724848cSchristos             {
45*4724848cSchristos                 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72,
46*4724848cSchristos                 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x46, 0x6f,
47*4724848cSchristos                 0x72, 0x75, 0x6d, 0x20, 0x52, 0x65, 0x73, 0x65,
48*4724848cSchristos                 0x61, 0x72, 0x63, 0x68, 0x20, 0x47, 0x72, 0x6f,
49*4724848cSchristos 
50*4724848cSchristos                 0x75, 0x70
51*4724848cSchristos             }
52*4724848cSchristos         },
53*4724848cSchristos         {
54*4724848cSchristos             32,
55*4724848cSchristos             {
56*4724848cSchristos                 0x85, 0xd6, 0xbe, 0x78, 0x57, 0x55, 0x6d, 0x33,
57*4724848cSchristos                 0x7f, 0x44, 0x52, 0xfe, 0x42, 0xd5, 0x06, 0xa8,
58*4724848cSchristos                 0x01, 0x03, 0x80, 0x8a, 0xfb, 0x0d, 0xb2, 0xfd,
59*4724848cSchristos                 0x4a, 0xbf, 0xf6, 0xaf, 0x41, 0x49, 0xf5, 0x1b
60*4724848cSchristos             }
61*4724848cSchristos         },
62*4724848cSchristos         {
63*4724848cSchristos             16,
64*4724848cSchristos             {
65*4724848cSchristos                 0xa8, 0x06, 0x1d, 0xc1, 0x30, 0x51, 0x36, 0xc6,
66*4724848cSchristos                 0xc2, 0x2b, 0x8b, 0xaf, 0x0c, 0x01, 0x27, 0xa9
67*4724848cSchristos             }
68*4724848cSchristos         }
69*4724848cSchristos     },
70*4724848cSchristos     /*
71*4724848cSchristos      * test vectors from "The Poly1305-AES message-authentication code"
72*4724848cSchristos      */
73*4724848cSchristos     {
74*4724848cSchristos         {
75*4724848cSchristos             2,
76*4724848cSchristos             {
77*4724848cSchristos                 0xf3, 0xf6
78*4724848cSchristos             }
79*4724848cSchristos         },
80*4724848cSchristos         {
81*4724848cSchristos             32,
82*4724848cSchristos             {
83*4724848cSchristos                 0x85, 0x1f, 0xc4, 0x0c, 0x34, 0x67, 0xac, 0x0b,
84*4724848cSchristos                 0xe0, 0x5c, 0xc2, 0x04, 0x04, 0xf3, 0xf7, 0x00,
85*4724848cSchristos                 0x58, 0x0b, 0x3b, 0x0f, 0x94, 0x47, 0xbb, 0x1e,
86*4724848cSchristos                 0x69, 0xd0, 0x95, 0xb5, 0x92, 0x8b, 0x6d, 0xbc
87*4724848cSchristos             }
88*4724848cSchristos         },
89*4724848cSchristos         {
90*4724848cSchristos             16,
91*4724848cSchristos             {
92*4724848cSchristos                 0xf4, 0xc6, 0x33, 0xc3, 0x04, 0x4f, 0xc1, 0x45,
93*4724848cSchristos                 0xf8, 0x4f, 0x33, 0x5c, 0xb8, 0x19, 0x53, 0xde
94*4724848cSchristos             }
95*4724848cSchristos         }
96*4724848cSchristos     },
97*4724848cSchristos     {
98*4724848cSchristos         {
99*4724848cSchristos             0,
100*4724848cSchristos             {
101*4724848cSchristos                 0
102*4724848cSchristos             }
103*4724848cSchristos         },
104*4724848cSchristos         {
105*4724848cSchristos             32,
106*4724848cSchristos             {
107*4724848cSchristos                 0xa0, 0xf3, 0x08, 0x00, 0x00, 0xf4, 0x64, 0x00,
108*4724848cSchristos                 0xd0, 0xc7, 0xe9, 0x07, 0x6c, 0x83, 0x44, 0x03,
109*4724848cSchristos                 0xdd, 0x3f, 0xab, 0x22, 0x51, 0xf1, 0x1a, 0xc7,
110*4724848cSchristos                 0x59, 0xf0, 0x88, 0x71, 0x29, 0xcc, 0x2e, 0xe7
111*4724848cSchristos             }
112*4724848cSchristos         },
113*4724848cSchristos         {
114*4724848cSchristos             16,
115*4724848cSchristos             {
116*4724848cSchristos                 0xdd, 0x3f, 0xab, 0x22, 0x51, 0xf1, 0x1a, 0xc7,
117*4724848cSchristos                 0x59, 0xf0, 0x88, 0x71, 0x29, 0xcc, 0x2e, 0xe7
118*4724848cSchristos             }
119*4724848cSchristos         }
120*4724848cSchristos     },
121*4724848cSchristos     {
122*4724848cSchristos         {
123*4724848cSchristos             32,
124*4724848cSchristos             {
125*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
126*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
127*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
128*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
129*4724848cSchristos             }
130*4724848cSchristos         },
131*4724848cSchristos         {
132*4724848cSchristos             32,
133*4724848cSchristos             {
134*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
135*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
136*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
137*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef
138*4724848cSchristos             }
139*4724848cSchristos         },
140*4724848cSchristos         {
141*4724848cSchristos             16,
142*4724848cSchristos             {
143*4724848cSchristos                 0x0e, 0xe1, 0xc1, 0x6b, 0xb7, 0x3f, 0x0f, 0x4f,
144*4724848cSchristos                 0xd1, 0x98, 0x81, 0x75, 0x3c, 0x01, 0xcd, 0xbe
145*4724848cSchristos             }
146*4724848cSchristos         }
147*4724848cSchristos     },
148*4724848cSchristos     {
149*4724848cSchristos         {
150*4724848cSchristos             63,
151*4724848cSchristos             {
152*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
153*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
154*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
155*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
156*4724848cSchristos 
157*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
158*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
159*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
160*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9
161*4724848cSchristos             }
162*4724848cSchristos         },
163*4724848cSchristos         {
164*4724848cSchristos             32,
165*4724848cSchristos             {
166*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
167*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
168*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
169*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
170*4724848cSchristos             }
171*4724848cSchristos         },
172*4724848cSchristos         {
173*4724848cSchristos             16,
174*4724848cSchristos             {
175*4724848cSchristos                 0x51, 0x54, 0xad, 0x0d, 0x2c, 0xb2, 0x6e, 0x01,
176*4724848cSchristos                 0x27, 0x4f, 0xc5, 0x11, 0x48, 0x49, 0x1f, 0x1b
177*4724848cSchristos             }
178*4724848cSchristos         },
179*4724848cSchristos     },
180*4724848cSchristos     /*
181*4724848cSchristos      * self-generated vectors exercise "significant" lengths, such that
182*4724848cSchristos      * are handled by different code paths
183*4724848cSchristos      */
184*4724848cSchristos     {
185*4724848cSchristos         {
186*4724848cSchristos             64,
187*4724848cSchristos             {
188*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
189*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
190*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
191*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
192*4724848cSchristos 
193*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
194*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
195*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
196*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf
197*4724848cSchristos             }
198*4724848cSchristos         },
199*4724848cSchristos         {
200*4724848cSchristos             32,
201*4724848cSchristos             {
202*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
203*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
204*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
205*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
206*4724848cSchristos             }
207*4724848cSchristos         },
208*4724848cSchristos         {
209*4724848cSchristos             16,
210*4724848cSchristos             {
211*4724848cSchristos                 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
212*4724848cSchristos                 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66
213*4724848cSchristos             }
214*4724848cSchristos         },
215*4724848cSchristos     },
216*4724848cSchristos     {
217*4724848cSchristos         {
218*4724848cSchristos             48,
219*4724848cSchristos             {
220*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
221*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
222*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
223*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
224*4724848cSchristos 
225*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
226*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67
227*4724848cSchristos             }
228*4724848cSchristos         },
229*4724848cSchristos         {
230*4724848cSchristos             32,
231*4724848cSchristos             {
232*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
233*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
234*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
235*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
236*4724848cSchristos 
237*4724848cSchristos             }
238*4724848cSchristos         },
239*4724848cSchristos         {
240*4724848cSchristos             16,
241*4724848cSchristos             {
242*4724848cSchristos                 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
243*4724848cSchristos                 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61
244*4724848cSchristos             }
245*4724848cSchristos         },
246*4724848cSchristos     },
247*4724848cSchristos     {
248*4724848cSchristos         {
249*4724848cSchristos             96,
250*4724848cSchristos             {
251*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
252*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
253*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
254*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
255*4724848cSchristos 
256*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
257*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
258*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
259*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
260*4724848cSchristos 
261*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
262*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
263*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
264*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
265*4724848cSchristos             }
266*4724848cSchristos         },
267*4724848cSchristos         {
268*4724848cSchristos             32,
269*4724848cSchristos             {
270*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
271*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
272*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
273*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
274*4724848cSchristos             }
275*4724848cSchristos         },
276*4724848cSchristos         {
277*4724848cSchristos             16,
278*4724848cSchristos             {
279*4724848cSchristos                 0xbb, 0xb6, 0x13, 0xb2, 0xb6, 0xd7, 0x53, 0xba,
280*4724848cSchristos                 0x07, 0x39, 0x5b, 0x91, 0x6a, 0xae, 0xce, 0x15
281*4724848cSchristos             }
282*4724848cSchristos         },
283*4724848cSchristos     },
284*4724848cSchristos     {
285*4724848cSchristos         {
286*4724848cSchristos             112,
287*4724848cSchristos             {
288*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
289*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
290*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
291*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
292*4724848cSchristos 
293*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
294*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
295*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
296*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
297*4724848cSchristos 
298*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
299*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
300*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
301*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
302*4724848cSchristos 
303*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
304*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24
305*4724848cSchristos             }
306*4724848cSchristos         },
307*4724848cSchristos         {
308*4724848cSchristos             32,
309*4724848cSchristos             {
310*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
311*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
312*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
313*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
314*4724848cSchristos             }
315*4724848cSchristos         },
316*4724848cSchristos         {
317*4724848cSchristos             16,
318*4724848cSchristos             {
319*4724848cSchristos                 0xc7, 0x94, 0xd7, 0x05, 0x7d, 0x17, 0x78, 0xc4,
320*4724848cSchristos                 0xbb, 0xee, 0x0a, 0x39, 0xb3, 0xd9, 0x73, 0x42
321*4724848cSchristos             }
322*4724848cSchristos         },
323*4724848cSchristos     },
324*4724848cSchristos     {
325*4724848cSchristos         {
326*4724848cSchristos             128,
327*4724848cSchristos             {
328*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
329*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
330*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
331*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
332*4724848cSchristos 
333*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
334*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
335*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
336*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
337*4724848cSchristos 
338*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
339*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
340*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
341*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
342*4724848cSchristos 
343*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
344*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
345*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
346*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
347*4724848cSchristos             }
348*4724848cSchristos         },
349*4724848cSchristos         {
350*4724848cSchristos             32,
351*4724848cSchristos             {
352*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
353*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
354*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
355*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
356*4724848cSchristos             }
357*4724848cSchristos         },
358*4724848cSchristos         {
359*4724848cSchristos             16,
360*4724848cSchristos             {
361*4724848cSchristos                 0xff, 0xbc, 0xb9, 0xb3, 0x71, 0x42, 0x31, 0x52,
362*4724848cSchristos                 0xd7, 0xfc, 0xa5, 0xad, 0x04, 0x2f, 0xba, 0xa9
363*4724848cSchristos             }
364*4724848cSchristos         },
365*4724848cSchristos     },
366*4724848cSchristos     {
367*4724848cSchristos         {
368*4724848cSchristos             144,
369*4724848cSchristos             {
370*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
371*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
372*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
373*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
374*4724848cSchristos 
375*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
376*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
377*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
378*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
379*4724848cSchristos 
380*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
381*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
382*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
383*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
384*4724848cSchristos 
385*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
386*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
387*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
388*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
389*4724848cSchristos 
390*4724848cSchristos                 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
391*4724848cSchristos                 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66
392*4724848cSchristos             }
393*4724848cSchristos         },
394*4724848cSchristos         {
395*4724848cSchristos             32,
396*4724848cSchristos             {
397*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
398*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
399*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
400*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
401*4724848cSchristos             }
402*4724848cSchristos         },
403*4724848cSchristos         {
404*4724848cSchristos             16,
405*4724848cSchristos             {
406*4724848cSchristos                 0x06, 0x9e, 0xd6, 0xb8, 0xef, 0x0f, 0x20, 0x7b,
407*4724848cSchristos                 0x3e, 0x24, 0x3b, 0xb1, 0x01, 0x9f, 0xe6, 0x32
408*4724848cSchristos             }
409*4724848cSchristos         },
410*4724848cSchristos     },
411*4724848cSchristos     {
412*4724848cSchristos         {
413*4724848cSchristos             160,
414*4724848cSchristos             {
415*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
416*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
417*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
418*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
419*4724848cSchristos 
420*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
421*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
422*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
423*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
424*4724848cSchristos 
425*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
426*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
427*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
428*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
429*4724848cSchristos 
430*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
431*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
432*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
433*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
434*4724848cSchristos 
435*4724848cSchristos                 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
436*4724848cSchristos                 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
437*4724848cSchristos                 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
438*4724848cSchristos                 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61
439*4724848cSchristos             }
440*4724848cSchristos         },
441*4724848cSchristos         {
442*4724848cSchristos             32,
443*4724848cSchristos             {
444*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
445*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
446*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
447*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
448*4724848cSchristos             }
449*4724848cSchristos         },
450*4724848cSchristos         {
451*4724848cSchristos             16,
452*4724848cSchristos             {
453*4724848cSchristos                 0xcc, 0xa3, 0x39, 0xd9, 0xa4, 0x5f, 0xa2, 0x36,
454*4724848cSchristos                 0x8c, 0x2c, 0x68, 0xb3, 0xa4, 0x17, 0x91, 0x33
455*4724848cSchristos             }
456*4724848cSchristos         },
457*4724848cSchristos     },
458*4724848cSchristos     {
459*4724848cSchristos         {
460*4724848cSchristos             288,
461*4724848cSchristos             {
462*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
463*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
464*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
465*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
466*4724848cSchristos 
467*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
468*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
469*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
470*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
471*4724848cSchristos 
472*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
473*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
474*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
475*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
476*4724848cSchristos 
477*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
478*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
479*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
480*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
481*4724848cSchristos 
482*4724848cSchristos                 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
483*4724848cSchristos                 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
484*4724848cSchristos                 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
485*4724848cSchristos                 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61,
486*4724848cSchristos 
487*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
488*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
489*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
490*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
491*4724848cSchristos 
492*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
493*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
494*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
495*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
496*4724848cSchristos 
497*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
498*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
499*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
500*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
501*4724848cSchristos 
502*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
503*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
504*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
505*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
506*4724848cSchristos             }
507*4724848cSchristos         },
508*4724848cSchristos         {
509*4724848cSchristos             32,
510*4724848cSchristos             {
511*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
512*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
513*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
514*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
515*4724848cSchristos             }
516*4724848cSchristos         },
517*4724848cSchristos         {
518*4724848cSchristos             16,
519*4724848cSchristos             {
520*4724848cSchristos                 0x53, 0xf6, 0xe8, 0x28, 0xa2, 0xf0, 0xfe, 0x0e,
521*4724848cSchristos                 0xe8, 0x15, 0xbf, 0x0b, 0xd5, 0x84, 0x1a, 0x34
522*4724848cSchristos             }
523*4724848cSchristos         },
524*4724848cSchristos     },
525*4724848cSchristos     {
526*4724848cSchristos         {
527*4724848cSchristos             320,
528*4724848cSchristos             {
529*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
530*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
531*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
532*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
533*4724848cSchristos 
534*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
535*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
536*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
537*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
538*4724848cSchristos 
539*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
540*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
541*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
542*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
543*4724848cSchristos 
544*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
545*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
546*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
547*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
548*4724848cSchristos 
549*4724848cSchristos                 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
550*4724848cSchristos                 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
551*4724848cSchristos                 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
552*4724848cSchristos                 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61,
553*4724848cSchristos 
554*4724848cSchristos                 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
555*4724848cSchristos                 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
556*4724848cSchristos                 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
557*4724848cSchristos                 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
558*4724848cSchristos 
559*4724848cSchristos                 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
560*4724848cSchristos                 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
561*4724848cSchristos                 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
562*4724848cSchristos                 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
563*4724848cSchristos 
564*4724848cSchristos                 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
565*4724848cSchristos                 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
566*4724848cSchristos                 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
567*4724848cSchristos                 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
568*4724848cSchristos 
569*4724848cSchristos                 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
570*4724848cSchristos                 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
571*4724848cSchristos                 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
572*4724848cSchristos                 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
573*4724848cSchristos 
574*4724848cSchristos                 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
575*4724848cSchristos                 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
576*4724848cSchristos                 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
577*4724848cSchristos                 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61
578*4724848cSchristos             }
579*4724848cSchristos         },
580*4724848cSchristos         {
581*4724848cSchristos             32,
582*4724848cSchristos             {
583*4724848cSchristos                 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
584*4724848cSchristos                 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
585*4724848cSchristos                 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
586*4724848cSchristos                 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
587*4724848cSchristos             }
588*4724848cSchristos         },
589*4724848cSchristos         {
590*4724848cSchristos             16,
591*4724848cSchristos             {
592*4724848cSchristos                 0xb8, 0x46, 0xd4, 0x4e, 0x9b, 0xbd, 0x53, 0xce,
593*4724848cSchristos                 0xdf, 0xfb, 0xfb, 0xb6, 0xb7, 0xfa, 0x49, 0x33
594*4724848cSchristos             }
595*4724848cSchristos         },
596*4724848cSchristos     },
597*4724848cSchristos     /*
598*4724848cSchristos      * 4th power of the key spills to 131th bit in SIMD key setup
599*4724848cSchristos      */
600*4724848cSchristos     {
601*4724848cSchristos         {
602*4724848cSchristos             256,
603*4724848cSchristos             {
604*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
605*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
606*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
607*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
608*4724848cSchristos 
609*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
610*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
611*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
612*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
613*4724848cSchristos 
614*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
615*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
616*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
617*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
618*4724848cSchristos 
619*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
620*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
621*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
622*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
623*4724848cSchristos 
624*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
625*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
626*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
627*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
628*4724848cSchristos 
629*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
630*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
631*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
632*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
633*4724848cSchristos 
634*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
635*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
636*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
637*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
638*4724848cSchristos 
639*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
640*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
641*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
642*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
643*4724848cSchristos             }
644*4724848cSchristos         },
645*4724848cSchristos         {
646*4724848cSchristos             32,
647*4724848cSchristos             {
648*4724848cSchristos                 0xad, 0x62, 0x81, 0x07, 0xe8, 0x35, 0x1d, 0x0f,
649*4724848cSchristos                 0x2c, 0x23, 0x1a, 0x05, 0xdc, 0x4a, 0x41, 0x06,
650*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
651*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
652*4724848cSchristos             }
653*4724848cSchristos         },
654*4724848cSchristos         {
655*4724848cSchristos             16,
656*4724848cSchristos             {
657*4724848cSchristos                 0x07, 0x14, 0x5a, 0x4c, 0x02, 0xfe, 0x5f, 0xa3,
658*4724848cSchristos                 0x20, 0x36, 0xde, 0x68, 0xfa, 0xbe, 0x90, 0x66
659*4724848cSchristos             }
660*4724848cSchristos         },
661*4724848cSchristos     },
662*4724848cSchristos     /*
663*4724848cSchristos      * poly1305_ieee754.c failed this in final stage
664*4724848cSchristos      */
665*4724848cSchristos     {
666*4724848cSchristos         {
667*4724848cSchristos             252,
668*4724848cSchristos             {
669*4724848cSchristos                 0x84, 0x23, 0x64, 0xe1, 0x56, 0x33, 0x6c, 0x09,
670*4724848cSchristos                 0x98, 0xb9, 0x33, 0xa6, 0x23, 0x77, 0x26, 0x18,
671*4724848cSchristos                 0x0d, 0x9e, 0x3f, 0xdc, 0xbd, 0xe4, 0xcd, 0x5d,
672*4724848cSchristos                 0x17, 0x08, 0x0f, 0xc3, 0xbe, 0xb4, 0x96, 0x14,
673*4724848cSchristos 
674*4724848cSchristos                 0xd7, 0x12, 0x2c, 0x03, 0x74, 0x63, 0xff, 0x10,
675*4724848cSchristos                 0x4d, 0x73, 0xf1, 0x9c, 0x12, 0x70, 0x46, 0x28,
676*4724848cSchristos                 0xd4, 0x17, 0xc4, 0xc5, 0x4a, 0x3f, 0xe3, 0x0d,
677*4724848cSchristos                 0x3c, 0x3d, 0x77, 0x14, 0x38, 0x2d, 0x43, 0xb0,
678*4724848cSchristos 
679*4724848cSchristos                 0x38, 0x2a, 0x50, 0xa5, 0xde, 0xe5, 0x4b, 0xe8,
680*4724848cSchristos                 0x44, 0xb0, 0x76, 0xe8, 0xdf, 0x88, 0x20, 0x1a,
681*4724848cSchristos                 0x1c, 0xd4, 0x3b, 0x90, 0xeb, 0x21, 0x64, 0x3f,
682*4724848cSchristos                 0xa9, 0x6f, 0x39, 0xb5, 0x18, 0xaa, 0x83, 0x40,
683*4724848cSchristos 
684*4724848cSchristos                 0xc9, 0x42, 0xff, 0x3c, 0x31, 0xba, 0xf7, 0xc9,
685*4724848cSchristos                 0xbd, 0xbf, 0x0f, 0x31, 0xae, 0x3f, 0xa0, 0x96,
686*4724848cSchristos                 0xbf, 0x8c, 0x63, 0x03, 0x06, 0x09, 0x82, 0x9f,
687*4724848cSchristos                 0xe7, 0x2e, 0x17, 0x98, 0x24, 0x89, 0x0b, 0xc8,
688*4724848cSchristos 
689*4724848cSchristos                 0xe0, 0x8c, 0x31, 0x5c, 0x1c, 0xce, 0x2a, 0x83,
690*4724848cSchristos                 0x14, 0x4d, 0xbb, 0xff, 0x09, 0xf7, 0x4e, 0x3e,
691*4724848cSchristos                 0xfc, 0x77, 0x0b, 0x54, 0xd0, 0x98, 0x4a, 0x8f,
692*4724848cSchristos                 0x19, 0xb1, 0x47, 0x19, 0xe6, 0x36, 0x35, 0x64,
693*4724848cSchristos 
694*4724848cSchristos                 0x1d, 0x6b, 0x1e, 0xed, 0xf6, 0x3e, 0xfb, 0xf0,
695*4724848cSchristos                 0x80, 0xe1, 0x78, 0x3d, 0x32, 0x44, 0x54, 0x12,
696*4724848cSchristos                 0x11, 0x4c, 0x20, 0xde, 0x0b, 0x83, 0x7a, 0x0d,
697*4724848cSchristos                 0xfa, 0x33, 0xd6, 0xb8, 0x28, 0x25, 0xff, 0xf4,
698*4724848cSchristos 
699*4724848cSchristos                 0x4c, 0x9a, 0x70, 0xea, 0x54, 0xce, 0x47, 0xf0,
700*4724848cSchristos                 0x7d, 0xf6, 0x98, 0xe6, 0xb0, 0x33, 0x23, 0xb5,
701*4724848cSchristos                 0x30, 0x79, 0x36, 0x4a, 0x5f, 0xc3, 0xe9, 0xdd,
702*4724848cSchristos                 0x03, 0x43, 0x92, 0xbd, 0xde, 0x86, 0xdc, 0xcd,
703*4724848cSchristos 
704*4724848cSchristos                 0xda, 0x94, 0x32, 0x1c, 0x5e, 0x44, 0x06, 0x04,
705*4724848cSchristos                 0x89, 0x33, 0x6c, 0xb6, 0x5b, 0xf3, 0x98, 0x9c,
706*4724848cSchristos                 0x36, 0xf7, 0x28, 0x2c, 0x2f, 0x5d, 0x2b, 0x88,
707*4724848cSchristos                 0x2c, 0x17, 0x1e, 0x74
708*4724848cSchristos             }
709*4724848cSchristos         },
710*4724848cSchristos         {
711*4724848cSchristos             32,
712*4724848cSchristos             {
713*4724848cSchristos                 0x95, 0xd5, 0xc0, 0x05, 0x50, 0x3e, 0x51, 0x0d,
714*4724848cSchristos                 0x8c, 0xd0, 0xaa, 0x07, 0x2c, 0x4a, 0x4d, 0x06,
715*4724848cSchristos                 0x6e, 0xab, 0xc5, 0x2d, 0x11, 0x65, 0x3d, 0xf4,
716*4724848cSchristos                 0x7f, 0xbf, 0x63, 0xab, 0x19, 0x8b, 0xcc, 0x26
717*4724848cSchristos             }
718*4724848cSchristos         },
719*4724848cSchristos         {
720*4724848cSchristos             16,
721*4724848cSchristos             {
722*4724848cSchristos                 0xf2, 0x48, 0x31, 0x2e, 0x57, 0x8d, 0x9d, 0x58,
723*4724848cSchristos                 0xf8, 0xb7, 0xbb, 0x4d, 0x19, 0x10, 0x54, 0x31
724*4724848cSchristos             }
725*4724848cSchristos         },
726*4724848cSchristos     },
727*4724848cSchristos     /*
728*4724848cSchristos      * AVX2 in poly1305-x86.pl failed this with 176+32 split
729*4724848cSchristos      */
730*4724848cSchristos     {
731*4724848cSchristos         {
732*4724848cSchristos             208,
733*4724848cSchristos             {
734*4724848cSchristos                 0x24, 0x8a, 0xc3, 0x10, 0x85, 0xb6, 0xc2, 0xad,
735*4724848cSchristos                 0xaa, 0xa3, 0x82, 0x59, 0xa0, 0xd7, 0x19, 0x2c,
736*4724848cSchristos                 0x5c, 0x35, 0xd1, 0xbb, 0x4e, 0xf3, 0x9a, 0xd9,
737*4724848cSchristos                 0x4c, 0x38, 0xd1, 0xc8, 0x24, 0x79, 0xe2, 0xdd,
738*4724848cSchristos 
739*4724848cSchristos                 0x21, 0x59, 0xa0, 0x77, 0x02, 0x4b, 0x05, 0x89,
740*4724848cSchristos                 0xbc, 0x8a, 0x20, 0x10, 0x1b, 0x50, 0x6f, 0x0a,
741*4724848cSchristos                 0x1a, 0xd0, 0xbb, 0xab, 0x76, 0xe8, 0x3a, 0x83,
742*4724848cSchristos                 0xf1, 0xb9, 0x4b, 0xe6, 0xbe, 0xae, 0x74, 0xe8,
743*4724848cSchristos 
744*4724848cSchristos                 0x74, 0xca, 0xb6, 0x92, 0xc5, 0x96, 0x3a, 0x75,
745*4724848cSchristos                 0x43, 0x6b, 0x77, 0x61, 0x21, 0xec, 0x9f, 0x62,
746*4724848cSchristos                 0x39, 0x9a, 0x3e, 0x66, 0xb2, 0xd2, 0x27, 0x07,
747*4724848cSchristos                 0xda, 0xe8, 0x19, 0x33, 0xb6, 0x27, 0x7f, 0x3c,
748*4724848cSchristos 
749*4724848cSchristos                 0x85, 0x16, 0xbc, 0xbe, 0x26, 0xdb, 0xbd, 0x86,
750*4724848cSchristos                 0xf3, 0x73, 0x10, 0x3d, 0x7c, 0xf4, 0xca, 0xd1,
751*4724848cSchristos                 0x88, 0x8c, 0x95, 0x21, 0x18, 0xfb, 0xfb, 0xd0,
752*4724848cSchristos                 0xd7, 0xb4, 0xbe, 0xdc, 0x4a, 0xe4, 0x93, 0x6a,
753*4724848cSchristos 
754*4724848cSchristos                 0xff, 0x91, 0x15, 0x7e, 0x7a, 0xa4, 0x7c, 0x54,
755*4724848cSchristos                 0x44, 0x2e, 0xa7, 0x8d, 0x6a, 0xc2, 0x51, 0xd3,
756*4724848cSchristos                 0x24, 0xa0, 0xfb, 0xe4, 0x9d, 0x89, 0xcc, 0x35,
757*4724848cSchristos                 0x21, 0xb6, 0x6d, 0x16, 0xe9, 0xc6, 0x6a, 0x37,
758*4724848cSchristos 
759*4724848cSchristos                 0x09, 0x89, 0x4e, 0x4e, 0xb0, 0xa4, 0xee, 0xdc,
760*4724848cSchristos                 0x4a, 0xe1, 0x94, 0x68, 0xe6, 0x6b, 0x81, 0xf2,
761*4724848cSchristos 
762*4724848cSchristos                 0x71, 0x35, 0x1b, 0x1d, 0x92, 0x1e, 0xa5, 0x51,
763*4724848cSchristos                 0x04, 0x7a, 0xbc, 0xc6, 0xb8, 0x7a, 0x90, 0x1f,
764*4724848cSchristos                 0xde, 0x7d, 0xb7, 0x9f, 0xa1, 0x81, 0x8c, 0x11,
765*4724848cSchristos                 0x33, 0x6d, 0xbc, 0x07, 0x24, 0x4a, 0x40, 0xeb
766*4724848cSchristos             }
767*4724848cSchristos         },
768*4724848cSchristos         {
769*4724848cSchristos             32,
770*4724848cSchristos             {
771*4724848cSchristos                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
772*4724848cSchristos                 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
773*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
774*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
775*4724848cSchristos             }
776*4724848cSchristos         },
777*4724848cSchristos         {
778*4724848cSchristos             16,
779*4724848cSchristos             {
780*4724848cSchristos                 0xbc, 0x93, 0x9b, 0xc5, 0x28, 0x14, 0x80, 0xfa,
781*4724848cSchristos                 0x99, 0xc6, 0xd6, 0x8c, 0x25, 0x8e, 0xc4, 0x2f
782*4724848cSchristos             }
783*4724848cSchristos         },
784*4724848cSchristos     },
785*4724848cSchristos     /*
786*4724848cSchristos      * test vectors from Google
787*4724848cSchristos      */
788*4724848cSchristos     {
789*4724848cSchristos         {
790*4724848cSchristos             0,
791*4724848cSchristos             {
792*4724848cSchristos                 0x00,
793*4724848cSchristos             }
794*4724848cSchristos         },
795*4724848cSchristos         {
796*4724848cSchristos             32,
797*4724848cSchristos             {
798*4724848cSchristos                 0xc8, 0xaf, 0xaa, 0xc3, 0x31, 0xee, 0x37, 0x2c,
799*4724848cSchristos                 0xd6, 0x08, 0x2d, 0xe1, 0x34, 0x94, 0x3b, 0x17,
800*4724848cSchristos                 0x47, 0x10, 0x13, 0x0e, 0x9f, 0x6f, 0xea, 0x8d,
801*4724848cSchristos                 0x72, 0x29, 0x38, 0x50, 0xa6, 0x67, 0xd8, 0x6c
802*4724848cSchristos             }
803*4724848cSchristos         },
804*4724848cSchristos         {
805*4724848cSchristos             16,
806*4724848cSchristos             {
807*4724848cSchristos                 0x47, 0x10, 0x13, 0x0e, 0x9f, 0x6f, 0xea, 0x8d,
808*4724848cSchristos                 0x72, 0x29, 0x38, 0x50, 0xa6, 0x67, 0xd8, 0x6c
809*4724848cSchristos             }
810*4724848cSchristos         },
811*4724848cSchristos     },
812*4724848cSchristos     {
813*4724848cSchristos         {
814*4724848cSchristos             12,
815*4724848cSchristos             {
816*4724848cSchristos                 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f,
817*4724848cSchristos                 0x72, 0x6c, 0x64, 0x21
818*4724848cSchristos             }
819*4724848cSchristos         },
820*4724848cSchristos         {
821*4724848cSchristos             32,
822*4724848cSchristos             {
823*4724848cSchristos                 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
824*4724848cSchristos                 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20,
825*4724848cSchristos                 0x6b, 0x65, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20,
826*4724848cSchristos                 0x50, 0x6f, 0x6c, 0x79, 0x31, 0x33, 0x30, 0x35
827*4724848cSchristos             }
828*4724848cSchristos         },
829*4724848cSchristos         {
830*4724848cSchristos             16,
831*4724848cSchristos             {
832*4724848cSchristos                 0xa6, 0xf7, 0x45, 0x00, 0x8f, 0x81, 0xc9, 0x16,
833*4724848cSchristos                 0xa2, 0x0d, 0xcc, 0x74, 0xee, 0xf2, 0xb2, 0xf0
834*4724848cSchristos             }
835*4724848cSchristos         },
836*4724848cSchristos     },
837*4724848cSchristos     {
838*4724848cSchristos         {
839*4724848cSchristos             32,
840*4724848cSchristos             {
841*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
842*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
843*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
844*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
845*4724848cSchristos             }
846*4724848cSchristos         },
847*4724848cSchristos         {
848*4724848cSchristos             32,
849*4724848cSchristos             {
850*4724848cSchristos                 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
851*4724848cSchristos                 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20,
852*4724848cSchristos                 0x6b, 0x65, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20,
853*4724848cSchristos                 0x50, 0x6f, 0x6c, 0x79, 0x31, 0x33, 0x30, 0x35
854*4724848cSchristos             }
855*4724848cSchristos         },
856*4724848cSchristos         {
857*4724848cSchristos             16,
858*4724848cSchristos             {
859*4724848cSchristos                 0x49, 0xec, 0x78, 0x09, 0x0e, 0x48, 0x1e, 0xc6,
860*4724848cSchristos                 0xc2, 0x6b, 0x33, 0xb9, 0x1c, 0xcc, 0x03, 0x07
861*4724848cSchristos             }
862*4724848cSchristos         },
863*4724848cSchristos     },
864*4724848cSchristos     {
865*4724848cSchristos         {
866*4724848cSchristos             128,
867*4724848cSchristos             {
868*4724848cSchristos                 0x89, 0xda, 0xb8, 0x0b, 0x77, 0x17, 0xc1, 0xdb,
869*4724848cSchristos                 0x5d, 0xb4, 0x37, 0x86, 0x0a, 0x3f, 0x70, 0x21,
870*4724848cSchristos                 0x8e, 0x93, 0xe1, 0xb8, 0xf4, 0x61, 0xfb, 0x67,
871*4724848cSchristos                 0x7f, 0x16, 0xf3, 0x5f, 0x6f, 0x87, 0xe2, 0xa9,
872*4724848cSchristos 
873*4724848cSchristos                 0x1c, 0x99, 0xbc, 0x3a, 0x47, 0xac, 0xe4, 0x76,
874*4724848cSchristos                 0x40, 0xcc, 0x95, 0xc3, 0x45, 0xbe, 0x5e, 0xcc,
875*4724848cSchristos                 0xa5, 0xa3, 0x52, 0x3c, 0x35, 0xcc, 0x01, 0x89,
876*4724848cSchristos                 0x3a, 0xf0, 0xb6, 0x4a, 0x62, 0x03, 0x34, 0x27,
877*4724848cSchristos 
878*4724848cSchristos                 0x03, 0x72, 0xec, 0x12, 0x48, 0x2d, 0x1b, 0x1e,
879*4724848cSchristos                 0x36, 0x35, 0x61, 0x69, 0x8a, 0x57, 0x8b, 0x35,
880*4724848cSchristos                 0x98, 0x03, 0x49, 0x5b, 0xb4, 0xe2, 0xef, 0x19,
881*4724848cSchristos                 0x30, 0xb1, 0x7a, 0x51, 0x90, 0xb5, 0x80, 0xf1,
882*4724848cSchristos 
883*4724848cSchristos                 0x41, 0x30, 0x0d, 0xf3, 0x0a, 0xdb, 0xec, 0xa2,
884*4724848cSchristos                 0x8f, 0x64, 0x27, 0xa8, 0xbc, 0x1a, 0x99, 0x9f,
885*4724848cSchristos                 0xd5, 0x1c, 0x55, 0x4a, 0x01, 0x7d, 0x09, 0x5d,
886*4724848cSchristos                 0x8c, 0x3e, 0x31, 0x27, 0xda, 0xf9, 0xf5, 0x95
887*4724848cSchristos             }
888*4724848cSchristos         },
889*4724848cSchristos         {
890*4724848cSchristos             32,
891*4724848cSchristos             {
892*4724848cSchristos                 0x2d, 0x77, 0x3b, 0xe3, 0x7a, 0xdb, 0x1e, 0x4d,
893*4724848cSchristos                 0x68, 0x3b, 0xf0, 0x07, 0x5e, 0x79, 0xc4, 0xee,
894*4724848cSchristos                 0x03, 0x79, 0x18, 0x53, 0x5a, 0x7f, 0x99, 0xcc,
895*4724848cSchristos                 0xb7, 0x04, 0x0f, 0xb5, 0xf5, 0xf4, 0x3a, 0xea
896*4724848cSchristos             }
897*4724848cSchristos         },
898*4724848cSchristos         {
899*4724848cSchristos             16,
900*4724848cSchristos             {
901*4724848cSchristos                 0xc8, 0x5d, 0x15, 0xed, 0x44, 0xc3, 0x78, 0xd6,
902*4724848cSchristos                 0xb0, 0x0e, 0x23, 0x06, 0x4c, 0x7b, 0xcd, 0x51
903*4724848cSchristos             }
904*4724848cSchristos         },
905*4724848cSchristos     },
906*4724848cSchristos     {
907*4724848cSchristos         {
908*4724848cSchristos             528,
909*4724848cSchristos             {
910*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
911*4724848cSchristos                 0x17, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
912*4724848cSchristos 
913*4724848cSchristos                 0x06, 0xdb, 0x1f, 0x1f, 0x36, 0x8d, 0x69, 0x6a,
914*4724848cSchristos                 0x81, 0x0a, 0x34, 0x9c, 0x0c, 0x71, 0x4c, 0x9a,
915*4724848cSchristos                 0x5e, 0x78, 0x50, 0xc2, 0x40, 0x7d, 0x72, 0x1a,
916*4724848cSchristos                 0xcd, 0xed, 0x95, 0xe0, 0x18, 0xd7, 0xa8, 0x52,
917*4724848cSchristos 
918*4724848cSchristos                 0x66, 0xa6, 0xe1, 0x28, 0x9c, 0xdb, 0x4a, 0xeb,
919*4724848cSchristos                 0x18, 0xda, 0x5a, 0xc8, 0xa2, 0xb0, 0x02, 0x6d,
920*4724848cSchristos                 0x24, 0xa5, 0x9a, 0xd4, 0x85, 0x22, 0x7f, 0x3e,
921*4724848cSchristos                 0xae, 0xdb, 0xb2, 0xe7, 0xe3, 0x5e, 0x1c, 0x66,
922*4724848cSchristos 
923*4724848cSchristos                 0xcd, 0x60, 0xf9, 0xab, 0xf7, 0x16, 0xdc, 0xc9,
924*4724848cSchristos                 0xac, 0x42, 0x68, 0x2d, 0xd7, 0xda, 0xb2, 0x87,
925*4724848cSchristos                 0xa7, 0x02, 0x4c, 0x4e, 0xef, 0xc3, 0x21, 0xcc,
926*4724848cSchristos                 0x05, 0x74, 0xe1, 0x67, 0x93, 0xe3, 0x7c, 0xec,
927*4724848cSchristos 
928*4724848cSchristos                 0x03, 0xc5, 0xbd, 0xa4, 0x2b, 0x54, 0xc1, 0x14,
929*4724848cSchristos                 0xa8, 0x0b, 0x57, 0xaf, 0x26, 0x41, 0x6c, 0x7b,
930*4724848cSchristos                 0xe7, 0x42, 0x00, 0x5e, 0x20, 0x85, 0x5c, 0x73,
931*4724848cSchristos                 0xe2, 0x1d, 0xc8, 0xe2, 0xed, 0xc9, 0xd4, 0x35,
932*4724848cSchristos 
933*4724848cSchristos                 0xcb, 0x6f, 0x60, 0x59, 0x28, 0x00, 0x11, 0xc2,
934*4724848cSchristos                 0x70, 0xb7, 0x15, 0x70, 0x05, 0x1c, 0x1c, 0x9b,
935*4724848cSchristos                 0x30, 0x52, 0x12, 0x66, 0x20, 0xbc, 0x1e, 0x27,
936*4724848cSchristos                 0x30, 0xfa, 0x06, 0x6c, 0x7a, 0x50, 0x9d, 0x53,
937*4724848cSchristos 
938*4724848cSchristos                 0xc6, 0x0e, 0x5a, 0xe1, 0xb4, 0x0a, 0xa6, 0xe3,
939*4724848cSchristos                 0x9e, 0x49, 0x66, 0x92, 0x28, 0xc9, 0x0e, 0xec,
940*4724848cSchristos                 0xb4, 0xa5, 0x0d, 0xb3, 0x2a, 0x50, 0xbc, 0x49,
941*4724848cSchristos                 0xe9, 0x0b, 0x4f, 0x4b, 0x35, 0x9a, 0x1d, 0xfd,
942*4724848cSchristos 
943*4724848cSchristos                 0x11, 0x74, 0x9c, 0xd3, 0x86, 0x7f, 0xcf, 0x2f,
944*4724848cSchristos                 0xb7, 0xbb, 0x6c, 0xd4, 0x73, 0x8f, 0x6a, 0x4a,
945*4724848cSchristos                 0xd6, 0xf7, 0xca, 0x50, 0x58, 0xf7, 0x61, 0x88,
946*4724848cSchristos                 0x45, 0xaf, 0x9f, 0x02, 0x0f, 0x6c, 0x3b, 0x96,
947*4724848cSchristos 
948*4724848cSchristos                 0x7b, 0x8f, 0x4c, 0xd4, 0xa9, 0x1e, 0x28, 0x13,
949*4724848cSchristos                 0xb5, 0x07, 0xae, 0x66, 0xf2, 0xd3, 0x5c, 0x18,
950*4724848cSchristos                 0x28, 0x4f, 0x72, 0x92, 0x18, 0x60, 0x62, 0xe1,
951*4724848cSchristos                 0x0f, 0xd5, 0x51, 0x0d, 0x18, 0x77, 0x53, 0x51,
952*4724848cSchristos 
953*4724848cSchristos                 0xef, 0x33, 0x4e, 0x76, 0x34, 0xab, 0x47, 0x43,
954*4724848cSchristos                 0xf5, 0xb6, 0x8f, 0x49, 0xad, 0xca, 0xb3, 0x84,
955*4724848cSchristos                 0xd3, 0xfd, 0x75, 0xf7, 0x39, 0x0f, 0x40, 0x06,
956*4724848cSchristos                 0xef, 0x2a, 0x29, 0x5c, 0x8c, 0x7a, 0x07, 0x6a,
957*4724848cSchristos 
958*4724848cSchristos                 0xd5, 0x45, 0x46, 0xcd, 0x25, 0xd2, 0x10, 0x7f,
959*4724848cSchristos                 0xbe, 0x14, 0x36, 0xc8, 0x40, 0x92, 0x4a, 0xae,
960*4724848cSchristos                 0xbe, 0x5b, 0x37, 0x08, 0x93, 0xcd, 0x63, 0xd1,
961*4724848cSchristos                 0x32, 0x5b, 0x86, 0x16, 0xfc, 0x48, 0x10, 0x88,
962*4724848cSchristos 
963*4724848cSchristos                 0x6b, 0xc1, 0x52, 0xc5, 0x32, 0x21, 0xb6, 0xdf,
964*4724848cSchristos                 0x37, 0x31, 0x19, 0x39, 0x32, 0x55, 0xee, 0x72,
965*4724848cSchristos                 0xbc, 0xaa, 0x88, 0x01, 0x74, 0xf1, 0x71, 0x7f,
966*4724848cSchristos                 0x91, 0x84, 0xfa, 0x91, 0x64, 0x6f, 0x17, 0xa2,
967*4724848cSchristos 
968*4724848cSchristos                 0x4a, 0xc5, 0x5d, 0x16, 0xbf, 0xdd, 0xca, 0x95,
969*4724848cSchristos                 0x81, 0xa9, 0x2e, 0xda, 0x47, 0x92, 0x01, 0xf0,
970*4724848cSchristos                 0xed, 0xbf, 0x63, 0x36, 0x00, 0xd6, 0x06, 0x6d,
971*4724848cSchristos                 0x1a, 0xb3, 0x6d, 0x5d, 0x24, 0x15, 0xd7, 0x13,
972*4724848cSchristos 
973*4724848cSchristos                 0x51, 0xbb, 0xcd, 0x60, 0x8a, 0x25, 0x10, 0x8d,
974*4724848cSchristos                 0x25, 0x64, 0x19, 0x92, 0xc1, 0xf2, 0x6c, 0x53,
975*4724848cSchristos                 0x1c, 0xf9, 0xf9, 0x02, 0x03, 0xbc, 0x4c, 0xc1,
976*4724848cSchristos                 0x9f, 0x59, 0x27, 0xd8, 0x34, 0xb0, 0xa4, 0x71,
977*4724848cSchristos 
978*4724848cSchristos                 0x16, 0xd3, 0x88, 0x4b, 0xbb, 0x16, 0x4b, 0x8e,
979*4724848cSchristos                 0xc8, 0x83, 0xd1, 0xac, 0x83, 0x2e, 0x56, 0xb3,
980*4724848cSchristos                 0x91, 0x8a, 0x98, 0x60, 0x1a, 0x08, 0xd1, 0x71,
981*4724848cSchristos                 0x88, 0x15, 0x41, 0xd5, 0x94, 0xdb, 0x39, 0x9c,
982*4724848cSchristos 
983*4724848cSchristos                 0x6a, 0xe6, 0x15, 0x12, 0x21, 0x74, 0x5a, 0xec,
984*4724848cSchristos                 0x81, 0x4c, 0x45, 0xb0, 0xb0, 0x5b, 0x56, 0x54,
985*4724848cSchristos                 0x36, 0xfd, 0x6f, 0x13, 0x7a, 0xa1, 0x0a, 0x0c,
986*4724848cSchristos                 0x0b, 0x64, 0x37, 0x61, 0xdb, 0xd6, 0xf9, 0xa9,
987*4724848cSchristos 
988*4724848cSchristos                 0xdc, 0xb9, 0x9b, 0x1a, 0x6e, 0x69, 0x08, 0x54,
989*4724848cSchristos                 0xce, 0x07, 0x69, 0xcd, 0xe3, 0x97, 0x61, 0xd8,
990*4724848cSchristos                 0x2f, 0xcd, 0xec, 0x15, 0xf0, 0xd9, 0x2d, 0x7d,
991*4724848cSchristos                 0x8e, 0x94, 0xad, 0xe8, 0xeb, 0x83, 0xfb, 0xe0
992*4724848cSchristos             }
993*4724848cSchristos         },
994*4724848cSchristos         {
995*4724848cSchristos             32,
996*4724848cSchristos             {
997*4724848cSchristos                 0x99, 0xe5, 0x82, 0x2d, 0xd4, 0x17, 0x3c, 0x99,
998*4724848cSchristos                 0x5e, 0x3d, 0xae, 0x0d, 0xde, 0xfb, 0x97, 0x74,
999*4724848cSchristos                 0x3f, 0xde, 0x3b, 0x08, 0x01, 0x34, 0xb3, 0x9f,
1000*4724848cSchristos                 0x76, 0xe9, 0xbf, 0x8d, 0x0e, 0x88, 0xd5, 0x46
1001*4724848cSchristos             }
1002*4724848cSchristos         },
1003*4724848cSchristos         {
1004*4724848cSchristos             16,
1005*4724848cSchristos             {
1006*4724848cSchristos                 0x26, 0x37, 0x40, 0x8f, 0xe1, 0x30, 0x86, 0xea,
1007*4724848cSchristos                 0x73, 0xf9, 0x71, 0xe3, 0x42, 0x5e, 0x28, 0x20
1008*4724848cSchristos             }
1009*4724848cSchristos         },
1010*4724848cSchristos     },
1011*4724848cSchristos     /*
1012*4724848cSchristos      * test vectors from Hanno Böck
1013*4724848cSchristos      */
1014*4724848cSchristos     {
1015*4724848cSchristos         {
1016*4724848cSchristos             257,
1017*4724848cSchristos             {
1018*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1019*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1020*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1021*4724848cSchristos                 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1022*4724848cSchristos 
1023*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1024*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1025*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1026*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0xcc, 0xcc, 0xcc,
1027*4724848cSchristos 
1028*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1029*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc5,
1030*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1031*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1032*4724848cSchristos 
1033*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe3, 0xcc, 0xcc,
1034*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1035*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1036*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1037*4724848cSchristos 
1038*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xac, 0xcc, 0xcc, 0xcc,
1039*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe6,
1040*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x00, 0x00, 0x00,
1041*4724848cSchristos                 0xaf, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
1042*4724848cSchristos 
1043*4724848cSchristos                 0xcc, 0xcc, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00,
1044*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1045*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1046*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1047*4724848cSchristos 
1048*4724848cSchristos                 0x00, 0xff, 0xff, 0xff, 0xe7, 0x00, 0x00, 0x00,
1049*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1050*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1051*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1052*4724848cSchristos 
1053*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1054*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1055*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1056*4724848cSchristos                 0x00, 0x00, 0x71, 0x92, 0x05, 0xa8, 0x52, 0x1d,
1057*4724848cSchristos 
1058*4724848cSchristos                 0xfc
1059*4724848cSchristos             }
1060*4724848cSchristos         },
1061*4724848cSchristos         {
1062*4724848cSchristos             32,
1063*4724848cSchristos             {
1064*4724848cSchristos                 0x7f, 0x1b, 0x02, 0x64, 0x00, 0x00, 0x00, 0x00,
1065*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1066*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1067*4724848cSchristos                 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc
1068*4724848cSchristos             }
1069*4724848cSchristos         },
1070*4724848cSchristos         {
1071*4724848cSchristos             16,
1072*4724848cSchristos             {
1073*4724848cSchristos                 0x85, 0x59, 0xb8, 0x76, 0xec, 0xee, 0xd6, 0x6e,
1074*4724848cSchristos                 0xb3, 0x77, 0x98, 0xc0, 0x45, 0x7b, 0xaf, 0xf9
1075*4724848cSchristos             }
1076*4724848cSchristos         },
1077*4724848cSchristos     },
1078*4724848cSchristos     {
1079*4724848cSchristos         {
1080*4724848cSchristos             39,
1081*4724848cSchristos             {
1082*4724848cSchristos                 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
1083*4724848cSchristos                 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
1084*4724848cSchristos                 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
1085*4724848cSchristos                 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00,
1086*4724848cSchristos 
1087*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x64
1088*4724848cSchristos             }
1089*4724848cSchristos         },
1090*4724848cSchristos         {
1091*4724848cSchristos             32,
1092*4724848cSchristos             {
1093*4724848cSchristos                 0xe0, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00,
1094*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1095*4724848cSchristos                 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
1096*4724848cSchristos                 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
1097*4724848cSchristos             }
1098*4724848cSchristos         },
1099*4724848cSchristos         {
1100*4724848cSchristos             16,
1101*4724848cSchristos             {
1102*4724848cSchristos                 0x00, 0xbd, 0x12, 0x58, 0x97, 0x8e, 0x20, 0x54,
1103*4724848cSchristos                 0x44, 0xc9, 0xaa, 0xaa, 0x82, 0x00, 0x6f, 0xed
1104*4724848cSchristos             }
1105*4724848cSchristos         },
1106*4724848cSchristos     },
1107*4724848cSchristos     {
1108*4724848cSchristos         {
1109*4724848cSchristos             2,
1110*4724848cSchristos             {
1111*4724848cSchristos                 0x02, 0xfc
1112*4724848cSchristos             }
1113*4724848cSchristos         },
1114*4724848cSchristos         {
1115*4724848cSchristos             32,
1116*4724848cSchristos             {
1117*4724848cSchristos                 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
1118*4724848cSchristos                 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
1119*4724848cSchristos                 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
1120*4724848cSchristos                 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c
1121*4724848cSchristos             }
1122*4724848cSchristos         },
1123*4724848cSchristos         {
1124*4724848cSchristos             16,
1125*4724848cSchristos             {
1126*4724848cSchristos                 0x06, 0x12, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
1127*4724848cSchristos                 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c
1128*4724848cSchristos             }
1129*4724848cSchristos         },
1130*4724848cSchristos     },
1131*4724848cSchristos     {
1132*4724848cSchristos         {
1133*4724848cSchristos             415,
1134*4724848cSchristos             {
1135*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1136*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1137*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1138*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1139*4724848cSchristos 
1140*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b,
1141*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1142*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1143*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1144*4724848cSchristos 
1145*4724848cSchristos                 0x7b, 0x7b, 0x5c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1146*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1147*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1148*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1149*4724848cSchristos 
1150*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1151*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1152*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x6e, 0x7b, 0x00, 0x7b,
1153*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1154*4724848cSchristos 
1155*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1156*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1157*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b,
1158*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1159*4724848cSchristos 
1160*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1161*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x5c,
1162*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1163*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1164*4724848cSchristos 
1165*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1166*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1167*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1168*4724848cSchristos                 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
1169*4724848cSchristos 
1170*4724848cSchristos                 0x7b, 0x6e, 0x7b, 0x00, 0x13, 0x00, 0x00, 0x00,
1171*4724848cSchristos                 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1172*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1173*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1174*4724848cSchristos 
1175*4724848cSchristos                 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1176*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1177*4724848cSchristos                 0x00, 0x00, 0x00, 0x20, 0x00, 0xef, 0xff, 0x00,
1178*4724848cSchristos                 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1179*4724848cSchristos 
1180*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
1181*4724848cSchristos                 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x00,
1182*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1183*4724848cSchristos                 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00,
1184*4724848cSchristos 
1185*4724848cSchristos                 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1186*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1187*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2,
1188*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1189*4724848cSchristos 
1190*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1191*4724848cSchristos                 0x00, 0x00, 0x20, 0x00, 0xef, 0xff, 0x00, 0x09,
1192*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1193*4724848cSchristos                 0x00, 0x7a, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
1194*4724848cSchristos 
1195*4724848cSchristos                 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00,
1196*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1197*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1198*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc
1199*4724848cSchristos             }
1200*4724848cSchristos         },
1201*4724848cSchristos         {
1202*4724848cSchristos             32,
1203*4724848cSchristos             {
1204*4724848cSchristos                 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1205*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1206*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
1207*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x7b
1208*4724848cSchristos             }
1209*4724848cSchristos         },
1210*4724848cSchristos         {
1211*4724848cSchristos             16,
1212*4724848cSchristos             {
1213*4724848cSchristos                 0x33, 0x20, 0x5b, 0xbf, 0x9e, 0x9f, 0x8f, 0x72,
1214*4724848cSchristos                 0x12, 0xab, 0x9e, 0x2a, 0xb9, 0xb7, 0xe4, 0xa5
1215*4724848cSchristos             }
1216*4724848cSchristos         },
1217*4724848cSchristos     },
1218*4724848cSchristos     {
1219*4724848cSchristos         {
1220*4724848cSchristos             118,
1221*4724848cSchristos             {
1222*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1223*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1224*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1225*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1226*4724848cSchristos 
1227*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1228*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1229*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1230*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1231*4724848cSchristos 
1232*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1233*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xe9,
1234*4724848cSchristos                 0xe9, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
1235*4724848cSchristos                 0xac, 0xac, 0xac, 0xac, 0x00, 0x00, 0xac, 0xac,
1236*4724848cSchristos 
1237*4724848cSchristos                 0xec, 0x01, 0x00, 0xac, 0xac, 0xac, 0x2c, 0xac,
1238*4724848cSchristos                 0xa2, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
1239*4724848cSchristos                 0xac, 0xac, 0xac, 0xac, 0x64, 0xf2
1240*4724848cSchristos             }
1241*4724848cSchristos         },
1242*4724848cSchristos         {
1243*4724848cSchristos             32,
1244*4724848cSchristos             {
1245*4724848cSchristos                 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
1246*4724848cSchristos                 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
1247*4724848cSchristos                 0x00, 0x00, 0xcf, 0x77, 0x77, 0x77, 0x77, 0x77,
1248*4724848cSchristos                 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77
1249*4724848cSchristos             }
1250*4724848cSchristos         },
1251*4724848cSchristos         {
1252*4724848cSchristos             16,
1253*4724848cSchristos             {
1254*4724848cSchristos                 0x02, 0xee, 0x7c, 0x8c, 0x54, 0x6d, 0xde, 0xb1,
1255*4724848cSchristos                 0xa4, 0x67, 0xe4, 0xc3, 0x98, 0x11, 0x58, 0xb9
1256*4724848cSchristos             }
1257*4724848cSchristos         },
1258*4724848cSchristos     },
1259*4724848cSchristos     /*
1260*4724848cSchristos      * test vectors from Andrew Moon
1261*4724848cSchristos      */
1262*4724848cSchristos     { /* nacl */
1263*4724848cSchristos         {
1264*4724848cSchristos             131,
1265*4724848cSchristos             {
1266*4724848cSchristos                 0x8e, 0x99, 0x3b, 0x9f, 0x48, 0x68, 0x12, 0x73,
1267*4724848cSchristos                 0xc2, 0x96, 0x50, 0xba, 0x32, 0xfc, 0x76, 0xce,
1268*4724848cSchristos                 0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4,
1269*4724848cSchristos                 0x47, 0x6f, 0xb8, 0xc5, 0x31, 0xa1, 0x18, 0x6a,
1270*4724848cSchristos 
1271*4724848cSchristos                 0xc0, 0xdf, 0xc1, 0x7c, 0x98, 0xdc, 0xe8, 0x7b,
1272*4724848cSchristos                 0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72,
1273*4724848cSchristos                 0x71, 0xd2, 0xc2, 0x0f, 0x9b, 0x92, 0x8f, 0xe2,
1274*4724848cSchristos                 0x27, 0x0d, 0x6f, 0xb8, 0x63, 0xd5, 0x17, 0x38,
1275*4724848cSchristos 
1276*4724848cSchristos                 0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a,
1277*4724848cSchristos                 0xb9, 0x32, 0x16, 0x45, 0x48, 0xe5, 0x26, 0xae,
1278*4724848cSchristos                 0x90, 0x22, 0x43, 0x68, 0x51, 0x7a, 0xcf, 0xea,
1279*4724848cSchristos                 0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda,
1280*4724848cSchristos 
1281*4724848cSchristos                 0x99, 0x83, 0x2b, 0x61, 0xca, 0x01, 0xb6, 0xde,
1282*4724848cSchristos                 0x56, 0x24, 0x4a, 0x9e, 0x88, 0xd5, 0xf9, 0xb3,
1283*4724848cSchristos                 0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6,
1284*4724848cSchristos                 0x59, 0x9b, 0x1f, 0x65, 0x4c, 0xb4, 0x5a, 0x74,
1285*4724848cSchristos 
1286*4724848cSchristos                 0xe3, 0x55, 0xa5
1287*4724848cSchristos             }
1288*4724848cSchristos         },
1289*4724848cSchristos         {
1290*4724848cSchristos             32,
1291*4724848cSchristos             {
1292*4724848cSchristos                 0xee, 0xa6, 0xa7, 0x25, 0x1c, 0x1e, 0x72, 0x91,
1293*4724848cSchristos                 0x6d, 0x11, 0xc2, 0xcb, 0x21, 0x4d, 0x3c, 0x25,
1294*4724848cSchristos                 0x25, 0x39, 0x12, 0x1d, 0x8e, 0x23, 0x4e, 0x65,
1295*4724848cSchristos                 0x2d, 0x65, 0x1f, 0xa4, 0xc8, 0xcf, 0xf8, 0x80
1296*4724848cSchristos             }
1297*4724848cSchristos         },
1298*4724848cSchristos         {
1299*4724848cSchristos             16,
1300*4724848cSchristos             {
1301*4724848cSchristos                 0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5,
1302*4724848cSchristos                 0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9
1303*4724848cSchristos             }
1304*4724848cSchristos         },
1305*4724848cSchristos     },
1306*4724848cSchristos     { /* wrap 2^130-5 */
1307*4724848cSchristos         {
1308*4724848cSchristos             16,
1309*4724848cSchristos             {
1310*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1311*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1312*4724848cSchristos             }
1313*4724848cSchristos         },
1314*4724848cSchristos         {
1315*4724848cSchristos             32,
1316*4724848cSchristos             {
1317*4724848cSchristos                 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1318*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1319*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1320*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1321*4724848cSchristos             }
1322*4724848cSchristos         },
1323*4724848cSchristos         {
1324*4724848cSchristos             16,
1325*4724848cSchristos             {
1326*4724848cSchristos                 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1327*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1328*4724848cSchristos             }
1329*4724848cSchristos         },
1330*4724848cSchristos     },
1331*4724848cSchristos     { /* wrap 2^128 */
1332*4724848cSchristos         {
1333*4724848cSchristos             16,
1334*4724848cSchristos             {
1335*4724848cSchristos                 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1336*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1337*4724848cSchristos             }
1338*4724848cSchristos         },
1339*4724848cSchristos         {
1340*4724848cSchristos             32,
1341*4724848cSchristos             {
1342*4724848cSchristos                 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1343*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1344*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1345*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1346*4724848cSchristos             }
1347*4724848cSchristos         },
1348*4724848cSchristos         {
1349*4724848cSchristos             16,
1350*4724848cSchristos             {
1351*4724848cSchristos                 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1352*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1353*4724848cSchristos             }
1354*4724848cSchristos         },
1355*4724848cSchristos     },
1356*4724848cSchristos     { /* limb carry */
1357*4724848cSchristos         {
1358*4724848cSchristos             48,
1359*4724848cSchristos             {
1360*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1361*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1362*4724848cSchristos                 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1363*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1364*4724848cSchristos 
1365*4724848cSchristos                 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1366*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1367*4724848cSchristos             }
1368*4724848cSchristos         },
1369*4724848cSchristos         {
1370*4724848cSchristos             32,
1371*4724848cSchristos             {
1372*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1373*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1374*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1375*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1376*4724848cSchristos             }
1377*4724848cSchristos         },
1378*4724848cSchristos         {
1379*4724848cSchristos             16,
1380*4724848cSchristos             {
1381*4724848cSchristos                 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1382*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1383*4724848cSchristos             }
1384*4724848cSchristos         },
1385*4724848cSchristos     },
1386*4724848cSchristos     { /* 2^130-5 */
1387*4724848cSchristos         {
1388*4724848cSchristos             48,
1389*4724848cSchristos             {
1390*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1391*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1392*4724848cSchristos                 0xfb, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
1393*4724848cSchristos                 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
1394*4724848cSchristos 
1395*4724848cSchristos                 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
1396*4724848cSchristos                 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
1397*4724848cSchristos             }
1398*4724848cSchristos         },
1399*4724848cSchristos         {
1400*4724848cSchristos             32,
1401*4724848cSchristos             {
1402*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1403*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1404*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1405*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1406*4724848cSchristos             }
1407*4724848cSchristos         },
1408*4724848cSchristos         {
1409*4724848cSchristos             16,
1410*4724848cSchristos             {
1411*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1412*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1413*4724848cSchristos 
1414*4724848cSchristos             }
1415*4724848cSchristos         },
1416*4724848cSchristos     },
1417*4724848cSchristos     { /* 2^130-6 */
1418*4724848cSchristos         {
1419*4724848cSchristos             16,
1420*4724848cSchristos             {
1421*4724848cSchristos                 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1422*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1423*4724848cSchristos             }
1424*4724848cSchristos         },
1425*4724848cSchristos         {
1426*4724848cSchristos             32,
1427*4724848cSchristos             {
1428*4724848cSchristos                 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1429*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1430*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1431*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1432*4724848cSchristos             }
1433*4724848cSchristos         },
1434*4724848cSchristos         {
1435*4724848cSchristos             16,
1436*4724848cSchristos             {
1437*4724848cSchristos                 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1438*4724848cSchristos                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1439*4724848cSchristos             }
1440*4724848cSchristos         },
1441*4724848cSchristos     },
1442*4724848cSchristos     { /* 5*H+L reduction intermediate */
1443*4724848cSchristos         {
1444*4724848cSchristos             64,
1445*4724848cSchristos             {
1446*4724848cSchristos                 0xe3, 0x35, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0xb9,
1447*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1448*4724848cSchristos                 0x33, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0x79, 0xcd,
1449*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1450*4724848cSchristos 
1451*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1452*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1453*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1454*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1455*4724848cSchristos             }
1456*4724848cSchristos         },
1457*4724848cSchristos         {
1458*4724848cSchristos             32,
1459*4724848cSchristos             {
1460*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1461*4724848cSchristos                 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1462*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1463*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1464*4724848cSchristos             }
1465*4724848cSchristos         },
1466*4724848cSchristos         {
1467*4724848cSchristos             16,
1468*4724848cSchristos             {
1469*4724848cSchristos                 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1470*4724848cSchristos                 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1471*4724848cSchristos             }
1472*4724848cSchristos         },
1473*4724848cSchristos     },
1474*4724848cSchristos     { /* 5*H+L reduction final */
1475*4724848cSchristos         {
1476*4724848cSchristos             48,
1477*4724848cSchristos             {
1478*4724848cSchristos                 0xe3, 0x35, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0xb9,
1479*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1480*4724848cSchristos                 0x33, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0x79, 0xcd,
1481*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1482*4724848cSchristos 
1483*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1484*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1485*4724848cSchristos 
1486*4724848cSchristos             }
1487*4724848cSchristos         },
1488*4724848cSchristos         {
1489*4724848cSchristos             32,
1490*4724848cSchristos             {
1491*4724848cSchristos                 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1492*4724848cSchristos                 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1493*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1494*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1495*4724848cSchristos             }
1496*4724848cSchristos         },
1497*4724848cSchristos         {
1498*4724848cSchristos             16,
1499*4724848cSchristos             {
1500*4724848cSchristos                 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1501*4724848cSchristos                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1502*4724848cSchristos             }
1503*4724848cSchristos         }
1504*4724848cSchristos     }
1505*4724848cSchristos };
1506*4724848cSchristos 
test_poly1305(int idx)1507*4724848cSchristos static int test_poly1305(int idx)
1508*4724848cSchristos {
1509*4724848cSchristos     POLY1305 poly1305;
1510*4724848cSchristos     const TESTDATA test = tests[idx];
1511*4724848cSchristos     const unsigned char *in = test.input.data;
1512*4724848cSchristos     size_t inlen = test.input.size;
1513*4724848cSchristos     const unsigned char *key = test.key.data;
1514*4724848cSchristos     const unsigned char *expected = test.expected.data;
1515*4724848cSchristos     size_t expectedlen = test.expected.size;
1516*4724848cSchristos     unsigned char out[16];
1517*4724848cSchristos 
1518*4724848cSchristos     if (!TEST_size_t_eq(expectedlen, sizeof(out)))
1519*4724848cSchristos         return 0;
1520*4724848cSchristos 
1521*4724848cSchristos     Poly1305_Init(&poly1305, key);
1522*4724848cSchristos     Poly1305_Update(&poly1305, in, inlen);
1523*4724848cSchristos     Poly1305_Final(&poly1305, out);
1524*4724848cSchristos 
1525*4724848cSchristos     if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
1526*4724848cSchristos         TEST_info("Poly1305 test #%d failed.", idx);
1527*4724848cSchristos         return 0;
1528*4724848cSchristos     }
1529*4724848cSchristos 
1530*4724848cSchristos     if (inlen > 16) {
1531*4724848cSchristos         Poly1305_Init(&poly1305, key);
1532*4724848cSchristos         Poly1305_Update(&poly1305, in, 1);
1533*4724848cSchristos         Poly1305_Update(&poly1305, in+1, inlen-1);
1534*4724848cSchristos         Poly1305_Final(&poly1305, out);
1535*4724848cSchristos 
1536*4724848cSchristos         if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
1537*4724848cSchristos             TEST_info("Poly1305 test #%d/1+(N-1) failed.", idx);
1538*4724848cSchristos             return 0;
1539*4724848cSchristos         }
1540*4724848cSchristos     }
1541*4724848cSchristos 
1542*4724848cSchristos     if (inlen > 32) {
1543*4724848cSchristos         size_t half = inlen / 2;
1544*4724848cSchristos 
1545*4724848cSchristos         Poly1305_Init(&poly1305, key);
1546*4724848cSchristos         Poly1305_Update(&poly1305, in, half);
1547*4724848cSchristos         Poly1305_Update(&poly1305, in+half, inlen-half);
1548*4724848cSchristos         Poly1305_Final(&poly1305, out);
1549*4724848cSchristos 
1550*4724848cSchristos         if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
1551*4724848cSchristos             TEST_info("Poly1305 test #%d/2 failed.", idx);
1552*4724848cSchristos             return 0;
1553*4724848cSchristos         }
1554*4724848cSchristos 
1555*4724848cSchristos         for (half = 16; half < inlen; half += 16) {
1556*4724848cSchristos             Poly1305_Init(&poly1305, key);
1557*4724848cSchristos             Poly1305_Update(&poly1305, in, half);
1558*4724848cSchristos             Poly1305_Update(&poly1305, in+half, inlen-half);
1559*4724848cSchristos             Poly1305_Final(&poly1305, out);
1560*4724848cSchristos 
1561*4724848cSchristos             if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
1562*4724848cSchristos                 TEST_info("Poly1305 test #%d/%zu+%zu failed.",
1563*4724848cSchristos                           idx, half, inlen-half);
1564*4724848cSchristos                 return 0;
1565*4724848cSchristos             }
1566*4724848cSchristos         }
1567*4724848cSchristos     }
1568*4724848cSchristos 
1569*4724848cSchristos     return 1;
1570*4724848cSchristos }
1571*4724848cSchristos 
setup_tests(void)1572*4724848cSchristos int setup_tests(void)
1573*4724848cSchristos {
1574*4724848cSchristos     ADD_ALL_TESTS(test_poly1305, OSSL_NELEM(tests));
1575*4724848cSchristos     return 1;
1576*4724848cSchristos }
1577