Add support for Dual EC DRBG from SP800-90. Include updates to algorithm
[openssl.git] / fips / rand / fips_drbg_selftest.h
1 /* ====================================================================
2  * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer. 
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in
13  *    the documentation and/or other materials provided with the
14  *    distribution.
15  *
16  * 3. All advertising materials mentioning features or use of this
17  *    software must display the following acknowledgment:
18  *    "This product includes software developed by the OpenSSL Project
19  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20  *
21  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22  *    endorse or promote products derived from this software without
23  *    prior written permission. For written permission, please contact
24  *    openssl-core.org.
25  *
26  * 5. Products derived from this software may not be called "OpenSSL"
27  *    nor may "OpenSSL" appear in their names without prior written
28  *    permission of the OpenSSL Project.
29  *
30  * 6. Redistributions of any form whatsoever must retain the following
31  *    acknowledgment:
32  *    "This product includes software developed by the OpenSSL Project
33  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34  *
35  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46  * OF THE POSSIBILITY OF SUCH DAMAGE.
47  *
48  */
49
50 /* Selftest and health check data for the SP800-90 DRBG */
51
52
53 /* AES-128 use df PR  */
54 static const unsigned char aes_128_use_df_pr_entropyinput[] =
55         {
56         0x61,0x52,0x7c,0xe3,0x23,0x7d,0x0a,0x07,0x10,0x0c,0x50,0x33,
57         0xc8,0xdb,0xff,0x12
58         };
59
60 static const unsigned char aes_128_use_df_pr_nonce[] =
61         {
62         0x51,0x0d,0x85,0x77,0xed,0x22,0x97,0x28
63         };
64
65 static const unsigned char aes_128_use_df_pr_personalizationstring[] =
66         {
67         0x59,0x9f,0xbb,0xcd,0xd5,0x25,0x69,0xb5,0xcb,0xb5,0x03,0xfe,
68         0xd7,0xd7,0x01,0x67
69         };
70
71 static const unsigned char aes_128_use_df_pr_additionalinput[] =
72         {
73         0xef,0x88,0x76,0x01,0xaf,0x3c,0xfe,0x8b,0xaf,0x26,0x06,0x9e,
74         0x9a,0x47,0x08,0x76
75         };
76
77 static const unsigned char aes_128_use_df_pr_entropyinputpr[] =
78         {
79         0xe2,0x76,0xf9,0xf6,0x3a,0xba,0x10,0x9f,0xbf,0x47,0x0e,0x51,
80         0x09,0xfb,0xa3,0xb6
81         };
82
83 static const unsigned char aes_128_use_df_pr_int_returnedbits[] =
84         {
85         0xd4,0x98,0x8a,0x46,0x80,0x4c,0xdb,0xa3,0x59,0x02,0x57,0x52,
86         0x66,0x1c,0xea,0x5b
87         };
88
89 static const unsigned char aes_128_use_df_pr_additionalinput2[] =
90         {
91         0x88,0x8c,0x91,0xd6,0xbe,0x56,0x6e,0x08,0x9a,0x62,0x2b,0x11,
92         0x3f,0x5e,0x31,0x06
93         };
94
95 static const unsigned char aes_128_use_df_pr_entropyinputpr2[] =
96         {
97         0xc0,0x5c,0x6b,0x98,0x01,0x0d,0x58,0x18,0x51,0x18,0x96,0xae,
98         0xa7,0xe3,0xa8,0x67
99         };
100
101 static const unsigned char aes_128_use_df_pr_returnedbits[] =
102         {
103         0xcf,0x01,0xac,0x22,0x31,0x06,0x8e,0xfc,0xce,0x56,0xea,0x24,
104         0x0f,0x38,0x43,0xc6
105         };
106
107
108 /* AES-128 use df No PR  */
109 static const unsigned char aes_128_use_df_entropyinput[] =
110         {
111         0x1f,0x8e,0x34,0x82,0x0c,0xb7,0xbe,0xc5,0x01,0x3e,0xd0,0xa3,
112         0x9d,0x7d,0x1c,0x9b
113         };
114
115 static const unsigned char aes_128_use_df_nonce[] =
116         {
117         0xd5,0x4d,0xbd,0x4a,0x93,0x7f,0xb8,0x96
118         };
119
120 static const unsigned char aes_128_use_df_personalizationstring[] =
121         {
122         0xab,0xd6,0x3f,0x04,0xfe,0x27,0x6b,0x2d,0xd7,0xc3,0x1c,0xf3,
123         0x38,0x66,0xba,0x1b
124         };
125
126 static const unsigned char aes_128_use_df_additionalinput[] =
127         {
128         0xfe,0xf4,0x09,0xa8,0xb7,0x73,0x27,0x9c,0x5f,0xa7,0xea,0x46,
129         0xb5,0xe2,0xb2,0x41
130         };
131
132 static const unsigned char aes_128_use_df_int_returnedbits[] =
133         {
134         0x42,0xe4,0x4e,0x7b,0x27,0xdd,0xcb,0xbc,0x0a,0xcf,0xa6,0x67,
135         0xe7,0x57,0x11,0xb4
136         };
137
138 static const unsigned char aes_128_use_df_entropyinputreseed[] =
139         {
140         0x14,0x26,0x69,0xd9,0xf3,0x65,0x03,0xd6,0x6b,0xb9,0x44,0x0b,
141         0xc7,0xc4,0x9e,0x39
142         };
143
144 static const unsigned char aes_128_use_df_additionalinputreseed[] =
145         {
146         0x55,0x2e,0x60,0x9a,0x05,0x72,0x8a,0xa8,0xef,0x22,0x81,0x5a,
147         0xc8,0x93,0xfa,0x84
148         };
149
150 static const unsigned char aes_128_use_df_additionalinput2[] =
151         {
152         0x3c,0x40,0xc8,0xc4,0x16,0x0c,0x21,0xa4,0x37,0x2c,0x8f,0xa5,
153         0x06,0x0c,0x15,0x2c
154         };
155
156 static const unsigned char aes_128_use_df_returnedbits[] =
157         {
158         0xe1,0x3e,0x99,0x98,0x86,0x67,0x0b,0x63,0x7b,0xbe,0x3f,0x88,
159         0x46,0x81,0xc7,0x19
160         };
161
162
163 /* AES-192 use df PR  */
164 static const unsigned char aes_192_use_df_pr_entropyinput[] =
165         {
166         0x2b,0x4e,0x8b,0xe1,0xf1,0x34,0x80,0x56,0x81,0xf9,0x74,0xec,
167         0x17,0x44,0x2a,0xf1,0x14,0xb0,0xbf,0x97,0x39,0xb7,0x04,0x7d
168         };
169
170 static const unsigned char aes_192_use_df_pr_nonce[] =
171         {
172         0xd6,0x9d,0xeb,0x14,0x4e,0x6c,0x30,0x1e,0x39,0x55,0x73,0xd0,
173         0xd1,0x80,0x78,0xfa
174         };
175
176 static const unsigned char aes_192_use_df_pr_personalizationstring[] =
177         {
178         0xfc,0x43,0x4a,0xf8,0x9a,0x55,0xb3,0x53,0x83,0xe2,0x18,0x16,
179         0x0c,0xdc,0xcd,0x5e,0x4f,0xa0,0x03,0x01,0x2b,0x9f,0xe4,0xd5,
180         0x7d,0x49,0xf0,0x41,0x9e,0x3d,0x99,0x04
181         };
182
183 static const unsigned char aes_192_use_df_pr_additionalinput[] =
184         {
185         0x5e,0x9f,0x49,0x6f,0x21,0x8b,0x1d,0x32,0xd5,0x84,0x5c,0xac,
186         0xaf,0xdf,0xe4,0x79,0x9e,0xaf,0xa9,0x82,0xd0,0xf8,0x4f,0xcb,
187         0x69,0x10,0x0a,0x7e,0x81,0x57,0xb5,0x36
188         };
189
190 static const unsigned char aes_192_use_df_pr_entropyinputpr[] =
191         {
192         0xd4,0x81,0x0c,0xd7,0x66,0x39,0xec,0x42,0x53,0x87,0x41,0xa5,
193         0x1e,0x7d,0x80,0x91,0x8e,0xbb,0xed,0xac,0x14,0x02,0x1a,0xd5
194         };
195
196 static const unsigned char aes_192_use_df_pr_int_returnedbits[] =
197         {
198         0xdf,0x1d,0x39,0x45,0x7c,0x9b,0xc6,0x2b,0x7d,0x8c,0x93,0xe9,
199         0x19,0x30,0x6b,0x67
200         };
201
202 static const unsigned char aes_192_use_df_pr_additionalinput2[] =
203         {
204         0x00,0x71,0x27,0x4e,0xd3,0x14,0xf1,0x20,0x7f,0x4a,0x41,0x32,
205         0x2a,0x97,0x11,0x43,0x8f,0x4a,0x15,0x7b,0x9b,0x51,0x79,0xda,
206         0x49,0x3d,0xde,0xe8,0xbc,0x93,0x91,0x99
207         };
208
209 static const unsigned char aes_192_use_df_pr_entropyinputpr2[] =
210         {
211         0x90,0xee,0x76,0xa1,0x45,0x8d,0xb7,0x40,0xb0,0x11,0xbf,0xd0,
212         0x65,0xd7,0x3c,0x7c,0x4f,0x20,0x3f,0x4e,0x11,0x9d,0xb3,0x5e
213         };
214
215 static const unsigned char aes_192_use_df_pr_returnedbits[] =
216         {
217         0x24,0x3b,0x20,0xa4,0x37,0x66,0xba,0x72,0x39,0x3f,0xcf,0x3c,
218         0x7e,0x1a,0x2b,0x83
219         };
220
221
222 /* AES-192 use df No PR  */
223 static const unsigned char aes_192_use_df_entropyinput[] =
224         {
225         0x8d,0x74,0xa4,0x50,0x1a,0x02,0x68,0x0c,0x2a,0x69,0xc4,0x82,
226         0x3b,0xbb,0xda,0x0e,0x7f,0x77,0xa3,0x17,0x78,0x57,0xb2,0x7b
227         };
228
229 static const unsigned char aes_192_use_df_nonce[] =
230         {
231         0x75,0xd5,0x1f,0xac,0xa4,0x8d,0x42,0x78,0xd7,0x69,0x86,0x9d,
232         0x77,0xd7,0x41,0x0e
233         };
234
235 static const unsigned char aes_192_use_df_personalizationstring[] =
236         {
237         0x4e,0x33,0x41,0x3c,0x9c,0xc2,0xd2,0x53,0xaf,0x90,0xea,0xcf,
238         0x19,0x50,0x1e,0xe6,0x6f,0x63,0xc8,0x32,0x22,0xdc,0x07,0x65,
239         0x9c,0xd3,0xf8,0x30,0x9e,0xed,0x35,0x70
240         };
241
242 static const unsigned char aes_192_use_df_additionalinput[] =
243         {
244         0x5d,0x8b,0x8c,0xc1,0xdf,0x0e,0x02,0x78,0xfb,0x19,0xb8,0x69,
245         0x78,0x4e,0x9c,0x52,0xbc,0xc7,0x20,0xc9,0xe6,0x5e,0x77,0x22,
246         0x28,0x3d,0x0c,0x9e,0x68,0xa8,0x45,0xd7
247         };
248
249 static const unsigned char aes_192_use_df_int_returnedbits[] =
250         {
251         0xd5,0xe7,0x08,0xc5,0x19,0x99,0xd5,0x31,0x03,0x0a,0x74,0xb6,
252         0xb7,0xed,0xe9,0xea
253         };
254
255 static const unsigned char aes_192_use_df_entropyinputreseed[] =
256         {
257         0x9c,0x26,0xda,0xf1,0xac,0xd9,0x5a,0xd6,0xa8,0x65,0xf5,0x02,
258         0x8f,0xdc,0xa2,0x09,0x54,0xa6,0xe2,0xa4,0xde,0x32,0xe0,0x01
259         };
260
261 static const unsigned char aes_192_use_df_additionalinputreseed[] =
262         {
263         0x9b,0x90,0xb0,0x3a,0x0e,0x3a,0x80,0x07,0x4a,0xf4,0xda,0x76,
264         0x28,0x30,0x3c,0xee,0x54,0x1b,0x94,0x59,0x51,0x43,0x56,0x77,
265         0xaf,0x88,0xdd,0x63,0x89,0x47,0x06,0x65
266         };
267
268 static const unsigned char aes_192_use_df_additionalinput2[] =
269         {
270         0x3c,0x11,0x64,0x7a,0x96,0xf5,0xd8,0xb8,0xae,0xd6,0x70,0x4e,
271         0x16,0x96,0xde,0xe9,0x62,0xbc,0xee,0x28,0x2f,0x26,0xa6,0xf0,
272         0x56,0xef,0xa3,0xf1,0x6b,0xa1,0xb1,0x77
273         };
274
275 static const unsigned char aes_192_use_df_returnedbits[] =
276         {
277         0x0b,0xe2,0x56,0x03,0x1e,0xdb,0x2c,0x6d,0x7f,0x1b,0x15,0x58,
278         0x1a,0xf9,0x13,0x28
279         };
280
281
282 /* AES-256 use df PR  */
283 static const unsigned char aes_256_use_df_pr_entropyinput[] =
284         {
285         0x61,0x68,0xfc,0x1a,0xf0,0xb5,0x95,0x6b,0x85,0x09,0x9b,0x74,
286         0x3f,0x13,0x78,0x49,0x3b,0x85,0xec,0x93,0x13,0x3b,0xa9,0x4f,
287         0x96,0xab,0x2c,0xe4,0xc8,0x8f,0xdd,0x6a
288         };
289
290 static const unsigned char aes_256_use_df_pr_nonce[] =
291         {
292         0xad,0xd2,0xbb,0xba,0xb7,0x65,0x89,0xc3,0x21,0x6c,0x55,0x33,
293         0x2b,0x36,0xff,0xa4
294         };
295
296 static const unsigned char aes_256_use_df_pr_personalizationstring[] =
297         {
298         0x6e,0xca,0xe7,0x20,0x72,0xd3,0x84,0x5a,0x32,0xd3,0x4b,0x24,
299         0x72,0xc4,0x63,0x2b,0x9d,0x12,0x24,0x0c,0x23,0x26,0x8e,0x83,
300         0x16,0x37,0x0b,0xd1,0x06,0x4f,0x68,0x6d
301         };
302
303 static const unsigned char aes_256_use_df_pr_additionalinput[] =
304         {
305         0x7e,0x08,0x4a,0xbb,0xe3,0x21,0x7c,0xc9,0x23,0xd2,0xf8,0xb0,
306         0x73,0x98,0xba,0x84,0x74,0x23,0xab,0x06,0x8a,0xe2,0x22,0xd3,
307         0x7b,0xce,0x9b,0xd2,0x4a,0x76,0xb8,0xde
308         };
309
310 static const unsigned char aes_256_use_df_pr_entropyinputpr[] =
311         {
312         0x0b,0x23,0xaf,0xdf,0xf1,0x62,0xd7,0xd3,0x43,0x97,0xf8,0x77,
313         0x04,0xa8,0x42,0x20,0xbd,0xf6,0x0f,0xc1,0x17,0x2f,0x9f,0x54,
314         0xbb,0x56,0x17,0x86,0x68,0x0e,0xba,0xa9
315         };
316
317 static const unsigned char aes_256_use_df_pr_int_returnedbits[] =
318         {
319         0x31,0x8e,0xad,0xaf,0x40,0xeb,0x6b,0x74,0x31,0x46,0x80,0xc7,
320         0x17,0xab,0x3c,0x7a
321         };
322
323 static const unsigned char aes_256_use_df_pr_additionalinput2[] =
324         {
325         0x94,0x6b,0xc9,0x9f,0xab,0x8d,0xc5,0xec,0x71,0x88,0x1d,0x00,
326         0x8c,0x89,0x68,0xe4,0xc8,0x07,0x77,0x36,0x17,0x6d,0x79,0x78,
327         0xc7,0x06,0x4e,0x99,0x04,0x28,0x29,0xc3
328         };
329
330 static const unsigned char aes_256_use_df_pr_entropyinputpr2[] =
331         {
332         0xbf,0x6c,0x59,0x2a,0x0d,0x44,0x0f,0xae,0x9a,0x5e,0x03,0x73,
333         0xd8,0xa6,0xe1,0xcf,0x25,0x61,0x38,0x24,0x86,0x9e,0x53,0xe8,
334         0xa4,0xdf,0x56,0xf4,0x06,0x07,0x9c,0x0f
335         };
336
337 static const unsigned char aes_256_use_df_pr_returnedbits[] =
338         {
339         0x22,0x4a,0xb4,0xb8,0xb6,0xee,0x7d,0xb1,0x9e,0xc9,0xf9,0xa0,
340         0xd9,0xe2,0x97,0x00
341         };
342
343
344 /* AES-256 use df No PR  */
345 static const unsigned char aes_256_use_df_entropyinput[] =
346         {
347         0xa5,0x3e,0x37,0x10,0x17,0x43,0x91,0x93,0x59,0x1e,0x47,0x50,
348         0x87,0xaa,0xdd,0xd5,0xc1,0xc3,0x86,0xcd,0xca,0x0d,0xdb,0x68,
349         0xe0,0x02,0xd8,0x0f,0xdc,0x40,0x1a,0x47
350         };
351
352 static const unsigned char aes_256_use_df_nonce[] =
353         {
354         0xa9,0x4d,0xa5,0x5a,0xfd,0xc5,0x0c,0xe5,0x1c,0x9a,0x3b,0x8a,
355         0x4c,0x44,0x84,0x40
356         };
357
358 static const unsigned char aes_256_use_df_personalizationstring[] =
359         {
360         0x8b,0x52,0xa2,0x4a,0x93,0xc3,0x4e,0xa7,0x1e,0x1c,0xa7,0x05,
361         0xeb,0x82,0x9b,0xa6,0x5d,0xe4,0xd4,0xe0,0x7f,0xa3,0xd8,0x6b,
362         0x37,0x84,0x5f,0xf1,0xc7,0xd5,0xf6,0xd2
363         };
364
365 static const unsigned char aes_256_use_df_additionalinput[] =
366         {
367         0x20,0xf4,0x22,0xed,0xf8,0x5c,0xa1,0x6a,0x01,0xcf,0xbe,0x5f,
368         0x8d,0x6c,0x94,0x7f,0xae,0x12,0xa8,0x57,0xdb,0x2a,0xa9,0xbf,
369         0xc7,0xb3,0x65,0x81,0x80,0x8d,0x0d,0x46
370         };
371
372 static const unsigned char aes_256_use_df_int_returnedbits[] =
373         {
374         0x4e,0x44,0xfd,0xf3,0x9e,0x29,0xa2,0xb8,0x0f,0x5d,0x6c,0xe1,
375         0x28,0x0c,0x3b,0xc1
376         };
377
378 static const unsigned char aes_256_use_df_entropyinputreseed[] =
379         {
380         0xdd,0x40,0xe5,0x98,0x7b,0x27,0x16,0x73,0x15,0x68,0xd2,0x76,
381         0xbf,0x0c,0x67,0x15,0x75,0x79,0x03,0xd3,0xde,0xde,0x91,0x46,
382         0x42,0xdd,0xd4,0x67,0xc8,0x79,0xc8,0x1e
383         };
384
385 static const unsigned char aes_256_use_df_additionalinputreseed[] =
386         {
387         0x7f,0xd8,0x1f,0xbd,0x2a,0xb5,0x1c,0x11,0x5d,0x83,0x4e,0x99,
388         0xf6,0x5c,0xa5,0x40,0x20,0xed,0x38,0x8e,0xd5,0x9e,0xe0,0x75,
389         0x93,0xfe,0x12,0x5e,0x5d,0x73,0xfb,0x75
390         };
391
392 static const unsigned char aes_256_use_df_additionalinput2[] =
393         {
394         0xcd,0x2c,0xff,0x14,0x69,0x3e,0x4c,0x9e,0xfd,0xfe,0x26,0x0d,
395         0xe9,0x86,0x00,0x49,0x30,0xba,0xb1,0xc6,0x50,0x57,0x77,0x2a,
396         0x62,0x39,0x2c,0x3b,0x74,0xeb,0xc9,0x0d
397         };
398
399 static const unsigned char aes_256_use_df_returnedbits[] =
400         {
401         0x4f,0x78,0xbe,0xb9,0x4d,0x97,0x8c,0xe9,0xd0,0x97,0xfe,0xad,
402         0xfa,0xfd,0x35,0x5e
403         };
404
405
406 /* AES-128 no df PR  */
407 static const unsigned char aes_128_no_df_pr_entropyinput[] =
408         {
409         0x9a,0x25,0x65,0x10,0x67,0xd5,0xb6,0x6b,0x70,0xa1,0xb3,0xa4,
410         0x43,0x95,0x80,0xc0,0x84,0x0a,0x79,0xb0,0x88,0x74,0xf2,0xbf,
411         0x31,0x6c,0x33,0x38,0x0b,0x00,0xb2,0x5a
412         };
413
414 static const unsigned char aes_128_no_df_pr_nonce[] =
415         {
416         0x78,0x47,0x6b,0xf7,0x90,0x8e,0x87,0xf1
417         };
418
419 static const unsigned char aes_128_no_df_pr_personalizationstring[] =
420         {
421         0xf7,0x22,0x1d,0x3a,0xbe,0x1d,0xca,0x32,0x1b,0xbd,0x87,0x0c,
422         0x51,0x24,0x19,0xee,0xa3,0x23,0x09,0x63,0x33,0x3d,0xa8,0x0c,
423         0x1c,0xfa,0x42,0x89,0xcc,0x6f,0xa0,0xa8
424         };
425
426 static const unsigned char aes_128_no_df_pr_additionalinput[] =
427         {
428         0xc9,0xe0,0x80,0xbf,0x8c,0x45,0x58,0x39,0xff,0x00,0xab,0x02,
429         0x4c,0x3e,0x3a,0x95,0x9b,0x80,0xa8,0x21,0x2a,0xee,0xba,0x73,
430         0xb1,0xd9,0xcf,0x28,0xf6,0x8f,0x9b,0x12
431         };
432
433 static const unsigned char aes_128_no_df_pr_entropyinputpr[] =
434         {
435         0x4c,0xa8,0xc5,0xf0,0x59,0x9e,0xa6,0x8d,0x26,0x53,0xd7,0x8a,
436         0xa9,0xd8,0xf7,0xed,0xb2,0xf9,0x12,0x42,0xe1,0xe5,0xbd,0xe7,
437         0xe7,0x1d,0x74,0x99,0x00,0x9d,0x31,0x3e
438         };
439
440 static const unsigned char aes_128_no_df_pr_int_returnedbits[] =
441         {
442         0xe2,0xac,0x20,0xf0,0x80,0xe7,0xbc,0x7e,0x9c,0x7b,0x65,0x71,
443         0xaf,0x19,0x32,0x16
444         };
445
446 static const unsigned char aes_128_no_df_pr_additionalinput2[] =
447         {
448         0x32,0x7f,0x38,0x8b,0x73,0x0a,0x78,0x83,0xdc,0x30,0xbe,0x9f,
449         0x10,0x1f,0xf5,0x1f,0xca,0x00,0xb5,0x0d,0xd6,0x9d,0x60,0x83,
450         0x51,0x54,0x7d,0x38,0x23,0x3a,0x52,0x50
451         };
452
453 static const unsigned char aes_128_no_df_pr_entropyinputpr2[] =
454         {
455         0x18,0x61,0x53,0x56,0xed,0xed,0xd7,0x20,0xfb,0x71,0x04,0x7a,
456         0xb2,0xac,0xc1,0x28,0xcd,0xf2,0xc2,0xfc,0xaa,0xb1,0x06,0x07,
457         0xe9,0x46,0x95,0x02,0x48,0x01,0x78,0xf9
458         };
459
460 static const unsigned char aes_128_no_df_pr_returnedbits[] =
461         {
462         0x29,0xc8,0x1b,0x15,0xb1,0xd1,0xc2,0xf6,0x71,0x86,0x68,0x33,
463         0x57,0x82,0x33,0xaf
464         };
465
466
467 /* AES-128 no df No PR  */
468 static const unsigned char aes_128_no_df_entropyinput[] =
469         {
470         0xc9,0xc5,0x79,0xbc,0xe8,0xc5,0x19,0xd8,0xbc,0x66,0x73,0x67,
471         0xf6,0xd3,0x72,0xaa,0xa6,0x16,0xb8,0x50,0xb7,0x47,0x3a,0x42,
472         0xab,0xf4,0x16,0xb2,0x96,0xd2,0xb6,0x60
473         };
474
475 static const unsigned char aes_128_no_df_nonce[] =
476         {
477         0x5f,0xbf,0x97,0x0c,0x4b,0xa4,0x87,0x13
478         };
479
480 static const unsigned char aes_128_no_df_personalizationstring[] =
481         {
482         0xce,0xfb,0x7b,0x3f,0xd4,0x6b,0x29,0x0d,0x69,0x06,0xff,0xbb,
483         0xf2,0xe5,0xc6,0x6c,0x0a,0x10,0xa0,0xcf,0x1a,0x48,0xc7,0x8b,
484         0x3c,0x16,0x88,0xed,0x50,0x13,0x81,0xce
485         };
486
487 static const unsigned char aes_128_no_df_additionalinput[] =
488         {
489         0x4b,0x22,0x46,0x18,0x02,0x7b,0xd2,0x1b,0x22,0x42,0x7c,0x37,
490         0xd9,0xf6,0xe8,0x9b,0x12,0x30,0x5f,0xe9,0x90,0xe8,0x08,0x24,
491         0x4f,0x06,0x66,0xdb,0x19,0x2b,0x13,0x95
492         };
493
494 static const unsigned char aes_128_no_df_int_returnedbits[] =
495         {
496         0x2e,0x96,0x70,0x64,0xfa,0xdf,0xdf,0x57,0xb5,0x82,0xee,0xd6,
497         0xed,0x3e,0x65,0xc2
498         };
499
500 static const unsigned char aes_128_no_df_entropyinputreseed[] =
501         {
502         0x26,0xc0,0x72,0x16,0x3a,0x4b,0xb7,0x99,0xd4,0x07,0xaf,0x66,
503         0x62,0x36,0x96,0xa4,0x51,0x17,0xfa,0x07,0x8b,0x17,0x5e,0xa1,
504         0x2f,0x3c,0x10,0xe7,0x90,0xd0,0x46,0x00
505         };
506
507 static const unsigned char aes_128_no_df_additionalinputreseed[] =
508         {
509         0x83,0x39,0x37,0x7b,0x02,0x06,0xd2,0x12,0x13,0x8d,0x8b,0xf2,
510         0xf0,0xf6,0x26,0xeb,0xa4,0x22,0x7b,0xc2,0xe7,0xba,0x79,0xe4,
511         0x3b,0x77,0x5d,0x4d,0x47,0xb2,0x2d,0xb4
512         };
513
514 static const unsigned char aes_128_no_df_additionalinput2[] =
515         {
516         0x0b,0xb9,0x67,0x37,0xdb,0x83,0xdf,0xca,0x81,0x8b,0xf9,0x3f,
517         0xf1,0x11,0x1b,0x2f,0xf0,0x61,0xa6,0xdf,0xba,0xa3,0xb1,0xac,
518         0xd3,0xe6,0x09,0xb8,0x2c,0x6a,0x67,0xd6
519         };
520
521 static const unsigned char aes_128_no_df_returnedbits[] =
522         {
523         0x1e,0xa7,0xa4,0xe4,0xe1,0xa6,0x7c,0x69,0x9a,0x44,0x6c,0x36,
524         0x81,0x37,0x19,0xd4
525         };
526
527
528 /* AES-192 no df PR  */
529 static const unsigned char aes_192_no_df_pr_entropyinput[] =
530         {
531         0x9d,0x2c,0xd2,0x55,0x66,0xea,0xe0,0xbe,0x18,0xb7,0x76,0xe7,
532         0x73,0x35,0xd8,0x1f,0xad,0x3a,0xe3,0x81,0x0e,0x92,0xd0,0x61,
533         0xc9,0x12,0x26,0xf6,0x1c,0xdf,0xfe,0x47,0xaa,0xfe,0x7d,0x5a,
534         0x17,0x1f,0x8d,0x9a
535         };
536
537 static const unsigned char aes_192_no_df_pr_nonce[] =
538         {
539         0x44,0x82,0xed,0xe8,0x4c,0x28,0x5a,0x14,0xff,0x88,0x8d,0x19,
540         0x61,0x5c,0xee,0x0f
541         };
542
543 static const unsigned char aes_192_no_df_pr_personalizationstring[] =
544         {
545         0x47,0xd7,0x9b,0x99,0xaa,0xcb,0xe7,0xd2,0x57,0x66,0x2c,0xe1,
546         0x78,0xd6,0x2c,0xea,0xa3,0x23,0x5f,0x2a,0xc1,0x3a,0xf0,0xa4,
547         0x20,0x3b,0xfa,0x07,0xd5,0x05,0x02,0xe4,0x57,0x01,0xb6,0x10,
548         0x57,0x2e,0xe7,0x55
549         };
550
551 static const unsigned char aes_192_no_df_pr_additionalinput[] =
552         {
553         0x4b,0x74,0x0b,0x40,0xce,0x6b,0xc2,0x6a,0x24,0xb4,0xf3,0xad,
554         0x7a,0xa5,0x7a,0xa2,0x15,0xe2,0xc8,0x61,0x15,0xc6,0xb7,0x85,
555         0x69,0x11,0xad,0x7b,0x14,0xd2,0xf6,0x12,0xa1,0x95,0x5d,0x3f,
556         0xe2,0xd0,0x0c,0x2f
557         };
558
559 static const unsigned char aes_192_no_df_pr_entropyinputpr[] =
560         {
561         0x0c,0x9c,0xad,0x05,0xee,0xae,0x48,0x23,0x89,0x59,0xa1,0x94,
562         0xd7,0xd8,0x75,0xd5,0x54,0x93,0xc7,0x4a,0xd9,0x26,0xde,0xeb,
563         0xba,0xb0,0x7e,0x30,0x1d,0x5f,0x69,0x40,0x9c,0x3b,0x17,0x58,
564         0x1d,0x30,0xb3,0x78
565         };
566
567 static const unsigned char aes_192_no_df_pr_int_returnedbits[] =
568         {
569         0xf7,0x93,0xb0,0x6d,0x77,0x83,0xd5,0x38,0x01,0xe1,0x52,0x40,
570         0x7e,0x3e,0x0c,0x26
571         };
572
573 static const unsigned char aes_192_no_df_pr_additionalinput2[] =
574         {
575         0xbc,0x4b,0x37,0x44,0x1c,0xc5,0x45,0x5f,0x8f,0x51,0x62,0x8a,
576         0x85,0x30,0x1d,0x7c,0xe4,0xcf,0xf7,0x44,0xce,0x32,0x3e,0x57,
577         0x95,0xa4,0x2a,0xdf,0xfd,0x9e,0x38,0x41,0xb3,0xf6,0xc5,0xee,
578         0x0c,0x4b,0xee,0x6e
579         };
580
581 static const unsigned char aes_192_no_df_pr_entropyinputpr2[] =
582         {
583         0xec,0xaf,0xf6,0x4f,0xb1,0xa0,0x54,0xb5,0x5b,0xe3,0x46,0xb0,
584         0x76,0x5a,0x7c,0x3f,0x7b,0x94,0x69,0x21,0x51,0x02,0xe5,0x9f,
585         0x04,0x59,0x02,0x98,0xc6,0x43,0x2c,0xcc,0x26,0x4c,0x87,0x6b,
586         0x8e,0x0a,0x83,0xdf
587         };
588
589 static const unsigned char aes_192_no_df_pr_returnedbits[] =
590         {
591         0x74,0x45,0xfb,0x53,0x84,0x96,0xbe,0xff,0x15,0xcc,0x41,0x91,
592         0xb9,0xa1,0x21,0x68
593         };
594
595
596 /* AES-192 no df No PR  */
597 static const unsigned char aes_192_no_df_entropyinput[] =
598         {
599         0x3c,0x7d,0xb5,0xe0,0x54,0xd9,0x6e,0x8c,0xa9,0x86,0xce,0x4e,
600         0x6b,0xaf,0xeb,0x2f,0xe7,0x75,0xe0,0x8b,0xa4,0x3b,0x07,0xfe,
601         0xbe,0x33,0x75,0x93,0x80,0x27,0xb5,0x29,0x47,0x8b,0xc7,0x28,
602         0x94,0xc3,0x59,0x63
603         };
604
605 static const unsigned char aes_192_no_df_nonce[] =
606         {
607         0x43,0xf1,0x7d,0xb8,0xc3,0xfe,0xd0,0x23,0x6b,0xb4,0x92,0xdb,
608         0x29,0xfd,0x45,0x71
609         };
610
611 static const unsigned char aes_192_no_df_personalizationstring[] =
612         {
613         0x9f,0x24,0x29,0x99,0x9e,0x01,0xab,0xe9,0x19,0xd8,0x23,0x08,
614         0xb7,0xd6,0x7e,0x8c,0xc0,0x9e,0x7f,0x6e,0x5b,0x33,0x20,0x96,
615         0x0b,0x23,0x2c,0xa5,0x6a,0xf8,0x1b,0x04,0x26,0xdb,0x2e,0x2b,
616         0x3b,0x88,0xce,0x35
617         };
618
619 static const unsigned char aes_192_no_df_additionalinput[] =
620         {
621         0x94,0xe9,0x7c,0x3d,0xa7,0xdb,0x60,0x83,0x1f,0x98,0x3f,0x0b,
622         0x88,0x59,0x57,0x51,0x88,0x9f,0x76,0x49,0x9f,0xa6,0xda,0x71,
623         0x1d,0x0d,0x47,0x16,0x63,0xc5,0x68,0xe4,0x5d,0x39,0x69,0xb3,
624         0x3e,0xbe,0xd4,0x8e
625         };
626
627 static const unsigned char aes_192_no_df_int_returnedbits[] =
628         {
629         0xf9,0xd7,0xad,0x69,0xab,0x8f,0x23,0x56,0x70,0x17,0x4f,0x2a,
630         0x45,0xe7,0x4a,0xc5
631         };
632
633 static const unsigned char aes_192_no_df_entropyinputreseed[] =
634         {
635         0xa6,0x71,0x6a,0x3d,0xba,0xd1,0xe8,0x66,0xa6,0xef,0xb2,0x0e,
636         0xa8,0x9c,0xaa,0x4e,0xaf,0x17,0x89,0x50,0x00,0xda,0xa1,0xb1,
637         0x0b,0xa4,0xd9,0x35,0x89,0xc8,0xe5,0xb0,0xd9,0xb7,0xc4,0x33,
638         0x9b,0xcb,0x7e,0x75
639         };
640
641 static const unsigned char aes_192_no_df_additionalinputreseed[] =
642         {
643         0x27,0x21,0xfc,0xc2,0xbd,0xf3,0x3c,0xce,0xc3,0xca,0xc1,0x01,
644         0xe0,0xff,0x93,0x12,0x7d,0x54,0x42,0xe3,0x9f,0x03,0xdf,0x27,
645         0x04,0x07,0x3c,0x53,0x7f,0xa8,0x66,0xc8,0x97,0x4b,0x61,0x40,
646         0x5d,0x7a,0x25,0x79
647         };
648
649 static const unsigned char aes_192_no_df_additionalinput2[] =
650         {
651         0x2d,0x8e,0x16,0x5d,0x0b,0x9f,0xeb,0xaa,0xd6,0xec,0x28,0x71,
652         0x7c,0x0b,0xc1,0x1d,0xd4,0x44,0x19,0x47,0xfd,0x1d,0x7c,0xe5,
653         0xf3,0x27,0xe1,0xb6,0x72,0x0a,0xe0,0xec,0x0e,0xcd,0xef,0x1a,
654         0x91,0x6a,0xe3,0x5f
655         };
656
657 static const unsigned char aes_192_no_df_returnedbits[] =
658         {
659         0xe5,0xda,0xb8,0xe0,0x63,0x59,0x5a,0xcc,0x3d,0xdc,0x9f,0xe8,
660         0x66,0x67,0x2c,0x92
661         };
662
663
664 /* AES-256 no df PR  */
665 static const unsigned char aes_256_no_df_pr_entropyinput[] =
666         {
667         0x15,0xc7,0x5d,0xcb,0x41,0x4b,0x16,0x01,0x3a,0xd1,0x44,0xe8,
668         0x22,0x32,0xc6,0x9c,0x3f,0xe7,0x43,0xf5,0x9a,0xd3,0xea,0xf2,
669         0xd7,0x4e,0x6e,0x6a,0x55,0x73,0x40,0xef,0x89,0xad,0x0d,0x03,
670         0x96,0x7e,0x78,0x81,0x2f,0x91,0x1b,0x44,0xb0,0x02,0xba,0x1c
671         };
672
673 static const unsigned char aes_256_no_df_pr_nonce[] =
674         {
675         0xdc,0xe4,0xd4,0x27,0x7a,0x90,0xd7,0x99,0x43,0xa1,0x3c,0x30,
676         0xcc,0x4b,0xee,0x2e
677         };
678
679 static const unsigned char aes_256_no_df_pr_personalizationstring[] =
680         {
681         0xe3,0xe6,0xb9,0x11,0xe4,0x7a,0xa4,0x40,0x6b,0xf8,0x73,0xf7,
682         0x7e,0xec,0xc7,0xb9,0x97,0xbf,0xf8,0x25,0x7b,0xbe,0x11,0x9b,
683         0x5b,0x6a,0x0c,0x2e,0x2b,0x01,0x51,0xcd,0x41,0x4b,0x6b,0xac,
684         0x31,0xa8,0x0b,0xf7,0xe6,0x59,0x42,0xb8,0x03,0x0c,0xf8,0x06
685         };
686
687 static const unsigned char aes_256_no_df_pr_additionalinput[] =
688         {
689         0x6a,0x9f,0x00,0x91,0xae,0xfe,0xcf,0x84,0x99,0xce,0xb1,0x40,
690         0x6d,0x5d,0x33,0x28,0x84,0xf4,0x8c,0x63,0x4c,0x7e,0xbd,0x2c,
691         0x80,0x76,0xee,0x5a,0xaa,0x15,0x07,0x31,0xd8,0xbb,0x8c,0x69,
692         0x9d,0x9d,0xbc,0x7e,0x49,0xae,0xec,0x39,0x6b,0xd1,0x1f,0x7e
693         };
694
695 static const unsigned char aes_256_no_df_pr_entropyinputpr[] =
696         {
697         0xf3,0xb9,0x75,0x9c,0xbd,0x88,0xea,0xa2,0x50,0xad,0xd6,0x16,
698         0x1a,0x12,0x3c,0x86,0x68,0xaf,0x6f,0xbe,0x19,0xf2,0xee,0xcc,
699         0xa5,0x70,0x84,0x53,0x50,0xcb,0x9f,0x14,0xa9,0xe5,0xee,0xb9,
700         0x48,0x45,0x40,0xe2,0xc7,0xc9,0x9a,0x74,0xff,0x8c,0x99,0x1f
701         };
702
703 static const unsigned char aes_256_no_df_pr_int_returnedbits[] =
704         {
705         0x2e,0xf2,0x45,0x4c,0x62,0x2e,0x0a,0xb9,0x6b,0xa2,0xfd,0x56,
706         0x79,0x60,0x93,0xcf
707         };
708
709 static const unsigned char aes_256_no_df_pr_additionalinput2[] =
710         {
711         0xaf,0x69,0x20,0xe9,0x3b,0x37,0x9d,0x3f,0xb4,0x80,0x02,0x7a,
712         0x25,0x7d,0xb8,0xde,0x71,0xc5,0x06,0x0c,0xb4,0xe2,0x8f,0x35,
713         0xd8,0x14,0x0d,0x7f,0x76,0x63,0x4e,0xb5,0xee,0xe9,0x6f,0x34,
714         0xc7,0x5f,0x56,0x14,0x4a,0xe8,0x73,0x95,0x5b,0x1c,0xb9,0xcb
715         };
716
717 static const unsigned char aes_256_no_df_pr_entropyinputpr2[] =
718         {
719         0xe5,0xb0,0x2e,0x7e,0x52,0x30,0xe3,0x63,0x82,0xb6,0x44,0xd3,
720         0x25,0x19,0x05,0x24,0x9a,0x9f,0x5f,0x27,0x6a,0x29,0xab,0xfa,
721         0x07,0xa2,0x42,0x0f,0xc5,0xa8,0x94,0x7c,0x17,0x7b,0x85,0x83,
722         0x0c,0x25,0x0e,0x63,0x0b,0xe9,0x12,0x60,0xcd,0xef,0x80,0x0f
723         };
724
725 static const unsigned char aes_256_no_df_pr_returnedbits[] =
726         {
727         0x5e,0xf2,0x26,0xef,0x9f,0x58,0x5d,0xd5,0x4a,0x10,0xfe,0xa7,
728         0x2d,0x5f,0x4a,0x46
729         };
730
731
732 /* AES-256 no df No PR  */
733 static const unsigned char aes_256_no_df_entropyinput[] =
734         {
735         0xfb,0xcf,0x1b,0x61,0x16,0x89,0x78,0x23,0xf5,0xd8,0x96,0xe3,
736         0x4e,0x64,0x0b,0x29,0x9a,0x3f,0xf8,0xa5,0xed,0xf2,0xfe,0xdb,
737         0x16,0xca,0x7f,0x10,0xfa,0x5e,0x18,0x76,0x2c,0x63,0x5e,0x96,
738         0xcf,0xb3,0xd6,0xfc,0xaf,0x99,0x39,0x28,0x9c,0x61,0xe8,0xb3
739         };
740
741 static const unsigned char aes_256_no_df_nonce[] =
742         {
743         0x12,0x96,0xf0,0x52,0xf3,0x8d,0x81,0xcf,0xde,0x86,0xf2,0x99,
744         0x43,0x96,0xb9,0xf0
745         };
746
747 static const unsigned char aes_256_no_df_personalizationstring[] =
748         {
749         0x63,0x0d,0x78,0xf5,0x90,0x8e,0x32,0x47,0xb0,0x4d,0x37,0x60,
750         0x09,0x96,0xbc,0xbf,0x97,0x7a,0x62,0x14,0x45,0xbd,0x8d,0xcc,
751         0x69,0xfb,0x03,0xe1,0x80,0x1c,0xc7,0xe2,0x2a,0xf9,0x37,0x3f,
752         0x66,0x4d,0x62,0xd9,0x10,0xe0,0xad,0xc8,0x9a,0xf0,0xa8,0x6d
753         };
754
755 static const unsigned char aes_256_no_df_additionalinput[] =
756         {
757         0x36,0xc6,0x13,0x60,0xbb,0x14,0xad,0x22,0xb0,0x38,0xac,0xa6,
758         0x18,0x16,0x93,0x25,0x86,0xb7,0xdc,0xdc,0x36,0x98,0x2b,0xf9,
759         0x68,0x33,0xd3,0xc6,0xff,0xce,0x8d,0x15,0x59,0x82,0x76,0xed,
760         0x6f,0x8d,0x49,0x74,0x2f,0xda,0xdc,0x1f,0x17,0xd0,0xde,0x17
761         };
762
763 static const unsigned char aes_256_no_df_int_returnedbits[] =
764         {
765         0x16,0x2f,0x8e,0x3f,0x21,0x7a,0x1c,0x20,0x56,0xd1,0x92,0xf6,
766         0xd2,0x25,0x75,0x0e
767         };
768
769 static const unsigned char aes_256_no_df_entropyinputreseed[] =
770         {
771         0x91,0x79,0x76,0xee,0xe0,0xcf,0x9e,0xc2,0xd5,0xd4,0x23,0x9b,
772         0x12,0x8c,0x7e,0x0a,0xb7,0xd2,0x8b,0xd6,0x7c,0xa3,0xc6,0xe5,
773         0x0e,0xaa,0xc7,0x6b,0xae,0x0d,0xfa,0x53,0x06,0x79,0xa1,0xed,
774         0x4d,0x6a,0x0e,0xd8,0x9d,0xbe,0x1b,0x31,0x93,0x7b,0xec,0xfb
775         };
776
777 static const unsigned char aes_256_no_df_additionalinputreseed[] =
778         {
779         0xd2,0x46,0x50,0x22,0x10,0x14,0x63,0xf7,0xea,0x0f,0xb9,0x7e,
780         0x0d,0xe1,0x94,0x07,0xaf,0x09,0x44,0x31,0xea,0x64,0xa4,0x18,
781         0x5b,0xf9,0xd8,0xc2,0xfa,0x03,0x47,0xc5,0x39,0x43,0xd5,0x3b,
782         0x62,0x86,0x64,0xea,0x2c,0x73,0x8c,0xae,0x9d,0x98,0x98,0x29
783         };
784
785 static const unsigned char aes_256_no_df_additionalinput2[] =
786         {
787         0x8c,0xab,0x18,0xf8,0xc3,0xec,0x18,0x5c,0xb3,0x1e,0x9d,0xbe,
788         0x3f,0x03,0xb4,0x00,0x98,0x9d,0xae,0xeb,0xf4,0x94,0xf8,0x42,
789         0x8f,0xe3,0x39,0x07,0xe1,0xc9,0xad,0x0b,0x1f,0xed,0xc0,0xba,
790         0xf6,0xd1,0xec,0x27,0x86,0x7b,0xd6,0x55,0x9b,0x60,0xa5,0xc6
791         };
792
793 static const unsigned char aes_256_no_df_returnedbits[] =
794         {
795         0xef,0xd2,0xd8,0x5c,0xdc,0x62,0x25,0x9f,0xaa,0x1e,0x2c,0x67,
796         0xf6,0x02,0x32,0xe2
797         };
798
799
800 /* SHA-1 PR  */
801 static const unsigned char sha1_pr_entropyinput[] =
802         {
803         0xd2,0x36,0xa5,0x27,0x31,0x73,0xdd,0x11,0x4f,0x93,0xbd,0xe2,
804         0x31,0xa5,0x91,0x13
805         };
806
807 static const unsigned char sha1_pr_nonce[] =
808         {
809         0xb5,0xb3,0x60,0xef,0xf7,0x63,0x31,0xf3
810         };
811
812 static const unsigned char sha1_pr_personalizationstring[] =
813         {
814         0xd4,0xbb,0x02,0x10,0xb2,0x71,0xdb,0x81,0xd6,0xf0,0x42,0x60,
815         0xda,0xea,0x77,0x52
816         };
817
818 static const unsigned char sha1_pr_additionalinput[] =
819         {
820         0x4d,0xd2,0x6c,0x87,0xfb,0x2c,0x4f,0xa6,0x8d,0x16,0x63,0x22,
821         0x6a,0x51,0xe3,0xf8
822         };
823
824 static const unsigned char sha1_pr_entropyinputpr[] =
825         {
826         0xc9,0x83,0x9e,0x16,0xf6,0x1c,0x0f,0xb2,0xec,0x60,0x31,0xa9,
827         0xcb,0xa9,0x36,0x7a
828         };
829
830 static const unsigned char sha1_pr_int_returnedbits[] =
831         {
832         0xa8,0x13,0x4f,0xf4,0x31,0x02,0x44,0xe3,0xd3,0x3d,0x61,0x9e,
833         0xe5,0xc6,0x3e,0x89,0xb5,0x9b,0x0f,0x35
834         };
835
836 static const unsigned char sha1_pr_additionalinput2[] =
837         {
838         0xf9,0xe8,0xd2,0x72,0x13,0x34,0x95,0x6f,0x15,0x49,0x47,0x99,
839         0x16,0x03,0x19,0x47
840         };
841
842 static const unsigned char sha1_pr_entropyinputpr2[] =
843         {
844         0x4e,0x8c,0x49,0x9b,0x4a,0x5c,0x9b,0x9c,0x3a,0xee,0xfb,0xd2,
845         0xae,0xcd,0x8c,0xc4
846         };
847
848 static const unsigned char sha1_pr_returnedbits[] =
849         {
850         0x50,0xb4,0xb4,0xcd,0x68,0x57,0xfc,0x2e,0xc1,0x52,0xcc,0xf6,
851         0x68,0xa4,0x81,0xed,0x7e,0xe4,0x1d,0x87
852         };
853
854
855 /* SHA-1 No PR  */
856 static const unsigned char sha1_entropyinput[] =
857         {
858         0xa9,0x47,0x1b,0x29,0x2d,0x1c,0x05,0xdf,0x76,0xd0,0x62,0xf9,
859         0xe2,0x7f,0x4c,0x7b
860         };
861
862 static const unsigned char sha1_nonce[] =
863         {
864         0x53,0x23,0x24,0xe3,0xec,0x0c,0x54,0x14
865         };
866
867 static const unsigned char sha1_personalizationstring[] =
868         {
869         0x7a,0x87,0xa1,0xac,0x1c,0xfd,0xab,0xae,0xf7,0xd6,0xfb,0x76,
870         0x28,0xec,0x6d,0xca
871         };
872
873 static const unsigned char sha1_additionalinput[] =
874         {
875         0xfc,0x92,0x35,0xd6,0x7e,0xb7,0x24,0x65,0xfd,0x12,0x27,0x35,
876         0xc0,0x72,0xca,0x28
877         };
878
879 static const unsigned char sha1_int_returnedbits[] =
880         {
881         0x57,0x88,0x82,0xe5,0x25,0xa5,0x2c,0x4a,0x06,0x20,0x6c,0x72,
882         0x55,0x61,0xdd,0x90,0x71,0x9f,0x95,0xea
883         };
884
885 static const unsigned char sha1_entropyinputreseed[] =
886         {
887         0x69,0xa5,0x40,0x62,0x98,0x47,0x56,0x73,0x4a,0x8f,0x60,0x96,
888         0xd6,0x99,0x27,0xed
889         };
890
891 static const unsigned char sha1_additionalinputreseed[] =
892         {
893         0xe5,0x40,0x4e,0xbd,0x50,0x00,0xf5,0x15,0xa6,0xee,0x45,0xda,
894         0x84,0x3d,0xd4,0xc0
895         };
896
897 static const unsigned char sha1_additionalinput2[] =
898         {
899         0x11,0x51,0x14,0xf0,0x09,0x1b,0x4e,0x56,0x0d,0xe9,0xf6,0x1e,
900         0x52,0x65,0xcd,0x96
901         };
902
903 static const unsigned char sha1_returnedbits[] =
904         {
905         0xa1,0x9c,0x94,0x6e,0x29,0xe1,0x33,0x0d,0x32,0xd6,0xaa,0xce,
906         0x71,0x3f,0x52,0x72,0x8b,0x42,0xa8,0xd7
907         };
908
909
910 /* SHA-224 PR  */
911 static const unsigned char sha224_pr_entropyinput[] =
912         {
913         0x12,0x69,0x32,0x4f,0x83,0xa6,0xf5,0x14,0xe3,0x49,0x3e,0x75,
914         0x3e,0xde,0xad,0xa1,0x29,0xc3,0xf3,0x19,0x20,0xb5,0x4c,0xd9
915         };
916
917 static const unsigned char sha224_pr_nonce[] =
918         {
919         0x6a,0x78,0xd0,0xeb,0xbb,0x5a,0xf0,0xee,0xe8,0xc3,0xba,0x71
920         };
921
922 static const unsigned char sha224_pr_personalizationstring[] =
923         {
924         0xd5,0xb8,0xb6,0xbc,0xc1,0x5b,0x60,0x31,0x3c,0xf5,0xe5,0xc0,
925         0x8e,0x52,0x7a,0xbd,0xea,0x47,0xa9,0x5f,0x8f,0xf9,0x8b,0xae
926         };
927
928 static const unsigned char sha224_pr_additionalinput[] =
929         {
930         0x1f,0x55,0xec,0xae,0x16,0x12,0x84,0xba,0x84,0x16,0x19,0x88,
931         0x8e,0xb8,0x33,0x25,0x54,0xff,0xca,0x79,0xaf,0x07,0x25,0x50
932         };
933
934 static const unsigned char sha224_pr_entropyinputpr[] =
935         {
936         0x92,0xa3,0x32,0xa8,0x9a,0x0a,0x58,0x7c,0x1d,0x5a,0x7e,0xe1,
937         0xb2,0x73,0xab,0x0e,0x16,0x79,0x23,0xd3,0x29,0x89,0x81,0xe1
938         };
939
940 static const unsigned char sha224_pr_int_returnedbits[] =
941         {
942         0xf3,0x38,0x91,0x40,0x37,0x7a,0x51,0x72,0x42,0x74,0x78,0x0a,
943         0x69,0xfd,0xa6,0x44,0x43,0x45,0x6c,0x0c,0x5a,0x19,0xff,0xf1,
944         0x54,0x60,0xee,0x6a
945         };
946
947 static const unsigned char sha224_pr_additionalinput2[] =
948         {
949         0x75,0xf3,0x04,0x25,0xdd,0x36,0xa8,0x37,0x46,0xae,0x0c,0x52,
950         0x05,0x79,0x4c,0x26,0xdb,0xe9,0x71,0x16,0x4c,0x0a,0xf2,0x60
951         };
952
953 static const unsigned char sha224_pr_entropyinputpr2[] =
954         {
955         0xea,0xc5,0x03,0x0a,0x4f,0xb0,0x38,0x8d,0x23,0xd4,0xc8,0x77,
956         0xe2,0x6d,0x9c,0x0b,0x44,0xf7,0x2d,0x5b,0xbf,0x5d,0x2a,0x11
957         };
958
959 static const unsigned char sha224_pr_returnedbits[] =
960         {
961         0x60,0x50,0x2b,0xe7,0x86,0xd8,0x26,0x73,0xe3,0x1d,0x95,0x20,
962         0xb3,0x2c,0x32,0x1c,0xf5,0xce,0x57,0xa6,0x67,0x2b,0xdc,0x4e,
963         0xdd,0x11,0x4c,0xc4
964         };
965
966
967 /* SHA-224 No PR  */
968 static const unsigned char sha224_entropyinput[] =
969         {
970         0xb2,0x1c,0x77,0x4d,0xf6,0xd3,0xb6,0x40,0xb7,0x30,0x3e,0x29,
971         0xb0,0x85,0x1c,0xbe,0x4a,0xea,0x6b,0x5a,0xb5,0x8a,0x97,0xeb
972         };
973
974 static const unsigned char sha224_nonce[] =
975         {
976         0x42,0x02,0x0a,0x1c,0x98,0x9a,0x77,0x9e,0x9f,0x80,0xba,0xe0
977         };
978
979 static const unsigned char sha224_personalizationstring[] =
980         {
981         0x98,0xb8,0x04,0x41,0xfc,0xc1,0x5d,0xc5,0xe9,0xb9,0x08,0xda,
982         0xf9,0xfa,0x0d,0x90,0xce,0xdf,0x1d,0x10,0xa9,0x8d,0x50,0x0c
983         };
984
985 static const unsigned char sha224_additionalinput[] =
986         {
987         0x9a,0x8d,0x39,0x49,0x42,0xd5,0x0b,0xae,0xe1,0xaf,0xb7,0x00,
988         0x02,0xfa,0x96,0xb1,0xa5,0x1d,0x2d,0x25,0x78,0xee,0x83,0x3f
989         };
990
991 static const unsigned char sha224_int_returnedbits[] =
992         {
993         0xe4,0xf5,0x53,0x79,0x5a,0x97,0x58,0x06,0x08,0xba,0x7b,0xfa,
994         0xf0,0x83,0x05,0x8c,0x22,0xc0,0xc9,0xdb,0x15,0xe7,0xde,0x20,
995         0x55,0x22,0x9a,0xad
996         };
997
998 static const unsigned char sha224_entropyinputreseed[] =
999         {
1000         0x67,0x09,0x48,0xaa,0x07,0x16,0x99,0x89,0x7f,0x6d,0xa0,0xe5,
1001         0x8f,0xdf,0xbc,0xdb,0xfe,0xe5,0x6c,0x7a,0x95,0x4a,0x66,0x17
1002         };
1003
1004 static const unsigned char sha224_additionalinputreseed[] =
1005         {
1006         0x0f,0x4b,0x1c,0x6f,0xb7,0xe3,0x47,0xe5,0x5d,0x7d,0x38,0xd6,
1007         0x28,0x9b,0xeb,0x55,0x63,0x09,0x3e,0x7c,0x56,0xea,0xf8,0x19
1008         };
1009
1010 static const unsigned char sha224_additionalinput2[] =
1011         {
1012         0x2d,0x26,0x7c,0x37,0xe4,0x7a,0x28,0x5e,0x5a,0x3c,0xaf,0x3d,
1013         0x5a,0x8e,0x55,0xa2,0x1a,0x6e,0xc0,0xe5,0xf6,0x21,0xd3,0xf6
1014         };
1015
1016 static const unsigned char sha224_returnedbits[] =
1017         {
1018         0x4d,0x83,0x35,0xdf,0x67,0xa9,0xfc,0x17,0xda,0x70,0xcc,0x8b,
1019         0x7f,0x77,0xae,0xa2,0x5f,0xb9,0x7e,0x74,0x4c,0x26,0xc1,0x7a,
1020         0x3b,0xa7,0x5c,0x93
1021         };
1022
1023
1024 /* SHA-256 PR  */
1025 static const unsigned char sha256_pr_entropyinput[] =
1026         {
1027         0xce,0x49,0x00,0x7a,0x56,0xe3,0x67,0x8f,0xe1,0xb6,0xa7,0xd4,
1028         0x4f,0x08,0x7a,0x1b,0x01,0xf4,0xfa,0x6b,0xef,0xb7,0xe5,0xeb,
1029         0x07,0x3d,0x11,0x0d,0xc8,0xea,0x2b,0xfe
1030         };
1031
1032 static const unsigned char sha256_pr_nonce[] =
1033         {
1034         0x73,0x41,0xc8,0x92,0x94,0xe2,0xc5,0x5f,0x93,0xfd,0x39,0x5d,
1035         0x2b,0x91,0x4d,0x38
1036         };
1037
1038 static const unsigned char sha256_pr_personalizationstring[] =
1039         {
1040         0x50,0x6d,0x01,0x01,0x07,0x5a,0x80,0x35,0x7a,0x56,0x1a,0x56,
1041         0x2f,0x9a,0x0b,0x35,0xb2,0xb1,0xc9,0xe5,0xca,0x69,0x61,0x48,
1042         0xff,0xfb,0x0f,0xd9,0x4b,0x79,0x1d,0xba
1043         };
1044
1045 static const unsigned char sha256_pr_additionalinput[] =
1046         {
1047         0x20,0xb8,0xdf,0x44,0x77,0x5a,0xb8,0xd3,0xbf,0xf6,0xcf,0xac,
1048         0x5e,0xa6,0x96,0x62,0x73,0x44,0x40,0x4a,0x30,0xfb,0x38,0xa5,
1049         0x7b,0x0d,0xe4,0x0d,0xc6,0xe4,0x9a,0x1f
1050         };
1051
1052 static const unsigned char sha256_pr_entropyinputpr[] =
1053         {
1054         0x04,0xc4,0x65,0xf4,0xd3,0xbf,0x83,0x4b,0xab,0xc8,0x41,0xa8,
1055         0xc2,0xe0,0x44,0x63,0x77,0x4c,0x6f,0x6c,0x49,0x46,0xff,0x94,
1056         0x17,0xea,0xe6,0x1a,0x9d,0x5e,0x66,0x78
1057         };
1058
1059 static const unsigned char sha256_pr_int_returnedbits[] =
1060         {
1061         0x07,0x4d,0xac,0x9b,0x86,0xca,0x4a,0xaa,0x6e,0x7a,0x03,0xa2,
1062         0x5d,0x10,0xea,0x0b,0xf9,0x83,0xcc,0xd1,0xfc,0xe2,0x07,0xc7,
1063         0x06,0x34,0x60,0x6f,0x83,0x94,0x99,0x76
1064         };
1065
1066 static const unsigned char sha256_pr_additionalinput2[] =
1067         {
1068         0x89,0x4e,0x45,0x8c,0x11,0xf9,0xbc,0x5b,0xac,0x74,0x8b,0x4b,
1069         0x5f,0xf7,0x19,0xf3,0xf5,0x24,0x54,0x14,0xd1,0x15,0xb1,0x43,
1070         0x12,0xa4,0x5f,0xd4,0xec,0xfc,0xcd,0x09
1071         };
1072
1073 static const unsigned char sha256_pr_entropyinputpr2[] =
1074         {
1075         0x0e,0xeb,0x1f,0xd7,0xfc,0xd1,0x9d,0xd4,0x05,0x36,0x8b,0xb2,
1076         0xfb,0xe4,0xf4,0x51,0x0c,0x87,0x9b,0x02,0x44,0xd5,0x92,0x4d,
1077         0x44,0xfe,0x1a,0x03,0x43,0x56,0xbd,0x86
1078         };
1079
1080 static const unsigned char sha256_pr_returnedbits[] =
1081         {
1082         0x02,0xaa,0xb6,0x1d,0x7e,0x2a,0x40,0x03,0x69,0x2d,0x49,0xa3,
1083         0x41,0xe7,0x44,0x0b,0xaf,0x7b,0x85,0xe4,0x5f,0x53,0x3b,0x64,
1084         0xbc,0x89,0xc8,0x82,0xd4,0x78,0x37,0xa2
1085         };
1086
1087
1088 /* SHA-256 No PR  */
1089 static const unsigned char sha256_entropyinput[] =
1090         {
1091         0x5b,0x1b,0xec,0x4d,0xa9,0x38,0x74,0x5a,0x34,0x0b,0x7b,0xc5,
1092         0xe5,0xd7,0x66,0x7c,0xbc,0x82,0xb9,0x0e,0x2d,0x1f,0x92,0xd7,
1093         0xc1,0xbc,0x67,0x69,0xec,0x6b,0x03,0x3c
1094         };
1095
1096 static const unsigned char sha256_nonce[] =
1097         {
1098         0xa4,0x0c,0xd8,0x9c,0x61,0xd8,0xc3,0x54,0xfe,0x53,0xc9,0xe5,
1099         0x5d,0x6f,0x6d,0x35
1100         };
1101
1102 static const unsigned char sha256_personalizationstring[] =
1103         {
1104         0x22,0x5e,0x62,0x93,0x42,0x83,0x78,0x24,0xd8,0x40,0x8c,0xde,
1105         0x6f,0xf9,0xa4,0x7a,0xc5,0xa7,0x3b,0x88,0xa3,0xee,0x42,0x20,
1106         0xfd,0x61,0x56,0xc6,0x4c,0x13,0x41,0x9c
1107         };
1108
1109 static const unsigned char sha256_additionalinput[] =
1110         {
1111         0xbf,0x74,0x5b,0xf6,0xc5,0x64,0x5e,0x99,0x34,0x8f,0xbc,0xa4,
1112         0xe2,0xbd,0xd8,0x85,0x26,0x37,0xea,0xba,0x4f,0xf2,0x9a,0x9a,
1113         0x66,0xfc,0xdf,0x63,0x26,0x26,0x19,0x87
1114         };
1115
1116 static const unsigned char sha256_int_returnedbits[] =
1117         {
1118         0xb3,0xc6,0x07,0x07,0xd6,0x75,0xf6,0x2b,0xd6,0x21,0x96,0xf1,
1119         0xae,0xdb,0x2b,0xac,0x25,0x2a,0xae,0xae,0x41,0x72,0x03,0x5e,
1120         0xbf,0xd3,0x64,0xbc,0x59,0xf9,0xc0,0x76
1121         };
1122
1123 static const unsigned char sha256_entropyinputreseed[] =
1124         {
1125         0xbf,0x20,0x33,0x56,0x29,0xa8,0x37,0x04,0x1f,0x78,0x34,0x3d,
1126         0x81,0x2a,0xc9,0x86,0xc6,0x7a,0x2f,0x88,0x5e,0xd5,0xbe,0x34,
1127         0x46,0x20,0xa4,0x35,0xeb,0xc7,0xe2,0x9d
1128         };
1129
1130 static const unsigned char sha256_additionalinputreseed[] =
1131         {
1132         0x9b,0xae,0x2d,0x2d,0x61,0xa4,0x89,0xeb,0x43,0x46,0xa7,0xda,
1133         0xef,0x40,0xca,0x4a,0x99,0x11,0x41,0xdc,0x5c,0x94,0xe9,0xac,
1134         0xd4,0xd0,0xe6,0xbd,0xfb,0x03,0x9c,0xa8
1135         };
1136
1137 static const unsigned char sha256_additionalinput2[] =
1138         {
1139         0x23,0xaa,0x0c,0xbd,0x28,0x33,0xe2,0x51,0xfc,0x71,0xd2,0x15,
1140         0x1f,0x76,0xfd,0x0d,0xe0,0xb7,0xb5,0x84,0x75,0x5b,0xbe,0xf3,
1141         0x5c,0xca,0xc5,0x30,0xf2,0x75,0x1f,0xda
1142         };
1143
1144 static const unsigned char sha256_returnedbits[] =
1145         {
1146         0x90,0x3c,0xc1,0x10,0x8c,0x12,0x01,0xc6,0xa6,0x3a,0x0f,0x4d,
1147         0xb6,0x3a,0x4f,0x41,0x9c,0x61,0x75,0x84,0xe9,0x74,0x75,0xfd,
1148         0xfe,0xf2,0x1f,0x43,0xd8,0x5e,0x24,0xa3
1149         };
1150
1151
1152 /* SHA-384 PR  */
1153 static const unsigned char sha384_pr_entropyinput[] =
1154         {
1155         0x71,0x9d,0xb2,0x5a,0x71,0x6d,0x04,0xe9,0x1e,0xc7,0x92,0x24,
1156         0x6e,0x12,0x33,0xa9,0x52,0x64,0x31,0xef,0x71,0xeb,0x22,0x55,
1157         0x28,0x97,0x06,0x6a,0xc0,0x0c,0xa0,0x7e
1158         };
1159
1160 static const unsigned char sha384_pr_nonce[] =
1161         {
1162         0xf5,0x0d,0xfa,0xb0,0xec,0x6a,0x7c,0xd6,0xbd,0x9b,0x05,0xfd,
1163         0x38,0x3e,0x2e,0x56
1164         };
1165
1166 static const unsigned char sha384_pr_personalizationstring[] =
1167         {
1168         0x74,0xac,0x7e,0x6d,0xb1,0xa4,0xe7,0x21,0xd1,0x1e,0x6e,0x96,
1169         0x6d,0x4d,0x53,0x46,0x82,0x96,0x6e,0xcf,0xaa,0x81,0x8d,0x7d,
1170         0x9e,0xe1,0x0f,0x15,0xea,0x41,0xbf,0xe3
1171         };
1172
1173 static const unsigned char sha384_pr_additionalinput[] =
1174         {
1175         0xda,0x95,0xd4,0xd0,0xb8,0x11,0xd3,0x49,0x27,0x5d,0xa9,0x39,
1176         0x68,0xf3,0xa8,0xe9,0x5d,0x19,0x8a,0x2b,0x66,0xe8,0x69,0x06,
1177         0x7c,0x9e,0x03,0xa1,0x8b,0x26,0x2d,0x6e
1178         };
1179
1180 static const unsigned char sha384_pr_entropyinputpr[] =
1181         {
1182         0x49,0xdf,0x44,0x00,0xe4,0x1c,0x75,0x0b,0x26,0x5a,0x59,0x64,
1183         0x1f,0x4e,0xb1,0xb2,0x13,0xf1,0x22,0x4e,0xb4,0x6d,0x9a,0xcc,
1184         0xa0,0x48,0xe6,0xcf,0x1d,0xd1,0x92,0x0d
1185         };
1186
1187 static const unsigned char sha384_pr_int_returnedbits[] =
1188         {
1189         0xc8,0x52,0xae,0xbf,0x04,0x3c,0x27,0xb7,0x78,0x18,0xaa,0x8f,
1190         0xff,0xcf,0xa4,0xf1,0xcc,0xe7,0x68,0xfa,0x22,0xa2,0x13,0x45,
1191         0xe8,0xdd,0x87,0xe6,0xf2,0x6e,0xdd,0xc7,0x52,0x90,0x9f,0x7b,
1192         0xfa,0x61,0x2d,0x9d,0x9e,0xcf,0x98,0xac,0x52,0x40,0xce,0xaf
1193         };
1194
1195 static const unsigned char sha384_pr_additionalinput2[] =
1196         {
1197         0x61,0x7c,0x03,0x9a,0x3e,0x50,0x57,0x60,0xc5,0x83,0xc9,0xb2,
1198         0xd1,0x87,0x85,0x66,0x92,0x5d,0x84,0x0e,0x53,0xfb,0x70,0x03,
1199         0x72,0xfd,0xba,0xae,0x9c,0x8f,0xf8,0x18
1200         };
1201
1202 static const unsigned char sha384_pr_entropyinputpr2[] =
1203         {
1204         0xf8,0xeb,0x89,0xb1,0x8d,0x78,0xbe,0x21,0xe0,0xbb,0x9d,0xb7,
1205         0x95,0x0e,0xd9,0x46,0x0c,0x8c,0xe2,0x63,0xb7,0x9d,0x67,0x90,
1206         0xbd,0xc7,0x0b,0xa5,0xce,0xb2,0x65,0x81
1207         };
1208
1209 static const unsigned char sha384_pr_returnedbits[] =
1210         {
1211         0xe6,0x9f,0xfe,0x68,0xd6,0xb5,0x79,0xf1,0x06,0x5f,0xa3,0xbb,
1212         0x23,0x85,0xd8,0xf0,0x29,0x5a,0x68,0x9e,0xf5,0xf4,0xa6,0x12,
1213         0xe0,0x9a,0xe2,0xac,0x00,0x1d,0x98,0x26,0xfc,0x53,0x95,0x53,
1214         0xe4,0x3e,0x17,0xd5,0x08,0x0b,0x70,0x3d,0x67,0x99,0xac,0x66
1215         };
1216
1217
1218 /* SHA-384 No PR  */
1219 static const unsigned char sha384_entropyinput[] =
1220         {
1221         0x07,0x15,0x27,0x2a,0xaf,0x74,0x24,0x37,0xbc,0xd5,0x14,0x69,
1222         0xce,0x11,0xff,0xa2,0x6b,0xb8,0x05,0x67,0x34,0xf8,0xbd,0x6d,
1223         0x6a,0xcc,0xcd,0x60,0xa3,0x68,0xca,0xf4
1224         };
1225
1226 static const unsigned char sha384_nonce[] =
1227         {
1228         0x70,0x17,0xc2,0x5b,0x5d,0x22,0x0b,0x06,0x15,0x54,0x78,0x77,
1229         0x44,0xaf,0x2f,0x09
1230         };
1231
1232 static const unsigned char sha384_personalizationstring[] =
1233         {
1234         0x89,0x39,0x28,0xb0,0x60,0xeb,0x3d,0xdc,0x55,0x75,0x86,0xeb,
1235         0xae,0xa2,0x8f,0xbc,0x1b,0x75,0xd4,0xe1,0x0f,0xaa,0x38,0xca,
1236         0x62,0x8b,0xcb,0x2c,0x26,0xf6,0xbc,0xb1
1237         };
1238
1239 static const unsigned char sha384_additionalinput[] =
1240         {
1241         0x30,0x2b,0x42,0x35,0xef,0xda,0x40,0x55,0x28,0xc6,0x95,0xfb,
1242         0x54,0x01,0x62,0xd7,0x87,0x14,0x48,0x6d,0x90,0x4c,0xa9,0x02,
1243         0x54,0x40,0x22,0xc8,0x66,0xa5,0x48,0x48
1244         };
1245
1246 static const unsigned char sha384_int_returnedbits[] =
1247         {
1248         0x82,0xc4,0xa1,0x9c,0x21,0xd2,0xe7,0xa5,0xa6,0xf6,0x5f,0x04,
1249         0x5c,0xc7,0x31,0x9d,0x8d,0x59,0x74,0x50,0x19,0x89,0x2f,0x63,
1250         0xd5,0xb7,0x7e,0xeb,0x15,0xe3,0x70,0x83,0xa1,0x24,0x59,0xfa,
1251         0x2c,0x56,0xf6,0x88,0x3a,0x92,0x93,0xa1,0xfb,0x79,0xc1,0x7a
1252         };
1253
1254 static const unsigned char sha384_entropyinputreseed[] =
1255         {
1256         0x39,0xa6,0xe8,0x5c,0x82,0x17,0x71,0x26,0x57,0x4f,0x9f,0xc2,
1257         0x55,0xff,0x5c,0x9b,0x53,0x1a,0xd1,0x5f,0xbc,0x62,0xe4,0x27,
1258         0x2d,0x32,0xf0,0xe4,0x52,0x8c,0xc5,0x0c
1259         };
1260
1261 static const unsigned char sha384_additionalinputreseed[] =
1262         {
1263         0x8d,0xcb,0x8d,0xce,0x08,0xea,0x80,0xe8,0x9b,0x61,0xa8,0x0f,
1264         0xaf,0x49,0x20,0x9e,0x74,0xcb,0x57,0x80,0x42,0xb0,0x84,0x5e,
1265         0x30,0x2a,0x67,0x08,0xf4,0xe3,0x40,0x22
1266         };
1267
1268 static const unsigned char sha384_additionalinput2[] =
1269         {
1270         0x7c,0x8f,0xc2,0xae,0x22,0x4a,0xd6,0xf6,0x05,0xa4,0x7a,0xea,
1271         0xbb,0x25,0xd0,0xb7,0x5a,0xd6,0xcf,0x9d,0xf3,0x6c,0xe2,0xb2,
1272         0x4e,0xb4,0xbd,0xf4,0xe5,0x40,0x80,0x94
1273         };
1274
1275 static const unsigned char sha384_returnedbits[] =
1276         {
1277         0x9e,0x7e,0xfb,0x59,0xbb,0xaa,0x3c,0xf7,0xe1,0xf8,0x76,0xdd,
1278         0x63,0x5f,0xaf,0x23,0xd6,0x64,0x61,0xc0,0x9a,0x09,0x47,0xc9,
1279         0x33,0xdf,0x6d,0x55,0x91,0x34,0x79,0x70,0xc4,0x99,0x6e,0x54,
1280         0x09,0x64,0x21,0x1a,0xbd,0x1e,0x80,0x40,0x34,0xad,0xfa,0xd7
1281         };
1282
1283
1284 /* SHA-512 PR  */
1285 static const unsigned char sha512_pr_entropyinput[] =
1286         {
1287         0x13,0xf7,0x61,0x75,0x65,0x28,0xa2,0x59,0x13,0x5a,0x4a,0x4f,
1288         0x56,0x60,0x8c,0x53,0x7d,0xb0,0xbd,0x06,0x4f,0xed,0xcc,0xd2,
1289         0xa2,0xb5,0xfd,0x5b,0x3a,0xab,0xec,0x28
1290         };
1291
1292 static const unsigned char sha512_pr_nonce[] =
1293         {
1294         0xbe,0xa3,0x91,0x93,0x1d,0xc3,0x31,0x3a,0x23,0x33,0x50,0x67,
1295         0x88,0xc7,0xa2,0xc4
1296         };
1297
1298 static const unsigned char sha512_pr_personalizationstring[] =
1299         {
1300         0x1f,0x59,0x4d,0x7b,0xe6,0x46,0x91,0x48,0xc1,0x25,0xfa,0xff,
1301         0x89,0x12,0x77,0x35,0xdf,0x3e,0xf4,0x80,0x5f,0xd9,0xb0,0x07,
1302         0x22,0x41,0xdd,0x48,0x78,0x6b,0x77,0x2b
1303         };
1304
1305 static const unsigned char sha512_pr_additionalinput[] =
1306         {
1307         0x30,0xff,0x63,0x6f,0xac,0xd9,0x84,0x39,0x6f,0xe4,0x99,0xce,
1308         0x91,0x7d,0x7e,0xc8,0x58,0xf2,0x12,0xc3,0xb6,0xad,0xda,0x22,
1309         0x04,0xa0,0xd2,0x21,0xfe,0xf2,0x95,0x1d
1310         };
1311
1312 static const unsigned char sha512_pr_entropyinputpr[] =
1313         {
1314         0x64,0x54,0x13,0xec,0x4f,0x77,0xda,0xb2,0x92,0x2e,0x52,0x80,
1315         0x11,0x10,0xc2,0xf8,0xe6,0xa7,0xcd,0x4b,0xfc,0x32,0x2e,0x9e,
1316         0xeb,0xbb,0xb1,0xbf,0x15,0x5c,0x73,0x08
1317         };
1318
1319 static const unsigned char sha512_pr_int_returnedbits[] =
1320         {
1321         0xef,0x1e,0xdc,0x0a,0xa4,0x36,0x91,0x9c,0x3d,0x27,0x97,0x50,
1322         0x8d,0x36,0x29,0x8d,0xce,0x6a,0x0c,0xf7,0x21,0xc0,0x91,0xae,
1323         0x0c,0x96,0x72,0xbd,0x52,0x81,0x58,0xfc,0x6d,0xe5,0xf7,0xa5,
1324         0xfd,0x5d,0xa7,0x58,0x68,0xc8,0x99,0x58,0x8e,0xc8,0xce,0x95,
1325         0x01,0x7d,0xff,0xa4,0xc8,0xf7,0x63,0xfe,0x5f,0x69,0x83,0x53,
1326         0xe2,0xc6,0x8b,0xc3
1327         };
1328
1329 static const unsigned char sha512_pr_additionalinput2[] =
1330         {
1331         0xe6,0x9b,0xc4,0x88,0x34,0xca,0xea,0x29,0x2f,0x98,0x05,0xa4,
1332         0xd3,0xc0,0x7b,0x11,0xe8,0xbb,0x75,0xf2,0xbd,0x29,0xb7,0x40,
1333         0x25,0x7f,0xc1,0xb7,0xb1,0xf1,0x25,0x61
1334         };
1335
1336 static const unsigned char sha512_pr_entropyinputpr2[] =
1337         {
1338         0x23,0x6d,0xff,0xde,0xfb,0xd1,0xba,0x33,0x18,0xe6,0xbe,0xb5,
1339         0x48,0x77,0x6d,0x7f,0xa7,0xe1,0x4d,0x48,0x1e,0x3c,0xa7,0x34,
1340         0x1a,0xc8,0x60,0xdb,0x8f,0x99,0x15,0x99
1341         };
1342
1343 static const unsigned char sha512_pr_returnedbits[] =
1344         {
1345         0x70,0x27,0x31,0xdb,0x92,0x70,0x21,0xfe,0x16,0xb6,0xc8,0x51,
1346         0x34,0x87,0x65,0xd0,0x4e,0xfd,0xfe,0x68,0xec,0xac,0xdc,0x93,
1347         0x41,0x38,0x92,0x90,0xb4,0x94,0xf9,0x0d,0xa4,0xf7,0x4e,0x80,
1348         0x92,0x67,0x48,0x40,0xa7,0x08,0xc7,0xbc,0x66,0x00,0xfd,0xf7,
1349         0x4c,0x8b,0x17,0x6e,0xd1,0x8f,0x9b,0xf3,0x6f,0xf6,0x34,0xdd,
1350         0x67,0xf7,0x68,0xdd
1351         };
1352
1353
1354 /* SHA-512 No PR  */
1355 static const unsigned char sha512_entropyinput[] =
1356         {
1357         0xb6,0x0b,0xb7,0xbc,0x84,0x56,0xf6,0x12,0xaf,0x45,0x67,0x17,
1358         0x7c,0xd1,0xb2,0x78,0x2b,0xa0,0xf2,0xbe,0xb6,0x6d,0x8b,0x56,
1359         0xc6,0xbc,0x4d,0xe1,0xf7,0xbe,0xce,0xbd
1360         };
1361
1362 static const unsigned char sha512_nonce[] =
1363         {
1364         0x9d,0xed,0xc0,0xe5,0x5a,0x98,0x6a,0xcb,0x51,0x7d,0x76,0x31,
1365         0x5a,0x64,0xf0,0xf7
1366         };
1367
1368 static const unsigned char sha512_personalizationstring[] =
1369         {
1370         0xc2,0x6d,0xa3,0xc3,0x06,0x74,0xe5,0x01,0x5c,0x10,0x17,0xc7,
1371         0xaf,0x83,0x9d,0x59,0x8d,0x2d,0x29,0x38,0xc5,0x59,0x70,0x8b,
1372         0x46,0x48,0x2d,0xcf,0x36,0x7d,0x59,0xc0
1373         };
1374
1375 static const unsigned char sha512_additionalinput[] =
1376         {
1377         0xec,0x8c,0xd4,0xf7,0x61,0x6e,0x0d,0x95,0x79,0xb7,0x28,0xad,
1378         0x5f,0x69,0x74,0x5f,0x2d,0x36,0x06,0x8a,0x6b,0xac,0x54,0x97,
1379         0xc4,0xa1,0x12,0x85,0x0a,0xdf,0x4b,0x34
1380         };
1381
1382 static const unsigned char sha512_int_returnedbits[] =
1383         {
1384         0x84,0x2f,0x1f,0x68,0x6a,0xa3,0xad,0x1e,0xfb,0xf4,0x15,0xbd,
1385         0xde,0x38,0xd4,0x30,0x80,0x51,0xe9,0xd3,0xc7,0x20,0x88,0xe9,
1386         0xf5,0xcc,0xdf,0x57,0x5c,0x47,0x2f,0x57,0x3c,0x5f,0x13,0x56,
1387         0xcc,0xc5,0x4f,0x84,0xf8,0x10,0x41,0xd5,0x7e,0x58,0x6e,0x19,
1388         0x19,0x9e,0xaf,0xc2,0x22,0x58,0x41,0x50,0x79,0xc2,0xd8,0x04,
1389         0x28,0xd4,0x39,0x9a
1390         };
1391
1392 static const unsigned char sha512_entropyinputreseed[] =
1393         {
1394         0xfa,0x7f,0x46,0x51,0x83,0x62,0x98,0x16,0x9a,0x19,0xa2,0x49,
1395         0xa9,0xe6,0x4a,0xd8,0x85,0xe7,0xd4,0x3b,0x2c,0x82,0xc5,0x82,
1396         0xbf,0x11,0xf9,0x9e,0xbc,0xd0,0x01,0xee
1397         };
1398
1399 static const unsigned char sha512_additionalinputreseed[] =
1400         {
1401         0xb9,0x12,0xe0,0x4f,0xf7,0xa7,0xc4,0xd8,0xd0,0x8e,0x99,0x29,
1402         0x7c,0x9a,0xe9,0xcf,0xc4,0x6c,0xf8,0xc3,0xa7,0x41,0x83,0xd6,
1403         0x2e,0xfa,0xb8,0x5e,0x8e,0x6b,0x78,0x20
1404         };
1405
1406 static const unsigned char sha512_additionalinput2[] =
1407         {
1408         0xd7,0x07,0x52,0xb9,0x83,0x2c,0x03,0x71,0xee,0xc9,0xc0,0x85,
1409         0xe1,0x57,0xb2,0xcd,0x3a,0xf0,0xc9,0x34,0x24,0x41,0x1c,0x42,
1410         0x99,0xb2,0x84,0xe9,0x17,0xd2,0x76,0x92
1411         };
1412
1413 static const unsigned char sha512_returnedbits[] =
1414         {
1415         0x36,0x17,0x5d,0x98,0x2b,0x65,0x25,0x8e,0xc8,0x29,0xdf,0x27,
1416         0x05,0x36,0x26,0x12,0x8a,0x68,0x74,0x27,0x37,0xd4,0x7f,0x32,
1417         0xb1,0x12,0xd6,0x85,0x83,0xeb,0x2e,0xa0,0xed,0x4b,0xb5,0x7b,
1418         0x6f,0x39,0x3c,0x71,0x77,0x02,0x12,0xcc,0x2c,0x3a,0x8e,0x63,
1419         0xdf,0x4a,0xbd,0x6f,0x6e,0x2e,0xed,0x0a,0x85,0xa5,0x2f,0xa2,
1420         0x68,0xde,0x42,0xb5
1421         };
1422
1423
1424 /* HMAC SHA-1 PR  */
1425 static const unsigned char hmac_sha1_pr_entropyinput[] =
1426         {
1427         0x26,0x5f,0x36,0x14,0xff,0x3d,0x83,0xfa,0x73,0x5e,0x75,0xdc,
1428         0x2c,0x18,0x17,0x1b
1429         };
1430
1431 static const unsigned char hmac_sha1_pr_nonce[] =
1432         {
1433         0xc8,0xe3,0x57,0xa5,0x7b,0x74,0x86,0x6e
1434         };
1435
1436 static const unsigned char hmac_sha1_pr_personalizationstring[] =
1437         {
1438         0x6e,0xdb,0x0d,0xfe,0x7d,0xac,0x79,0xd0,0xa5,0x3a,0x48,0x85,
1439         0x80,0xe2,0x7f,0x2a
1440         };
1441
1442 static const unsigned char hmac_sha1_pr_additionalinput[] =
1443         {
1444         0x31,0xcd,0x5e,0x43,0xdc,0xfb,0x7a,0x79,0xca,0x88,0xde,0x1f,
1445         0xd7,0xbb,0x42,0x09
1446         };
1447
1448 static const unsigned char hmac_sha1_pr_entropyinputpr[] =
1449         {
1450         0x7c,0x23,0x95,0x38,0x00,0x95,0xc1,0x78,0x1f,0x8f,0xd7,0x63,
1451         0x23,0x87,0x2a,0xed
1452         };
1453
1454 static const unsigned char hmac_sha1_pr_int_returnedbits[] =
1455         {
1456         0xbb,0x34,0xe7,0x93,0xa3,0x02,0x2c,0x4a,0xd0,0x89,0xda,0x7f,
1457         0xed,0xf4,0x4c,0xde,0x17,0xec,0xe5,0x6c
1458         };
1459
1460 static const unsigned char hmac_sha1_pr_additionalinput2[] =
1461         {
1462         0x49,0xbc,0x2d,0x2c,0xb7,0x32,0xcb,0x20,0xdf,0xf5,0x77,0x58,
1463         0xa0,0x4b,0x93,0x6e
1464         };
1465
1466 static const unsigned char hmac_sha1_pr_entropyinputpr2[] =
1467         {
1468         0x3c,0xaa,0xb0,0x21,0x42,0xb0,0xdd,0x34,0xf0,0x16,0x7f,0x0c,
1469         0x0f,0xff,0x2e,0xaf
1470         };
1471
1472 static const unsigned char hmac_sha1_pr_returnedbits[] =
1473         {
1474         0x8e,0xcb,0xa3,0x64,0xb2,0xb8,0x33,0x6c,0x64,0x3b,0x78,0x16,
1475         0x99,0x35,0xc8,0x30,0xcb,0x3e,0xa0,0xd8
1476         };
1477
1478
1479 /* HMAC SHA-1 No PR  */
1480 static const unsigned char hmac_sha1_entropyinput[] =
1481         {
1482         0x32,0x9a,0x2a,0x87,0x7b,0x89,0x7c,0xf6,0xcb,0x95,0xd5,0x40,
1483         0x17,0xfe,0x47,0x70
1484         };
1485
1486 static const unsigned char hmac_sha1_nonce[] =
1487         {
1488         0x16,0xd8,0xe0,0xc7,0x52,0xcf,0x4a,0x25
1489         };
1490
1491 static const unsigned char hmac_sha1_personalizationstring[] =
1492         {
1493         0x35,0x35,0xa9,0xa5,0x40,0xbe,0x9b,0xd1,0x56,0xdd,0x44,0x00,
1494         0x72,0xf7,0xd3,0x5e
1495         };
1496
1497 static const unsigned char hmac_sha1_additionalinput[] =
1498         {
1499         0x1b,0x2c,0x84,0x2d,0x4a,0x89,0x8f,0x69,0x19,0xf1,0xf3,0xdb,
1500         0xbb,0xe3,0xaa,0xea
1501         };
1502
1503 static const unsigned char hmac_sha1_int_returnedbits[] =
1504         {
1505         0xcf,0xfa,0x7d,0x72,0x0f,0xe6,0xc7,0x96,0xa0,0x69,0x31,0x11,
1506         0x9b,0x0b,0x1a,0x20,0x1f,0x3f,0xaa,0xd1
1507         };
1508
1509 static const unsigned char hmac_sha1_entropyinputreseed[] =
1510         {
1511         0x90,0x75,0x15,0x04,0x95,0xf1,0xba,0x81,0x0c,0x37,0x94,0x6f,
1512         0x86,0x52,0x6d,0x9c
1513         };
1514
1515 static const unsigned char hmac_sha1_additionalinputreseed[] =
1516         {
1517         0x5b,0x40,0xba,0x5f,0x17,0x70,0xf0,0x4b,0xdf,0xc9,0x97,0x92,
1518         0x79,0xc5,0x82,0x28
1519         };
1520
1521 static const unsigned char hmac_sha1_additionalinput2[] =
1522         {
1523         0x97,0xc8,0x80,0x90,0xb3,0xaa,0x6e,0x60,0xea,0x83,0x7a,0xe3,
1524         0x8a,0xca,0xa4,0x7f
1525         };
1526
1527 static const unsigned char hmac_sha1_returnedbits[] =
1528         {
1529         0x90,0xbd,0x05,0x56,0x6d,0xb5,0x22,0xd5,0xb9,0x5a,0x29,0x2d,
1530         0xe9,0x0b,0xe1,0xac,0xde,0x27,0x0b,0xb0
1531         };
1532
1533
1534 /* HMAC SHA-224 PR  */
1535 static const unsigned char hmac_sha224_pr_entropyinput[] =
1536         {
1537         0x17,0x32,0x2b,0x2e,0x6f,0x1b,0x9c,0x6d,0x31,0xe0,0x34,0x07,
1538         0xcf,0xed,0xf6,0xb6,0x5a,0x76,0x4c,0xbc,0x62,0x85,0x01,0x90
1539         };
1540
1541 static const unsigned char hmac_sha224_pr_nonce[] =
1542         {
1543         0x38,0xbf,0x5f,0x20,0xb3,0x68,0x2f,0x43,0x61,0x05,0x8f,0x23
1544         };
1545
1546 static const unsigned char hmac_sha224_pr_personalizationstring[] =
1547         {
1548         0xc0,0xc9,0x45,0xac,0x8d,0x27,0x77,0x08,0x0b,0x17,0x6d,0xed,
1549         0xc1,0x7d,0xd5,0x07,0x9d,0x6e,0xf8,0x23,0x2a,0x22,0x13,0xbd
1550         };
1551
1552 static const unsigned char hmac_sha224_pr_additionalinput[] =
1553         {
1554         0xa4,0x3c,0xe7,0x3b,0xea,0x19,0x45,0x32,0xc2,0x83,0x6d,0x21,
1555         0x8a,0xc0,0xee,0x67,0x45,0xde,0x13,0x7d,0x9d,0x61,0x00,0x3b
1556         };
1557
1558 static const unsigned char hmac_sha224_pr_entropyinputpr[] =
1559         {
1560         0x15,0x05,0x74,0x4a,0x7f,0x8d,0x5c,0x60,0x16,0xe5,0x7b,0xad,
1561         0xf5,0x41,0x8f,0x55,0x60,0xc4,0x09,0xee,0x1e,0x11,0x81,0xab
1562         };
1563
1564 static const unsigned char hmac_sha224_pr_int_returnedbits[] =
1565         {
1566         0x6f,0xf5,0x9a,0xe2,0x54,0x53,0x30,0x3d,0x5a,0x27,0x29,0x38,
1567         0x27,0xf2,0x0d,0x05,0xe9,0x26,0xcb,0x16,0xc3,0x51,0x5f,0x13,
1568         0x41,0xfe,0x99,0xf2
1569         };
1570
1571 static const unsigned char hmac_sha224_pr_additionalinput2[] =
1572         {
1573         0x73,0x81,0x88,0x84,0x8f,0xed,0x6f,0x10,0x9f,0x93,0xbf,0x17,
1574         0x35,0x7c,0xef,0xd5,0x8d,0x26,0xa6,0x7a,0xe8,0x09,0x36,0x4f
1575         };
1576
1577 static const unsigned char hmac_sha224_pr_entropyinputpr2[] =
1578         {
1579         0xe6,0xcf,0xcf,0x7e,0x12,0xe5,0x43,0xd2,0x38,0xd8,0x24,0x6f,
1580         0x5a,0x37,0x68,0xbf,0x4f,0xa0,0xff,0xd5,0x61,0x8a,0x93,0xe0
1581         };
1582
1583 static const unsigned char hmac_sha224_pr_returnedbits[] =
1584         {
1585         0xaf,0xf9,0xd8,0x19,0x91,0x30,0x82,0x6f,0xa9,0x1e,0x9d,0xd7,
1586         0xf3,0x50,0xe0,0xc7,0xd5,0x64,0x96,0x7d,0x4c,0x4d,0x78,0x03,
1587         0x6d,0xd8,0x9e,0x72
1588         };
1589
1590
1591 /* HMAC SHA-224 No PR  */
1592 static const unsigned char hmac_sha224_entropyinput[] =
1593         {
1594         0x11,0x82,0xfd,0xd9,0x42,0xf4,0xfa,0xc8,0xf2,0x41,0xe6,0x54,
1595         0x01,0xae,0x22,0x6e,0xc6,0xaf,0xaf,0xd0,0xa6,0xb2,0xe2,0x6d
1596         };
1597
1598 static const unsigned char hmac_sha224_nonce[] =
1599         {
1600         0xa9,0x48,0xd7,0x92,0x39,0x7e,0x2a,0xdc,0x30,0x1f,0x0e,0x2b
1601         };
1602
1603 static const unsigned char hmac_sha224_personalizationstring[] =
1604         {
1605         0x11,0xd5,0xf4,0xbd,0x67,0x8c,0x31,0xcf,0xa3,0x3f,0x1e,0x6b,
1606         0xa8,0x07,0x02,0x0b,0xc8,0x2e,0x6c,0x64,0x41,0x5b,0xc8,0x37
1607         };
1608
1609 static const unsigned char hmac_sha224_additionalinput[] =
1610         {
1611         0x68,0x18,0xc2,0x06,0xeb,0x3e,0x04,0x95,0x44,0x5e,0xfb,0xe6,
1612         0x41,0xc1,0x5c,0xcc,0x40,0x2f,0xb7,0xd2,0x0f,0xf3,0x6b,0xe7
1613         };
1614
1615 static const unsigned char hmac_sha224_int_returnedbits[] =
1616         {
1617         0x7f,0x45,0xc7,0x5d,0x32,0xe6,0x17,0x60,0xba,0xdc,0xb8,0x42,
1618         0x1b,0x9c,0xf1,0xfa,0x3b,0x4d,0x29,0x54,0xc6,0x90,0xff,0x5c,
1619         0xcd,0xd6,0xa9,0xcc
1620         };
1621
1622 static const unsigned char hmac_sha224_entropyinputreseed[] =
1623         {
1624         0xc4,0x8e,0x37,0x95,0x69,0x53,0x28,0xd7,0x37,0xbb,0x70,0x95,
1625         0x1c,0x07,0x1d,0xd9,0xb7,0xe6,0x1b,0xbb,0xfe,0x41,0xeb,0xc9
1626         };
1627
1628 static const unsigned char hmac_sha224_additionalinputreseed[] =
1629         {
1630         0x53,0x17,0xa1,0x6a,0xfa,0x77,0x47,0xb0,0x95,0x56,0x9a,0x20,
1631         0x57,0xde,0x5c,0x89,0x9f,0x7f,0xe2,0xde,0x17,0x3a,0x50,0x23
1632         };
1633
1634 static const unsigned char hmac_sha224_additionalinput2[] =
1635         {
1636         0x3a,0x32,0xf9,0x85,0x0c,0xc1,0xed,0x76,0x2d,0xdf,0x40,0xc3,
1637         0x06,0x22,0x66,0xd4,0x9a,0x9a,0xff,0x5a,0x7e,0x7a,0xf3,0x96
1638         };
1639
1640 static const unsigned char hmac_sha224_returnedbits[] =
1641         {
1642         0x43,0xb4,0x57,0x5c,0x38,0x25,0x9d,0xae,0xec,0x96,0xd1,0x85,
1643         0x3a,0x84,0x8d,0xfe,0x68,0xd5,0x0e,0x5c,0x8f,0x65,0xa5,0x4e,
1644         0x45,0x84,0xa8,0x94
1645         };
1646
1647
1648 /* HMAC SHA-256 PR  */
1649 static const unsigned char hmac_sha256_pr_entropyinput[] =
1650         {
1651         0x4d,0xb0,0x43,0xd8,0x34,0x4b,0x10,0x70,0xb1,0x8b,0xed,0xea,
1652         0x07,0x92,0x9f,0x6c,0x79,0x31,0xaf,0x81,0x29,0xeb,0x6e,0xca,
1653         0x32,0x48,0x28,0xe7,0x02,0x5d,0xa6,0xa6
1654         };
1655
1656 static const unsigned char hmac_sha256_pr_nonce[] =
1657         {
1658         0x3a,0xae,0x15,0xa9,0x99,0xdc,0xe4,0x67,0x34,0x3b,0x70,0x15,
1659         0xaa,0xd3,0x30,0x9a
1660         };
1661
1662 static const unsigned char hmac_sha256_pr_personalizationstring[] =
1663         {
1664         0x13,0x1d,0x24,0x04,0xb0,0x18,0x81,0x15,0x21,0x51,0x2a,0x24,
1665         0x52,0x61,0xbe,0x64,0x82,0x6b,0x55,0x2f,0xe2,0xf1,0x40,0x7d,
1666         0x71,0xd8,0x01,0x86,0x15,0xb7,0x8b,0xb5
1667         };
1668
1669 static const unsigned char hmac_sha256_pr_additionalinput[] =
1670         {
1671         0x8f,0xa6,0x54,0x5f,0xb1,0xd0,0xd8,0xc3,0xe7,0x0c,0x15,0xa9,
1672         0x23,0x6e,0xfe,0xfb,0x93,0xf7,0x3a,0xbd,0x59,0x01,0xfa,0x18,
1673         0x8e,0xe9,0x1a,0xa9,0x78,0xfc,0x79,0x0b
1674         };
1675
1676 static const unsigned char hmac_sha256_pr_entropyinputpr[] =
1677         {
1678         0xcf,0x24,0xb9,0xeb,0xb3,0xd4,0xcd,0x17,0x37,0x38,0x75,0x79,
1679         0x15,0xcb,0x2d,0x75,0x51,0xf1,0xcc,0xaa,0x32,0xa4,0xa7,0x36,
1680         0x7c,0x5c,0xe4,0x47,0xf1,0x3e,0x1d,0xe5
1681         };
1682
1683 static const unsigned char hmac_sha256_pr_int_returnedbits[] =
1684         {
1685         0x52,0x42,0xfa,0xeb,0x85,0xe0,0x30,0x22,0x79,0x00,0x16,0xb2,
1686         0x88,0x2f,0x14,0x6a,0xb7,0xfc,0xb7,0x53,0xdc,0x4a,0x12,0xef,
1687         0x54,0xd6,0x33,0xe9,0x20,0xd6,0xfd,0x56
1688         };
1689
1690 static const unsigned char hmac_sha256_pr_additionalinput2[] =
1691         {
1692         0xf4,0xf6,0x49,0xa1,0x2d,0x64,0x2b,0x30,0x58,0xf8,0xbd,0xb8,
1693         0x75,0xeb,0xbb,0x5e,0x1c,0x9b,0x81,0x6a,0xda,0x14,0x86,0x6e,
1694         0xd0,0xda,0x18,0xb7,0x88,0xfb,0x59,0xf3
1695         };
1696
1697 static const unsigned char hmac_sha256_pr_entropyinputpr2[] =
1698         {
1699         0x21,0xcd,0x6e,0x46,0xad,0x99,0x07,0x17,0xb4,0x3d,0x76,0x0a,
1700         0xff,0x5b,0x52,0x50,0x78,0xdf,0x1f,0x24,0x06,0x0d,0x3f,0x74,
1701         0xa9,0xc9,0x37,0xcf,0xd8,0x26,0x25,0x91
1702         };
1703
1704 static const unsigned char hmac_sha256_pr_returnedbits[] =
1705         {
1706         0xa7,0xaf,0x2f,0x29,0xe0,0x3a,0x72,0x95,0x96,0x1c,0xa9,0xf0,
1707         0x4a,0x17,0x4d,0x66,0x06,0x10,0xbf,0x39,0x89,0x88,0xb8,0x91,
1708         0x37,0x18,0x99,0xcf,0x8c,0x53,0x3b,0x7e
1709         };
1710
1711
1712 /* HMAC SHA-256 No PR  */
1713 static const unsigned char hmac_sha256_entropyinput[] =
1714         {
1715         0x96,0xb7,0x53,0x22,0x1e,0x52,0x2a,0x96,0xb1,0x15,0x3c,0x35,
1716         0x5a,0x8b,0xd3,0x4a,0xa6,0x6c,0x83,0x0a,0x7d,0xa3,0x23,0x3d,
1717         0x43,0xa1,0x07,0x2c,0x2d,0xe3,0x81,0xcc
1718         };
1719
1720 static const unsigned char hmac_sha256_nonce[] =
1721         {
1722         0xf1,0xac,0x97,0xcb,0x5e,0x06,0x48,0xd2,0x94,0xbe,0x15,0x2e,
1723         0xc7,0xfc,0xc2,0x01
1724         };
1725
1726 static const unsigned char hmac_sha256_personalizationstring[] =
1727         {
1728         0x98,0xc5,0x1e,0x35,0x5e,0x89,0x0d,0xce,0x64,0x6d,0x18,0xa7,
1729         0x5a,0xc6,0xf3,0xe7,0xd6,0x9e,0xc0,0xea,0xb7,0x3a,0x8d,0x65,
1730         0xb8,0xeb,0x10,0xd7,0x57,0x18,0xa0,0x32
1731         };
1732
1733 static const unsigned char hmac_sha256_additionalinput[] =
1734         {
1735         0x1b,0x10,0xaf,0xac,0xd0,0x65,0x95,0xad,0x04,0xad,0x03,0x1c,
1736         0xe0,0x40,0xd6,0x3e,0x1c,0x46,0x53,0x39,0x7c,0xe2,0xbc,0xda,
1737         0x8c,0xa2,0x33,0xa7,0x9a,0x26,0xd3,0x27
1738         };
1739
1740 static const unsigned char hmac_sha256_int_returnedbits[] =
1741         {
1742         0xba,0x61,0x0e,0x55,0xfe,0x11,0x8a,0x9e,0x0f,0x80,0xdf,0x1d,
1743         0x03,0x0a,0xfe,0x15,0x94,0x28,0x4b,0xba,0xf4,0x9f,0x51,0x25,
1744         0x88,0xe5,0x4e,0xfb,0xaf,0xce,0x69,0x90
1745         };
1746
1747 static const unsigned char hmac_sha256_entropyinputreseed[] =
1748         {
1749         0x62,0x7f,0x1e,0x6b,0xe8,0x8e,0xe1,0x35,0x7d,0x9b,0x4f,0xc7,
1750         0xec,0xc8,0xac,0xef,0x6b,0x13,0x9e,0x05,0x56,0xc1,0x08,0xf9,
1751         0x2f,0x0f,0x27,0x9c,0xd4,0x15,0xed,0x2d
1752         };
1753
1754 static const unsigned char hmac_sha256_additionalinputreseed[] =
1755         {
1756         0xc7,0x76,0x6e,0xa9,0xd2,0xb2,0x76,0x40,0x82,0x25,0x2c,0xb3,
1757         0x6f,0xac,0xe9,0x74,0xef,0x8f,0x3c,0x8e,0xcd,0xf1,0xbf,0xb3,
1758         0x49,0x77,0x34,0x88,0x52,0x36,0xe6,0x2e
1759         };
1760
1761 static const unsigned char hmac_sha256_additionalinput2[] =
1762         {
1763         0x8d,0xb8,0x0c,0xd1,0xbf,0x70,0xf6,0x19,0xc3,0x41,0x80,0x9f,
1764         0xe1,0xa5,0xa4,0x1f,0x2c,0x26,0xb1,0xe5,0xd8,0xeb,0xbe,0xf8,
1765         0xdf,0x88,0x6a,0x89,0xd6,0x05,0xd8,0x9d
1766         };
1767
1768 static const unsigned char hmac_sha256_returnedbits[] =
1769         {
1770         0x43,0x12,0x2a,0x2c,0x40,0x53,0x2e,0x7c,0x66,0x34,0xac,0xc3,
1771         0x43,0xe3,0xe0,0x6a,0xfc,0xfa,0xea,0x87,0x21,0x1f,0xe2,0x26,
1772         0xc4,0xf9,0x09,0x9a,0x0d,0x6e,0x7f,0xe0
1773         };
1774
1775
1776 /* HMAC SHA-384 PR  */
1777 static const unsigned char hmac_sha384_pr_entropyinput[] =
1778         {
1779         0x69,0x81,0x98,0x88,0x44,0xf5,0xd6,0x2e,0x00,0x08,0x3b,0xc5,
1780         0xfb,0xd7,0x8e,0x6f,0x23,0xf8,0x6d,0x09,0xd6,0x85,0x49,0xd1,
1781         0xf8,0x6d,0xa4,0x58,0x54,0xfd,0x88,0xa9
1782         };
1783
1784 static const unsigned char hmac_sha384_pr_nonce[] =
1785         {
1786         0x6e,0x38,0x81,0xca,0xb7,0xe8,0x6e,0x66,0x49,0x8a,0xb2,0x59,
1787         0xee,0x16,0xc9,0xde
1788         };
1789
1790 static const unsigned char hmac_sha384_pr_personalizationstring[] =
1791         {
1792         0xfe,0x4c,0xd9,0xf4,0x78,0x3b,0x08,0x41,0x8d,0x8f,0x55,0xc4,
1793         0x43,0x56,0xb6,0x12,0x36,0x6b,0x30,0xb7,0x5e,0xe1,0xb9,0x47,
1794         0x04,0xb1,0x4e,0xa9,0x00,0xa1,0x52,0xa1
1795         };
1796
1797 static const unsigned char hmac_sha384_pr_additionalinput[] =
1798         {
1799         0x89,0xe9,0xcc,0x8f,0x27,0x3c,0x26,0xd1,0x95,0xc8,0x7d,0x0f,
1800         0x5b,0x1a,0xf0,0x78,0x39,0x56,0x6f,0xa4,0x23,0xe7,0xd1,0xda,
1801         0x7c,0x66,0x33,0xa0,0x90,0xc9,0x92,0x88
1802         };
1803
1804 static const unsigned char hmac_sha384_pr_entropyinputpr[] =
1805         {
1806         0xbe,0x3d,0x7c,0x0d,0xca,0xda,0x7c,0x49,0xb8,0x12,0x36,0xc0,
1807         0xdb,0xad,0x35,0xa8,0xc7,0x0b,0x2a,0x2c,0x69,0x6d,0x25,0x56,
1808         0x63,0x82,0x11,0x3e,0xa7,0x33,0x70,0x72
1809         };
1810
1811 static const unsigned char hmac_sha384_pr_int_returnedbits[] =
1812         {
1813         0x82,0x3d,0xe6,0x54,0x80,0x42,0xf8,0xba,0x90,0x4f,0x06,0xa6,
1814         0xd2,0x7f,0xbf,0x79,0x7c,0x12,0x7d,0xa6,0xa2,0x66,0xe8,0xa6,
1815         0xc0,0xd6,0x4a,0x55,0xbf,0xd8,0x0a,0xc5,0xf8,0x03,0x88,0xdd,
1816         0x8e,0x87,0xd1,0x5a,0x48,0x26,0x72,0x2a,0x8e,0xcf,0xee,0xba
1817         };
1818
1819 static const unsigned char hmac_sha384_pr_additionalinput2[] =
1820         {
1821         0x8f,0xff,0xd9,0x84,0xbb,0x85,0x3a,0x66,0xa1,0x21,0xce,0xb2,
1822         0x3a,0x3a,0x17,0x22,0x19,0xae,0xc7,0xb6,0x63,0x81,0xd5,0xff,
1823         0x0d,0xc8,0xe1,0xaf,0x57,0xd2,0xcb,0x60
1824         };
1825
1826 static const unsigned char hmac_sha384_pr_entropyinputpr2[] =
1827         {
1828         0xd7,0xfb,0xc9,0xe8,0xe2,0xf2,0xaa,0x4c,0xb8,0x51,0x2f,0xe1,
1829         0x22,0xba,0xf3,0xda,0x0a,0x19,0x76,0x71,0x57,0xb2,0x1d,0x94,
1830         0x09,0x69,0x6c,0xd3,0x97,0x51,0x81,0x87
1831         };
1832
1833 static const unsigned char hmac_sha384_pr_returnedbits[] =
1834         {
1835         0xe6,0x19,0x28,0xa8,0x21,0xce,0x5e,0xdb,0x24,0x79,0x8c,0x76,
1836         0x5d,0x73,0xb2,0xdf,0xac,0xef,0x85,0xa7,0x3b,0x19,0x09,0x8b,
1837         0x7f,0x98,0x28,0xa9,0x93,0xd8,0x7a,0xad,0x55,0x8b,0x24,0x9d,
1838         0xe6,0x98,0xfe,0x47,0xd5,0x48,0xc1,0x23,0xd8,0x1d,0x62,0x75
1839         };
1840
1841
1842 /* HMAC SHA-384 No PR  */
1843 static const unsigned char hmac_sha384_entropyinput[] =
1844         {
1845         0xc3,0x56,0x2b,0x1d,0xc2,0xbb,0xa8,0xf0,0xae,0x1b,0x0d,0xd3,
1846         0x5a,0x6c,0xda,0x57,0x8e,0xa5,0x8a,0x0d,0x6c,0x4b,0x18,0xb1,
1847         0x04,0x3e,0xb4,0x99,0x35,0xc4,0xc0,0x5f
1848         };
1849
1850 static const unsigned char hmac_sha384_nonce[] =
1851         {
1852         0xc5,0x49,0x1e,0x66,0x27,0x92,0xbe,0xec,0xb5,0x1e,0x4b,0xb1,
1853         0x38,0xe3,0xeb,0x62
1854         };
1855
1856 static const unsigned char hmac_sha384_personalizationstring[] =
1857         {
1858         0xbe,0xe7,0x6b,0x57,0xde,0x88,0x11,0x96,0x9b,0x6e,0xea,0xe5,
1859         0x63,0x83,0x4c,0xb6,0x8d,0x66,0xaa,0x1f,0x8b,0x54,0xe7,0x62,
1860         0x6d,0x5a,0xfc,0xbf,0x97,0xba,0xcd,0x77
1861         };
1862
1863 static const unsigned char hmac_sha384_additionalinput[] =
1864         {
1865         0xe5,0x28,0x5f,0x43,0xf5,0x83,0x6e,0x0a,0x83,0x5c,0xe3,0x81,
1866         0x03,0xf2,0xf8,0x78,0x00,0x7c,0x95,0x87,0x16,0xd6,0x6c,0x58,
1867         0x33,0x6c,0x53,0x35,0x0d,0x66,0xe3,0xce
1868         };
1869
1870 static const unsigned char hmac_sha384_int_returnedbits[] =
1871         {
1872         0xe2,0x1f,0xf3,0xda,0x0d,0x19,0x99,0x87,0xc4,0x90,0xa2,0x31,
1873         0xca,0x2a,0x89,0x58,0x43,0x44,0xb8,0xde,0xcf,0xa4,0xbe,0x3b,
1874         0x53,0x26,0x22,0x31,0x76,0x41,0x22,0xb5,0xa8,0x70,0x2f,0x4b,
1875         0x64,0x95,0x4d,0x48,0x96,0x35,0xe6,0xbd,0x3c,0x34,0xdb,0x1b
1876         };
1877
1878 static const unsigned char hmac_sha384_entropyinputreseed[] =
1879         {
1880         0x77,0x61,0xba,0xbc,0xf2,0xc1,0xf3,0x4b,0x86,0x65,0xfd,0x48,
1881         0x0e,0x3c,0x02,0x5e,0xa2,0x7a,0x6b,0x7c,0xed,0x21,0x5e,0xf9,
1882         0xcd,0xcd,0x77,0x07,0x2b,0xbe,0xc5,0x5c
1883         };
1884
1885 static const unsigned char hmac_sha384_additionalinputreseed[] =
1886         {
1887         0x18,0x24,0x5f,0xc6,0x84,0xd1,0x67,0xc3,0x9a,0x11,0xa5,0x8c,
1888         0x07,0x39,0x21,0x83,0x4d,0x04,0xc4,0x6a,0x28,0x19,0xcf,0x92,
1889         0x21,0xd9,0x9e,0x41,0x72,0x6c,0x9e,0x63
1890         };
1891
1892 static const unsigned char hmac_sha384_additionalinput2[] =
1893         {
1894         0x96,0x67,0x41,0x28,0x9b,0xb7,0x92,0x8d,0x64,0x3b,0xe4,0xcf,
1895         0x7e,0xaa,0x1e,0xb1,0x4b,0x1d,0x09,0x56,0x67,0x9c,0xc6,0x6d,
1896         0x3b,0xe8,0x91,0x9d,0xe1,0x8a,0xb7,0x32
1897         };
1898
1899 static const unsigned char hmac_sha384_returnedbits[] =
1900         {
1901         0xe3,0x59,0x61,0x38,0x92,0xec,0xe2,0x3c,0xff,0xb7,0xdb,0x19,
1902         0x0f,0x5b,0x93,0x68,0x0d,0xa4,0x94,0x40,0x72,0x0b,0xe0,0xed,
1903         0x4d,0xcd,0x68,0xa0,0x1e,0xfe,0x67,0xb2,0xfa,0x21,0x56,0x74,
1904         0xa4,0xad,0xcf,0xb7,0x60,0x66,0x2e,0x40,0xde,0x82,0xca,0xfb
1905         };
1906
1907
1908 /* HMAC SHA-512 PR  */
1909 static const unsigned char hmac_sha512_pr_entropyinput[] =
1910         {
1911         0xaa,0x9e,0x45,0x67,0x0e,0x00,0x2a,0x67,0x98,0xd6,0xda,0x0b,
1912         0x0f,0x17,0x7e,0xac,0xfd,0x27,0xc4,0xca,0x84,0xdf,0xde,0xba,
1913         0x85,0xd9,0xbe,0x8f,0xf3,0xff,0x91,0x4d
1914         };
1915
1916 static const unsigned char hmac_sha512_pr_nonce[] =
1917         {
1918         0x8c,0x49,0x2f,0x58,0x1e,0x7a,0xda,0x4b,0x7e,0x8a,0x30,0x7b,
1919         0x86,0xea,0xaf,0xa2
1920         };
1921
1922 static const unsigned char hmac_sha512_pr_personalizationstring[] =
1923         {
1924         0x71,0xe1,0xbb,0xad,0xa7,0x4b,0x2e,0x31,0x3b,0x0b,0xec,0x24,
1925         0x99,0x38,0xbc,0xaa,0x05,0x4c,0x46,0x44,0xfa,0xad,0x8e,0x02,
1926         0xc1,0x7e,0xad,0xec,0x54,0xa6,0xd0,0xad
1927         };
1928
1929 static const unsigned char hmac_sha512_pr_additionalinput[] =
1930         {
1931         0x3d,0x6e,0xa6,0xa8,0x29,0x2a,0xb2,0xf5,0x98,0x42,0xe4,0x92,
1932         0x78,0x22,0x67,0xfd,0x1b,0x15,0x1e,0x29,0xaa,0x71,0x3c,0x3c,
1933         0xe7,0x05,0x20,0xa9,0x29,0xc6,0x75,0x71
1934         };
1935
1936 static const unsigned char hmac_sha512_pr_entropyinputpr[] =
1937         {
1938         0xab,0xb9,0x16,0xd8,0x55,0x35,0x54,0xb7,0x97,0x3f,0x94,0xbc,
1939         0x2f,0x7c,0x70,0xc7,0xd0,0xed,0xb7,0x4b,0xf7,0xf6,0x6c,0x03,
1940         0x0c,0xb0,0x03,0xd8,0xbb,0x71,0xd9,0x10
1941         };
1942
1943 static const unsigned char hmac_sha512_pr_int_returnedbits[] =
1944         {
1945         0x8e,0xd3,0xfd,0x52,0x9e,0x83,0x08,0x49,0x18,0x6e,0x23,0x56,
1946         0x5c,0x45,0x93,0x34,0x05,0xe2,0x98,0x8f,0x0c,0xd4,0x32,0x0c,
1947         0xfd,0xda,0x5f,0x92,0x3a,0x8c,0x81,0xbd,0xf6,0x6c,0x55,0xfd,
1948         0xb8,0x20,0xce,0x8d,0x97,0x27,0xe8,0xe8,0xe0,0xb3,0x85,0x50,
1949         0xa2,0xc2,0xb2,0x95,0x1d,0x48,0xd3,0x7b,0x4b,0x78,0x13,0x35,
1950         0x05,0x17,0xbe,0x0d
1951         };
1952
1953 static const unsigned char hmac_sha512_pr_additionalinput2[] =
1954         {
1955         0xc3,0xfc,0x95,0xaa,0x69,0x06,0xae,0x59,0x41,0xce,0x26,0x08,
1956         0x29,0x6d,0x45,0xda,0xe8,0xb3,0x6c,0x95,0x60,0x0f,0x70,0x2c,
1957         0x10,0xba,0x38,0x8c,0xcf,0x29,0x99,0xaa
1958         };
1959
1960 static const unsigned char hmac_sha512_pr_entropyinputpr2[] =
1961         {
1962         0x3b,0x9a,0x25,0xce,0xd7,0xf9,0x5c,0xd1,0x3a,0x3e,0xaa,0x71,
1963         0x14,0x3e,0x19,0xe8,0xce,0xe6,0xfe,0x51,0x84,0xe9,0x1b,0xfe,
1964         0x3f,0xa7,0xf2,0xfd,0x76,0x5f,0x6a,0xe7
1965         };
1966
1967 static const unsigned char hmac_sha512_pr_returnedbits[] =
1968         {
1969         0xb7,0x82,0xa9,0x57,0x81,0x67,0x53,0xb5,0xa1,0xe9,0x3d,0x35,
1970         0xf9,0xe4,0x97,0xbe,0xa6,0xca,0xf1,0x01,0x13,0x09,0xe7,0x21,
1971         0xc0,0xed,0x93,0x5d,0x4b,0xf4,0xeb,0x8d,0x53,0x25,0x8a,0xc4,
1972         0xb1,0x6f,0x6e,0x37,0xcd,0x2e,0xac,0x39,0xb2,0xb6,0x99,0xa3,
1973         0x82,0x00,0xb0,0x21,0xf0,0xc7,0x2f,0x4c,0x73,0x92,0xfd,0x00,
1974         0xb6,0xaf,0xbc,0xd3
1975         };
1976
1977
1978 /* HMAC SHA-512 No PR  */
1979 static const unsigned char hmac_sha512_entropyinput[] =
1980         {
1981         0x6e,0x85,0xe6,0x25,0x96,0x29,0xa7,0x52,0x5b,0x60,0xba,0xaa,
1982         0xde,0xdb,0x36,0x0a,0x51,0x9a,0x15,0xae,0x6e,0x18,0xd3,0xfe,
1983         0x39,0xb9,0x4a,0x96,0xf8,0x77,0xcb,0x95
1984         };
1985
1986 static const unsigned char hmac_sha512_nonce[] =
1987         {
1988         0xe0,0xa6,0x5d,0x08,0xc3,0x7c,0xae,0x25,0x2e,0x80,0xd1,0x3e,
1989         0xd9,0xaf,0x43,0x3c
1990         };
1991
1992 static const unsigned char hmac_sha512_personalizationstring[] =
1993         {
1994         0x53,0x99,0x52,0x5f,0x11,0xa9,0x64,0x66,0x20,0x5e,0x1b,0x5f,
1995         0x42,0xb3,0xf4,0xda,0xed,0xbb,0x63,0xc1,0x23,0xaf,0xd0,0x01,
1996         0x90,0x3b,0xd0,0x78,0xe4,0x0b,0xa7,0x20
1997         };
1998
1999 static const unsigned char hmac_sha512_additionalinput[] =
2000         {
2001         0x85,0x90,0x80,0xd3,0x98,0xf1,0x53,0x6d,0x68,0x15,0x8f,0xe5,
2002         0x60,0x3f,0x17,0x29,0x55,0x8d,0x33,0xb1,0x45,0x64,0x64,0x8d,
2003         0x50,0x21,0x89,0xae,0xf6,0xfd,0x32,0x73
2004         };
2005
2006 static const unsigned char hmac_sha512_int_returnedbits[] =
2007         {
2008         0x28,0x56,0x30,0x6f,0xf4,0xa1,0x48,0xe0,0xc9,0xf5,0x75,0x90,
2009         0xcc,0xfb,0xdf,0xdf,0x71,0x3d,0x0a,0x9a,0x03,0x65,0x3b,0x18,
2010         0x61,0xe3,0xd1,0xda,0xcc,0x4a,0xfe,0x55,0x38,0xf8,0x21,0x6b,
2011         0xfa,0x18,0x01,0x42,0x39,0x2f,0x99,0x53,0x38,0x15,0x82,0x34,
2012         0xc5,0x93,0x92,0xbc,0x4d,0x75,0x1a,0x5f,0x21,0x27,0xcc,0xa1,
2013         0xb1,0x57,0x69,0xe8
2014         };
2015
2016 static const unsigned char hmac_sha512_entropyinputreseed[] =
2017         {
2018         0x8c,0x52,0x7e,0x77,0x72,0x3f,0xa3,0x04,0x97,0x10,0x9b,0x41,
2019         0xbd,0xe8,0xff,0x89,0xed,0x80,0xe3,0xbd,0xaa,0x12,0x2d,0xca,
2020         0x75,0x82,0x36,0x77,0x88,0xcd,0xa6,0x73
2021         };
2022
2023 static const unsigned char hmac_sha512_additionalinputreseed[] =
2024         {
2025         0x7e,0x32,0xe3,0x69,0x69,0x07,0x34,0xa2,0x16,0xa2,0x5d,0x1a,
2026         0x10,0x91,0xd3,0xe2,0x21,0xa2,0xa3,0xdd,0xcd,0x0c,0x09,0x86,
2027         0x11,0xe1,0x50,0xff,0x5c,0xb7,0xeb,0x5c
2028         };
2029
2030 static const unsigned char hmac_sha512_additionalinput2[] =
2031         {
2032         0x7f,0x78,0x66,0xd8,0xfb,0x67,0xcf,0x8d,0x8c,0x08,0x30,0xa5,
2033         0xf8,0x7d,0xcf,0x44,0x59,0xce,0xf8,0xdf,0x58,0xd3,0x60,0xcb,
2034         0xa8,0x60,0xb9,0x07,0xc4,0xb1,0x95,0x48
2035         };
2036
2037 static const unsigned char hmac_sha512_returnedbits[] =
2038         {
2039         0xdf,0xa7,0x36,0xd4,0xdc,0x5d,0x4d,0x31,0xad,0x69,0x46,0x9f,
2040         0xf1,0x7c,0xd7,0x3b,0x4f,0x55,0xf2,0xd7,0xb9,0x9d,0xad,0x7a,
2041         0x79,0x08,0x59,0xa5,0xdc,0x74,0xf5,0x9b,0x73,0xd2,0x13,0x25,
2042         0x0b,0x81,0x08,0x08,0x25,0xfb,0x39,0xf2,0xf0,0xa3,0xa4,0x8d,
2043         0xef,0x05,0x9e,0xb8,0xc7,0x52,0xe4,0x0e,0x42,0xaa,0x7c,0x79,
2044         0xc2,0xd6,0xfd,0xa5
2045         };
2046
2047
2048 /* P-256 SHA-1 PR  */
2049 static const unsigned char p_256_sha1_pr_entropyinput[] =
2050         {
2051         0xb7,0xd4,0x38,0x90,0x9a,0xa8,0xfc,0xb6,0xd6,0x3c,0xc5,0x35,
2052         0x2b,0x0b,0x0e,0x1f
2053         };
2054
2055 static const unsigned char p_256_sha1_pr_nonce[] =
2056         {
2057         0xd9,0xae,0xf5,0xe8,0xd5,0x10,0x1f,0x82
2058         };
2059
2060 static const unsigned char p_256_sha1_pr_personalizationstring[] =
2061         {
2062         0x88,0xe8,0x77,0xab,0x01,0x19,0x5e,0xaf,0x50,0x6c,0x89,0x2d,
2063         0x0c,0x12,0xe2,0x11
2064         };
2065
2066 static const unsigned char p_256_sha1_pr_additionalinput[] =
2067         {
2068         0xd1,0x46,0xa6,0xb0,0x6e,0xc5,0xaa,0x7b,0x6d,0x1a,0xf9,0x36,
2069         0x8c,0x95,0x9c,0xed
2070         };
2071
2072 static const unsigned char p_256_sha1_pr_entropyinputpr[] =
2073         {
2074         0xb0,0x97,0xa8,0x3e,0xd3,0x28,0x3d,0x36,0xdd,0xfe,0x89,0x00,
2075         0x63,0x4f,0x21,0xfc
2076         };
2077
2078 static const unsigned char p_256_sha1_pr_int_returnedbits[] =
2079         {
2080         0x9f,0x66,0x6a,0x38,0x57,0x49,0x15,0xcd,0x5a,0x85,0x03,0x97,
2081         0x67,0xc3,0x62,0x46,0xb7,0x3a,0xd2,0x08,0x86,0x40,0x4e,0x6d,
2082         0x67,0xf4,0x19,0x68,0x92,0x63
2083         };
2084
2085 static const unsigned char p_256_sha1_pr_additionalinput2[] =
2086         {
2087         0x0c,0xb6,0x1c,0xc7,0x52,0x47,0xe4,0xf1,0xa7,0x75,0x60,0x3d,
2088         0x60,0x07,0x72,0x6f
2089         };
2090
2091 static const unsigned char p_256_sha1_pr_entropyinputpr2[] =
2092         {
2093         0x39,0x37,0xb6,0x55,0x82,0x71,0x0e,0xd4,0x8f,0x8c,0x10,0xe5,
2094         0x7c,0x8f,0x5e,0x37
2095         };
2096
2097 static const unsigned char p_256_sha1_pr_returnedbits[] =
2098         {
2099         0x37,0x6c,0x94,0x02,0xbe,0x28,0x42,0xd5,0xe7,0x4d,0x1a,0x6e,
2100         0xa8,0x5a,0x90,0x9a,0x31,0xa8,0x84,0x16,0xbc,0xe9,0x18,0xa4,
2101         0xe1,0xa1,0x05,0xf0,0x2a,0xe3
2102         };
2103
2104
2105 /* P-256 SHA-1 No PR  */
2106 static const unsigned char p_256_sha1_entropyinput[] =
2107         {
2108         0xac,0x08,0x45,0x86,0x79,0xfc,0x4b,0xb4,0x8b,0xe4,0xfd,0x1d,
2109         0x0e,0xeb,0x1b,0x8f
2110         };
2111
2112 static const unsigned char p_256_sha1_nonce[] =
2113         {
2114         0x5e,0xf4,0xe9,0xc5,0x04,0xee,0xb7,0x8a
2115         };
2116
2117 static const unsigned char p_256_sha1_personalizationstring[] =
2118         {
2119         0x55,0x0f,0xca,0x3b,0x1c,0xa6,0xf3,0xce,0xcb,0x6f,0xa7,0xc7,
2120         0x26,0x65,0x0f,0x7c
2121         };
2122
2123 static const unsigned char p_256_sha1_additionalinput[] =
2124         {
2125         0x74,0x51,0x73,0xa9,0xee,0x2e,0x21,0xf9,0xba,0x07,0xe4,0xad,
2126         0x97,0xae,0x1c,0x8b
2127         };
2128
2129 static const unsigned char p_256_sha1_int_returnedbits[] =
2130         {
2131         0x8d,0x45,0x11,0xa9,0x74,0x14,0x05,0x94,0x97,0x66,0x71,0xe2,
2132         0x9b,0x61,0x22,0x85,0xa5,0xaa,0x09,0x01,0x75,0xb5,0xab,0x3a,
2133         0x3a,0x6e,0x69,0xd3,0xc8,0xc4
2134         };
2135
2136 static const unsigned char p_256_sha1_entropyinputreseed[] =
2137         {
2138         0x34,0xd9,0x8b,0x67,0x82,0xaf,0x97,0x95,0xe9,0x25,0xa7,0x93,
2139         0x37,0x06,0x73,0x5c
2140         };
2141
2142 static const unsigned char p_256_sha1_additionalinputreseed[] =
2143         {
2144         0x39,0x21,0x24,0x27,0x67,0xa1,0xc3,0xc4,0x90,0xc2,0x68,0x68,
2145         0x26,0x9b,0x32,0xc2
2146         };
2147
2148 static const unsigned char p_256_sha1_additionalinput2[] =
2149         {
2150         0x84,0xa8,0x10,0xe5,0x71,0x0c,0x1e,0x74,0x42,0x6a,0xa5,0x09,
2151         0x90,0x74,0x39,0xd7
2152         };
2153
2154 static const unsigned char p_256_sha1_returnedbits[] =
2155         {
2156         0x1e,0x0b,0x5c,0x41,0xcd,0xab,0x07,0xbd,0xdc,0x53,0xa7,0x62,
2157         0xd1,0xd0,0xca,0x19,0xe6,0xbb,0x8e,0xcf,0x1e,0x0a,0x4c,0xc0,
2158         0x2d,0x8c,0xe2,0xa4,0x89,0x2c
2159         };
2160
2161
2162 /* P-256 SHA-224 PR  */
2163 static const unsigned char p_256_sha224_pr_entropyinput[] =
2164         {
2165         0x92,0x05,0xf0,0x1e,0xc4,0xc4,0x9e,0xab,0x85,0x10,0x16,0xda,
2166         0xa6,0xb4,0xba,0x6f
2167         };
2168
2169 static const unsigned char p_256_sha224_pr_nonce[] =
2170         {
2171         0xa3,0x5e,0xde,0x12,0xdc,0xa7,0x67,0xfd
2172         };
2173
2174 static const unsigned char p_256_sha224_pr_personalizationstring[] =
2175         {
2176         0x76,0xa0,0x8d,0x6c,0x0d,0x19,0x5d,0x94,0x9b,0x92,0x67,0x78,
2177         0x6c,0x02,0xfe,0xe4
2178         };
2179
2180 static const unsigned char p_256_sha224_pr_additionalinput[] =
2181         {
2182         0xe2,0x05,0xcf,0x63,0x0f,0xf1,0xd0,0x41,0xc9,0xe3,0xf6,0xb0,
2183         0x57,0xaa,0xcd,0x92
2184         };
2185
2186 static const unsigned char p_256_sha224_pr_entropyinputpr[] =
2187         {
2188         0x1a,0xd5,0xa9,0x25,0x52,0xa8,0xba,0x51,0x81,0x99,0x62,0x4d,
2189         0xbf,0x30,0x44,0xf3
2190         };
2191
2192 static const unsigned char p_256_sha224_pr_int_returnedbits[] =
2193         {
2194         0xbf,0x9e,0x45,0x73,0x67,0x4b,0x25,0xa5,0x58,0x23,0x31,0xd8,
2195         0x0f,0xf3,0xe5,0x5d,0x0e,0x2d,0x9b,0x4a,0x5f,0x93,0x9c,0xad,
2196         0x6a,0xc5,0x70,0x4e,0x5e,0x58
2197         };
2198
2199 static const unsigned char p_256_sha224_pr_additionalinput2[] =
2200         {
2201         0x4a,0x85,0x19,0xb2,0x61,0x5d,0xd5,0xc0,0x1f,0x47,0x72,0x8b,
2202         0x62,0x35,0x19,0xc1
2203         };
2204
2205 static const unsigned char p_256_sha224_pr_entropyinputpr2[] =
2206         {
2207         0xda,0xa7,0x84,0x3f,0xfa,0xf9,0xd1,0x51,0x17,0xf8,0xe3,0x77,
2208         0xf5,0x20,0x37,0x17
2209         };
2210
2211 static const unsigned char p_256_sha224_pr_returnedbits[] =
2212         {
2213         0x15,0xa4,0xa1,0x53,0x4f,0x63,0x06,0xfe,0x28,0xfd,0x58,0xa9,
2214         0xac,0x9c,0x83,0xb7,0x3a,0x86,0x82,0x92,0x96,0x89,0xea,0x3d,
2215         0xbd,0x83,0x3a,0x06,0x2a,0x7d
2216         };
2217
2218
2219 /* P-256 SHA-224 No PR  */
2220 static const unsigned char p_256_sha224_entropyinput[] =
2221         {
2222         0xec,0x5b,0x46,0x4a,0xe1,0xe1,0xcb,0x31,0x86,0xa7,0x11,0x3a,
2223         0xff,0x87,0x4a,0x66
2224         };
2225
2226 static const unsigned char p_256_sha224_nonce[] =
2227         {
2228         0xd1,0x6c,0x33,0x3c,0x37,0xc9,0xc6,0xac
2229         };
2230
2231 static const unsigned char p_256_sha224_personalizationstring[] =
2232         {
2233         0x8b,0xfe,0x68,0x96,0x2d,0xc5,0x91,0xb3,0xf2,0xaa,0x15,0xad,
2234         0x1a,0x50,0x0c,0x0a
2235         };
2236
2237 static const unsigned char p_256_sha224_additionalinput[] =
2238         {
2239         0xd4,0x48,0xfd,0x16,0x41,0xea,0xef,0x06,0x7f,0x4a,0xa2,0x60,
2240         0x60,0x31,0x20,0x5d
2241         };
2242
2243 static const unsigned char p_256_sha224_int_returnedbits[] =
2244         {
2245         0x68,0x64,0x67,0x0c,0x73,0x08,0x00,0x60,0x5a,0xa6,0x9a,0x27,
2246         0x01,0x81,0xae,0x2e,0x1d,0xa6,0x0a,0x86,0x77,0xef,0x05,0x3f,
2247         0x42,0xbe,0x46,0x73,0x40,0x1c
2248         };
2249
2250 static const unsigned char p_256_sha224_entropyinputreseed[] =
2251         {
2252         0x9c,0xde,0x86,0x11,0x55,0x9a,0xb4,0x2b,0x70,0xf0,0xc6,0x9d,
2253         0x8d,0x3a,0xc3,0x1e
2254         };
2255
2256 static const unsigned char p_256_sha224_additionalinputreseed[] =
2257         {
2258         0x5d,0x5b,0xeb,0x38,0xc5,0x8b,0x2b,0xc8,0x73,0xe3,0x0e,0xca,
2259         0x35,0xb0,0x4d,0x11
2260         };
2261
2262 static const unsigned char p_256_sha224_additionalinput2[] =
2263         {
2264         0xf7,0xa3,0x79,0x4b,0xb0,0x2c,0x1e,0xc6,0x61,0x69,0x14,0x6a,
2265         0xed,0xf1,0xa2,0xd8
2266         };
2267
2268 static const unsigned char p_256_sha224_returnedbits[] =
2269         {
2270         0x89,0x75,0x1b,0x89,0x20,0xcc,0xe2,0xaf,0xae,0x5e,0xc1,0xa9,
2271         0xde,0xc0,0x35,0x0b,0xf6,0x4e,0x04,0xfc,0xa7,0xe6,0x35,0xf9,
2272         0x16,0x8a,0xc6,0x0c,0x63,0x6b
2273         };
2274
2275
2276 /* P-256 SHA-256 PR  */
2277 static const unsigned char p_256_sha256_pr_entropyinput[] =
2278         {
2279         0x22,0xe4,0x4c,0x01,0x94,0x59,0xce,0x08,0xb3,0x92,0x48,0xe2,
2280         0x0d,0x1a,0x32,0x4d
2281         };
2282
2283 static const unsigned char p_256_sha256_pr_nonce[] =
2284         {
2285         0x8d,0xf9,0x20,0x8a,0x65,0xf4,0x93,0x37
2286         };
2287
2288 static const unsigned char p_256_sha256_pr_personalizationstring[] =
2289         {
2290         0x06,0x7e,0xe8,0x4f,0xdd,0xae,0x8d,0xf1,0xc9,0x13,0x9a,0x81,
2291         0xd3,0x68,0x76,0xc1
2292         };
2293
2294 static const unsigned char p_256_sha256_pr_additionalinput[] =
2295         {
2296         0xfa,0x8e,0xea,0xf3,0xcf,0xda,0x7c,0x11,0x88,0xaa,0xb9,0x02,
2297         0x84,0xc4,0x30,0x54
2298         };
2299
2300 static const unsigned char p_256_sha256_pr_entropyinputpr[] =
2301         {
2302         0xbb,0x21,0x72,0x4f,0x83,0x03,0x14,0x18,0x8e,0x88,0xec,0x73,
2303         0xde,0xed,0x60,0xf7
2304         };
2305
2306 static const unsigned char p_256_sha256_pr_int_returnedbits[] =
2307         {
2308         0xdc,0x40,0x73,0x5e,0x1d,0x21,0x35,0x8c,0xcf,0xa4,0x50,0x05,
2309         0x5e,0x73,0xbd,0xde,0x5e,0x58,0xcc,0xc0,0x6f,0xd9,0xca,0x8d,
2310         0x48,0x9d,0x84,0x77,0xc2,0x8e
2311         };
2312
2313 static const unsigned char p_256_sha256_pr_additionalinput2[] =
2314         {
2315         0x0e,0xa7,0x4d,0x4f,0x19,0x94,0x34,0x05,0x46,0x3e,0x0c,0x05,
2316         0x27,0x85,0xd9,0xdf
2317         };
2318
2319 static const unsigned char p_256_sha256_pr_entropyinputpr2[] =
2320         {
2321         0x4f,0xae,0x44,0x10,0x2b,0xa1,0xbc,0xd7,0xcb,0xa7,0x49,0x55,
2322         0x27,0x54,0x36,0x2b
2323         };
2324
2325 static const unsigned char p_256_sha256_pr_returnedbits[] =
2326         {
2327         0x1c,0x16,0xf7,0x2b,0xd0,0xb7,0x54,0x5a,0xa5,0x85,0x14,0x63,
2328         0xd4,0x96,0x81,0x5a,0x6b,0xa4,0xde,0x57,0xbf,0xf3,0x81,0xc7,
2329         0xf5,0xbc,0xeb,0x4e,0x49,0xdf
2330         };
2331
2332
2333 /* P-256 SHA-256 No PR  */
2334 static const unsigned char p_256_sha256_entropyinput[] =
2335         {
2336         0xa7,0x0b,0x6b,0xf7,0xfb,0x40,0x1a,0xca,0xa9,0x1f,0x16,0xc9,
2337         0x6a,0xd0,0x4a,0x8c
2338         };
2339
2340 static const unsigned char p_256_sha256_nonce[] =
2341         {
2342         0x97,0x8e,0xb1,0x72,0xe8,0x30,0xfc,0x43
2343         };
2344
2345 static const unsigned char p_256_sha256_personalizationstring[] =
2346         {
2347         0x6c,0x90,0x00,0x41,0x84,0x7c,0x58,0x56,0x48,0xf0,0x60,0x04,
2348         0xe9,0xc0,0xa0,0xd8
2349         };
2350
2351 static const unsigned char p_256_sha256_additionalinput[] =
2352         {
2353         0x69,0xad,0xd7,0x7c,0xbd,0x90,0xa1,0x63,0xcd,0x64,0x7c,0xb3,
2354         0xce,0xff,0xf2,0xf7
2355         };
2356
2357 static const unsigned char p_256_sha256_int_returnedbits[] =
2358         {
2359         0xe8,0x5a,0x4f,0x5d,0xab,0xc7,0xd2,0x94,0x4d,0xbf,0x02,0x57,
2360         0xa1,0x89,0x73,0xa1,0xc2,0xca,0xfb,0x46,0x11,0x41,0x47,0x8e,
2361         0x32,0x45,0xd7,0x8a,0x8a,0x38
2362         };
2363
2364 static const unsigned char p_256_sha256_entropyinputreseed[] =
2365         {
2366         0x5c,0xb4,0x82,0x38,0xa2,0x2d,0x78,0x63,0x2a,0x38,0x77,0x5b,
2367         0x9a,0x59,0x4d,0x17
2368         };
2369
2370 static const unsigned char p_256_sha256_additionalinputreseed[] =
2371         {
2372         0x43,0x28,0x7f,0x91,0x92,0xad,0x88,0x75,0x64,0xe5,0xef,0x95,
2373         0x59,0xa9,0x11,0x61
2374         };
2375
2376 static const unsigned char p_256_sha256_additionalinput2[] =
2377         {
2378         0x77,0xee,0xfc,0x84,0x5b,0x69,0xdf,0x9f,0x7e,0xf2,0xb1,0x35,
2379         0x34,0x28,0x8f,0xcd
2380         };
2381
2382 static const unsigned char p_256_sha256_returnedbits[] =
2383         {
2384         0x2d,0x45,0x00,0x60,0x87,0x6c,0xfa,0x69,0x06,0x9e,0x99,0xf9,
2385         0xf6,0xb6,0x1e,0xf6,0xfb,0x6b,0x54,0x68,0x1a,0xd3,0xda,0x31,
2386         0x3e,0x60,0x4a,0x31,0x7d,0x41
2387         };
2388
2389
2390 /* P-256 SHA-384 PR  */
2391 static const unsigned char p_256_sha384_pr_entropyinput[] =
2392         {
2393         0xb3,0x6a,0x1b,0x68,0xe3,0x8a,0xa4,0xad,0x2d,0xa0,0x6a,0xae,
2394         0x10,0xe5,0x55,0x58
2395         };
2396
2397 static const unsigned char p_256_sha384_pr_nonce[] =
2398         {
2399         0xe2,0xe8,0xd4,0x8d,0xc8,0x47,0xad,0x79
2400         };
2401
2402 static const unsigned char p_256_sha384_pr_personalizationstring[] =
2403         {
2404         0xf9,0xbb,0xac,0xe9,0xd9,0x8a,0x58,0xae,0x58,0xa6,0x68,0xd2,
2405         0xff,0x49,0x71,0x08
2406         };
2407
2408 static const unsigned char p_256_sha384_pr_additionalinput[] =
2409         {
2410         0xa7,0xa3,0xcc,0xc1,0xbf,0xa7,0x32,0xe8,0xcb,0x21,0xf4,0x35,
2411         0x42,0xa6,0xdd,0x4b
2412         };
2413
2414 static const unsigned char p_256_sha384_pr_entropyinputpr[] =
2415         {
2416         0x37,0xdb,0x5a,0x83,0x9c,0x7a,0x50,0xe3,0xc7,0xbd,0x50,0x63,
2417         0x88,0x44,0xa1,0x50
2418         };
2419
2420 static const unsigned char p_256_sha384_pr_int_returnedbits[] =
2421         {
2422         0x65,0x3a,0xdd,0x95,0x3a,0x52,0xd7,0x7f,0x8d,0x81,0x1b,0x53,
2423         0x4e,0xa9,0x5b,0x80,0xa2,0x08,0x1e,0xf5,0x7f,0xac,0x62,0x28,
2424         0xbc,0x1c,0x02,0xd2,0xe9,0x1e
2425         };
2426
2427 static const unsigned char p_256_sha384_pr_additionalinput2[] =
2428         {
2429         0xb3,0xff,0xbc,0x54,0x38,0x49,0x1f,0xad,0x3f,0x33,0x5f,0x45,
2430         0x21,0x2f,0xcf,0xba
2431         };
2432
2433 static const unsigned char p_256_sha384_pr_entropyinputpr2[] =
2434         {
2435         0x43,0x37,0x4a,0x16,0x15,0x1d,0x3d,0xa9,0x3b,0xcf,0xbb,0x73,
2436         0x67,0xce,0x93,0xbf
2437         };
2438
2439 static const unsigned char p_256_sha384_pr_returnedbits[] =
2440         {
2441         0x1e,0x1b,0x69,0x67,0xb8,0xd7,0xb4,0x18,0xb8,0xa0,0x11,0xc7,
2442         0x5f,0xd7,0x14,0xb7,0x24,0xae,0xa5,0x35,0x06,0xa0,0xd0,0x7f,
2443         0xcd,0x9b,0x20,0x03,0x66,0xc0
2444         };
2445
2446
2447 /* P-256 SHA-384 No PR  */
2448 static const unsigned char p_256_sha384_entropyinput[] =
2449         {
2450         0x1c,0x0d,0xa7,0x27,0x1f,0xb4,0xa2,0x4a,0xe5,0x25,0x00,0xbe,
2451         0xbe,0x80,0x88,0xa8
2452         };
2453
2454 static const unsigned char p_256_sha384_nonce[] =
2455         {
2456         0x2c,0x7e,0x21,0x02,0x46,0x9e,0xe5,0xae
2457         };
2458
2459 static const unsigned char p_256_sha384_personalizationstring[] =
2460         {
2461         0x0a,0xf6,0x83,0xa9,0x7b,0x97,0x20,0x60,0xcc,0x46,0x0e,0x52,
2462         0xd0,0xcb,0x57,0xb5
2463         };
2464
2465 static const unsigned char p_256_sha384_additionalinput[] =
2466         {
2467         0xac,0xd8,0x25,0xef,0x85,0xa8,0x5e,0x55,0x89,0x5b,0x6e,0xf6,
2468         0x4d,0x4d,0x05,0x53
2469         };
2470
2471 static const unsigned char p_256_sha384_int_returnedbits[] =
2472         {
2473         0x5c,0x71,0x32,0x2f,0x34,0x09,0x99,0x6a,0x4e,0x55,0xaf,0x4b,
2474         0x73,0x32,0xb5,0xad,0x52,0x4c,0x54,0xa0,0x25,0x3b,0xd9,0x70,
2475         0xe5,0xe4,0x6f,0x61,0xab,0x8c
2476         };
2477
2478 static const unsigned char p_256_sha384_entropyinputreseed[] =
2479         {
2480         0x4b,0x0d,0xa9,0x66,0xc3,0x64,0xe9,0xd5,0x87,0xb1,0x98,0xc2,
2481         0xeb,0x14,0xd2,0x8a
2482         };
2483
2484 static const unsigned char p_256_sha384_additionalinputreseed[] =
2485         {
2486         0x1f,0x11,0x6b,0xc0,0x15,0x38,0xbd,0x62,0x27,0xf7,0x6d,0x97,
2487         0x77,0xd1,0xcc,0x00
2488         };
2489
2490 static const unsigned char p_256_sha384_additionalinput2[] =
2491         {
2492         0x1d,0x9a,0xe5,0xfc,0xed,0x93,0x3d,0xbb,0x08,0xf3,0xba,0x01,
2493         0x6f,0x9f,0xdf,0xb1
2494         };
2495
2496 static const unsigned char p_256_sha384_returnedbits[] =
2497         {
2498         0x4a,0xd5,0xd3,0x62,0xbb,0x6e,0x6c,0xb2,0x1c,0x0e,0xf6,0x97,
2499         0xd3,0x15,0x18,0xb5,0x42,0x59,0xc4,0xf6,0xa9,0x8f,0x1b,0xff,
2500         0xaa,0xf8,0xf9,0x9c,0xba,0x47
2501         };
2502
2503
2504 /* P-256 SHA-512 PR  */
2505 static const unsigned char p_256_sha512_pr_entropyinput[] =
2506         {
2507         0x73,0x83,0x07,0x93,0x85,0x39,0x2f,0x96,0xcd,0x74,0x32,0x4d,
2508         0x68,0x0e,0x97,0x9d
2509         };
2510
2511 static const unsigned char p_256_sha512_pr_nonce[] =
2512         {
2513         0xab,0xc6,0xf4,0x38,0x72,0x9b,0x9f,0x36
2514         };
2515
2516 static const unsigned char p_256_sha512_pr_personalizationstring[] =
2517         {
2518         0x88,0x8e,0xc1,0xaf,0xe9,0x1b,0x8a,0xf5,0xf2,0x23,0x44,0x71,
2519         0xf5,0x9a,0xed,0x5e
2520         };
2521
2522 static const unsigned char p_256_sha512_pr_additionalinput[] =
2523         {
2524         0x38,0xf7,0x2b,0x11,0x7b,0xd6,0xfa,0xbd,0x07,0x42,0x46,0x77,
2525         0xed,0x1b,0x3f,0x95
2526         };
2527
2528 static const unsigned char p_256_sha512_pr_entropyinputpr[] =
2529         {
2530         0x52,0xf2,0x68,0x6d,0xc9,0x1b,0xc7,0xb0,0x52,0x07,0x69,0x79,
2531         0x25,0x5d,0xbb,0xdb
2532         };
2533
2534 static const unsigned char p_256_sha512_pr_int_returnedbits[] =
2535         {
2536         0x23,0xa6,0x84,0x48,0x4f,0xd3,0x1f,0x56,0x57,0xae,0x50,0xea,
2537         0x9f,0x2b,0x47,0x80,0x6a,0x46,0x10,0x54,0x1d,0x77,0x67,0x79,
2538         0x45,0xbb,0x1d,0x90,0x2c,0xce
2539         };
2540
2541 static const unsigned char p_256_sha512_pr_additionalinput2[] =
2542         {
2543         0x9c,0x46,0x61,0x85,0x2c,0x9e,0x2c,0xd0,0x4d,0xcd,0x73,0x78,
2544         0x08,0x8d,0x49,0x5b
2545         };
2546
2547 static const unsigned char p_256_sha512_pr_entropyinputpr2[] =
2548         {
2549         0x71,0x60,0x46,0x14,0xc1,0xaa,0x21,0xc8,0xf1,0xfe,0x32,0x90,
2550         0x46,0xfd,0xe9,0x80
2551         };
2552
2553 static const unsigned char p_256_sha512_pr_returnedbits[] =
2554         {
2555         0x7a,0x30,0x7d,0x6e,0xb1,0x22,0xb9,0x68,0x7d,0x00,0x14,0x63,
2556         0xca,0xe2,0x06,0x03,0xe0,0x94,0xbb,0x45,0x14,0x2d,0xd2,0xd1,
2557         0xfb,0x35,0xfd,0xe6,0xf1,0x81
2558         };
2559
2560
2561 /* P-256 SHA-512 No PR  */
2562 static const unsigned char p_256_sha512_entropyinput[] =
2563         {
2564         0x55,0xd0,0x7f,0xb7,0x23,0x81,0x95,0x38,0xa7,0xbf,0x01,0x8d,
2565         0x06,0x8b,0xbc,0x47
2566         };
2567
2568 static const unsigned char p_256_sha512_nonce[] =
2569         {
2570         0x96,0xab,0x85,0xba,0x88,0x7b,0xf5,0x6e
2571         };
2572
2573 static const unsigned char p_256_sha512_personalizationstring[] =
2574         {
2575         0xea,0x25,0x60,0xd0,0x5d,0xd8,0x9c,0x8d,0x43,0x23,0x49,0x0a,
2576         0xd5,0x57,0xf3,0x54
2577         };
2578
2579 static const unsigned char p_256_sha512_additionalinput[] =
2580         {
2581         0x8e,0xe8,0xfd,0x2e,0xcd,0x27,0xc6,0x7e,0x7a,0xf8,0xe7,0x11,
2582         0xb8,0x0d,0x20,0x36
2583         };
2584
2585 static const unsigned char p_256_sha512_int_returnedbits[] =
2586         {
2587         0x57,0x18,0x20,0x51,0xd7,0x57,0x13,0xb0,0xa0,0x8f,0x92,0xd2,
2588         0xf5,0xa0,0x85,0xf3,0xac,0x64,0xb7,0x6b,0x94,0xde,0x9f,0xda,
2589         0x0a,0x04,0x11,0xdf,0x52,0x27
2590         };
2591
2592 static const unsigned char p_256_sha512_entropyinputreseed[] =
2593         {
2594         0x89,0x1d,0x17,0x0c,0xe4,0x82,0x34,0xe7,0x81,0x6c,0x47,0x47,
2595         0xc6,0x49,0x50,0x3e
2596         };
2597
2598 static const unsigned char p_256_sha512_additionalinputreseed[] =
2599         {
2600         0xe7,0xe4,0x88,0x00,0xa7,0xc9,0xb7,0x6b,0x70,0xda,0xe3,0xf0,
2601         0x44,0xa9,0x02,0xf6
2602         };
2603
2604 static const unsigned char p_256_sha512_additionalinput2[] =
2605         {
2606         0x09,0x9f,0xd2,0xe8,0xb2,0x0e,0x6e,0x89,0xf5,0x73,0x1c,0x1f,
2607         0x93,0xf2,0x76,0xb2
2608         };
2609
2610 static const unsigned char p_256_sha512_returnedbits[] =
2611         {
2612         0xdd,0x42,0x2a,0x7b,0x4f,0x84,0x07,0xfa,0x4d,0x17,0x9a,0x2e,
2613         0x48,0xba,0xbf,0xc5,0x1c,0x42,0xc7,0xc3,0x63,0x4f,0x79,0xb0,
2614         0xc1,0x54,0x1d,0xa6,0x0a,0x1c
2615         };
2616
2617
2618 /* P-384 SHA-224 PR  */
2619 static const unsigned char p_384_sha224_pr_entropyinput[] =
2620         {
2621         0x34,0xf0,0x89,0xac,0x46,0x33,0xe2,0x7f,0x8c,0x02,0x65,0x09,
2622         0xe1,0xcf,0x93,0x5b,0x10,0xbc,0xb0,0x43,0x4f,0xc7,0x62,0x19
2623         };
2624
2625 static const unsigned char p_384_sha224_pr_nonce[] =
2626         {
2627         0x55,0x30,0xdf,0xa9,0xfb,0xbe,0x4a,0x2e,0x1d,0x03,0xf5,0x91
2628         };
2629
2630 static const unsigned char p_384_sha224_pr_personalizationstring[] =
2631         {
2632         0x35,0xc7,0x3a,0x7b,0x5a,0x4e,0xd4,0x1a,0x82,0xe2,0xf5,0xed,
2633         0x40,0x61,0x4b,0xf4,0xb9,0xcf,0xd0,0xc1,0xe2,0x41,0x23,0x04
2634         };
2635
2636 static const unsigned char p_384_sha224_pr_additionalinput[] =
2637         {
2638         0xec,0xef,0x64,0xfb,0x92,0xbb,0xdf,0x8b,0xc8,0xf2,0xad,0xd8,
2639         0x93,0x21,0x6f,0x11,0xde,0x37,0x52,0xe3,0x16,0x49,0xc7,0xe1
2640         };
2641
2642 static const unsigned char p_384_sha224_pr_entropyinputpr[] =
2643         {
2644         0x59,0xb0,0x7e,0x34,0x49,0x29,0x7e,0x91,0x92,0x91,0x0c,0xca,
2645         0x8e,0x31,0x62,0x06,0xab,0xf4,0x81,0x80,0xa4,0x55,0x8f,0x0f
2646         };
2647
2648 static const unsigned char p_384_sha224_pr_int_returnedbits[] =
2649         {
2650         0x29,0xd9,0x3a,0x95,0xb1,0x34,0xff,0x73,0x06,0x1e,0x08,0x43,
2651         0xd7,0x1d,0x53,0xd1,0xcf,0x09,0xd2,0x83,0x04,0x44,0x29,0x9d,
2652         0x0d,0x18,0x76,0x94,0xa8,0x98,0xb4,0xc1,0xb0,0x31,0xbc,0xe6,
2653         0xf0,0xc7,0x57,0x35,0x5d,0x32,0x78,0x9e,0x1d,0x2a
2654         };
2655
2656 static const unsigned char p_384_sha224_pr_additionalinput2[] =
2657         {
2658         0x56,0x8c,0x6f,0x29,0xd6,0x25,0x9f,0xb8,0x6a,0x1d,0x70,0x5f,
2659         0x6a,0xe7,0xe2,0x2e,0xcc,0x6b,0x78,0x0a,0x3f,0x54,0x73,0x97
2660         };
2661
2662 static const unsigned char p_384_sha224_pr_entropyinputpr2[] =
2663         {
2664         0xe3,0x91,0x20,0x13,0x78,0xc6,0x01,0xfd,0x82,0xd7,0x43,0x1e,
2665         0xed,0x85,0x4a,0xe2,0x0c,0x6f,0xdc,0x43,0x5f,0x7c,0xfd,0xd0
2666         };
2667
2668 static const unsigned char p_384_sha224_pr_returnedbits[] =
2669         {
2670         0x89,0xa9,0x17,0xd8,0xcb,0x73,0x17,0x69,0x78,0x69,0x50,0x58,
2671         0x74,0xe4,0x8c,0x6f,0x5c,0xfa,0x6e,0x01,0xb3,0xf0,0xce,0xa9,
2672         0xd0,0xc0,0x40,0xb3,0x20,0x78,0xe2,0xdb,0xec,0x1f,0x73,0xea,
2673         0x2e,0xa6,0xf1,0xc8,0xfe,0x7c,0xe7,0x68,0xf7,0x86
2674         };
2675
2676
2677 /* P-384 SHA-224 No PR  */
2678 static const unsigned char p_384_sha224_entropyinput[] =
2679         {
2680         0x44,0x2c,0xc3,0xc6,0x20,0xe6,0x61,0xec,0xd1,0x2b,0xdf,0x18,
2681         0x2e,0xc5,0x4a,0xd4,0x80,0x55,0xbd,0x54,0x89,0x01,0x7b,0xbb
2682         };
2683
2684 static const unsigned char p_384_sha224_nonce[] =
2685         {
2686         0x16,0x27,0x4b,0xb3,0x0f,0x01,0xd0,0xe6,0x9f,0x5c,0x44,0xa4
2687         };
2688
2689 static const unsigned char p_384_sha224_personalizationstring[] =
2690         {
2691         0x55,0x26,0x3e,0xee,0xaa,0x1b,0x35,0x27,0xef,0x18,0x28,0x62,
2692         0x51,0x1e,0xbc,0x4c,0x64,0x0d,0xf8,0x20,0xe6,0x0a,0x1d,0xaa
2693         };
2694
2695 static const unsigned char p_384_sha224_additionalinput[] =
2696         {
2697         0x27,0x08,0x22,0x32,0x4a,0xd6,0xc6,0x51,0xff,0xc5,0xb7,0x8f,
2698         0xb4,0x3e,0xa0,0x6e,0xe2,0x55,0xa1,0xf1,0x2e,0x0d,0x89,0x91
2699         };
2700
2701 static const unsigned char p_384_sha224_int_returnedbits[] =
2702         {
2703         0x85,0x0e,0xe3,0xde,0xed,0x40,0xdc,0xec,0x9a,0x2d,0x65,0x24,
2704         0x2b,0x56,0xd6,0xce,0x7c,0x40,0x07,0xe5,0x61,0x64,0xe5,0xac,
2705         0x6e,0x48,0xa3,0xda,0x7d,0x4c,0xd6,0x7d,0xd0,0x69,0xa8,0x93,
2706         0xa7,0xb1,0x91,0xba,0x0d,0x81,0x8f,0x04,0xaf,0x91
2707         };
2708
2709 static const unsigned char p_384_sha224_entropyinputreseed[] =
2710         {
2711         0x27,0x57,0xc2,0x22,0xa6,0x70,0xb9,0x74,0x86,0x59,0x8c,0xff,
2712         0x7d,0x10,0x0c,0xe3,0x24,0xf1,0x95,0xbd,0x99,0x84,0xca,0x11
2713         };
2714
2715 static const unsigned char p_384_sha224_additionalinputreseed[] =
2716         {
2717         0x5a,0xc3,0x47,0x2c,0x9c,0x1d,0xe0,0x43,0x3b,0x1b,0x01,0xed,
2718         0x86,0x5d,0x1b,0x3f,0x45,0xb1,0x8e,0xa9,0x79,0x7b,0x88,0x01
2719         };
2720
2721 static const unsigned char p_384_sha224_additionalinput2[] =
2722         {
2723         0x7d,0x48,0x91,0xda,0x00,0x60,0x33,0x2c,0x22,0xe4,0x42,0x61,
2724         0xbc,0x70,0x05,0x73,0x22,0x23,0x42,0xda,0x7a,0x2b,0xba,0xbb
2725         };
2726
2727 static const unsigned char p_384_sha224_returnedbits[] =
2728         {
2729         0xfa,0x7d,0x7b,0x35,0x32,0xbe,0x44,0x91,0x90,0xd2,0x69,0x9a,
2730         0x06,0xb8,0x52,0x3e,0x3b,0xcf,0x1e,0x81,0xd3,0x20,0x5f,0x5b,
2731         0x55,0xb6,0xb3,0xc9,0x6b,0xc7,0x0c,0xf1,0xa7,0xbd,0x4a,0x83,
2732         0x25,0x50,0xc3,0x78,0x3f,0x4e,0xe9,0xed,0x6c,0x4c
2733         };
2734
2735
2736 /* P-384 SHA-256 PR  */
2737 static const unsigned char p_384_sha256_pr_entropyinput[] =
2738         {
2739         0xc6,0xd0,0xc7,0xa3,0x7e,0x2b,0x8c,0xd6,0x23,0xe9,0x9e,0x1f,
2740         0x77,0x30,0xed,0x6a,0xfc,0xe4,0x7b,0xf0,0x6f,0xd6,0xfe,0x05
2741         };
2742
2743 static const unsigned char p_384_sha256_pr_nonce[] =
2744         {
2745         0x67,0x91,0xca,0x93,0xc8,0x1e,0x93,0x13,0x00,0x72,0x4e,0xa2
2746         };
2747
2748 static const unsigned char p_384_sha256_pr_personalizationstring[] =
2749         {
2750         0xa5,0x5b,0x6e,0xeb,0xc9,0x0d,0x42,0x0b,0x41,0xec,0x0b,0x9e,
2751         0xde,0xc1,0x80,0x4d,0xe3,0x86,0xa0,0xfe,0x7e,0x92,0x47,0xa3
2752         };
2753
2754 static const unsigned char p_384_sha256_pr_additionalinput[] =
2755         {
2756         0x9a,0x04,0xa9,0x78,0x48,0xa8,0x77,0x0f,0x38,0x2a,0x54,0x66,
2757         0x34,0xaa,0x31,0xbd,0xf6,0xfb,0xc1,0x14,0xa5,0xcb,0x1c,0xf2
2758         };
2759
2760 static const unsigned char p_384_sha256_pr_entropyinputpr[] =
2761         {
2762         0x19,0x6c,0x48,0xf5,0x64,0xb3,0xb4,0x49,0x6e,0xb8,0xc4,0x8b,
2763         0xab,0xba,0xb5,0x8e,0xa3,0xf1,0x6e,0xe9,0xf6,0x37,0xa1,0x46
2764         };
2765
2766 static const unsigned char p_384_sha256_pr_int_returnedbits[] =
2767         {
2768         0xfd,0x04,0x26,0x4f,0xbd,0x84,0xe3,0x54,0xb2,0x9b,0xb1,0x84,
2769         0x66,0x5f,0x02,0xc0,0xcc,0x69,0x7e,0x4d,0x4f,0xc4,0x00,0x8e,
2770         0x13,0x5d,0xe9,0x0f,0x98,0x71,0xe8,0x7f,0x50,0xd1,0x49,0xc8,
2771         0xae,0x71,0xe9,0x60,0x94,0x90,0xce,0x6d,0xba,0xab
2772         };
2773
2774 static const unsigned char p_384_sha256_pr_additionalinput2[] =
2775         {
2776         0x4d,0x27,0x90,0x17,0x81,0x74,0x4f,0xa4,0x40,0xdf,0x42,0x29,
2777         0xc5,0x37,0xf1,0x31,0x89,0x90,0x27,0x8a,0x96,0xcc,0x68,0x6e
2778         };
2779
2780 static const unsigned char p_384_sha256_pr_entropyinputpr2[] =
2781         {
2782         0x1d,0xbe,0xdf,0x39,0xd8,0x82,0xb2,0x8f,0x7f,0x90,0xac,0x19,
2783         0xc8,0x65,0xf2,0x5a,0xff,0x4e,0xbb,0xcf,0xcd,0xce,0x2c,0xfd
2784         };
2785
2786 static const unsigned char p_384_sha256_pr_returnedbits[] =
2787         {
2788         0x45,0x63,0xac,0xb5,0x1e,0x49,0x99,0x67,0x89,0xd4,0x9c,0xa9,
2789         0xf8,0x5a,0x05,0x0d,0xeb,0xe6,0xc7,0x78,0x8e,0xf1,0xec,0xe3,
2790         0xc8,0x52,0xf1,0xfa,0x0f,0xd0,0xd7,0xbe,0x8a,0x34,0x0a,0x1f,
2791         0x38,0x42,0xc6,0xac,0x61,0xd4,0x32,0xc5,0xd2,0x15
2792         };
2793
2794
2795 /* P-384 SHA-256 No PR  */
2796 static const unsigned char p_384_sha256_entropyinput[] =
2797         {
2798         0x52,0x92,0xc4,0xac,0xce,0xf5,0x35,0xa4,0x15,0xdb,0xa9,0xe1,
2799         0xbc,0x7b,0x08,0xa5,0x27,0x16,0xe3,0x50,0x08,0x2d,0x09,0x2d
2800         };
2801
2802 static const unsigned char p_384_sha256_nonce[] =
2803         {
2804         0xe8,0x14,0x2b,0xee,0xba,0xac,0xe0,0x25,0xd0,0x3b,0x78,0xc5
2805         };
2806
2807 static const unsigned char p_384_sha256_personalizationstring[] =
2808         {
2809         0x28,0x0c,0x86,0x48,0x5e,0xca,0xfa,0x89,0x1f,0x58,0xb8,0x2c,
2810         0x41,0x28,0x3f,0x98,0x71,0x66,0x7b,0xb7,0x32,0xa2,0xe1,0x49
2811         };
2812
2813 static const unsigned char p_384_sha256_additionalinput[] =
2814         {
2815         0xdc,0x59,0xb1,0x23,0x39,0x75,0x1b,0x27,0x24,0x5f,0x7a,0x55,
2816         0x82,0xdc,0xdc,0xe2,0x12,0x65,0xbf,0x8a,0x65,0xdb,0x27,0xdb
2817         };
2818
2819 static const unsigned char p_384_sha256_int_returnedbits[] =
2820         {
2821         0xc0,0x86,0xd8,0x67,0xdd,0xe4,0xce,0x15,0x60,0xad,0x45,0x60,
2822         0x80,0x8b,0x5a,0xb6,0x85,0x6d,0x4a,0xdf,0x8e,0xc0,0x2d,0xbf,
2823         0xa9,0x8c,0x9b,0x8d,0x03,0xca,0xbf,0x3b,0x1f,0xdc,0xc1,0xac,
2824         0xa8,0x0f,0x45,0xd6,0x2e,0xd1,0xe6,0x29,0xb5,0x1c
2825         };
2826
2827 static const unsigned char p_384_sha256_entropyinputreseed[] =
2828         {
2829         0x9f,0x19,0x9f,0xc8,0x18,0x43,0xfc,0x9a,0x97,0xed,0x20,0x13,
2830         0xad,0xc9,0xa0,0x65,0xef,0x38,0xd6,0x2e,0xce,0x4d,0xe1,0x1d
2831         };
2832
2833 static const unsigned char p_384_sha256_additionalinputreseed[] =
2834         {
2835         0xa6,0x27,0x35,0x9f,0x8a,0xaa,0xf5,0xb3,0x60,0x4b,0x16,0x68,
2836         0xdd,0x32,0x2e,0x1b,0xb1,0x34,0x47,0x03,0x45,0x3f,0xb6,0x3e
2837         };
2838
2839 static const unsigned char p_384_sha256_additionalinput2[] =
2840         {
2841         0x76,0x4e,0x5c,0x75,0x33,0xa5,0x94,0x95,0xf4,0x36,0xa5,0x39,
2842         0x28,0xc1,0x74,0xd1,0xfa,0x1d,0x8a,0x40,0x6e,0x84,0x4e,0xc7
2843         };
2844
2845 static const unsigned char p_384_sha256_returnedbits[] =
2846         {
2847         0x50,0x15,0xc9,0x98,0x73,0x71,0x55,0xb7,0x7a,0xf4,0xa5,0xe7,
2848         0xb3,0xe2,0x24,0x2e,0x96,0x5b,0xd1,0xab,0xe8,0x51,0x1f,0xbe,
2849         0x3b,0x1e,0x1f,0xd4,0x18,0x2d,0x99,0xda,0xb8,0xa5,0x98,0x65,
2850         0x1d,0xaa,0x1e,0x46,0x8f,0x6b,0x4f,0xa2,0xd5,0xdf
2851         };
2852
2853
2854 /* P-384 SHA-384 PR  */
2855 static const unsigned char p_384_sha384_pr_entropyinput[] =
2856         {
2857         0x3b,0x40,0x57,0x65,0x46,0x14,0xa5,0xf6,0x63,0x21,0xe7,0x33,
2858         0xd7,0x38,0xa7,0x54,0x33,0x62,0x08,0x08,0x37,0xef,0xbf,0x22
2859         };
2860
2861 static const unsigned char p_384_sha384_pr_nonce[] =
2862         {
2863         0xf4,0xd4,0x11,0x0a,0x4a,0xdb,0xfc,0xbb,0x08,0x7a,0x20,0x51
2864         };
2865
2866 static const unsigned char p_384_sha384_pr_personalizationstring[] =
2867         {
2868         0x5d,0x5b,0x9d,0xe5,0x45,0x62,0x5b,0xd0,0xa8,0x1b,0xea,0xe3,
2869         0xbd,0x59,0xd4,0xab,0x50,0xbe,0x5d,0x21,0x5d,0x85,0x42,0x16
2870         };
2871
2872 static const unsigned char p_384_sha384_pr_additionalinput[] =
2873         {
2874         0xd9,0xac,0x4b,0x76,0x18,0x46,0xba,0x30,0x88,0xdf,0x41,0xdb,
2875         0x72,0x9b,0x4d,0xb7,0xbb,0x12,0xd2,0xd8,0x00,0xa0,0x81,0x14
2876         };
2877
2878 static const unsigned char p_384_sha384_pr_entropyinputpr[] =
2879         {
2880         0x46,0x6d,0x66,0xaf,0xcf,0xb3,0x59,0x37,0x52,0x7e,0xa0,0xce,
2881         0x6d,0xaa,0x40,0xac,0x87,0xce,0x01,0x76,0x8f,0xac,0x49,0x42
2882         };
2883
2884 static const unsigned char p_384_sha384_pr_int_returnedbits[] =
2885         {
2886         0xe1,0xea,0x43,0x73,0x35,0xf8,0x1f,0x2d,0xab,0x82,0x82,0x7f,
2887         0x82,0xca,0x78,0xb4,0x9b,0xfd,0x89,0xbc,0x83,0xcb,0x8d,0x09,
2888         0x44,0xb6,0xd6,0x0c,0xd9,0x43,0x97,0x5c,0xf8,0x51,0x5d,0xe3,
2889         0x0c,0x36,0xe1,0xaf,0xd3,0xbd,0x43,0x08,0xb8,0x65
2890         };
2891
2892 static const unsigned char p_384_sha384_pr_additionalinput2[] =
2893         {
2894         0x6f,0xe5,0x27,0xa8,0x0c,0x4b,0xad,0x03,0xba,0xaa,0x70,0xc5,
2895         0xc6,0x4c,0xa6,0x6b,0xd9,0xb4,0x74,0x7a,0xea,0x4b,0x07,0xc8
2896         };
2897
2898 static const unsigned char p_384_sha384_pr_entropyinputpr2[] =
2899         {
2900         0xec,0xc8,0x0c,0x3a,0x39,0xd3,0x2e,0xa9,0xab,0x57,0x89,0x1d,
2901         0x85,0x23,0x54,0x40,0xdf,0x15,0xbd,0x65,0x41,0xe5,0xaf,0xfb
2902         };
2903
2904 static const unsigned char p_384_sha384_pr_returnedbits[] =
2905         {
2906         0x3f,0xe0,0xa9,0x90,0x8e,0x27,0x2c,0xbe,0xfe,0xdd,0x35,0x67,
2907         0x4e,0x9b,0x9b,0x54,0xf3,0xb9,0x53,0xf4,0x62,0x8a,0xad,0x67,
2908         0x3e,0x68,0x92,0xd5,0xdb,0xd7,0x8f,0xb1,0xf7,0x10,0x5e,0xc6,
2909         0xc3,0xe8,0x45,0x60,0xde,0x05,0x4e,0x94,0xbc,0x43
2910         };
2911
2912
2913 /* P-384 SHA-384 No PR  */
2914 static const unsigned char p_384_sha384_entropyinput[] =
2915         {
2916         0x52,0x51,0xd7,0x2a,0x26,0xda,0xeb,0x5c,0xfb,0x23,0x47,0x49,
2917         0xf7,0x04,0xc6,0x62,0xed,0x72,0x3e,0x70,0x41,0x87,0x75,0x42
2918         };
2919
2920 static const unsigned char p_384_sha384_nonce[] =
2921         {
2922         0x63,0x66,0x35,0x65,0x9b,0xe5,0xd3,0xcb,0x94,0x82,0x81,0x05
2923         };
2924
2925 static const unsigned char p_384_sha384_personalizationstring[] =
2926         {
2927         0x52,0xa4,0xce,0x0e,0x4b,0x72,0x21,0x63,0xad,0x21,0x7f,0x60,
2928         0x9e,0x5d,0xa7,0xff,0xef,0xf1,0xfb,0x04,0xdb,0x30,0x5a,0x0c
2929         };
2930
2931 static const unsigned char p_384_sha384_additionalinput[] =
2932         {
2933         0xd7,0xde,0x8e,0xc4,0xeb,0x69,0xd2,0x2b,0xed,0x00,0x4a,0x6e,
2934         0x3a,0x13,0xf5,0x48,0xe4,0x83,0xad,0x81,0x4d,0x68,0xe5,0x57
2935         };
2936
2937 static const unsigned char p_384_sha384_int_returnedbits[] =
2938         {
2939         0xbc,0x2d,0x9b,0x3b,0xbb,0x75,0xf4,0xdf,0xda,0x0f,0x10,0x88,
2940         0xb4,0x95,0x4c,0xf3,0xfa,0xff,0x3d,0x30,0x53,0x0b,0xa7,0xb9,
2941         0x95,0x27,0xc3,0x11,0xc9,0xef,0xd4,0xfe,0x84,0x9d,0xe0,0x76,
2942         0xcc,0x39,0x83,0xab,0x3f,0x31,0xe7,0x6d,0x44,0x0f
2943         };
2944
2945 static const unsigned char p_384_sha384_entropyinputreseed[] =
2946         {
2947         0xef,0x0f,0xa7,0x4e,0x90,0xe1,0x57,0x9e,0xce,0x52,0xe1,0xa0,
2948         0xd3,0x0f,0x06,0xa4,0xfe,0x5d,0x55,0x60,0xe2,0xc5,0x45,0x3b
2949         };
2950
2951 static const unsigned char p_384_sha384_additionalinputreseed[] =
2952         {
2953         0xec,0x87,0x9e,0x8e,0x58,0xb8,0xa3,0xd3,0x3e,0x49,0x22,0xf5,
2954         0x68,0x5b,0x60,0x6e,0x7b,0x73,0xd5,0xa4,0x7c,0x9e,0xcd,0xba
2955         };
2956
2957 static const unsigned char p_384_sha384_additionalinput2[] =
2958         {
2959         0x1c,0xd2,0xce,0x30,0x31,0x8b,0xbb,0xaf,0xbb,0xa8,0xae,0x20,
2960         0xa3,0x6b,0xb5,0x37,0xfe,0x09,0x91,0x1a,0x63,0x33,0x29,0x8c
2961         };
2962
2963 static const unsigned char p_384_sha384_returnedbits[] =
2964         {
2965         0xd7,0x36,0x7b,0x33,0x50,0x6a,0x59,0xb0,0x7c,0xb3,0xc4,0xe9,
2966         0xc2,0x16,0x41,0x7b,0xe4,0x4c,0xd8,0x7c,0x6b,0x74,0x00,0x31,
2967         0xd1,0x97,0x2d,0x7a,0x97,0x22,0x45,0xe6,0xf0,0xcd,0x8e,0xa5,
2968         0xeb,0xab,0x37,0xd6,0xb7,0xb1,0x9c,0x42,0xfb,0xcf
2969         };
2970
2971
2972 /* P-384 SHA-512 PR  */
2973 static const unsigned char p_384_sha512_pr_entropyinput[] =
2974         {
2975         0x14,0xdf,0x91,0xdb,0xad,0xe2,0x22,0xe5,0x56,0xa1,0x88,0xbd,
2976         0x42,0x73,0xf7,0x8d,0xdc,0x99,0x54,0x99,0x8a,0xab,0x11,0x4b
2977         };
2978
2979 static const unsigned char p_384_sha512_pr_nonce[] =
2980         {
2981         0x10,0x49,0x5d,0xf6,0x5d,0x17,0xa7,0xa6,0xd8,0xc7,0xc8,0xe7
2982         };
2983
2984 static const unsigned char p_384_sha512_pr_personalizationstring[] =
2985         {
2986         0x61,0x59,0xc5,0x8e,0x30,0x77,0x05,0x75,0x87,0xff,0x0b,0x06,
2987         0x03,0x79,0xa5,0x8b,0x59,0xb8,0x32,0xc9,0x19,0x47,0x7d,0x0e
2988         };
2989
2990 static const unsigned char p_384_sha512_pr_additionalinput[] =
2991         {
2992         0x41,0xd5,0x73,0x17,0x13,0x4c,0xe8,0x7c,0x83,0x45,0x84,0xf1,
2993         0x72,0xae,0x1d,0xea,0x08,0x0a,0x56,0xec,0x16,0xf9,0x1f,0xb6
2994         };
2995
2996 static const unsigned char p_384_sha512_pr_entropyinputpr[] =
2997         {
2998         0xa6,0x85,0xa8,0xa4,0x0f,0xad,0x96,0x32,0x39,0x5e,0x86,0xb0,
2999         0x8b,0xda,0xb2,0xf0,0x38,0x75,0xf8,0xe2,0xc0,0xbf,0x77,0x62
3000         };
3001
3002 static const unsigned char p_384_sha512_pr_int_returnedbits[] =
3003         {
3004         0xc8,0xf2,0x0c,0x8a,0xe7,0x72,0xe2,0xa3,0x5e,0x0a,0xaa,0x21,
3005         0x3a,0x92,0x08,0x70,0xaf,0xc2,0x1e,0xed,0xd1,0x2c,0xa0,0xbc,
3006         0xcb,0x0e,0x46,0xb9,0x34,0x97,0x62,0x03,0x4a,0x93,0xe3,0x6f,
3007         0x92,0x08,0x71,0x16,0xce,0x3e,0x5b,0x6b,0x9a,0x52
3008         };
3009
3010 static const unsigned char p_384_sha512_pr_additionalinput2[] =
3011         {
3012         0x72,0x72,0xb3,0x26,0x05,0x49,0xf0,0x34,0xb6,0x04,0x75,0x6a,
3013         0x0a,0x86,0x9c,0x8f,0xe5,0x3d,0x90,0x26,0x42,0x92,0x2a,0x77
3014         };
3015
3016 static const unsigned char p_384_sha512_pr_entropyinputpr2[] =
3017         {
3018         0xf1,0xda,0x51,0xa2,0x21,0x54,0x2d,0x6d,0xec,0x92,0xe5,0x8f,
3019         0x81,0x96,0x21,0x60,0x93,0x33,0x3d,0xfb,0x92,0xfe,0xae,0xcb
3020         };
3021
3022 static const unsigned char p_384_sha512_pr_returnedbits[] =
3023         {
3024         0x12,0x87,0x30,0xc4,0x87,0x61,0x58,0xab,0x79,0x05,0xb4,0xfd,
3025         0x47,0x95,0x86,0x4c,0x24,0x45,0xb0,0x4b,0x23,0x9a,0xe6,0x72,
3026         0x03,0xd8,0xc1,0x8a,0xbc,0xd0,0x3b,0xb5,0x8e,0x84,0x9f,0x2d,
3027         0xa4,0xf6,0x9b,0x89,0xd6,0x92,0x72,0x70,0x63,0xb9
3028         };
3029
3030
3031 /* P-384 SHA-512 No PR  */
3032 static const unsigned char p_384_sha512_entropyinput[] =
3033         {
3034         0xc7,0x7b,0x0e,0xe1,0x06,0x66,0x63,0x87,0x15,0x09,0x0a,0xe2,
3035         0xbe,0xdc,0xd5,0x3c,0x65,0xce,0xc5,0x25,0xfd,0xf2,0x23,0xbe
3036         };
3037
3038 static const unsigned char p_384_sha512_nonce[] =
3039         {
3040         0x5c,0xe8,0xa7,0x7d,0x45,0x8d,0x89,0xcd,0xb7,0xa3,0x4a,0x98
3041         };
3042
3043 static const unsigned char p_384_sha512_personalizationstring[] =
3044         {
3045         0xa9,0x0e,0x29,0xff,0x2f,0x4e,0x92,0xe3,0xbd,0xcf,0x25,0xfa,
3046         0x96,0xdf,0x18,0x16,0x9a,0x99,0xb0,0x07,0xfe,0x51,0x24,0x9e
3047         };
3048
3049 static const unsigned char p_384_sha512_additionalinput[] =
3050         {
3051         0x1a,0x19,0xdf,0x08,0x35,0x94,0x83,0x30,0xab,0x01,0x98,0x2b,
3052         0xa5,0xe2,0x6d,0x99,0xe7,0x30,0xd5,0xef,0xf1,0xa7,0x61,0x61
3053         };
3054
3055 static const unsigned char p_384_sha512_int_returnedbits[] =
3056         {
3057         0xa2,0x80,0xdb,0xa3,0x6c,0x7b,0x74,0x57,0x65,0x9d,0x32,0x53,
3058         0xaf,0xcc,0x91,0x21,0x59,0x3c,0xf2,0xf7,0xf7,0x06,0x29,0xee,
3059         0xce,0x1f,0x3d,0xdb,0x2c,0x9c,0xb9,0xfb,0xf1,0xe1,0xf1,0xac,
3060         0x90,0xcd,0x6e,0xc5,0x97,0x1e,0xa2,0x90,0x2b,0x7e
3061         };
3062
3063 static const unsigned char p_384_sha512_entropyinputreseed[] =
3064         {
3065         0xf4,0x57,0x3d,0xc5,0x13,0x99,0xb2,0x4d,0xdd,0xdf,0xf3,0xa0,
3066         0x7b,0x82,0x8a,0x22,0x9a,0x02,0x9c,0xac,0x6f,0xb4,0x07,0xd8
3067         };
3068
3069 static const unsigned char p_384_sha512_additionalinputreseed[] =
3070         {
3071         0x12,0x98,0x84,0xa1,0xb5,0x26,0x7e,0x55,0xe1,0xd1,0x00,0x8f,
3072         0x50,0x96,0x30,0xa7,0x33,0xf5,0xb4,0x76,0x93,0x7a,0x2d,0x82
3073         };
3074
3075 static const unsigned char p_384_sha512_additionalinput2[] =
3076         {
3077         0xfd,0x4c,0x76,0x61,0x48,0x40,0xa7,0x1e,0xa1,0xe9,0x25,0xcc,
3078         0xa6,0x21,0x4e,0x87,0xc9,0x27,0x06,0x3e,0x89,0x8b,0x18,0x3c
3079         };
3080
3081 static const unsigned char p_384_sha512_returnedbits[] =
3082         {
3083         0x90,0xa9,0xd4,0x1a,0x7f,0xb5,0xdd,0x66,0x5f,0xa7,0xc9,0x53,
3084         0x57,0xfc,0xc1,0x42,0x93,0x09,0xb4,0xf6,0x6c,0x7a,0xce,0x16,
3085         0x5e,0xed,0xad,0xea,0x0e,0x34,0x06,0xbb,0x80,0x89,0xba,0xd3,
3086         0xfe,0x49,0x21,0x4e,0x28,0xa7,0xfe,0xdb,0x27,0xfe
3087         };
3088
3089
3090 /* P-521 SHA-256 PR  */
3091 static const unsigned char p_521_sha256_pr_entropyinput[] =
3092         {
3093         0x1a,0xb3,0x78,0x1e,0x14,0x19,0x83,0x05,0xac,0xb0,0x95,0xe1,
3094         0x10,0xa3,0xc4,0xbc,0x8e,0x13,0x2c,0xf2,0xad,0x63,0x25,0x1f,
3095         0x88,0xc4,0xc4,0x4e,0x6d,0x03,0x96,0x5e
3096         };
3097
3098 static const unsigned char p_521_sha256_pr_nonce[] =
3099         {
3100         0xd8,0x3d,0x1c,0x7e,0x4a,0x8e,0x28,0x4a,0xd6,0xf7,0xe8,0x0c,
3101         0x54,0x69,0x31,0xe4
3102         };
3103
3104 static const unsigned char p_521_sha256_pr_personalizationstring[] =
3105         {
3106         0xc7,0xa6,0xb8,0xc0,0x25,0xaa,0x88,0xf5,0xc7,0x6a,0xd2,0xfc,
3107         0x7a,0x07,0xdd,0xf9,0x02,0xfb,0x79,0x36,0x17,0xc3,0x23,0x6e,
3108         0x9e,0xcd,0x5c,0x5d,0x2b,0xa3,0x45,0x86
3109         };
3110
3111 static const unsigned char p_521_sha256_pr_additionalinput[] =
3112         {
3113         0xde,0xc5,0x1d,0x59,0x4d,0x25,0x3c,0x4f,0xbb,0x81,0xb3,0x61,
3114         0xd4,0x84,0x6e,0x4e,0x52,0x80,0xcd,0x5d,0x1a,0xb9,0xdf,0x44,
3115         0x94,0xf2,0xde,0x54,0x49,0x37,0xea,0xe8
3116         };
3117
3118 static const unsigned char p_521_sha256_pr_entropyinputpr[] =
3119         {
3120         0x4e,0xe6,0x23,0xa4,0x97,0xaf,0x70,0x36,0xed,0xed,0x37,0x6b,
3121         0xc9,0x31,0x95,0x1e,0x07,0x42,0x42,0x4b,0x24,0x06,0xee,0xa0,
3122         0xb5,0xb1,0xd7,0x40,0x29,0x2e,0xa8,0xd8
3123         };
3124
3125 static const unsigned char p_521_sha256_pr_int_returnedbits[] =
3126         {
3127         0x7d,0x64,0x63,0x00,0xa5,0x98,0x9b,0xf3,0xf4,0x09,0x44,0x64,
3128         0xcc,0xa8,0x99,0xbc,0x6e,0xac,0x67,0xb9,0xb1,0xb5,0x3b,0xe8,
3129         0x99,0xde,0x91,0xe8,0x8b,0x95,0x09,0xcc,0x35,0xde,0xd7,0x78,
3130         0x97,0x47,0x7d,0xa0,0x5f,0xe4,0x48,0x1e,0x5f,0x14,0xa0,0xda,
3131         0xd6,0xac,0x59,0xf0,0x31,0xc6,0xb4,0x78,0x70,0x32,0x87,0xd8,
3132         0xbb,0xe1,0x8e
3133         };
3134
3135 static const unsigned char p_521_sha256_pr_additionalinput2[] =
3136         {
3137         0xda,0x8a,0xbb,0x5e,0x1f,0xc7,0x4b,0x7e,0x2b,0x09,0xdd,0x64,
3138         0x42,0x4b,0x19,0x66,0x16,0xb6,0xec,0x1c,0x46,0xd1,0x23,0x26,
3139         0x16,0xe9,0x4a,0x3b,0x6e,0xc1,0xc6,0x74
3140         };
3141
3142 static const unsigned char p_521_sha256_pr_entropyinputpr2[] =
3143         {
3144         0x7b,0x4d,0x60,0x68,0xb1,0xd7,0xbe,0xf7,0x40,0xb5,0x84,0xa8,
3145         0x3b,0x49,0x38,0x8a,0xc2,0x40,0x44,0x0b,0x80,0xc8,0x94,0xbf,
3146         0x6a,0xf5,0x72,0x74,0xb5,0x6f,0x9f,0x7a
3147         };
3148
3149 static const unsigned char p_521_sha256_pr_returnedbits[] =
3150         {
3151         0xb2,0x4e,0x40,0x75,0xaf,0xcf,0x93,0x13,0xaf,0x97,0x49,0x49,
3152         0x5f,0xdf,0x5d,0x21,0x2f,0x99,0x7d,0xe9,0xb8,0x98,0x3e,0x1f,
3153         0x06,0xcc,0xca,0xb6,0xcf,0x6d,0xd2,0xd9,0x85,0x45,0x1a,0xd5,
3154         0x39,0x6a,0x26,0x6c,0x7b,0x7b,0x72,0x18,0xa2,0xf1,0x99,0x7e,
3155         0xe1,0xa0,0xa6,0x54,0xe4,0x0f,0x73,0x48,0xc2,0x54,0xc2,0xc3,
3156         0x4f,0x53,0xb3
3157         };
3158
3159
3160 /* P-521 SHA-256 No PR  */
3161 static const unsigned char p_521_sha256_entropyinput[] =
3162         {
3163         0x69,0x5d,0x57,0x6d,0xe8,0xb1,0x0a,0x01,0xf8,0x1d,0xb9,0x5d,
3164         0xbd,0xfb,0xec,0x38,0xc9,0xd3,0x70,0x88,0x9a,0x8d,0xf2,0x4e,
3165         0x55,0xd6,0xde,0xa2,0xc4,0xd2,0x78,0xfb
3166         };
3167
3168 static const unsigned char p_521_sha256_nonce[] =
3169         {
3170         0x12,0xd2,0x1a,0xac,0xaf,0x49,0xb2,0xa4,0x9c,0x33,0x2e,0xdb,
3171         0x46,0xd1,0xc7,0x23
3172         };
3173
3174 static const unsigned char p_521_sha256_personalizationstring[] =
3175         {
3176         0xb7,0xe2,0xeb,0xa9,0x88,0xb5,0x24,0xf3,0x82,0xc6,0x83,0xe3,
3177         0x5e,0x12,0x32,0xd1,0x50,0x16,0xd4,0x96,0x5e,0x62,0x0b,0xb8,
3178         0x02,0x5b,0x2e,0xd2,0x01,0x52,0x4a,0x48
3179         };
3180
3181 static const unsigned char p_521_sha256_additionalinput[] =
3182         {
3183         0xf4,0xa2,0xfa,0xae,0x18,0x94,0xdb,0x12,0x0b,0xa8,0x1e,0x4e,
3184         0x7f,0xdb,0x3d,0x9e,0x06,0xe2,0x77,0x53,0x2b,0x76,0x0a,0xbd,
3185         0xcc,0xdb,0xae,0x5a,0xbc,0xb0,0x53,0x3f
3186         };
3187
3188 static const unsigned char p_521_sha256_int_returnedbits[] =
3189         {
3190         0xbd,0x16,0xe4,0x4d,0x62,0xa1,0xb4,0x4f,0x3f,0xba,0x27,0x58,
3191         0xa3,0xa1,0x6f,0x92,0xe9,0xe9,0x48,0xd0,0x64,0xba,0xb2,0x17,
3192         0x54,0x9a,0xcc,0x8d,0xae,0x2e,0x68,0x62,0x42,0xab,0x55,0x24,
3193         0x47,0x0f,0x71,0xd2,0xa8,0x78,0xf0,0x5b,0x76,0xd0,0x01,0xd7,
3194         0x86,0xca,0xe5,0xa4,0x41,0x82,0x73,0x51,0x5e,0xa4,0x12,0xa4,
3195         0xe1,0xea,0xbd
3196         };
3197
3198 static const unsigned char p_521_sha256_entropyinputreseed[] =
3199         {
3200         0xda,0x4e,0x7f,0xf0,0x7d,0x4d,0xd8,0x74,0xa2,0x74,0x08,0x82,
3201         0x1b,0xe2,0xab,0xc9,0xd2,0xae,0x07,0xc3,0xc5,0x94,0x2f,0xfa,
3202         0x40,0xe0,0x5a,0x95,0x5b,0x99,0x7f,0x28
3203         };
3204
3205 static const unsigned char p_521_sha256_additionalinputreseed[] =
3206         {
3207         0xf3,0x7d,0x64,0xae,0x7a,0xb3,0x9c,0xee,0x0a,0xd3,0x1a,0x56,
3208         0x3d,0x65,0xac,0x33,0xcc,0x3c,0xb0,0x4a,0x43,0xe3,0xf4,0xe7,
3209         0x05,0x49,0xcc,0x28,0x81,0xaf,0x73,0x8a
3210         };
3211
3212 static const unsigned char p_521_sha256_additionalinput2[] =
3213         {
3214         0x80,0xf2,0xdc,0xd2,0x0e,0x77,0x89,0xd7,0x46,0x67,0x31,0x28,
3215         0xf6,0xe1,0x1a,0x3f,0x70,0xdb,0x42,0x57,0xc7,0x0a,0xbd,0xf9,
3216         0x46,0x0e,0x50,0xc8,0x32,0xe0,0x4d,0x8f
3217         };
3218
3219 static const unsigned char p_521_sha256_returnedbits[] =
3220         {
3221         0x04,0xce,0x3f,0x47,0x4b,0x90,0x0e,0x0b,0x5d,0x61,0xd2,0xe4,
3222         0xca,0x19,0x98,0x3e,0xda,0xbb,0xe0,0x68,0x42,0x16,0x3c,0x25,
3223         0x69,0xb2,0x62,0x3f,0x57,0x84,0x22,0xc5,0x27,0x94,0xcb,0x2a,
3224         0x6c,0xe4,0xe5,0x3a,0x4d,0xfe,0x23,0xeb,0x81,0x09,0x8a,0xa4,
3225         0x57,0x8d,0x38,0x26,0x36,0x83,0xc7,0xfa,0xbd,0x1e,0xab,0x50,
3226         0xfe,0xae,0x42
3227         };
3228
3229
3230 /* P-521 SHA-384 PR  */
3231 static const unsigned char p_521_sha384_pr_entropyinput[] =
3232         {
3233         0xd7,0xc3,0x75,0xc9,0xdc,0xd6,0x28,0x49,0x6c,0x0c,0x26,0xe8,
3234         0x50,0x5a,0x98,0x53,0xa0,0xa1,0x59,0xfc,0xd9,0xef,0x34,0x05,
3235         0x42,0x12,0x5f,0x6c,0x80,0x65,0x37,0x77
3236         };
3237
3238 static const unsigned char p_521_sha384_pr_nonce[] =
3239         {
3240         0x07,0x8a,0xc4,0xbb,0x27,0x54,0x33,0xe2,0xfa,0x4a,0xe2,0x84,
3241         0xe5,0x5b,0x27,0x69
3242         };
3243
3244 static const unsigned char p_521_sha384_pr_personalizationstring[] =
3245         {
3246         0x69,0x90,0xea,0xac,0x46,0x2f,0x9a,0x3a,0xcc,0xdb,0xbc,0x26,
3247         0x5d,0xae,0x6d,0xca,0x80,0x62,0x95,0x3f,0x7c,0x17,0xa3,0xc5,
3248         0x36,0x69,0x8a,0x70,0x4e,0xb0,0xfb,0x16
3249         };
3250
3251 static const unsigned char p_521_sha384_pr_additionalinput[] =
3252         {
3253         0xc7,0x82,0x8d,0xac,0x49,0xed,0x4d,0xe0,0x5f,0x26,0xe4,0xdf,
3254         0xd6,0x26,0xd0,0x90,0x5b,0xeb,0x36,0xa1,0x5a,0x8d,0xe0,0x33,
3255         0x18,0x86,0x73,0xcb,0x0d,0x3c,0xf4,0x76
3256         };
3257
3258 static const unsigned char p_521_sha384_pr_entropyinputpr[] =
3259         {
3260         0x88,0xeb,0xbc,0xc4,0xdb,0xb0,0x0c,0xc7,0xc9,0x0a,0xae,0x9f,
3261         0xe7,0x2c,0x8d,0x8e,0x9a,0x5b,0x37,0xf4,0x91,0x15,0x7c,0x1c,
3262         0x84,0x84,0x48,0x47,0x2d,0x24,0xc4,0xf8
3263         };
3264
3265 static const unsigned char p_521_sha384_pr_int_returnedbits[] =
3266         {
3267         0xf1,0x8a,0x43,0xec,0x2b,0x3f,0x74,0x05,0xae,0x4f,0x96,0xbb,
3268         0x90,0xba,0x55,0x23,0xb5,0x07,0xc9,0xfc,0x53,0x36,0x02,0x1d,
3269         0xb5,0xf4,0x8a,0x8c,0x71,0xb0,0xb2,0x35,0x2e,0xc1,0x91,0xbb,
3270         0x78,0xf1,0x5f,0x1d,0x1b,0xa3,0xa3,0x4d,0x93,0x76,0x36,0xbe,
3271         0xb2,0x83,0x6e,0xe1,0x00,0xe3,0x58,0x98,0x84,0x1a,0x4d,0x77,
3272         0x1c,0x3a,0x5f
3273         };
3274
3275 static const unsigned char p_521_sha384_pr_additionalinput2[] =
3276         {
3277         0x1e,0xbd,0x75,0x87,0x28,0x2e,0x05,0xbe,0xb3,0xa8,0x81,0x57,
3278         0x00,0x24,0xe5,0xe2,0xad,0x7d,0xe5,0x60,0x36,0x9b,0x82,0x09,
3279         0xac,0xdd,0xec,0x5e,0xb6,0xc6,0x9e,0x72
3280         };
3281
3282 static const unsigned char p_521_sha384_pr_entropyinputpr2[] =
3283         {
3284         0xa4,0x30,0xe4,0xec,0x31,0x84,0x79,0x5c,0x40,0xd8,0x54,0x9d,
3285         0xd9,0x64,0xdf,0x46,0xc4,0xca,0x08,0x19,0x65,0x24,0x41,0xa8,
3286         0xdb,0x4c,0xbd,0x4a,0x5a,0x6c,0xe7,0x40
3287         };
3288
3289 static const unsigned char p_521_sha384_pr_returnedbits[] =
3290         {
3291         0x15,0x44,0x90,0x6e,0x56,0xc1,0x51,0x2a,0x0d,0x3a,0x2f,0x1a,
3292         0x2d,0x0e,0xf8,0x32,0x05,0xe0,0xd7,0x77,0xd4,0x82,0x31,0x11,
3293         0x4e,0x70,0x50,0x76,0x5a,0x42,0x56,0x0a,0xeb,0x27,0x63,0x74,
3294         0xe5,0xc4,0x83,0x31,0x25,0x14,0xc4,0x5e,0x6e,0xc7,0xec,0x57,
3295         0x4b,0xaf,0x17,0xd9,0x43,0x61,0xfb,0xf6,0xc1,0x18,0xc3,0x41,
3296         0x3a,0xae,0x81
3297         };
3298
3299
3300 /* P-521 SHA-384 No PR  */
3301 static const unsigned char p_521_sha384_entropyinput[] =
3302         {
3303         0xd2,0x5e,0x8a,0xdf,0x9d,0x50,0x3e,0xb8,0x0e,0x01,0x7b,0x02,
3304         0x95,0xb4,0x26,0x59,0x25,0x7c,0xdf,0x15,0x6f,0x2f,0x59,0xe2,
3305         0x60,0x8d,0xf8,0x83,0xdc,0xaf,0xb0,0xe1
3306         };
3307
3308 static const unsigned char p_521_sha384_nonce[] =
3309         {
3310         0x03,0xb8,0xbe,0x6f,0x90,0x5a,0xca,0x32,0xcd,0x86,0x9f,0x0a,
3311         0x01,0xb6,0x8f,0x41
3312         };
3313
3314 static const unsigned char p_521_sha384_personalizationstring[] =
3315         {
3316         0x39,0x5d,0xc0,0xa6,0xa7,0x8f,0xc4,0x5e,0xec,0xb7,0x45,0xa7,
3317         0x18,0x35,0x73,0xac,0x41,0x12,0x9c,0x8e,0x83,0xaa,0x45,0xb0,
3318         0x35,0x9a,0x8a,0x44,0x6f,0xea,0xb8,0x15
3319         };
3320
3321 static const unsigned char p_521_sha384_additionalinput[] =
3322         {
3323         0xac,0x37,0xb4,0x53,0x39,0xd7,0xdd,0xad,0x63,0x8d,0xe6,0x1a,
3324         0x4c,0xdf,0x1d,0x3a,0x0c,0x54,0xcf,0xb0,0x15,0x01,0xc5,0x46,
3325         0xc7,0x56,0xff,0x64,0x50,0x29,0xb2,0xb2
3326         };
3327
3328 static const unsigned char p_521_sha384_int_returnedbits[] =
3329         {
3330         0x16,0xf7,0x2a,0xa2,0x12,0x41,0xb9,0x58,0xac,0x9c,0x99,0xaa,
3331         0x9b,0xbd,0xcd,0x2c,0x18,0x0d,0xf6,0x5a,0x52,0xd8,0x26,0x4e,
3332         0xd0,0x7a,0xc1,0xe5,0x67,0x54,0x7f,0x65,0x63,0x2a,0xd1,0xef,
3333         0xf0,0x8f,0xb9,0x2e,0xb0,0xdb,0xc7,0x03,0xc8,0xe1,0x58,0xaa,
3334         0xdb,0x7c,0x67,0xf6,0xf4,0x4d,0x33,0x0d,0xf0,0x6c,0xd9,0xdd,
3335         0xd4,0x2c,0xa1
3336         };
3337
3338 static const unsigned char p_521_sha384_entropyinputreseed[] =
3339         {
3340         0x38,0xae,0xd1,0xbd,0xde,0xcc,0x88,0xc7,0x2d,0x39,0x68,0x1e,
3341         0xef,0x19,0xb6,0x3c,0xcc,0xed,0xec,0x87,0xc5,0xc5,0x56,0x22,
3342         0xf6,0xa9,0xea,0xf4,0x8b,0x43,0x6b,0xf7
3343         };
3344
3345 static const unsigned char p_521_sha384_additionalinputreseed[] =
3346         {
3347         0x6f,0xd8,0x16,0x55,0x9f,0xe8,0x71,0x65,0x83,0xf2,0xf5,0xaf,
3348         0xad,0xff,0x19,0x72,0x59,0x8c,0x84,0xdb,0xc7,0x14,0x88,0x34,
3349         0xda,0xda,0xde,0x4f,0xf0,0xfa,0xa3,0x33
3350         };
3351
3352 static const unsigned char p_521_sha384_additionalinput2[] =
3353         {
3354         0xd9,0xe2,0x19,0x2e,0x78,0x71,0x2f,0xec,0x45,0xcc,0x63,0x0e,
3355         0x5b,0x7a,0x02,0x34,0x29,0x90,0xd5,0x2c,0x10,0x7e,0xdd,0x5a,
3356         0x3e,0x1a,0x4c,0x69,0xcb,0xec,0xc6,0x33
3357         };
3358
3359 static const unsigned char p_521_sha384_returnedbits[] =
3360         {
3361         0x88,0x53,0x0c,0xa7,0x5c,0x3f,0x56,0x6a,0x0a,0x10,0xa5,0xac,
3362         0x41,0x60,0x2a,0xa2,0x29,0x35,0x4c,0xc8,0x24,0xd1,0x75,0xc9,
3363         0xcc,0xb8,0x87,0x46,0xcc,0xf2,0x72,0x05,0x7f,0x39,0xf0,0x0f,
3364         0x4d,0x26,0xac,0x8c,0xa4,0x9a,0x87,0xe1,0x16,0xb3,0xc1,0x95,
3365         0xba,0x0e,0x7b,0x96,0xa9,0x91,0x15,0x9c,0x54,0x16,0x73,0x3b,
3366         0xce,0x2a,0xfd
3367         };
3368
3369
3370 /* P-521 SHA-512 PR  */
3371 static const unsigned char p_521_sha512_pr_entropyinput[] =
3372         {
3373         0xb7,0x8e,0x4a,0x70,0x59,0xf4,0xb4,0xfa,0x94,0xef,0xc7,0xe7,
3374         0x7b,0xde,0x06,0x46,0x2e,0x71,0xde,0x82,0x59,0xd5,0x3a,0x32,
3375         0xee,0x1e,0x64,0x24,0x25,0xf4,0x1d,0xa6
3376         };
3377
3378 static const unsigned char p_521_sha512_pr_nonce[] =
3379         {
3380         0x46,0x15,0x8e,0x0c,0x97,0x3c,0x81,0x7b,0x2b,0x38,0xde,0x1a,
3381         0x93,0x68,0x00,0x30
3382         };
3383
3384 static const unsigned char p_521_sha512_pr_personalizationstring[] =
3385         {
3386         0x05,0x12,0xdf,0xac,0xf9,0xf8,0xce,0xec,0x1e,0x98,0x91,0x6d,
3387         0x1d,0xf5,0x4c,0xdf,0xb5,0xb4,0x43,0x90,0x1d,0xaa,0x53,0x9c,
3388         0x9a,0xa3,0xb5,0x54,0x63,0x74,0xf0,0xf2
3389         };
3390
3391 static const unsigned char p_521_sha512_pr_additionalinput[] =
3392         {
3393         0x04,0x8d,0xfc,0x7a,0xa2,0x25,0x99,0x6a,0xb0,0x17,0x7e,0xe8,
3394         0x3b,0xc1,0x2f,0x59,0x48,0xde,0xbe,0x44,0xcc,0x2c,0xe6,0xa8,
3395         0xf0,0x57,0x69,0x7e,0x85,0x2a,0xa8,0x8b
3396         };
3397
3398 static const unsigned char p_521_sha512_pr_entropyinputpr[] =
3399         {
3400         0xbb,0xa2,0x0b,0x9f,0xf2,0x01,0x4c,0x9a,0x20,0x87,0x75,0x69,
3401         0x18,0x51,0x21,0x12,0x55,0xf3,0xc4,0xfe,0x2c,0x5e,0x08,0x85,
3402         0x52,0x12,0x68,0xb8,0x90,0x87,0x0c,0x6f
3403         };
3404
3405 static const unsigned char p_521_sha512_pr_int_returnedbits[] =
3406         {
3407         0x81,0x79,0xde,0xe3,0xe0,0x72,0xd8,0x86,0x39,0x42,0x4b,0x86,
3408         0xf0,0x4b,0xf2,0xa2,0x56,0xc1,0x67,0x41,0x12,0x2e,0x33,0x2d,
3409         0x48,0x80,0x91,0x40,0xef,0x3d,0x47,0xf1,0x9b,0xea,0x55,0x2e,
3410         0x78,0xa1,0x22,0x24,0x5b,0x0c,0xea,0x35,0xba,0xb5,0x0c,0x74,
3411         0x17,0x1a,0x07,0xe6,0x0b,0x51,0xb5,0x9b,0xbf,0xdb,0xa8,0x05,
3412         0xe4,0x7a,0x01
3413         };
3414
3415 static const unsigned char p_521_sha512_pr_additionalinput2[] =
3416         {
3417         0x9d,0x9c,0xbd,0x7e,0x2d,0x33,0x41,0x63,0xb7,0x44,0x91,0xd0,
3418         0xd1,0xaf,0x07,0x8a,0xb2,0xc4,0xd9,0xbc,0x72,0x37,0x70,0x7d,
3419         0x85,0x47,0x06,0x9e,0x73,0x2b,0x85,0xb7
3420         };
3421
3422 static const unsigned char p_521_sha512_pr_entropyinputpr2[] =
3423         {
3424         0xcd,0x1e,0x0c,0x58,0xe9,0x65,0x44,0x95,0x7a,0x68,0xf1,0xe1,
3425         0xd7,0xc5,0xdb,0x89,0x0d,0xdc,0x30,0x0e,0x16,0xc1,0xe5,0xad,
3426         0x57,0x60,0x50,0x31,0x5f,0xf0,0x05,0xf7
3427         };
3428
3429 static const unsigned char p_521_sha512_pr_returnedbits[] =
3430         {
3431         0x5b,0x24,0x8e,0xab,0x1b,0x1b,0x86,0xe0,0x65,0x11,0x84,0x75,
3432         0xbf,0x5b,0x00,0x0b,0xd8,0x08,0x7d,0x3f,0xfa,0x70,0xe7,0x65,
3433         0xe3,0x68,0xe8,0x1f,0x78,0x68,0x49,0x5d,0x06,0x3f,0x7b,0x9b,
3434         0xc2,0xc9,0x06,0x48,0xbd,0x3d,0x27,0x6c,0x36,0xc3,0xfb,0x57,
3435         0x89,0x8a,0x90,0x92,0x1c,0xc0,0xda,0x58,0xd8,0x0e,0x81,0x70,
3436         0x6d,0xd4,0x34
3437         };
3438
3439
3440 /* P-521 SHA-512 No PR  */
3441 static const unsigned char p_521_sha512_entropyinput[] =
3442         {
3443         0x3d,0x1f,0x10,0x75,0x3c,0x9f,0x09,0xf2,0xe2,0x38,0x50,0x8e,
3444         0x88,0xb1,0x1f,0x45,0xd3,0xb9,0x60,0xd9,0xd4,0x2f,0xed,0xbb,
3445         0x5f,0xb2,0x0e,0x3b,0xaa,0x6b,0x2e,0xee
3446         };
3447
3448 static const unsigned char p_521_sha512_nonce[] =
3449         {
3450         0x9d,0x59,0xbf,0xcb,0xcf,0x3f,0xe0,0xb1,0x2b,0x6f,0x3d,0xd8,
3451         0x38,0x77,0xf6,0x1c
3452         };
3453
3454 static const unsigned char p_521_sha512_personalizationstring[] =
3455         {
3456         0xf2,0x91,0xdb,0xef,0x70,0x9a,0x87,0x74,0xc4,0xf6,0x8e,0x09,
3457         0xe8,0x39,0xe5,0xc0,0x79,0x12,0xcb,0xeb,0x58,0x1c,0x88,0x81,
3458         0x83,0xe8,0x66,0xd0,0x2f,0x49,0xef,0x63
3459         };
3460
3461 static const unsigned char p_521_sha512_additionalinput[] =
3462         {
3463         0x38,0x7c,0xdd,0x33,0xcd,0x09,0x12,0xc0,0xb8,0x73,0x72,0xdf,
3464         0xad,0xe1,0xe9,0xd2,0x69,0xd0,0xa0,0x1a,0xe5,0xfc,0x51,0x0a,
3465         0xd5,0x90,0xe9,0x8c,0x66,0x8c,0x63,0x35
3466         };
3467
3468 static const unsigned char p_521_sha512_int_returnedbits[] =
3469         {
3470         0x7c,0xd6,0xd8,0xbb,0x12,0x5d,0xaf,0x65,0x65,0xd2,0x20,0x58,
3471         0x82,0x17,0xbb,0xd6,0x37,0x24,0x23,0xe2,0x49,0xe3,0x13,0x74,
3472         0x66,0x7a,0xaf,0x35,0x8f,0x18,0x88,0xa8,0xb8,0xc3,0x84,0xb1,
3473         0xb5,0xfa,0xf2,0x46,0x49,0x91,0x95,0x06,0x1a,0x8c,0xb3,0x94,
3474         0x78,0x11,0x73,0x9d,0xeb,0x07,0xc6,0x20,0x52,0x89,0xf1,0xaf,
3475         0xb2,0x66,0xba
3476         };
3477
3478 static const unsigned char p_521_sha512_entropyinputreseed[] =
3479         {
3480         0xd5,0x51,0xf0,0x88,0xb6,0xa5,0x26,0x8c,0x34,0x82,0xd3,0xa4,
3481         0xee,0x6e,0xc4,0x70,0x27,0xb8,0x85,0xa7,0xca,0x22,0x7b,0x62,
3482         0x9c,0xcf,0x3e,0xa9,0xc2,0x6e,0x3a,0x3e
3483         };
3484
3485 static const unsigned char p_521_sha512_additionalinputreseed[] =
3486         {
3487         0x22,0xce,0x9f,0x3b,0x36,0x8d,0x4e,0xe2,0xe5,0xff,0xaf,0x72,
3488         0x90,0xe8,0xfa,0x3b,0x16,0xe2,0xcb,0xc6,0xf1,0xac,0x5e,0xb8,
3489         0x8e,0xb0,0x0a,0x05,0xeb,0xd4,0xfd,0x58
3490         };
3491
3492 static const unsigned char p_521_sha512_additionalinput2[] =
3493         {
3494         0x2f,0x55,0x03,0xe2,0x5f,0x58,0xf4,0xc8,0xf9,0x98,0x79,0x9a,
3495         0x1e,0x44,0xa5,0x0d,0x38,0x20,0x5e,0xe4,0x54,0x0a,0xd4,0x1f,
3496         0xc3,0xcf,0x3e,0x66,0xf2,0x2f,0xd5,0xb6
3497         };
3498
3499 static const unsigned char p_521_sha512_returnedbits[] =
3500         {
3501         0x2e,0xbf,0x98,0xf9,0x85,0x27,0x8b,0xff,0x36,0xb9,0x40,0x0b,
3502         0xc0,0xa1,0xa0,0x13,0x20,0x06,0xcc,0xe6,0x2a,0x03,0x77,0x7d,
3503         0xee,0xde,0xcc,0x34,0xe3,0xcd,0x77,0xea,0xd0,0x3e,0xbe,0xdd,
3504         0xf6,0x15,0xfb,0xa7,0xd7,0x8e,0xd0,0x2e,0x2f,0x82,0x4c,0xc7,
3505         0x87,0xb1,0x6f,0xc5,0xf8,0x5c,0x78,0xde,0x77,0x9b,0x15,0x9a,
3506         0xb9,0x3c,0x38
3507         };
3508