Fix printing of PROXY_CERT_INFO_EXTENSION to not assume NUL terminated strings
[openssl.git] / test / acvp_test.inc
1 /*
2  * Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License 2.0 (the "License").  You may not use
5  * this file except in compliance with the License.  You can obtain a copy
6  * in the file LICENSE in the source distribution or at
7  * https://www.openssl.org/source/license.html
8  */
9
10 #define PASS 1
11 #define FAIL 0
12 #define ITM(x) x, sizeof(x)
13
14 #ifndef OPENSSL_NO_EC
15
16 struct ecdsa_keygen_st {
17     const char *curve_name;
18 };
19
20 struct ecdsa_pub_verify_st {
21     const char *curve_name;
22     const unsigned char *pub;
23     size_t pub_len;
24     int pass;
25 };
26
27 struct ecdsa_siggen_st {
28     const char *digest_alg;
29     const char *curve_name;
30     const unsigned char *msg;
31     size_t msg_len;
32 };
33
34 struct ecdsa_sigver_st {
35     const char *digest_alg;
36     const char *curve_name;
37     const unsigned char *msg;
38     size_t msg_len;
39     const unsigned char *pub;
40     size_t pub_len;
41     const unsigned char *r;
42     size_t r_len;
43     const unsigned char *s;
44     size_t s_len;
45     int pass;
46 };
47
48 static const struct ecdsa_keygen_st ecdsa_keygen_data[] = {
49     { "P-224" },
50 };
51
52 static const unsigned char ecdsa_pv_pub0[] = {
53     POINT_CONVERSION_UNCOMPRESSED,
54     0x50, 0x0F, 0x05, 0x86, 0xD3, 0xAA, 0x8A, 0x48,
55     0x46, 0x63, 0x0D, 0xD7, 0xC7, 0x5D, 0x5F, 0x1D,
56     0xB2, 0xA7, 0x9B, 0xE8, 0xC8, 0xBB, 0xBE, 0x2C,
57     0x93, 0x33, 0xDC, 0xCB, 0xBB, 0x2F, 0xB3, 0xCF,
58     0x55, 0x88, 0x7A, 0x97, 0xD1, 0x75, 0x73, 0xFE,
59     0x92, 0x02, 0x5C, 0xC8, 0xE3, 0xF4, 0x35, 0x4B,
60     0x08, 0x7E, 0xF4, 0xD3, 0x7D, 0x86, 0x06, 0x92,
61     0xBA, 0x15, 0x3F, 0xCF, 0x0C, 0xC4, 0xBF, 0xBC,
62 };
63 static const unsigned char ecdsa_pv_pub1[] = {
64     POINT_CONVERSION_UNCOMPRESSED,
65     0x1F, 0x74, 0xD6, 0x99, 0xEB, 0x1D, 0x4F, 0x26,
66     0x25, 0x5E, 0xD4, 0x6A, 0xA6, 0xD5, 0x23, 0xB3,
67     0xF5, 0x5D, 0x14, 0x38, 0xE0, 0x4D, 0x23, 0x7F,
68     0x9A, 0xE5, 0xB7, 0x1B, 0xF9, 0x7F, 0xAD, 0x7E,
69     0x0E, 0x1C, 0x06, 0xF4, 0x20, 0xF3, 0x8E, 0x93,
70     0x79, 0x11, 0x15, 0xD6, 0x82, 0x12, 0x14, 0xC2,
71     0xF9, 0x30, 0x61, 0x9A, 0xC3, 0x12, 0xE3, 0x88,
72     0x4E, 0xB1, 0x1A, 0x4B, 0x54, 0x6D, 0xEA, 0xCF,
73 };
74 static const struct ecdsa_pub_verify_st ecdsa_pv_data[] = {
75     {
76         "P-256",
77         ITM(ecdsa_pv_pub0),
78         PASS
79     },
80     {
81         "P-256",
82         ITM(ecdsa_pv_pub1),
83         FAIL
84     },
85 };
86
87 static const unsigned char ecdsa_siggen_msg0[] = {
88     0xB8, 0x65, 0x55, 0x9D, 0x54, 0x5C, 0xD2, 0xC7,
89     0xC2, 0xCA, 0x96, 0xDF, 0xF3, 0x9B, 0x26, 0xED,
90     0xF8, 0x16, 0x99, 0x05, 0x94, 0xA9, 0x3F, 0x69,
91     0x5F, 0xE8, 0x73, 0xC5, 0xFE, 0x78, 0x28, 0x84,
92     0xC0, 0xA7, 0xFA, 0x29, 0xBE, 0x37, 0x82, 0xC0,
93     0x56, 0x41, 0x49, 0xAF, 0xF3, 0x59, 0xBB, 0x96,
94     0xF6, 0x4B, 0x87, 0x45, 0xAB, 0x1F, 0xB2, 0xB3,
95     0x8F, 0x14, 0xD4, 0xD7, 0x1C, 0x29, 0x08, 0x0C,
96     0x79, 0x8A, 0x38, 0xAE, 0x32, 0x1C, 0x38, 0x80,
97     0x5B, 0x45, 0x25, 0x46, 0x5D, 0xCE, 0x7D, 0x34,
98     0xC0, 0x90, 0xEF, 0x06, 0x84, 0xA1, 0x0F, 0xF8,
99     0x56, 0x2D, 0x46, 0xF7, 0xB7, 0xDE, 0x06, 0x7C,
100     0x87, 0xA6, 0x7E, 0x71, 0x8D, 0x7B, 0x27, 0xE5,
101     0x51, 0x0C, 0xE7, 0xBA, 0x18, 0x08, 0xE0, 0xD5,
102     0x0B, 0x8C, 0xB6, 0x22, 0xA5, 0x8F, 0xB3, 0xF7,
103     0xFB, 0xC6, 0x2A, 0x59, 0x02, 0x8A, 0x8C, 0x42,
104 };
105 static const struct ecdsa_siggen_st ecdsa_siggen_data[] = {
106      {
107         "SHA2-256",
108         "P-384",
109         ITM(ecdsa_siggen_msg0),
110      },
111 };
112
113 static const unsigned char ecdsa_sigver_msg0[] = {
114     0x0b, 0x00, 0xc4, 0x3f, 0xb9, 0xcb, 0x92, 0xd3,
115     0x56, 0x83, 0xc6, 0x97, 0x23, 0xf8, 0xf1, 0x0b,
116     0x0a, 0xa6, 0x60, 0xca, 0x3a, 0xed, 0xba, 0x38,
117     0xf7, 0x86, 0xc2, 0x6d, 0xa1, 0xb6, 0x40, 0x2c,
118     0x92, 0xfe, 0x44, 0x1a, 0x19, 0x61, 0x5c, 0x02,
119     0xfa, 0xd3, 0x79, 0x99, 0xb8, 0x99, 0xe8, 0x70,
120     0xaa, 0x26, 0x01, 0xf2, 0xe7, 0xdc, 0x69, 0xce,
121     0x9a, 0xd2, 0xaa, 0x02, 0x15, 0xab, 0x0d, 0xcb,
122     0x77, 0xaf, 0xe0, 0x81, 0x6d, 0x92, 0x6e, 0x09,
123     0xcd, 0x93, 0xd6, 0x22, 0x67, 0xc2, 0xd3, 0x7c,
124     0x58, 0x11, 0xc8, 0x77, 0x4e, 0x97, 0x92, 0x87,
125     0xcd, 0xe4, 0xc9, 0x2a, 0x77, 0xb2, 0xf0, 0xe7,
126     0xd3, 0x5a, 0x20, 0x36, 0x91, 0x75, 0x23, 0xa8,
127     0xcb, 0x4a, 0xd0, 0xe5, 0x95, 0x3b, 0x24, 0x2a,
128     0x86, 0xa0, 0xaa, 0xbe, 0xac, 0x59, 0xd7, 0xd0,
129     0xfb, 0xdf, 0x33, 0xc9, 0x73, 0xaf, 0x8a, 0x06,
130 };
131 static const unsigned char ecdsa_sigver_msg1[] = {
132     0x45, 0xBB, 0x9D, 0xDC, 0x1D, 0x0A, 0xF2, 0xD7,
133     0x56, 0x07, 0x1F, 0x47, 0x2A, 0x17, 0xCE, 0x38,
134     0xA8, 0x7E, 0x75, 0xED, 0x4F, 0xE4, 0x17, 0x65,
135     0x11, 0x69, 0xDF, 0x04, 0xF0, 0x39, 0x28, 0xD0,
136     0x75, 0xD5, 0xF0, 0x1C, 0x32, 0x84, 0x16, 0x74,
137     0x7D, 0x61, 0x57, 0xDB, 0x92, 0x24, 0x60, 0xBA,
138     0x58, 0x7B, 0x48, 0xB4, 0x44, 0xFB, 0xD7, 0x35,
139     0xD7, 0xCF, 0x61, 0x34, 0x7F, 0x70, 0x38, 0xAE,
140     0xE2, 0xB2, 0x6C, 0x8A, 0xD1, 0x27, 0xB4, 0xF0,
141     0x33, 0xB9, 0xE9, 0x27, 0x1A, 0xEE, 0x34, 0x72,
142     0x9D, 0x5E, 0x74, 0x28, 0xE7, 0x0B, 0x82, 0xE1,
143     0x60, 0xC2, 0x43, 0xE6, 0x75, 0x4A, 0x2E, 0x66,
144     0x88, 0x72, 0xCA, 0xC7, 0x97, 0xFE, 0x19, 0xCD,
145     0xA4, 0x30, 0xBF, 0xC7, 0xDC, 0x37, 0xF8, 0x1B,
146     0xB6, 0xD7, 0x7E, 0xAD, 0xD6, 0xC1, 0x20, 0xAC,
147     0x79, 0x03, 0x89, 0xEA, 0xF4, 0x59, 0x21, 0xF2,
148 };
149
150 static const unsigned char ecdsa_sigver_pub0[] = {
151     POINT_CONVERSION_UNCOMPRESSED,
152     0x2c, 0xdf, 0x6f, 0x23, 0x3d, 0x73, 0x86, 0x25,
153     0x1a, 0x29, 0xd6, 0xde, 0x98, 0xcf, 0x85, 0xf7,
154     0x6a, 0x55, 0xba, 0xdb, 0x0f, 0x35, 0x94, 0x92,
155     0xb3, 0x58, 0xf3, 0x89, 0x7f, 0x6c, 0x22, 0x10,
156     0xd9, 0xd3, 0x54, 0xd2, 0x74, 0x9f, 0x64, 0x0d,
157     0xd2, 0xf8, 0x3e, 0xfc, 0x7f, 0xb7, 0x16, 0x36,
158 };
159 static const unsigned char ecdsa_sigver_pub1[] = {
160     POINT_CONVERSION_UNCOMPRESSED,
161     0x00, 0xD4, 0x79, 0x9F, 0xD9, 0x99, 0xEC, 0x21,
162     0x1E, 0xE6, 0x06, 0x58, 0xB7, 0xFB, 0x76, 0xFC,
163     0xF5, 0x9A, 0xE1, 0x1E, 0x5A, 0x87, 0xD7, 0x0E,
164     0x21, 0x7B, 0xDE, 0x21, 0x52, 0xE6, 0xE4, 0x09,
165     0x2C, 0xB8, 0x5D, 0x99, 0xE2, 0x6A, 0xB1, 0xE5,
166     0x79, 0x11, 0x49, 0xBD, 0x3D, 0xC7, 0x1C, 0x48,
167     0xF5, 0x83, 0xFC, 0x9E, 0xF3, 0xAB, 0x2D, 0x30,
168     0x64, 0xEC, 0x22, 0xCB, 0xEB, 0x95, 0xBF, 0xF2,
169     0x2D, 0xCE,
170
171     0x01, 0xB9, 0xFE, 0xBD, 0x4C, 0x4B, 0xDA, 0x1F,
172     0x30, 0xC3, 0x5C, 0x0F, 0x5D, 0x3E, 0x36, 0x51,
173     0xF2, 0xC0, 0xF7, 0xFC, 0x79, 0x25, 0x98, 0xF2,
174     0x4B, 0x2B, 0x61, 0xFC, 0xD9, 0xC4, 0x5C, 0xC0,
175     0x13, 0xA2, 0x4F, 0x2E, 0x34, 0xD4, 0x15, 0xC4,
176     0x25, 0x13, 0xA9, 0x30, 0x35, 0x56, 0xB7, 0xCD,
177     0xD0, 0xC4, 0x65, 0x5D, 0xFB, 0xB2, 0xE4, 0xBF,
178     0x22, 0x67, 0xEF, 0xA1, 0x2E, 0xA2, 0x1B, 0x33,
179     0xE4, 0x3D,
180 };
181 static const unsigned char ecdsa_sigver_r0[] = {
182     0x6b, 0x35, 0x62, 0x67, 0xa3, 0xbd, 0x76, 0xc8,
183     0xa3, 0xdc, 0x93, 0x18, 0x82, 0x6f, 0xd2, 0x43,
184     0x52, 0x18, 0x93, 0x21, 0x8e, 0xce, 0x12, 0x65,
185 };
186 static const unsigned char ecdsa_sigver_r1[] = {
187     0x01, 0xBF, 0xA6, 0x46, 0x6D, 0x4E, 0x1C, 0x42,
188     0x18, 0x7D, 0x46, 0xC6, 0x5F, 0xA5, 0x05, 0xEA,
189     0x1A, 0xEF, 0xDB, 0x46, 0xD1, 0x79, 0x3F, 0x2B,
190     0xE2, 0x70, 0x0F, 0x14, 0x26, 0x30, 0x7F, 0x2D,
191     0x1A, 0x41, 0xFD, 0x11, 0xC0, 0xBB, 0xD0, 0xD5,
192     0x09, 0xAA, 0xE0, 0x1A, 0xFE, 0x59, 0x23, 0x7D,
193     0x1B, 0x5C, 0xB9, 0x51, 0xCD, 0x3A, 0xA1, 0x32,
194     0xC6, 0x92, 0xB0, 0x7D, 0x91, 0xC6, 0x30, 0xC0,
195     0xA4, 0x2A,
196 };
197 static const unsigned char ecdsa_sigver_s0[] = {
198     0x7b, 0x92, 0x4a, 0x13, 0x8d, 0x74, 0x87, 0xb2,
199     0xd4, 0xc7, 0x21, 0x73, 0x2c, 0x8a, 0x09, 0x25,
200     0xac, 0x19, 0xcf, 0x9c, 0xbc, 0xd7, 0x7b, 0xf8,
201 };
202 static const unsigned char ecdsa_sigver_s1[] = {
203     0x00, 0x8D, 0x56, 0xBA, 0x60, 0x38, 0x23, 0x47,
204     0xB8, 0x32, 0x73, 0x29, 0x40, 0x84, 0xF0, 0x2C,
205     0x90, 0xB2, 0x1D, 0x56, 0xFF, 0x38, 0x68, 0xAA,
206     0x42, 0xBA, 0x48, 0xA1, 0x52, 0x8C, 0xB4, 0xD6,
207     0x15, 0xB7, 0x88, 0xB3, 0x71, 0xC6, 0x69, 0x60,
208     0x6C, 0xEB, 0x4B, 0xF6, 0x19, 0x6A, 0x95, 0x8F,
209     0x01, 0x09, 0xC6, 0x13, 0xE6, 0x17, 0x38, 0xC8,
210     0x10, 0x49, 0x4F, 0x87, 0x43, 0x63, 0x62, 0x98,
211     0xB1, 0xAC,
212 };
213 static const struct ecdsa_sigver_st ecdsa_sigver_data[] = {
214     {
215         "SHA-1",
216         "P-192",
217         ITM(ecdsa_sigver_msg0),
218         ITM(ecdsa_sigver_pub0),
219         ITM(ecdsa_sigver_r0),
220         ITM(ecdsa_sigver_s0),
221         PASS,
222     },
223     {
224         "SHA2-512",
225         "P-521",
226         ITM(ecdsa_sigver_msg1),
227         ITM(ecdsa_sigver_pub1),
228         ITM(ecdsa_sigver_r1),
229         ITM(ecdsa_sigver_s1),
230         FAIL,
231     },
232 };
233
234 #endif /* OPENSSL_NO_EC */
235
236
237 #ifndef OPENSSL_NO_DSA
238
239 struct dsa_paramgen_st {
240     size_t L;
241     size_t N;
242 };
243
244 struct dsa_pqver_st {
245     const unsigned char *p;
246     size_t p_len;
247     const unsigned char *q;
248     size_t q_len;
249     const unsigned char *seed;
250     size_t seed_len;
251     int counter;
252     int pass;
253 };
254
255 struct dsa_siggen_st {
256     const char *digest_alg;
257     size_t L;
258     size_t N;
259     const unsigned char *msg;
260     size_t msg_len;
261 };
262
263 struct dsa_sigver_st {
264     const char *digest_alg;
265     const unsigned char *p;
266     size_t p_len;
267     const unsigned char *q;
268     size_t q_len;
269     const unsigned char *g;
270     size_t g_len;
271     const unsigned char *pub;
272     size_t pub_len;
273     const unsigned char *msg;
274     size_t msg_len;
275     const unsigned char *r;
276     size_t r_len;
277     const unsigned char *s;
278     size_t s_len;
279     int pass;
280 };
281
282 static const struct dsa_paramgen_st dsa_keygen_data[] = {
283     { 2048, 224 },
284 };
285
286 static const struct dsa_paramgen_st dsa_paramgen_data[] = {
287     { 2048, 256 },
288 };
289
290 /* dsa_pqver */
291 static const unsigned char dsa_pqver_p0[] = {
292     0xEF, 0xC7, 0x95, 0xEB, 0x1E, 0x1C, 0x8F, 0x5E,
293     0x4A, 0x85, 0xCD, 0x20, 0x66, 0xC7, 0xB9, 0x6C,
294     0x4E, 0xC4, 0xE7, 0x3B, 0x7B, 0x8E, 0x0E, 0x8C,
295     0x00, 0xF5, 0x2E, 0x68, 0xF5, 0xC2, 0x89, 0x47,
296     0xA5, 0x7B, 0xA6, 0xA3, 0x30, 0xBC, 0xFA, 0x25,
297     0x29, 0xBD, 0xE2, 0x4D, 0x05, 0x0B, 0x6D, 0x2D,
298     0x49, 0x50, 0x53, 0xEF, 0x8C, 0xBE, 0xC3, 0xEC,
299     0x92, 0xC1, 0x45, 0xE3, 0x95, 0x39, 0x72, 0x58,
300     0xFD, 0x93, 0x23, 0x06, 0x37, 0xD6, 0x56, 0x1F,
301     0x75, 0x92, 0xAD, 0x15, 0xA9, 0x88, 0x25, 0x3F,
302     0xD6, 0x47, 0xB5, 0xB1, 0x32, 0x01, 0x2D, 0x70,
303     0x55, 0xB9, 0x5D, 0xED, 0x1B, 0x40, 0x39, 0x78,
304     0x74, 0xA6, 0xDF, 0x4B, 0xE4, 0x86, 0x8B, 0x56,
305     0x46, 0x1E, 0xDB, 0x04, 0xD2, 0xD2, 0x50, 0xE9,
306     0x5D, 0x88, 0xA8, 0x84, 0x55, 0xE3, 0xF3, 0xB7,
307     0x07, 0x54, 0x9E, 0x98, 0x03, 0x9F, 0x31, 0x86,
308     0xEB, 0x0D, 0x26, 0x97, 0x30, 0x31, 0x34, 0x64,
309     0x35, 0x56, 0x40, 0x35, 0xEA, 0xE5, 0x00, 0x90,
310     0xBD, 0x20, 0x93, 0xFC, 0xAD, 0x70, 0x9A, 0xF5,
311     0xB8, 0xA4, 0xAD, 0xEC, 0xFE, 0x64, 0xF4, 0x2C,
312     0x11, 0x25, 0x68, 0x27, 0x0E, 0x5C, 0x81, 0x57,
313     0x64, 0x9A, 0x50, 0x86, 0xA3, 0x69, 0x61, 0x1E,
314     0x0D, 0x62, 0xE9, 0x4D, 0x44, 0x1E, 0x1E, 0xE1,
315     0x6D, 0x8F, 0x10, 0x67, 0x82, 0xB6, 0x6A, 0xD0,
316     0x08, 0x59, 0xF3, 0xBA, 0xE8, 0x29, 0xE0, 0x60,
317     0x1F, 0x3E, 0xBA, 0xAB, 0x6E, 0xB6, 0x5B, 0xAF,
318     0xCC, 0x76, 0x5D, 0x70, 0x7F, 0x3A, 0xAA, 0x7E,
319     0x27, 0x23, 0x6F, 0x8E, 0xF8, 0x06, 0xC1, 0x3E,
320     0xAE, 0xBE, 0x22, 0x71, 0x93, 0xEC, 0x9A, 0x33,
321     0x3C, 0xA4, 0x77, 0xD4, 0x76, 0x79, 0x10, 0x5A,
322     0xF4, 0x07, 0x52, 0x66, 0x9D, 0xC5, 0xFD, 0xDA,
323     0xA1, 0xE7, 0xA2, 0x45, 0x27, 0x08, 0x54, 0xB9,
324     0x3B, 0xEC, 0x07, 0xFB, 0xE0, 0xF4, 0x4B, 0x7C,
325     0xB1, 0x04, 0x2B, 0x0E, 0x65, 0x3A, 0xF7, 0x65,
326     0x57, 0x65, 0xCF, 0x36, 0x28, 0x2A, 0x1C, 0x57,
327     0x10, 0x28, 0x02, 0x26, 0xF7, 0x45, 0xAA, 0x1B,
328     0x2E, 0xE3, 0x25, 0xEA, 0x28, 0xA1, 0x84, 0x1E,
329     0xA1, 0xA3, 0xAB, 0x52, 0x25, 0xD4, 0x64, 0xB2,
330     0xA8, 0xA5, 0xFD, 0x2F, 0x48, 0x90, 0x28, 0x8F,
331     0x8B, 0x10, 0x7F, 0x6F, 0x80, 0xA9, 0x4B, 0xB3,
332     0xC0, 0x5B, 0x27, 0xE9, 0x90, 0x90, 0x53, 0xA8,
333     0x30, 0x88, 0xD4, 0x9B, 0x09, 0x62, 0xCD, 0x99,
334     0x61, 0x63, 0x14, 0xDF, 0xC3, 0x5A, 0x60, 0xBE,
335     0xA3, 0x40, 0xAB, 0x29, 0x3E, 0xB2, 0x02, 0x19,
336     0x9D, 0x97, 0x75, 0x34, 0x0D, 0x71, 0x3B, 0xEC,
337     0xF1, 0x13, 0x23, 0xE6, 0xCA, 0x35, 0x84, 0xFF,
338     0x27, 0x4A, 0xE0, 0x11, 0x59, 0xEB, 0x1D, 0x8C,
339     0xFF, 0xF3, 0x91, 0x90, 0x3C, 0xE9, 0x43, 0x31,
340 };
341 static const unsigned char dsa_pqver_p1[] = {
342     0x83, 0xA6, 0x8F, 0xE5, 0xFE, 0xF0, 0x9D, 0x9E,
343     0x8A, 0x80, 0x9C, 0x47, 0xEF, 0xBE, 0x1A, 0xD0,
344     0x7F, 0xEA, 0x6D, 0x08, 0x59, 0x2D, 0x04, 0xB6,
345     0xAC, 0x2A, 0x54, 0x47, 0x42, 0xB2, 0x5F, 0x28,
346     0xF6, 0x30, 0x36, 0xE3, 0xDA, 0x4E, 0xDC, 0xC1,
347     0x6E, 0x61, 0xCE, 0x45, 0x1C, 0x73, 0x87, 0x3E,
348     0xB7, 0x94, 0xDB, 0x68, 0xEE, 0xFD, 0x8D, 0x93,
349     0x5E, 0x5D, 0xAB, 0x77, 0xA2, 0xF0, 0xD6, 0x60,
350     0xCD, 0x9D, 0x13, 0xE0, 0xA6, 0xE7, 0xEC, 0x45,
351     0xBA, 0xD8, 0xB0, 0x3D, 0x4F, 0x75, 0x30, 0xB7,
352     0x89, 0x96, 0x2B, 0x48, 0xFC, 0x73, 0xB8, 0x5C,
353     0x59, 0xDC, 0x41, 0xEF, 0xCE, 0xC6, 0x7F, 0x66,
354     0x4F, 0xB6, 0x1F, 0x9C, 0x91, 0xB4, 0xEE, 0xAA,
355     0x2C, 0x4A, 0x7F, 0x1F, 0xBF, 0xE2, 0x9A, 0xF2,
356     0x9F, 0x52, 0x83, 0x30, 0x97, 0x86, 0x7F, 0xA2,
357     0x85, 0x20, 0x75, 0x75, 0xAD, 0x01, 0xE2, 0x40,
358     0x3A, 0x82, 0xD8, 0x52, 0x91, 0x15, 0x67, 0x1B,
359     0x00, 0x78, 0xFD, 0x3E, 0x61, 0x8A, 0xA8, 0x1D,
360     0x1A, 0x07, 0x8E, 0x87, 0x48, 0x64, 0x1E, 0x5B,
361     0x05, 0x34, 0x7E, 0x5D, 0xD6, 0x11, 0xC4, 0xB7,
362     0x0E, 0xF3, 0x91, 0xC7, 0x2B, 0xAD, 0x22, 0x96,
363     0xA3, 0xF7, 0x4E, 0xEB, 0xE4, 0x9F, 0x67, 0x91,
364     0x9D, 0x65, 0x45, 0x8F, 0x92, 0x2F, 0x8B, 0x46,
365     0xCC, 0x4B, 0xB9, 0xC5, 0xD0, 0x00, 0xFF, 0xBB,
366     0x37, 0xD6, 0x20, 0x36, 0x7D, 0x4A, 0xC3, 0x75,
367     0xAC, 0x58, 0xE5, 0x24, 0x54, 0x47, 0x80, 0x2C,
368     0x83, 0xBD, 0xC8, 0xA7, 0x87, 0x20, 0x3D, 0xA8,
369     0x78, 0xE2, 0xC5, 0x4E, 0xE8, 0x4E, 0x3C, 0xFA,
370     0x75, 0xA0, 0x8D, 0x35, 0x8E, 0xF2, 0x61, 0x19,
371     0x84, 0x9C, 0x71, 0x95, 0x5B, 0x09, 0xE1, 0xB6,
372     0xC6, 0x6A, 0x7C, 0x34, 0x39, 0x67, 0x14, 0xAB,
373     0xA7, 0x6B, 0x45, 0x01, 0xF0, 0x0F, 0x52, 0xB5,
374     0x23, 0xD9, 0x67, 0x57, 0x91, 0x9F, 0xC2, 0xA9,
375     0xB6, 0x7C, 0x15, 0x59, 0x3E, 0x22, 0x89, 0xD6,
376     0x0B, 0x83, 0xB4, 0x29, 0xEF, 0x0B, 0x66, 0x30,
377     0x2D, 0xE7, 0xC5, 0x04, 0x1F, 0x28, 0x7D, 0x9F,
378     0xC9, 0x87, 0x05, 0xC6, 0x1B, 0x18, 0x1F, 0x3B,
379     0x90, 0x00, 0x31, 0x5B, 0xDC, 0x19, 0x7D, 0x71,
380     0xE4, 0xA4, 0x21, 0xB5, 0x37, 0xE7, 0x9B, 0xA4,
381     0xBC, 0x04, 0xF8, 0x0A, 0x95, 0x3F, 0xDB, 0x30,
382     0xA5, 0xC9, 0xC2, 0xD7, 0x19, 0x9D, 0x57, 0x77,
383     0x44, 0xB7, 0x47, 0xBD, 0xA1, 0x01, 0xEB, 0x51,
384     0xA4, 0xB2, 0x8B, 0x1A, 0x51, 0xA4, 0xCC, 0x07,
385     0x57, 0x19, 0xFB, 0xFC, 0xAA, 0x42, 0xCC, 0x2A,
386     0xCE, 0xF8, 0xFD, 0xF8, 0x92, 0xC4, 0xDC, 0x7B,
387     0x0B, 0x92, 0x9A, 0xD7, 0xC5, 0xBC, 0x6D, 0x74,
388     0x13, 0x0E, 0xD2, 0x8F, 0x86, 0xEB, 0x8D, 0xD7,
389     0xC6, 0xAC, 0x43, 0xD8, 0x00, 0x80, 0x53, 0x57,
390 };
391 static const unsigned char dsa_pqver_q0[] = {
392     0xCB, 0x74, 0xE6, 0x57, 0x37, 0x0F, 0x7A, 0x61,
393     0x0B, 0x09, 0xCE, 0x91, 0x78, 0x06, 0x3C, 0x7F,
394     0x20, 0xF5, 0xD1, 0x1E, 0x1D, 0xC2, 0x43, 0xBA,
395     0x89, 0xC8, 0x4A, 0x49, 0x83, 0x38, 0xE1, 0x2D,
396 };
397 static const unsigned char dsa_pqver_q1[] = {
398     0x85, 0x2B, 0x77, 0x9B, 0x1B, 0x70, 0x6F, 0x8C,
399     0x10, 0xF3, 0x2F, 0xA9, 0xC2, 0xEE, 0xF6, 0x74,
400     0x78, 0x5F, 0xD5, 0x5E, 0x2C, 0x34, 0xAF, 0xD1,
401     0x25, 0x63, 0x96, 0x6D, 0x6D, 0x84, 0x68, 0x3F,
402 };
403 static const unsigned char dsa_pqver_seed0[] = {
404     0x33, 0xDC, 0x43, 0xAF, 0xC4, 0x51, 0x5C, 0x3B,
405     0x8B, 0x8A, 0x0D, 0x5D, 0xA2, 0x84, 0xDE, 0x6D,
406     0xCC, 0x6C, 0xFD, 0x42, 0x37, 0x98, 0xFB, 0x66,
407     0xAB, 0xD3, 0x73, 0x96, 0x1F, 0xC5, 0xD1, 0x46,
408 };
409 static const unsigned char dsa_pqver_seed1[] = {
410     0xEE, 0xA4, 0x02, 0x70, 0x0B, 0x89, 0xB7, 0x96,
411     0x52, 0x5C, 0x00, 0xC4, 0x8E, 0x14, 0x45, 0x0F,
412     0x6A, 0x18, 0x00, 0xF7, 0x24, 0x52, 0x41, 0x0E,
413     0x33, 0x41, 0xD2, 0x91, 0xC3, 0x16, 0x7D, 0x5D,
414 };
415 static const struct dsa_pqver_st dsa_pqver_data[] = {
416     {
417         ITM(dsa_pqver_p0),
418         ITM(dsa_pqver_q0),
419         ITM(dsa_pqver_seed0),
420         1956,
421         PASS
422     },
423     {
424         ITM(dsa_pqver_p1),
425         ITM(dsa_pqver_q1),
426         ITM(dsa_pqver_seed1),
427         685,
428         FAIL
429     },
430 };
431
432 /* dsa_siggen */
433 static const unsigned char dsa_siggen_msg0[]= {
434     0x85, 0x01, 0x2F, 0x61, 0x1C, 0x36, 0xA8, 0xE1,
435     0x54, 0x55, 0x13, 0xFA, 0x00, 0x58, 0x1E, 0xD4,
436     0xF2, 0x4C, 0x54, 0x67, 0xB3, 0xEA, 0x48, 0x2C,
437     0xD1, 0x27, 0xBE, 0x5F, 0x26, 0x35, 0xD4, 0x00,
438     0xDD, 0x6C, 0xD8, 0xE8, 0x3C, 0x6D, 0x2D, 0x50,
439     0x01, 0x53, 0xC7, 0xB5, 0xA3, 0x8E, 0x9A, 0x85,
440     0xA6, 0x53, 0x8C, 0x46, 0x55, 0x02, 0xA1, 0x5E,
441     0xEA, 0x6C, 0xCF, 0x4A, 0x86, 0xA9, 0x34, 0x1B,
442     0x0B, 0xB6, 0x88, 0x9A, 0xDE, 0xC4, 0x27, 0x7F,
443     0x93, 0xAA, 0x69, 0x54, 0x48, 0x33, 0x98, 0xA0,
444     0x71, 0x45, 0x09, 0x5A, 0x51, 0xDF, 0xB6, 0x66,
445     0x06, 0xB7, 0xAD, 0x64, 0xED, 0xC1, 0xFA, 0x6B,
446     0xA8, 0x0F, 0xE8, 0x3C, 0x2E, 0x0C, 0xCB, 0xB0,
447     0xAE, 0xDE, 0x25, 0x0C, 0x68, 0xA8, 0x15, 0x97,
448     0xD0, 0xBC, 0x0B, 0x81, 0x15, 0xDC, 0x2B, 0xF3,
449     0xF2, 0xB7, 0xA7, 0xA9, 0x74, 0xD6, 0x5D, 0xB8,
450     0xB7, 0xD1, 0xFC, 0x5D, 0xCA, 0x69, 0x5D, 0x7D,
451     0xC6, 0x1E, 0x37, 0x7D, 0xD3, 0xA9, 0x1E, 0xAE,
452     0x60, 0x22, 0x3A, 0x4B, 0x7A, 0xB1, 0x3D, 0xA4,
453     0x6D, 0xB3, 0xA5, 0x8C, 0x89, 0x91, 0xCF, 0xE6,
454     0x5B, 0xF9, 0xB6, 0x87, 0x56, 0x75, 0xB9, 0x0B,
455     0x08, 0x85, 0x32, 0x52, 0x81, 0x99, 0xA7, 0x98,
456     0x44, 0x30, 0x3B, 0x44, 0xBC, 0xB8, 0xB2, 0x6D,
457     0x59, 0x52, 0xD3, 0x84, 0x74, 0x65, 0x02, 0xF9,
458     0x71, 0xB9, 0x16, 0x7A, 0x42, 0x62, 0xDE, 0x9B,
459     0x66, 0xF6, 0x04, 0x2C, 0x1F, 0x96, 0xF7, 0x41,
460     0x38, 0x1A, 0xF1, 0x8C, 0x8A, 0x40, 0x9F, 0x72,
461     0x73, 0xF9, 0xE9, 0x35, 0x11, 0x1F, 0x02, 0x0C,
462     0xB1, 0x51, 0xE8, 0x78, 0xDB, 0xE0, 0xB2, 0x35,
463     0xBD, 0xC5, 0x84, 0x5B, 0x2B, 0x25, 0x66, 0x42,
464     0x87, 0xE5, 0xA4, 0x77, 0x71, 0xB4, 0x4A, 0x59,
465     0x31, 0xF1, 0x5A, 0xF5, 0x98, 0x9C, 0x61, 0xEA,
466     0x52, 0x2F, 0x51, 0x85, 0xD9, 0x7F, 0x26, 0xDD,
467     0x91, 0x63, 0x41, 0xD5, 0x99, 0xD1, 0x64, 0xCE,
468     0xEE, 0x82, 0xD1, 0x73, 0x0A, 0x54, 0x3B, 0x03,
469     0xD7, 0xC1, 0xF7, 0x01, 0xBD, 0x44, 0x99, 0xFE,
470     0x9B, 0x1E, 0x2C, 0x8F, 0xF4, 0x55, 0xC5, 0x59,
471     0x58, 0xAF, 0xCB, 0xAD, 0xB8, 0x22, 0x1A, 0x29,
472     0xF3, 0x18, 0x39, 0x31, 0x9B, 0xFC, 0x08, 0x7E,
473     0xBE, 0x45, 0xDA, 0x9E, 0xD8, 0x7F, 0x8C, 0x5D,
474     0x10, 0xF9, 0xF8, 0xB4, 0xFA, 0x58, 0xE6, 0x28,
475     0xB4, 0x6C, 0x70, 0x12, 0xD2, 0xFA, 0x49, 0xB2,
476     0x5F, 0xD0, 0x81, 0x4A, 0xA1, 0xAA, 0xF8, 0x93,
477     0xD2, 0x26, 0xE7, 0xDA, 0x7D, 0x79, 0xC5, 0xC8,
478     0xC2, 0x9E, 0xA7, 0x01, 0xD5, 0x7A, 0xF9, 0x75,
479     0x62, 0xDB, 0xDC, 0x93, 0x90, 0xDA, 0xA5, 0xA6,
480     0x20, 0x58, 0x17, 0x9E, 0x47, 0x4E, 0xFB, 0xB8,
481     0xFB, 0xCD, 0x2E, 0xF4, 0xCD, 0x49, 0x03, 0x90,
482 };
483 static struct dsa_siggen_st dsa_siggen_data[] = {
484     {
485         "SHA2-384",
486         3072,
487         256,
488         ITM(dsa_siggen_msg0),
489     },
490 };
491
492 /* dsa_sigver */
493 static const unsigned char dsa_sigver_p0[] = {
494     0xD2, 0x90, 0x2E, 0x38, 0xA5, 0x32, 0xBB, 0x63,
495     0xE0, 0xC3, 0x20, 0xD9, 0x26, 0x06, 0x21, 0x06,
496     0x85, 0x3A, 0x4C, 0xE3, 0x13, 0x83, 0xCA, 0x43,
497     0x8C, 0x9C, 0x76, 0xC0, 0x65, 0x60, 0x27, 0x7E,
498     0x7C, 0xA0, 0x83, 0x9F, 0x65, 0x91, 0xF9, 0x16,
499     0x5F, 0xE8, 0x60, 0x0C, 0xC6, 0x91, 0x20, 0x35,
500     0xE7, 0xF1, 0x83, 0xE6, 0xF8, 0x8C, 0xBB, 0x4C,
501     0xFF, 0xF5, 0x4D, 0x09, 0x8E, 0x83, 0x72, 0xCB,
502     0x22, 0x5F, 0xD0, 0x85, 0xA9, 0x60, 0x3C, 0x4A,
503     0xA6, 0xDD, 0x73, 0x1F, 0xCF, 0xD0, 0xD7, 0x42,
504     0xB8, 0x72, 0x61, 0xDB, 0x91, 0xE3, 0xBB, 0x5C,
505     0x21, 0x41, 0xFD, 0x97, 0xD0, 0x81, 0x72, 0x53,
506     0x77, 0xE0, 0x15, 0x9E, 0xC0, 0xD0, 0x6A, 0xB4,
507     0x7F, 0xF8, 0x63, 0x39, 0x1A, 0x25, 0x63, 0x84,
508     0x4D, 0xBA, 0x2C, 0x29, 0x94, 0x28, 0xCE, 0x5B,
509     0x9A, 0xC3, 0x14, 0xAD, 0x9D, 0x82, 0x1D, 0x8F,
510     0xF3, 0xE9, 0x60, 0x65, 0x28, 0x0B, 0x0E, 0x48,
511     0x6B, 0xCC, 0x05, 0x9D, 0x3B, 0x1F, 0x1D, 0x0A,
512     0xA7, 0xF8, 0x22, 0xB0, 0xE1, 0x52, 0xB0, 0x25,
513     0x8F, 0xEA, 0x25, 0x28, 0xC9, 0x6F, 0x44, 0xCD,
514     0xA4, 0x16, 0x13, 0xE8, 0xD0, 0xDB, 0x43, 0x6E,
515     0xCE, 0xEC, 0x0B, 0xA8, 0x3E, 0x53, 0x10, 0xA2,
516     0x52, 0x0E, 0xBB, 0x63, 0x63, 0x84, 0x2C, 0x12,
517     0x93, 0x29, 0x98, 0xAF, 0x38, 0x8F, 0x0B, 0x86,
518     0x16, 0x99, 0x0E, 0x39, 0xA8, 0x4A, 0x0B, 0xCD,
519     0xAA, 0x66, 0x8F, 0x4C, 0x15, 0xB7, 0xA5, 0xBB,
520     0x22, 0x77, 0x8D, 0xE8, 0x05, 0x35, 0x2D, 0xAA,
521     0x8D, 0x83, 0xDE, 0xBC, 0x15, 0x3D, 0xC2, 0x95,
522     0x0E, 0x47, 0x85, 0x41, 0xAD, 0xE3, 0xB1, 0x70,
523     0x76, 0x1B, 0x62, 0x9E, 0x96, 0x8B, 0x18, 0xD7,
524     0xE3, 0xB5, 0xF8, 0x6E, 0x85, 0x67, 0x61, 0x54,
525     0x7C, 0x85, 0x08, 0x91, 0xF4, 0x46, 0x3F, 0x01,
526     0x99, 0x48, 0x18, 0x3C, 0x0D, 0xC7, 0x2D, 0xEC,
527     0xA4, 0x11, 0x1D, 0x4F, 0x7F, 0xBF, 0x3A, 0xE8,
528     0x9C, 0x1C, 0xAE, 0x9E, 0x30, 0x32, 0x1F, 0x81,
529     0xEF, 0x14, 0xFE, 0x5C, 0xC2, 0x5C, 0xD0, 0x6A,
530     0x7C, 0x18, 0x88, 0x9F, 0xC4, 0x97, 0x7D, 0x4B,
531     0x3B, 0x01, 0xEB, 0x59, 0x58, 0x1C, 0x00, 0x6B,
532     0x3E, 0xD6, 0x80, 0x80, 0x86, 0x06, 0x39, 0x88,
533     0x0D, 0x23, 0x1E, 0xD6, 0x5E, 0x1F, 0x92, 0x3B,
534     0xEC, 0x50, 0x0B, 0xA0, 0x83, 0x4F, 0x10, 0xDE,
535     0xAF, 0x7B, 0x19, 0xBC, 0xBD, 0x72, 0xE6, 0x42,
536     0xFE, 0xD7, 0xEF, 0x22, 0xD3, 0x83, 0x6B, 0x30,
537     0xA3, 0x95, 0x0D, 0x3E, 0x61, 0x9E, 0xBC, 0x0E,
538     0x14, 0x7E, 0x61, 0x05, 0x3D, 0xBA, 0x4E, 0xEF,
539     0x31, 0x75, 0x5D, 0x10, 0x1E, 0xBA, 0xBD, 0xBA,
540     0x89, 0x4D, 0x3A, 0x5B, 0x03, 0xB1, 0xAE, 0x27,
541     0x47, 0x2D, 0x03, 0xB1, 0x8A, 0x74, 0x1B, 0xF3,
542 };
543 static const unsigned char dsa_sigver_q0[] = {
544     0xAC, 0x71, 0x8D, 0x81, 0x05, 0x2F, 0xAB, 0x72,
545     0xB9, 0x96, 0x94, 0x98, 0xB5, 0x19, 0x2B, 0xE2,
546     0x78, 0x06, 0xAA, 0x32, 0xFC, 0xB9, 0xD2, 0xFD,
547     0x26, 0xC4, 0x50, 0x6F, 0x81, 0xD8, 0x04, 0xAB,
548 };
549 static const unsigned char dsa_sigver_g0[] = {
550     0x3D, 0x0B, 0x46, 0x39, 0x13, 0xFF, 0x67, 0xA8,
551     0x8C, 0xE8, 0x8A, 0x46, 0x46, 0x9A, 0xE6, 0x70,
552     0xA1, 0xF5, 0x48, 0xF5, 0x84, 0xF8, 0x93, 0x57,
553     0x9A, 0x4F, 0x2C, 0xD4, 0x26, 0x49, 0x1C, 0x83,
554     0x64, 0x14, 0x0B, 0x5B, 0xEF, 0x6F, 0x6F, 0x91,
555     0x14, 0xC5, 0x4D, 0xE8, 0x86, 0x47, 0x5C, 0xFC,
556     0xAE, 0xBF, 0xD8, 0x32, 0xE2, 0x96, 0xB9, 0x61,
557     0x70, 0x3F, 0x24, 0x29, 0xFA, 0x41, 0x5D, 0x8E,
558     0xD0, 0xB0, 0xF1, 0x26, 0xD5, 0x7C, 0xE6, 0x17,
559     0x48, 0xE5, 0x04, 0x0E, 0x58, 0x14, 0xEE, 0xBA,
560     0x64, 0xE9, 0xF1, 0x6A, 0x7C, 0x17, 0xAB, 0x7B,
561     0x28, 0xCF, 0x69, 0x7D, 0xDC, 0x54, 0xCA, 0xF2,
562     0x4C, 0x22, 0x17, 0xDD, 0xC3, 0x1A, 0x02, 0xE2,
563     0x8E, 0xE6, 0xA4, 0xFB, 0x84, 0x27, 0x2B, 0xE8,
564     0x14, 0xF3, 0x3D, 0xAC, 0x59, 0x0C, 0xAB, 0x69,
565     0x0E, 0x73, 0xDF, 0x82, 0xC1, 0xDE, 0xD7, 0xD9,
566     0xA7, 0xCA, 0x8F, 0x4B, 0xCE, 0x8A, 0x05, 0xBD,
567     0x07, 0xC8, 0x29, 0xBB, 0x46, 0x29, 0x2A, 0x4F,
568     0xA7, 0x12, 0x19, 0x91, 0x01, 0xA0, 0xAE, 0x16,
569     0xEF, 0xC1, 0xC5, 0x4B, 0x03, 0xF0, 0x53, 0xDC,
570     0xFC, 0x1C, 0xC4, 0x73, 0xB7, 0xBF, 0x53, 0xEB,
571     0x19, 0x63, 0xCA, 0x30, 0x53, 0x54, 0x12, 0x90,
572     0x0E, 0x43, 0xC7, 0x66, 0xFF, 0x29, 0xFC, 0xA4,
573     0xE8, 0xF6, 0x4B, 0x76, 0x3B, 0xA2, 0x65, 0x6B,
574     0x9E, 0xFA, 0xBA, 0x5B, 0x54, 0x94, 0x34, 0xF6,
575     0xD1, 0x20, 0x2A, 0xF7, 0x39, 0x72, 0xA3, 0xDB,
576     0xD1, 0x8F, 0xA6, 0x4D, 0x1B, 0xB1, 0x2D, 0xC5,
577     0x7F, 0xC5, 0x2C, 0x7E, 0x6D, 0xD9, 0xC8, 0xC2,
578     0x19, 0xC0, 0xC4, 0xC2, 0x77, 0xD9, 0x4C, 0x63,
579     0x77, 0x59, 0x0C, 0x5B, 0xFE, 0x69, 0xEF, 0xBF,
580     0x58, 0x47, 0x69, 0x3E, 0x49, 0xA7, 0x1B, 0x98,
581     0x6C, 0xE5, 0xA7, 0x42, 0x8B, 0x0E, 0x68, 0x05,
582     0x48, 0x80, 0x39, 0xF4, 0x02, 0x9E, 0xE2, 0x9F,
583     0x1C, 0xDA, 0x24, 0xC5, 0xB8, 0xEC, 0x03, 0xEA,
584     0x7A, 0x00, 0xDF, 0xCF, 0x58, 0xD0, 0xE7, 0xB7,
585     0xF3, 0xE7, 0x36, 0xDD, 0x1F, 0x65, 0xF9, 0x2D,
586     0x6F, 0xC3, 0xE4, 0x72, 0xFD, 0xBA, 0x58, 0x8D,
587     0xB5, 0xDF, 0x61, 0x3D, 0x3B, 0xB5, 0xF3, 0x08,
588     0xE7, 0x21, 0x5A, 0x7D, 0xFF, 0x02, 0x1E, 0x0E,
589     0x4E, 0xB5, 0x0D, 0x3D, 0x33, 0xF4, 0xA7, 0x6D,
590     0xF7, 0x96, 0xC2, 0x96, 0x85, 0x33, 0x9C, 0x58,
591     0x72, 0x5C, 0x97, 0x73, 0x0E, 0xDC, 0x5C, 0x6B,
592     0x3D, 0x68, 0xF7, 0xF0, 0x0F, 0xCC, 0x01, 0xBB,
593     0x47, 0x01, 0x3C, 0xB0, 0x52, 0x48, 0x70, 0xB8,
594     0x0C, 0x0F, 0x04, 0xB5, 0x8F, 0x70, 0x50, 0x12,
595     0x7C, 0x9D, 0xD1, 0xC1, 0x2B, 0xFE, 0x95, 0x31,
596     0x8F, 0x2D, 0xFA, 0xAC, 0xAE, 0x24, 0xDD, 0x13,
597     0xDA, 0x76, 0xC2, 0x34, 0xB9, 0x4A, 0x3E, 0xC3,
598 };
599 static const unsigned char dsa_sigver_pub0[] = {
600     0x91, 0x78, 0x1C, 0xBA, 0x8A, 0x2F, 0xF6, 0xEC,
601     0x9B, 0xD4, 0x73, 0x2C, 0x1F, 0xC0, 0xFE, 0x79,
602     0xCF, 0xAC, 0x0C, 0x3C, 0x0D, 0x81, 0x85, 0x3D,
603     0xCD, 0x67, 0x2B, 0x77, 0x99, 0x4A, 0x51, 0x48,
604     0x58, 0x03, 0xC9, 0x68, 0xE6, 0x19, 0x26, 0x28,
605     0xDC, 0x86, 0x9F, 0x8F, 0xCE, 0xDD, 0x1B, 0xCD,
606     0xDD, 0x63, 0x4E, 0xCE, 0x76, 0x4D, 0xD5, 0x0D,
607     0x71, 0x73, 0x04, 0x03, 0x9C, 0x35, 0xD0, 0x56,
608     0x98, 0x25, 0xA7, 0x06, 0xF2, 0x6B, 0xA9, 0x9F,
609     0x9A, 0xB1, 0x2A, 0xBD, 0xB7, 0x71, 0x62, 0x99,
610     0x06, 0x47, 0x77, 0x22, 0x57, 0xFA, 0x24, 0x21,
611     0x21, 0xB0, 0x78, 0x26, 0x7E, 0xEC, 0xB6, 0xEB,
612     0x82, 0x15, 0x53, 0x68, 0xAE, 0xAC, 0x5B, 0xDC,
613     0xA6, 0x7F, 0x6B, 0x26, 0xE6, 0x59, 0x22, 0x55,
614     0x1C, 0x3B, 0xFD, 0xD5, 0x90, 0xA9, 0x6F, 0xB3,
615     0xE6, 0x99, 0x8E, 0x26, 0x72, 0xA1, 0x02, 0xAA,
616     0x37, 0xF6, 0x89, 0x68, 0xF1, 0x5A, 0x6D, 0x54,
617     0xAD, 0x9D, 0xF3, 0x03, 0xBE, 0x3F, 0x9D, 0x85,
618     0x38, 0x25, 0xB8, 0xDF, 0xB8, 0x43, 0x21, 0xCA,
619     0xF8, 0xDC, 0x12, 0x40, 0x1E, 0xEF, 0x37, 0x40,
620     0xCE, 0x0E, 0x02, 0x88, 0x63, 0x98, 0x2E, 0x93,
621     0x89, 0xB0, 0x43, 0xAC, 0x0E, 0x62, 0x4C, 0x38,
622     0x14, 0xAC, 0x0C, 0xA3, 0x03, 0x10, 0x8E, 0xB4,
623     0x60, 0x10, 0x9B, 0xCC, 0x16, 0xA7, 0xB8, 0x1D,
624     0x73, 0x81, 0x26, 0x12, 0xA8, 0x9A, 0xFE, 0x17,
625     0xBB, 0x2D, 0x33, 0x5E, 0x8C, 0xA4, 0x80, 0xBF,
626     0x84, 0x37, 0xCA, 0x0F, 0x50, 0x23, 0x79, 0x20,
627     0x2A, 0x8E, 0xD1, 0x1F, 0x9F, 0x89, 0x98, 0x4F,
628     0xF5, 0xB6, 0x0F, 0xB9, 0x3C, 0xFC, 0x6C, 0x00,
629     0xBC, 0x76, 0x2F, 0xB4, 0xFD, 0x22, 0x13, 0x37,
630     0x26, 0xCD, 0x9B, 0xAF, 0x4C, 0x89, 0x16, 0xD0,
631     0x73, 0x44, 0xF9, 0x71, 0x60, 0xA2, 0x3E, 0xFE,
632     0x24, 0xFE, 0xFC, 0xFE, 0x90, 0x91, 0xED, 0x92,
633     0x57, 0x0A, 0xFA, 0xEB, 0x21, 0x99, 0xE3, 0x9A,
634     0xFF, 0x5C, 0x74, 0x85, 0xC2, 0x6D, 0x83, 0x90,
635     0xEE, 0x84, 0x05, 0x1A, 0x00, 0xAC, 0x87, 0xA7,
636     0x78, 0x87, 0xCA, 0x70, 0xFC, 0xB0, 0xF4, 0x3B,
637     0x61, 0x7C, 0xD0, 0x09, 0x63, 0x2B, 0x5E, 0xC2,
638     0xFE, 0x15, 0x41, 0xB3, 0x9F, 0xFC, 0x19, 0xE3,
639     0x4D, 0x3C, 0x6F, 0x89, 0xEB, 0x8A, 0x43, 0xEC,
640     0x8E, 0xFB, 0xEC, 0xCD, 0x99, 0x2E, 0x4B, 0x02,
641     0x99, 0xAC, 0xC6, 0x62, 0xAA, 0xC5, 0x0F, 0xA3,
642     0x0B, 0xBB, 0xCD, 0x51, 0x0C, 0x19, 0xA7, 0x7A,
643     0x43, 0x6C, 0xAA, 0x26, 0x28, 0x2A, 0xC9, 0x9D,
644     0x97, 0xAE, 0x83, 0x74, 0xDA, 0xC4, 0x03, 0x98,
645     0x94, 0x58, 0x28, 0xBC, 0x32, 0x1D, 0xD4, 0xF2,
646     0x6F, 0x89, 0x92, 0xD4, 0x80, 0x9B, 0xDE, 0x6B,
647     0xC5, 0x6F, 0xDB, 0x7A, 0x03, 0x1C, 0xF5, 0x55,
648 };
649 static const unsigned char dsa_sigver_msg0[] = {
650     0x32, 0xE9, 0x64, 0x47, 0xED, 0x3B, 0xF0, 0xC0,
651     0xCA, 0xC2, 0x90, 0xF5, 0x10, 0x60, 0x99, 0x82,
652     0x4D, 0x13, 0x44, 0xFA, 0x92, 0xD1, 0xFD, 0x50,
653     0x26, 0x80, 0xEA, 0x7B, 0x7D, 0xC5, 0xF0, 0xB7,
654 };
655 static const unsigned char dsa_sigver_msg1[] = {
656     0x31, 0xE9, 0x64, 0x47, 0xED, 0x3B, 0xF0, 0xC0,
657     0xCA, 0xC2, 0x90, 0xF5, 0x10, 0x60, 0x99, 0x82,
658     0x4D, 0x13, 0x44, 0xFA, 0x92, 0xD1, 0xFD, 0x50,
659     0x26, 0x80, 0xEA, 0x7B, 0x7D, 0xC5, 0xF0, 0xB7
660 };
661 static const unsigned char dsa_sigver_r0[] = {
662     0x2A, 0x24, 0x0F, 0xA7, 0x04, 0xF1, 0xE0, 0x60,
663     0x3B, 0x07, 0xDE, 0xB6, 0x5F, 0x01, 0x20, 0x81,
664     0xDD, 0x64, 0x22, 0x0F, 0x9F, 0x2E, 0x67, 0x33,
665     0xB7, 0x56, 0xDE, 0x17, 0xD0, 0xED, 0x9D, 0x30,
666 };
667 static const unsigned char dsa_sigver_s0[] = {
668     0x15, 0x93, 0x81, 0x6E, 0xC2, 0x07, 0x6E, 0x06,
669     0x6A, 0xBF, 0x62, 0xBF, 0x93, 0xA6, 0xCB, 0x6E,
670     0xBA, 0x1E, 0x72, 0x57, 0x27, 0x0E, 0x85, 0x9E,
671     0x8C, 0x42, 0x9A, 0x41, 0x63, 0x27, 0x74, 0x4F,
672 };
673 static const struct dsa_sigver_st dsa_sigver_data[] = {
674     {
675         "SHA2-512",
676         ITM(dsa_sigver_p0),
677         ITM(dsa_sigver_q0),
678         ITM(dsa_sigver_g0),
679         ITM(dsa_sigver_pub0),
680         ITM(dsa_sigver_msg0),
681         ITM(dsa_sigver_r0),
682         ITM(dsa_sigver_s0),
683         PASS,
684     },
685     {
686         "SHA2-512",
687         ITM(dsa_sigver_p0),
688         ITM(dsa_sigver_q0),
689         ITM(dsa_sigver_g0),
690         ITM(dsa_sigver_pub0),
691         ITM(dsa_sigver_msg1),
692         ITM(dsa_sigver_r0),
693         ITM(dsa_sigver_s0),
694         FAIL,
695     },
696 };
697
698 #endif /* OPENSSL_NO_DSA */
699
700 struct cipher_st {
701     const char *alg;
702     const unsigned char *key;
703     size_t key_len;
704     const unsigned char *iv;
705     size_t iv_len;
706     const unsigned char *pt;
707     size_t pt_len;
708     const unsigned char *ct;
709     size_t ct_len;
710 };
711
712 struct cipher_ccm_st {
713     const char *alg;
714     const unsigned char *key;
715     size_t key_len;
716     const unsigned char *iv;
717     size_t iv_len;
718     const unsigned char *aad;
719     size_t aad_len;
720     const unsigned char *pt;
721     size_t pt_len;
722     const unsigned char *ct; /* includes the tag */
723     size_t ct_len;
724 };
725
726 struct cipher_gcm_st {
727     const char *alg;
728     const unsigned char *key;
729     size_t key_len;
730     const unsigned char *iv;
731     size_t iv_len;
732     const unsigned char *aad;
733     size_t aad_len;
734     const unsigned char *pt;
735     size_t pt_len;
736     const unsigned char *ct;
737     size_t ct_len;
738     const unsigned char *tag;
739     size_t tag_len;
740 };
741
742
743 static const unsigned char cipher_enc_pt0[] = {
744     0xF3, 0x44, 0x81, 0xEC, 0x3C, 0xC6, 0x27, 0xBA,
745     0xCD, 0x5D, 0xC3, 0xFB, 0x08, 0xF2, 0x73, 0xE6,
746 };
747 static const unsigned char cipher_enc_pt1[] = {
748     0x1B, 0x07, 0x7A, 0x6A, 0xF4, 0xB7, 0xF9, 0x82,
749     0x29, 0xDE, 0x78, 0x6D, 0x75, 0x16, 0xB6, 0x39,
750 };
751 static const unsigned char cipher_enc_pt2[] = {
752     0x91, 0x07, 0x41, 0x31, 0xF1, 0xF8, 0x6C, 0xCD,
753     0x54, 0x8D, 0x22, 0xA6, 0x93, 0x40, 0xFF, 0x39,
754 };
755 static const unsigned char cipher_enc_pt3[] = {
756     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
757     0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
758     0x10, 0x11, 0x12, 0x13
759 };
760 static const unsigned char cipher_enc_key0[] = {
761     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
762     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
763 };
764 static const unsigned char cipher_enc_key1[] = {
765     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
766     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
767     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
768 };
769 static const unsigned char cipher_enc_key2[] = {
770     0xE8, 0x70, 0x13, 0x1C, 0xE7, 0x03, 0xD6, 0x51,
771     0x4E, 0x76, 0x1F, 0x95, 0xE6, 0xEE, 0x9E, 0xFB,
772 };
773 static const unsigned char cipher_enc_key3[] = {
774     0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
775     0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
776     0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
777     0xb7, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, 0xb1, 0xb0,
778 };
779 static const unsigned char cipher_enc_ct0[] = {
780     0x03, 0x36, 0x76, 0x3E, 0x96, 0x6D, 0x92, 0x59,
781     0x5A, 0x56, 0x7C, 0xC9, 0xCE, 0x53, 0x7F, 0x5E,
782 };
783 static const unsigned char cipher_enc_ct1[] = {
784     0x27, 0x5C, 0xFC, 0x04, 0x13, 0xD8, 0xCC, 0xB7,
785     0x05, 0x13, 0xC3, 0x85, 0x9B, 0x1D, 0x0F, 0x72,
786 };
787 static const unsigned char cipher_enc_ct2[] = {
788     0x3A, 0xF6, 0x4C, 0x70, 0x37, 0xEE, 0x48, 0x13,
789     0xD8, 0x5F, 0xE9, 0xB3, 0x7F, 0xE6, 0x6A, 0xD4,
790 };
791 static const unsigned char cipher_enc_ct3[] = {
792     0x9d, 0x84, 0xc8, 0x13, 0xf7, 0x19, 0xaa, 0x2c,
793     0x7b, 0xe3, 0xf6, 0x61, 0x71, 0xc7, 0xc5, 0xc2,
794     0xed, 0xbf, 0x9d, 0xac,
795 };
796 static const unsigned char cipher_enc_iv0[] = {
797     0x00,
798 };
799 static const unsigned char cipher_enc_iv1[] = {
800     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
801     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
802 };
803 static const unsigned char cipher_enc_iv2[] = {
804     0x53, 0xF2, 0x25, 0xD8, 0xDE, 0x97, 0xF1, 0x4B,
805     0xFE, 0x3E, 0xC6, 0x5E, 0xC3, 0xFF, 0xF7, 0xD3,
806 };
807 static const unsigned char cipher_enc_iv3[] = {
808     0x9a, 0x78, 0x56, 0x34, 0x12, 0x00, 0x00, 0x00,
809     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
810 };
811
812 static const struct cipher_st cipher_enc_data[] = {
813     {
814         "AES-128-ECB",
815         ITM(cipher_enc_key0),
816         NULL, 0,     /* iv */
817         ITM(cipher_enc_pt0),
818         ITM(cipher_enc_ct0),
819     },
820     {
821         "AES-192-CBC",
822         ITM(cipher_enc_key1),
823         ITM(cipher_enc_iv1),
824         ITM(cipher_enc_pt1),
825         ITM(cipher_enc_ct1),
826     },
827     {
828         "AES-128-CTR",
829         ITM(cipher_enc_key2),
830         ITM(cipher_enc_iv2),
831         ITM(cipher_enc_pt2),
832         ITM(cipher_enc_ct2),
833     },
834     {
835         "AES-128-XTS",
836          ITM(cipher_enc_key3),
837          ITM(cipher_enc_iv3),
838          ITM(cipher_enc_pt3),
839          ITM(cipher_enc_ct3),
840     }
841 };
842
843 static const unsigned char aes_ccm_enc_pt0[] = {
844     0xDA, 0x6A, 0xDC, 0xB2, 0xA5, 0xCC, 0xC3, 0xE7,
845     0xFC, 0x4C, 0xDF, 0x0A, 0xAB, 0xDC, 0x3B, 0x38,
846     0x26, 0x8B, 0x21, 0x82, 0xCA, 0x26, 0xE6, 0x2C,
847 };
848 static const unsigned char aes_ccm_enc_key0[] = {
849     0xDE, 0xF8, 0x67, 0xBC, 0x40, 0xB6, 0x7C, 0xAA,
850     0x4A, 0x00, 0xE8, 0x07, 0x24, 0x52, 0xAE, 0x72,
851 };
852 static const unsigned char aes_ccm_enc_aad0[] = {
853     0x29, 0x8D, 0x01, 0x92, 0x3B, 0x50, 0x1F, 0x66,
854     0xCE, 0xD3, 0x57, 0x4B, 0x7B, 0x4F, 0x07, 0x57,
855 };
856 static const unsigned char aes_ccm_enc_iv0[] = {
857     0x44, 0xEE, 0x48, 0x11, 0x4D, 0x3B, 0x71, 0x33,
858     0xF0, 0xF7, 0x12, 0xA2, 0xA5,
859 };
860 static const unsigned char aes_ccm_enc_ct0[] = {
861     0x30, 0x4D, 0x19, 0x31, 0x02, 0x66, 0x95, 0x2E,
862     0x23, 0x6D, 0xF4, 0xB9, 0xDF, 0xFE, 0xCA, 0x92,
863     0x04, 0x2A, 0x32, 0xB5, 0x08, 0x2C, 0x8B, 0x6F,
864     0x1B, 0x14, 0xB8, 0x62, 0x8B, 0xA0, 0x12, 0x4E,
865     0x6A, 0x6F, 0x85, 0x86, 0x24, 0x6A, 0x83, 0xE0,
866 };
867 static const struct cipher_ccm_st aes_ccm_enc_data[] = {
868     {
869         "AES-128-CCM",
870         ITM(aes_ccm_enc_key0),
871         ITM(aes_ccm_enc_iv0),
872         ITM(aes_ccm_enc_aad0),
873         ITM(aes_ccm_enc_pt0),
874         ITM(aes_ccm_enc_ct0),
875     },
876 };
877
878 static const unsigned char aes_gcm_enc_pt0[] = {
879     0x97,
880 };
881 static const unsigned char aes_gcm_enc_key0[] = {
882     0x3E, 0x77, 0x38, 0xA6, 0x0A, 0xB3, 0x95, 0x90,
883     0xFA, 0x8B, 0x3B, 0xCF, 0xE1, 0xA3, 0x8C, 0x7D,
884 };
885 static const unsigned char aes_gcm_enc_aad0[] = {
886     0xE7, 0xEF, 0xCB, 0x0F, 0x3D, 0x94, 0x1D, 0x0F,
887     0x3D, 0x65, 0x69, 0xFC, 0xDA, 0x77, 0x36, 0x5E,
888     0xB9, 0x20, 0xF8, 0xDA, 0x81, 0xDF, 0x6B, 0x4C,
889     0x2A, 0x70, 0x5E, 0xE3, 0x07, 0xCE, 0xCF, 0x62,
890     0x84,
891 };
892 static const unsigned char aes_gcm_enc_iv0[] = {
893     0x01, 0x02, 0x03, 0x04, 0xEB, 0xED, 0x2F, 0x4B,
894     0xD1, 0x20, 0x2C, 0xCD,
895 };
896 static const unsigned char aes_gcm_enc_ct0[] = {
897     0x63,
898 };
899 static const unsigned char aes_gcm_enc_tag0[] = {
900     0xA2, 0x8E, 0xA5, 0xF6, 0x6A, 0x1C, 0xE6, 0xD7,
901     0xFF, 0xCD, 0x7F, 0x49,
902 };
903 static const struct cipher_gcm_st aes_gcm_enc_data[] = {
904     {
905         "AES-128-GCM",
906         ITM(aes_gcm_enc_key0),
907         ITM(aes_gcm_enc_iv0),
908         ITM(aes_gcm_enc_aad0),
909         ITM(aes_gcm_enc_pt0),
910         ITM(aes_gcm_enc_ct0),
911         ITM(aes_gcm_enc_tag0),
912     },
913 };
914
915 #ifndef OPENSSL_NO_DH
916
917 struct dh_safe_prime_keygen_st {
918     const char *group_name;
919 };
920
921 struct dh_safe_prime_keyver_st {
922     const char *group_name;
923     const unsigned char *pub;
924     size_t pub_len;
925     const unsigned char *priv;
926     size_t priv_len;
927     int pass;
928 };
929
930 static const struct dh_safe_prime_keygen_st dh_safe_prime_keygen_data[] = {
931     { "ffdhe2048" },
932 };
933
934 static const unsigned char dh_safe_prime_keyver_priv0[] = {
935     0x39, 0x9C, 0x08, 0x8E, 0x4A, 0x1E, 0x1A, 0x03,
936     0x18, 0x5A, 0x72, 0x4F, 0xCB, 0x13, 0xFB, 0x8F,
937     0x7F, 0x14, 0x12, 0x48, 0x9A, 0x18, 0x03, 0x1C,
938     0x03, 0x98, 0x7E, 0x3C, 0xEF, 0x57, 0xF2, 0x1E,
939     0xD5, 0x54, 0x5C, 0x0F, 0x36, 0x5E, 0xB0, 0xF8,
940     0xD1, 0x27, 0x79, 0x24, 0x69, 0xB5, 0x7C, 0xF1,
941     0x39, 0xFC, 0xE3, 0x79, 0xF0, 0xD6, 0xA0, 0xE1,
942     0xA5, 0xA7, 0x65, 0x01, 0xBA, 0xFE, 0xBB, 0x28,
943     0xF0, 0x9C, 0x49, 0x90, 0x68, 0xB4, 0xE7, 0xE2,
944     0xB6, 0xBF, 0xB9, 0xF8, 0x96, 0xAA, 0xF9, 0xE6,
945     0x0B, 0x8A, 0x86, 0x0D, 0x31, 0x2C, 0x90, 0xDA,
946     0x4E, 0xFB, 0xE3, 0x59, 0x3F, 0xFB, 0x14, 0x33,
947     0xF6, 0xBD, 0xDA, 0x5D, 0x27, 0xCC, 0x7C, 0x1C,
948     0x30, 0xC8, 0xB2, 0xAF, 0x2A, 0xA8, 0x25, 0x97,
949     0xDC, 0x5E, 0xEF, 0x22, 0xCB, 0xF6, 0x88, 0x83,
950     0xD0, 0x47, 0x3F, 0x5D, 0xF3, 0x2A, 0xE0, 0xCC,
951     0x86, 0x49, 0x5A, 0x8F, 0x67, 0xF6, 0xC4, 0xD8,
952     0x3F, 0x09, 0xE8, 0x49, 0x89, 0x2E, 0xC0, 0xB4,
953     0x9C, 0x06, 0x9C, 0x40, 0x10, 0xFB, 0x20, 0xC6,
954     0xF1, 0x5F, 0x52, 0x3F, 0x21, 0xBF, 0xBB, 0x13,
955     0x6A, 0x81, 0x1C, 0xFF, 0x19, 0x2A, 0x36, 0xD2,
956     0x13, 0x23, 0x33, 0xD1, 0xEF, 0x34, 0xF3, 0xA6,
957     0xD5, 0x56, 0xAF, 0x1A, 0x63, 0xFC, 0x95, 0x86,
958     0xD5, 0xEB, 0xBF, 0x49, 0x84, 0x73, 0x30, 0x1D,
959     0xE2, 0xA1, 0xAE, 0x6D, 0x20, 0x69, 0xAE, 0xB6,
960     0x1A, 0xB9, 0xF2, 0x7A, 0xE3, 0x17, 0x4E, 0x7C,
961     0x8F, 0xE8, 0x34, 0x02, 0x59, 0xB4, 0x54, 0x9A,
962     0x8D, 0x19, 0x04, 0x2A, 0x8E, 0xF8, 0x05, 0xA3,
963     0x98, 0x5B, 0xBD, 0xB4, 0x6A, 0xDA, 0xAA, 0x1F,
964     0xFC, 0x56, 0xA0, 0x4D, 0x22, 0x66, 0x31, 0xEA,
965     0x8A, 0xC8, 0x61, 0x12, 0x40, 0xF0, 0x38, 0x0B,
966     0xA3, 0x23, 0x40, 0x97, 0x7A, 0x18, 0xE3, 0x42,
967 };
968 static const unsigned char dh_safe_prime_keyver_pub0[] = {
969     0xFA, 0xDA, 0x86, 0x67, 0xE9, 0x12, 0x67, 0x79,
970     0x50, 0xAE, 0x64, 0x0B, 0x07, 0x47, 0x8F, 0xA5,
971     0xD1, 0x27, 0x6C, 0xFC, 0x10, 0xD8, 0x90, 0x8D,
972     0x93, 0x75, 0xAD, 0x31, 0xBD, 0x97, 0xBE, 0xD5,
973     0xB5, 0x59, 0x2F, 0x37, 0x52, 0x32, 0x30, 0x75,
974     0xD3, 0xA5, 0x36, 0x10, 0x62, 0x4C, 0x82, 0x06,
975     0xB9, 0x29, 0xAE, 0x14, 0xD1, 0xB0, 0xD0, 0x23,
976     0x7A, 0xE6, 0xEA, 0x7E, 0x8E, 0xE3, 0xC7, 0xEB,
977     0x43, 0x78, 0xFA, 0x9A, 0x40, 0x9A, 0x6F, 0xF5,
978     0x42, 0x8A, 0xF7, 0xF3, 0x92, 0xE6, 0x5D, 0x68,
979     0x9B, 0x2A, 0x91, 0xB5, 0x37, 0x33, 0x3F, 0x35,
980     0xA5, 0xFB, 0x54, 0xD1, 0x3C, 0x46, 0xC6, 0x3C,
981     0x16, 0x3A, 0xD7, 0xF8, 0x55, 0x48, 0x9A, 0xB7,
982     0xB1, 0x40, 0xBF, 0xAF, 0x26, 0x1B, 0x07, 0x0F,
983     0x11, 0x04, 0x63, 0x06, 0xDA, 0x2D, 0x45, 0x0E,
984     0x7F, 0x17, 0xA4, 0x38, 0xBD, 0x68, 0x5A, 0xA9,
985     0xC4, 0x7F, 0x7E, 0xC7, 0xF0, 0xFC, 0x74, 0x87,
986     0x55, 0xCD, 0x35, 0xA8, 0xAA, 0x59, 0xA7, 0xFA,
987     0xC1, 0x34, 0x67, 0x04, 0xD8, 0xCC, 0xE1, 0x77,
988     0x60, 0xE1, 0xBE, 0xC0, 0xA5, 0x52, 0xA4, 0x72,
989     0x3A, 0x19, 0xFA, 0x76, 0xC8, 0x67, 0x60, 0x5E,
990     0x1C, 0x43, 0xF4, 0x50, 0xA0, 0xCB, 0x33, 0x77,
991     0x2D, 0x2D, 0x3B, 0x5D, 0x7D, 0x72, 0x2E, 0x38,
992     0xCD, 0x71, 0xB1, 0xBF, 0xB5, 0x10, 0x80, 0xCD,
993     0xA4, 0x5D, 0x70, 0x6E, 0xD5, 0x7E, 0xA2, 0xAA,
994     0xDC, 0xA4, 0x7C, 0x7A, 0x7D, 0x21, 0x09, 0x6A,
995     0x14, 0xB2, 0x21, 0x24, 0xA4, 0xF4, 0x6C, 0xD2,
996     0xBA, 0x76, 0x99, 0xD7, 0x69, 0x44, 0xA8, 0x66,
997     0x85, 0x08, 0x50, 0xBA, 0x42, 0x37, 0xA2, 0xC2,
998     0xD5, 0x45, 0x7E, 0x7B, 0xE9, 0x4A, 0xAE, 0xEE,
999     0x84, 0x2A, 0xEB, 0xA9, 0x4A, 0x69, 0x40, 0x83,
1000     0xBA, 0xCC, 0x1E, 0x1B, 0x25, 0x56, 0x13, 0x88,
1001 };
1002 static const struct dh_safe_prime_keyver_st dh_safe_prime_keyver_data[] = {
1003     {
1004         "ffdhe2048",
1005         ITM(dh_safe_prime_keyver_pub0),
1006         ITM(dh_safe_prime_keyver_priv0),
1007         PASS
1008     },
1009 };
1010
1011 #endif /* OPENSSL_NO_DH */
1012
1013 struct rsa_keygen_st {
1014     size_t mod;
1015     const unsigned char *e;
1016     size_t e_len;
1017     const unsigned char *xp1;
1018     size_t xp1_len;
1019     const unsigned char *xp2;
1020     size_t xp2_len;
1021     const unsigned char *xp;
1022     size_t xp_len;
1023     const unsigned char *xq1;
1024     size_t xq1_len;
1025     const unsigned char *xq2;
1026     size_t xq2_len;
1027     const unsigned char *xq;
1028     size_t xq_len;
1029
1030     const unsigned char *p1;
1031     size_t p1_len;
1032     const unsigned char *p2;
1033     size_t p2_len;
1034     const unsigned char *q1;
1035     size_t q1_len;
1036     const unsigned char *q2;
1037     size_t q2_len;
1038     const unsigned char *p;
1039     size_t p_len;
1040     const unsigned char *q;
1041     size_t q_len;
1042     const unsigned char *n;
1043     size_t n_len;
1044     const unsigned char *d;
1045     size_t d_len;
1046 };
1047
1048 static const unsigned char rsa_keygen0_e[] = {
1049     0x01,0x00,0x01
1050 };
1051 static const unsigned char rsa_keygen0_xp[] = {
1052     0xcf,0x72,0x1b,0x9a,0xfd,0x0d,0x22,0x1a,0x74,0x50,0x97,0x22,0x76,0xd8,0xc0,
1053     0xc2,0xfd,0x08,0x81,0x05,0xdd,0x18,0x21,0x99,0x96,0xd6,0x5c,0x79,0xe3,0x02,
1054     0x81,0xd7,0x0e,0x3f,0x3b,0x34,0xda,0x61,0xc9,0x2d,0x84,0x86,0x62,0x1e,0x3d,
1055     0x5d,0xbf,0x92,0x2e,0xcd,0x35,0x3d,0x6e,0xb9,0x59,0x16,0xc9,0x82,0x50,0x41,
1056     0x30,0x45,0x67,0xaa,0xb7,0xbe,0xec,0xea,0x4b,0x9e,0xa0,0xc3,0x05,0xb3,0x88,
1057     0xd4,0x4c,0xac,0xeb,0xe4,0x03,0xc6,0xca,0xcb,0xd9,0xd3,0x4e,0xf6,0x7f,0x2c,
1058     0x27,0x1e,0x08,0x6c,0xc2,0xd6,0x45,0x1f,0x84,0xe4,0x3c,0x97,0x19,0xde,0xb8,
1059     0x55,0xaf,0x0e,0xcf,0x9e,0xb0,0x9c,0x20,0xd3,0x1f,0xa8,0xd7,0x52,0xc2,0x95,
1060     0x1c,0x80,0x15,0x42,0x4d,0x4f,0x19,0x16
1061 };
1062 static const unsigned char rsa_keygen0_xp1[] = {
1063     0xac,0x5f,0x7f,0x6e,0x33,0x3e,0x97,0x3a,0xb3,0x17,0x44,0xa9,0x0f,0x7a,0x54,
1064     0x70,0x27,0x06,0x93,0xd5,0x49,0xde,0x91,0x83,0xbc,0x8a,0x7b,0x95
1065 };
1066 static const unsigned char rsa_keygen0_xp2[] = {
1067     0x0b,0xf6,0xe8,0x79,0x5a,0x81,0xae,0x90,0x1d,0xa4,0x38,0x74,0x9c,0x0e,0x6f,
1068     0xe0,0x03,0xcf,0xc4,0x53,0x16,0x32,0x17,0xf7,0x09,0x5f,0xd9
1069 };
1070 static const unsigned char rsa_keygen0_xq[] = {
1071     0xfe,0xab,0xf2,0x7c,0x16,0x4a,0xf0,0x8d,0x31,0xc6,0x0a,0x82,0xe2,0xae,0xbb,
1072     0x03,0x7e,0x7b,0x20,0x4e,0x64,0xb0,0x16,0xad,0x3c,0x01,0x1a,0xd3,0x54,0xbf,
1073     0x2b,0xa4,0x02,0x9e,0xc3,0x0d,0x60,0x3d,0x1f,0xb9,0xc0,0x0d,0xe6,0x97,0x68,
1074     0xbb,0x8c,0x81,0xd5,0xc1,0x54,0x96,0x0f,0x99,0xf0,0xa8,0xa2,0xf3,0xc6,0x8e,
1075     0xec,0xbc,0x31,0x17,0x70,0x98,0x24,0xa3,0x36,0x51,0xa8,0x54,0xbd,0x9a,0x89,
1076     0x99,0x6e,0x57,0x5e,0xd0,0x39,0x86,0xc3,0xa3,0x1b,0xc7,0xcf,0xc4,0x4f,0x47,
1077     0x25,0x9e,0x2c,0x79,0xe1,0x2c,0xcc,0xe4,0x63,0xf4,0x02,0x84,0xf8,0xf6,0xa1,
1078     0x5c,0x93,0x14,0xf2,0x68,0x5f,0x3a,0x90,0x2f,0x4e,0x5e,0xf9,0x16,0x05,0xcf,
1079     0x21,0x63,0xca,0xfa,0xb0,0x08,0x02,0xc0
1080 };
1081 static const unsigned char rsa_keygen0_xq1[] = {
1082     0x9b,0x02,0xd4,0xba,0xf0,0xaa,0x14,0x99,0x6d,0xc0,0xb7,0xa5,0xe1,0xd3,0x70,
1083     0xb6,0x5a,0xa2,0x9b,0x59,0xd5,0x8c,0x1e,0x9f,0x3f,0x9a,0xde,0xeb,0x9e,0x9c,
1084     0x61,0xd6,0x5a,0xe1
1085 };
1086 static const unsigned char rsa_keygen0_xq2[] = {
1087     0x06,0x81,0x53,0xfd,0xa8,0x7b,0xa3,0x85,0x90,0x15,0x2c,0x97,0xb2,0xa0,0x17,
1088     0x48,0xb0,0x7f,0x0a,0x01,0x6d
1089 };
1090 /* expected values */
1091 static const unsigned char rsa_keygen0_p1[] = {
1092     0xac,0x5f,0x7f,0x6e,0x33,0x3e,0x97,0x3a,0xb3,0x17,0x44,0xa9,0x0f,0x7a,0x54,
1093     0x70,0x27,0x06,0x93,0xd5,0x49,0xde,0x91,0x83,0xbc,0x8a,0x7b,0xc3
1094 };
1095 static const unsigned char rsa_keygen0_p2[] = {
1096     0x0b,0xf6,0xe8,0x79,0x5a,0x81,0xae,0x90,0x1d,0xa4,0x38,0x74,0x9c,0x0e,0x6f,
1097     0xe0,0x03,0xcf,0xc4,0x53,0x16,0x32,0x17,0xf7,0x09,0x5f,0xd9
1098 };
1099 static const unsigned char rsa_keygen0_q1[] = {
1100     0x9b,0x02,0xd4,0xba,0xf0,0xaa,0x14,0x99,0x6d,0xc0,0xb7,0xa5,0xe1,0xd3,0x70,
1101     0xb6,0x5a,0xa2,0x9b,0x59,0xd5,0x8c,0x1e,0x9f,0x3f,0x9a,0xde,0xeb,0x9e,0x9c,
1102     0x61,0xd6,0x5d,0x47
1103 };
1104 static const unsigned char rsa_keygen0_q2[] = {
1105     0x06,0x81,0x53,0xfd,0xa8,0x7b,0xa3,0x85,0x90,0x15,0x2c,0x97,0xb2,0xa0,0x17,
1106     0x48,0xb0,0x7f,0x0a,0x01,0x8f
1107 };
1108 static const unsigned char rsa_keygen0_p[] = {
1109     0xcf,0x72,0x1b,0x9a,0xfd,0x0d,0x22,0x1a,0x74,0x50,0x97,0x22,0x76,0xd8,0xc0,
1110     0xc2,0xfd,0x08,0x81,0x05,0xdd,0x18,0x21,0x99,0x96,0xd6,0x5c,0x79,0xe3,0x02,
1111     0x81,0xd7,0x0e,0x3f,0x3b,0x34,0xda,0x61,0xc9,0x2d,0x84,0x86,0x62,0x1e,0x3d,
1112     0x5d,0xbf,0x92,0x2e,0xcd,0x35,0x3d,0x6e,0xb9,0x59,0x16,0xc9,0x82,0x50,0x41,
1113     0x30,0x45,0x67,0xaa,0xb7,0xbe,0xec,0xea,0x4b,0x9e,0xa0,0xc3,0x05,0xbc,0x4c,
1114     0x01,0xa5,0x4b,0xbd,0xa4,0x20,0xb5,0x20,0xd5,0x59,0x6f,0x82,0x5c,0x8f,0x4f,
1115     0xe0,0x3a,0x4e,0x7e,0xfe,0x44,0xf3,0x3c,0xc0,0x0e,0x14,0x2b,0x32,0xe6,0x28,
1116     0x8b,0x63,0x87,0x00,0xc3,0x53,0x4a,0x5b,0x71,0x7a,0x5b,0x28,0x40,0xc4,0x18,
1117     0xb6,0x77,0x0b,0xab,0x59,0xa4,0x96,0x7d
1118 };
1119 static const unsigned char rsa_keygen0_q[] = {
1120     0xfe,0xab,0xf2,0x7c,0x16,0x4a,0xf0,0x8d,0x31,0xc6,0x0a,0x82,0xe2,0xae,0xbb,
1121     0x03,0x7e,0x7b,0x20,0x4e,0x64,0xb0,0x16,0xad,0x3c,0x01,0x1a,0xd3,0x54,0xbf,
1122     0x2b,0xa4,0x02,0x9e,0xc3,0x0d,0x60,0x3d,0x1f,0xb9,0xc0,0x0d,0xe6,0x97,0x68,
1123     0xbb,0x8c,0x81,0xd5,0xc1,0x54,0x96,0x0f,0x99,0xf0,0xa8,0xa2,0xf3,0xc6,0x8e,
1124     0xec,0xbc,0x31,0x17,0x70,0x98,0x24,0xa3,0x36,0x51,0xa8,0x54,0xc4,0x44,0xdd,
1125     0xf7,0x7e,0xda,0x47,0x4a,0x67,0x44,0x5d,0x4e,0x75,0xf0,0x4d,0x00,0x68,0xe1,
1126     0x4a,0xec,0x1f,0x45,0xf9,0xe6,0xca,0x38,0x95,0x48,0x6f,0xdc,0x9d,0x1b,0xa3,
1127     0x4b,0xfd,0x08,0x4b,0x54,0xcd,0xeb,0x3d,0xef,0x33,0x11,0x6e,0xce,0xe4,0x5d,
1128     0xef,0xa9,0x58,0x5c,0x87,0x4d,0xc8,0xcf
1129 };
1130 static const unsigned char rsa_keygen0_n[] = {
1131     0xce,0x5e,0x8d,0x1a,0xa3,0x08,0x7a,0x2d,0xb4,0x49,0x48,0xf0,0x06,0xb6,0xfe,
1132     0xba,0x2f,0x39,0x7c,0x7b,0xe0,0x5d,0x09,0x2d,0x57,0x4e,0x54,0x60,0x9c,0xe5,
1133     0x08,0x4b,0xe1,0x1a,0x73,0xc1,0x5e,0x2f,0xb6,0x46,0xd7,0x81,0xca,0xbc,0x98,
1134     0xd2,0xf9,0xef,0x1c,0x92,0x8c,0x8d,0x99,0x85,0x28,0x52,0xd6,0xd5,0xab,0x70,
1135     0x7e,0x9e,0xa9,0x87,0x82,0xc8,0x95,0x64,0xeb,0xf0,0x6c,0x0f,0x3f,0xe9,0x02,
1136     0x29,0x2e,0x6d,0xa1,0xec,0xbf,0xdc,0x23,0xdf,0x82,0x4f,0xab,0x39,0x8d,0xcc,
1137     0xac,0x21,0x51,0x14,0xf8,0xef,0xec,0x73,0x80,0x86,0xa3,0xcf,0x8f,0xd5,0xcf,
1138     0x22,0x1f,0xcc,0x23,0x2f,0xba,0xcb,0xf6,0x17,0xcd,0x3a,0x1f,0xd9,0x84,0xb9,
1139     0x88,0xa7,0x78,0x0f,0xaa,0xc9,0x04,0x01,0x20,0x72,0x5d,0x2a,0xfe,0x5b,0xdd,
1140     0x16,0x5a,0xed,0x83,0x02,0x96,0x39,0x46,0x37,0x30,0xc1,0x0d,0x87,0xc2,0xc8,
1141     0x33,0x38,0xed,0x35,0x72,0xe5,0x29,0xf8,0x1f,0x23,0x60,0xe1,0x2a,0x5b,0x1d,
1142     0x6b,0x53,0x3f,0x07,0xc4,0xd9,0xbb,0x04,0x0c,0x5c,0x3f,0x0b,0xc4,0xd4,0x61,
1143     0x96,0x94,0xf1,0x0f,0x4a,0x49,0xac,0xde,0xd2,0xe8,0x42,0xb3,0x4a,0x0b,0x64,
1144     0x7a,0x32,0x5f,0x2b,0x5b,0x0f,0x8b,0x8b,0xe0,0x33,0x23,0x34,0x64,0xf8,0xb5,
1145     0x7f,0x69,0x60,0xb8,0x71,0xe9,0xff,0x92,0x42,0xb1,0xf7,0x23,0xa8,0xa7,0x92,
1146     0x04,0x3d,0x6b,0xff,0xf7,0xab,0xbb,0x14,0x1f,0x4c,0x10,0x97,0xd5,0x6b,0x71,
1147     0x12,0xfd,0x93,0xa0,0x4a,0x3b,0x75,0x72,0x40,0x96,0x1c,0x5f,0x40,0x40,0x57,
1148     0x13
1149 };
1150 static const unsigned char rsa_keygen0_d[] = {
1151     0x47,0x47,0x49,0x1d,0x66,0x2a,0x4b,0x68,0xf5,0xd8,0x4a,0x24,0xfd,0x6c,0xbf,
1152     0x56,0xb7,0x70,0xf7,0x9a,0x21,0xc8,0x80,0x9e,0xf4,0x84,0xcd,0x88,0x01,0x28,
1153     0xea,0x50,0xab,0x13,0x63,0xdf,0xea,0x14,0x38,0xb5,0x07,0x42,0x81,0x2f,0xda,
1154     0xe9,0x24,0x02,0x7e,0xaf,0xef,0x74,0x09,0x0e,0x80,0xfa,0xfb,0xd1,0x19,0x41,
1155     0xe5,0xba,0x0f,0x7c,0x0a,0xa4,0x15,0x55,0xa2,0x58,0x8c,0x3a,0x48,0x2c,0xc6,
1156     0xde,0x4a,0x76,0xfb,0x72,0xb6,0x61,0xe6,0xd2,0x10,0x44,0x4c,0x33,0xb8,0xd2,
1157     0x74,0xb1,0x9d,0x3b,0xcd,0x2f,0xb1,0x4f,0xc3,0x98,0xbd,0x83,0xb7,0x7e,0x75,
1158     0xe8,0xa7,0x6a,0xee,0xcc,0x51,0x8c,0x99,0x17,0x67,0x7f,0x27,0xf9,0x0d,0x6a,
1159     0xb7,0xd4,0x80,0x17,0x89,0x39,0x9c,0xf3,0xd7,0x0f,0xdf,0xb0,0x55,0x80,0x1d,
1160     0xaf,0x57,0x2e,0xd0,0xf0,0x4f,0x42,0x69,0x55,0xbc,0x83,0xd6,0x97,0x83,0x7a,
1161     0xe6,0xc6,0x30,0x6d,0x3d,0xb5,0x21,0xa7,0xc4,0x62,0x0a,0x20,0xce,0x5e,0x5a,
1162     0x17,0x98,0xb3,0x6f,0x6b,0x9a,0xeb,0x6b,0xa3,0xc4,0x75,0xd8,0x2b,0xdc,0x5c,
1163     0x6f,0xec,0x5d,0x49,0xac,0xa8,0xa4,0x2f,0xb8,0x8c,0x4f,0x2e,0x46,0x21,0xee,
1164     0x72,0x6a,0x0e,0x22,0x80,0x71,0xc8,0x76,0x40,0x44,0x61,0x16,0xbf,0xa5,0xf8,
1165     0x89,0xc7,0xe9,0x87,0xdf,0xbd,0x2e,0x4b,0x4e,0xc2,0x97,0x53,0xe9,0x49,0x1c,
1166     0x05,0xb0,0x0b,0x9b,0x9f,0x21,0x19,0x41,0xe9,0xf5,0x61,0xd7,0x33,0x2e,0x2c,
1167     0x94,0xb8,0xa8,0x9a,0x3a,0xcc,0x6a,0x24,0x8d,0x19,0x13,0xee,0xb9,0xb0,0x48,
1168     0x61
1169 };
1170
1171 static const struct rsa_keygen_st rsa_keygen_data[] = {
1172     {
1173         2048,
1174         ITM(rsa_keygen0_e),
1175         ITM(rsa_keygen0_xp1),
1176         ITM(rsa_keygen0_xp2),
1177         ITM(rsa_keygen0_xp),
1178         ITM(rsa_keygen0_xq1),
1179         ITM(rsa_keygen0_xq2),
1180         ITM(rsa_keygen0_xq),
1181
1182         ITM(rsa_keygen0_p1),
1183         ITM(rsa_keygen0_p2),
1184         ITM(rsa_keygen0_q1),
1185         ITM(rsa_keygen0_q2),
1186
1187         ITM(rsa_keygen0_p),
1188         ITM(rsa_keygen0_q),
1189         ITM(rsa_keygen0_n),
1190         ITM(rsa_keygen0_d),
1191     },
1192 };
1193
1194 #define NO_PSS_SALT_LEN -1
1195 struct rsa_siggen_st {
1196     const char *sig_pad_mode;
1197     size_t mod;
1198     const char *digest_alg;
1199     const unsigned char *msg;
1200     size_t msg_len;
1201     int pss_salt_len;
1202 };
1203 static const unsigned char rsa_siggen0_msg[] = {
1204     0xa3, 0x76, 0x35, 0xc2, 0x6d, 0x6b, 0xa0, 0xe1,
1205     0x2e, 0x0b, 0x58, 0x33, 0x0d, 0x30, 0xdd, 0x07,
1206     0xa9, 0x53, 0xd6, 0x37, 0x07, 0xad, 0xa8, 0x67,
1207 };
1208 static const struct rsa_siggen_st rsa_siggen_data[] = {
1209     {
1210         "pkcs1", /* pkcs1v1.5 */
1211         2048,
1212         "SHA384",
1213         ITM(rsa_siggen0_msg),
1214         NO_PSS_SALT_LEN,
1215     },
1216     {
1217         "x931",
1218         2048,
1219         "SHA384",
1220         ITM(rsa_siggen0_msg),
1221         NO_PSS_SALT_LEN,
1222     },
1223     {
1224         "pss",
1225         2048,
1226         "SHA384",
1227         ITM(rsa_siggen0_msg),
1228         62
1229     },
1230 };
1231
1232 struct rsa_sigver_st {
1233     const char *sig_pad_mode;
1234     size_t mod;
1235     const char *digest_alg;
1236     const unsigned char *msg;
1237     size_t msg_len;
1238     const unsigned char *n;
1239     size_t n_len;
1240     const unsigned char *e;
1241     size_t e_len;
1242     const unsigned char *sig;
1243     size_t sig_len;
1244     int pss_salt_len;
1245     int pass;
1246 };
1247
1248 static const unsigned char rsa_sigver15_0_n[] = {
1249     0xbb, 0xbc, 0xf3, 0x35, 0x6f, 0x8e, 0x2e, 0x4f,
1250     0x32, 0xb5, 0xbb, 0x47, 0x9d, 0x02, 0x2a, 0xac,
1251     0x93, 0x9e, 0x70, 0x50, 0x0f, 0x59, 0x0d, 0x38,
1252     0x1c, 0xe5, 0xda, 0x87, 0x61, 0x6b, 0xbf, 0xa8,
1253     0x2c, 0x2f, 0x97, 0xbc, 0x4b, 0xd4, 0xae, 0x21,
1254     0xed, 0xbe, 0x7a, 0x98, 0x15, 0xa8, 0xe2, 0xf0,
1255     0x5f, 0x4d, 0xf8, 0xe2, 0x7c, 0x7e, 0x87, 0x52,
1256     0x8e, 0xbf, 0xb6, 0x3f, 0x1a, 0x12, 0x96, 0x87,
1257     0x2c, 0xd2, 0xac, 0x85, 0x87, 0xe5, 0xcd, 0x4c,
1258     0x31, 0x2b, 0x98, 0x16, 0x9f, 0xcf, 0x3e, 0xef,
1259     0x50, 0xaa, 0xee, 0xc0, 0x6c, 0x80, 0x94, 0xc5,
1260     0xb1, 0xc7, 0x0d, 0xd4, 0x24, 0x94, 0x44, 0x3a,
1261     0x44, 0xdb, 0x10, 0xdc, 0x21, 0x57, 0xe0, 0x77,
1262     0xe5, 0x9c, 0xc4, 0x49, 0x06, 0xe3, 0x5a, 0xea,
1263     0x64, 0xf4, 0x54, 0xca, 0xfc, 0x5a, 0x2b, 0x92,
1264     0x76, 0xe1, 0x86, 0x6f, 0x3b, 0x4e, 0x7d, 0xe7,
1265     0xb9, 0x62, 0xc4, 0x63, 0x12, 0x65, 0x16, 0x58,
1266     0x11, 0x23, 0xba, 0x1b, 0x95, 0x06, 0x1c, 0xdd,
1267     0xdc, 0x49, 0x0b, 0x67, 0x7c, 0xb0, 0xdb, 0x45,
1268     0x88, 0x6e, 0x42, 0xdd, 0x67, 0xbf, 0xec, 0x0e,
1269     0xfa, 0x64, 0x06, 0x3e, 0xb9, 0x40, 0xee, 0xc6,
1270     0x56, 0xdf, 0xe7, 0xd8, 0xed, 0xf1, 0xf7, 0x53,
1271     0xec, 0xd6, 0x1e, 0xb1, 0x66, 0x66, 0x80, 0x16,
1272     0x5b, 0xba, 0x8c, 0x75, 0xe2, 0x6c, 0x19, 0xe7,
1273     0xf9, 0xc8, 0xae, 0x75, 0xc9, 0xc4, 0x19, 0xe6,
1274     0xba, 0xfd, 0x3e, 0x12, 0xf0, 0x88, 0x90, 0xee,
1275     0x39, 0xf8, 0x85, 0x3c, 0x20, 0x3b, 0xfe, 0xb9,
1276     0xa0, 0x07, 0x93, 0x6d, 0x20, 0x78, 0xf2, 0xc2,
1277     0xa5, 0x49, 0x51, 0xa3, 0xb7, 0x13, 0x83, 0xeb,
1278     0x19, 0x55, 0x08, 0x4f, 0x28, 0x32, 0x1a, 0x9b,
1279     0xab, 0x05, 0x9a, 0xaa, 0x28, 0xdc, 0xfa, 0xbf,
1280     0xf3, 0x52, 0x40, 0x0c, 0x4a, 0xb3, 0xd6, 0xb5,
1281 };
1282 static const unsigned char rsa_sigver15_0_e[] = {
1283     0x01, 0x00, 0x01,
1284 };
1285 static const unsigned char rsa_sigver15_0_msg[] = {
1286     0xba, 0x1a, 0x03, 0xda, 0x95, 0xd4, 0x36, 0x60,
1287     0xe6, 0x77, 0xc7, 0x80, 0x49, 0x42, 0xc7, 0x98,
1288     0xf6, 0x9e, 0xcf, 0x6f, 0xe5, 0xaf, 0x41, 0x6c,
1289     0x36, 0x29, 0xd0, 0x06, 0xcf, 0x65, 0x43, 0x7c,
1290     0x47, 0xb4, 0x75, 0xc6, 0x03, 0xf3, 0xa1, 0xcb,
1291     0x9e, 0x5f, 0xdc, 0xd4, 0x8e, 0xab, 0xe3, 0x41,
1292     0x05, 0x50, 0x17, 0x7b, 0x16, 0x25, 0xc6, 0x29,
1293     0x19, 0x2f, 0xac, 0xa7, 0x50, 0xba, 0xba, 0xb3,
1294     0xcb, 0xa8, 0x16, 0x6a, 0x88, 0x0a, 0x62, 0x74,
1295     0xdf, 0xed, 0x41, 0x7b, 0x1d, 0x76, 0x17, 0xe1,
1296     0x70, 0x32, 0x11, 0xb2, 0x03, 0xa7, 0x66, 0xd7,
1297     0x69, 0x2f, 0xdc, 0x8d, 0x3f, 0x06, 0x8d, 0x16,
1298     0x0d, 0xa1, 0xeb, 0xae, 0x6e, 0x41, 0x02, 0xc1,
1299     0x71, 0xc9, 0xfd, 0x5b, 0x3e, 0xcc, 0xec, 0xe0,
1300     0xfd, 0xeb, 0xc4, 0xfd, 0xf3, 0x5e, 0xa7, 0xde,
1301     0xee, 0xd0, 0x66, 0xa2, 0xe4, 0x70, 0x45, 0x0c,
1302 };
1303 static const unsigned char rsa_sigver15_0_sig[] = {
1304     0x4a, 0x8a, 0xcb, 0x88, 0x89, 0xd3, 0xa9, 0x48,
1305     0x84, 0x09, 0x2e, 0x2c, 0x50, 0x02, 0xb9, 0xad,
1306     0xe5, 0x10, 0xac, 0x27, 0x8f, 0x2d, 0x36, 0x7e,
1307     0x6e, 0x32, 0x5c, 0x1d, 0xcb, 0xfa, 0xb8, 0xc7,
1308     0x1a, 0x27, 0x11, 0x2b, 0x34, 0xf4, 0xa9, 0xda,
1309     0xa0, 0x99, 0x86, 0xbe, 0x81, 0xd0, 0xd9, 0x2a,
1310     0x88, 0x25, 0x99, 0xb3, 0x02, 0x50, 0xf1, 0xa5,
1311     0x4f, 0x3a, 0x1d, 0x7f, 0xcf, 0x7d, 0x76, 0x00,
1312     0x06, 0x87, 0x9f, 0x39, 0x3a, 0x3c, 0xc0, 0xc6,
1313     0x46, 0x7a, 0x65, 0x0d, 0x85, 0x06, 0xd8, 0x51,
1314     0xbe, 0xc5, 0x00, 0x80, 0xeb, 0x73, 0xbb, 0x71,
1315     0x8c, 0xcc, 0x72, 0x83, 0x1f, 0x9d, 0x73, 0x75,
1316     0xb8, 0xc8, 0x4c, 0x07, 0x5b, 0xda, 0x8c, 0x9b,
1317     0x6f, 0x65, 0x8c, 0x2e, 0x23, 0x62, 0x6c, 0x8d,
1318     0x94, 0x54, 0x5b, 0x7f, 0xe6, 0x5c, 0x90, 0xa3,
1319     0x07, 0xe2, 0x14, 0x4d, 0xe7, 0x71, 0x6c, 0xfd,
1320     0x64, 0x12, 0x14, 0x12, 0x14, 0x00, 0x1b, 0xc4,
1321     0x65, 0xe7, 0x28, 0x5c, 0x34, 0x2d, 0xda, 0x94,
1322     0xfd, 0x71, 0xcb, 0x27, 0xa6, 0x0e, 0x63, 0xd4,
1323     0xd6, 0x14, 0x65, 0xc0, 0xe3, 0x65, 0x94, 0x61,
1324     0x59, 0xb8, 0xc9, 0x3b, 0x9b, 0xc2, 0x82, 0xe2,
1325     0x76, 0xe7, 0x17, 0xf1, 0xef, 0x32, 0x9e, 0x8a,
1326     0x04, 0xf3, 0x1e, 0xcc, 0x16, 0xb4, 0x45, 0x0e,
1327     0x77, 0xdb, 0x8b, 0x38, 0x6c, 0xcc, 0x98, 0xf4,
1328     0xf8, 0xb5, 0x45, 0x2c, 0xde, 0x23, 0x36, 0xe7,
1329     0x83, 0xf0, 0xb4, 0xb5, 0xe3, 0xd3, 0xd4, 0x59,
1330     0xf1, 0x46, 0x7f, 0x0f, 0x55, 0x58, 0xff, 0x75,
1331     0xc7, 0x7f, 0xee, 0xf8, 0xe0, 0xb2, 0x52, 0xd8,
1332     0xba, 0x37, 0x4f, 0x7b, 0xba, 0xa3, 0xf0, 0x13,
1333     0xa7, 0x3a, 0x21, 0xac, 0xdc, 0x9e, 0x63, 0x36,
1334     0x38, 0xe7, 0x90, 0xeb, 0xea, 0x7f, 0x83, 0xf4,
1335     0x9d, 0xf3, 0x6b, 0x31, 0x44, 0x47, 0x27, 0x8e,
1336 };
1337
1338 #define rsa_sigver15_1_n rsa_sigver15_0_n
1339 #define rsa_sigver15_1_e rsa_sigver15_0_e
1340 static const unsigned char rsa_sigver15_1_msg[] = {
1341     0x52, 0x68, 0x35, 0xd6, 0x4a, 0x95, 0xaa, 0xbd,
1342     0x02, 0x69, 0x7f, 0x92, 0xc7, 0x8c, 0x04, 0x71,
1343     0x17, 0x10, 0x5a, 0x0d, 0xab, 0x5e, 0x91, 0x45,
1344     0xb5, 0x70, 0x0d, 0xf8, 0x66, 0x41, 0x2e, 0x19,
1345     0xb3, 0x82, 0x30, 0x06, 0x59, 0x8f, 0x4f, 0x15,
1346     0x1e, 0xa1, 0x2f, 0x70, 0x5a, 0x45, 0x7c, 0x24,
1347     0xb7, 0x0d, 0xcd, 0x74, 0x35, 0x85, 0xcf, 0x73,
1348     0x71, 0x68, 0x9f, 0xd2, 0x26, 0x14, 0x77, 0xf6,
1349     0xf4, 0x3c, 0x8d, 0x4d, 0x60, 0xdd, 0x38, 0xe3,
1350     0x1d, 0x73, 0x55, 0x30, 0x8a, 0x6c, 0xe9, 0x35,
1351     0x7b, 0xdd, 0x08, 0xc7, 0x3c, 0x74, 0xf5, 0x2a,
1352     0xd3, 0xae, 0x8a, 0xe1, 0x86, 0x49, 0xda, 0xc5,
1353     0x9d, 0xfd, 0x16, 0x55, 0x69, 0x67, 0xad, 0x4d,
1354     0x85, 0x46, 0xb7, 0x7a, 0x5c, 0xe9, 0x94, 0xcc,
1355     0xeb, 0xe8, 0xd0, 0xad, 0xc9, 0x13, 0x4a, 0x91,
1356     0x64, 0xa8, 0x96, 0xce, 0x8d, 0xc9, 0x9f, 0xaf,
1357 };
1358 static const unsigned char rsa_sigver15_1_sig[] = {
1359     0x81, 0x96, 0xdb, 0x65, 0x66, 0x5d, 0xec, 0x14,
1360     0xb3, 0x42, 0xf6, 0x93, 0x89, 0xae, 0x49, 0x81,
1361     0x98, 0xda, 0x71, 0x6d, 0x72, 0x9b, 0xcb, 0x39,
1362     0xe4, 0x85, 0xd1, 0x9f, 0xbe, 0xb8, 0x69, 0x0e,
1363     0xbe, 0xc0, 0x07, 0x88, 0xee, 0xbf, 0xf9, 0x5d,
1364     0x20, 0x0f, 0x90, 0x48, 0x93, 0x53, 0xbb, 0xc6,
1365     0x2f, 0xf8, 0xb7, 0x1d, 0xd2, 0x15, 0x0f, 0x1f,
1366     0x25, 0xab, 0x5b, 0xae, 0x52, 0xe6, 0x8e, 0x06,
1367     0x43, 0xe1, 0xd9, 0x4a, 0x4c, 0xee, 0x24, 0x0e,
1368     0xeb, 0x4f, 0x9b, 0x1a, 0xcb, 0x6d, 0x22, 0x93,
1369     0xa8, 0xa8, 0xcd, 0x4b, 0xa2, 0xf6, 0x88, 0x1a,
1370     0xaf, 0x3b, 0x2b, 0xdf, 0x04, 0x2d, 0x2b, 0x27,
1371     0x54, 0x90, 0x41, 0xb0, 0x4a, 0xda, 0xb1, 0xdf,
1372     0xce, 0x39, 0xda, 0xd7, 0xda, 0x00, 0x97, 0x89,
1373     0x9a, 0xaf, 0x4c, 0xc3, 0x0b, 0x6d, 0xb3, 0xce,
1374     0x59, 0x0b, 0xd9, 0x91, 0x17, 0x31, 0x6a, 0xe7,
1375     0x92, 0xec, 0x62, 0xe1, 0xe9, 0x73, 0xc7, 0x14,
1376     0x06, 0x16, 0x42, 0x8a, 0x68, 0xb1, 0x7c, 0xb8,
1377     0xa1, 0x45, 0xf0, 0x06, 0xf6, 0x85, 0xb5, 0x93,
1378     0xf1, 0x45, 0xc4, 0xe5, 0xf1, 0x76, 0x71, 0xb4,
1379     0xdc, 0x03, 0x55, 0xde, 0xb1, 0xd3, 0x5a, 0x0f,
1380     0x1f, 0x4f, 0xdd, 0xaa, 0x87, 0x8e, 0x46, 0x4d,
1381     0xe3, 0xd0, 0x5b, 0x28, 0x01, 0xc4, 0x94, 0xf7,
1382     0x00, 0x93, 0xae, 0xa3, 0xb5, 0x64, 0x65, 0xa1,
1383     0x16, 0x29, 0x2e, 0xc7, 0xbb, 0xeb, 0x71, 0x02,
1384     0xf9, 0x26, 0xb6, 0xa6, 0x24, 0xdc, 0x6a, 0x0e,
1385     0x0d, 0xad, 0x50, 0xf5, 0x4b, 0xe7, 0x0e, 0x9a,
1386     0x39, 0x20, 0x70, 0xe2, 0xdf, 0x3b, 0x6f, 0x9d,
1387     0xe3, 0x8f, 0x15, 0x6d, 0x5a, 0xaf, 0x12, 0xf7,
1388     0xf7, 0x85, 0x6f, 0x0e, 0xe4, 0x6e, 0x27, 0xf7,
1389     0xb3, 0x44, 0x38, 0x73, 0x45, 0x80, 0x7a, 0x72,
1390     0x82, 0xf3, 0xc8, 0x32, 0xb8, 0x25, 0xef, 0xdc,
1391 };
1392
1393 static const unsigned char rsa_sigverpss_0_n[] = {
1394     0xb2, 0xee, 0xdd, 0xdf, 0xa0, 0x35, 0x92, 0x21,
1395     0xf4, 0x8e, 0xc3, 0x24, 0x39, 0xed, 0xe2, 0x38,
1396     0xc0, 0xaa, 0xff, 0x35, 0x75, 0x27, 0x05, 0xd4,
1397     0x84, 0x78, 0x23, 0x50, 0xa5, 0x64, 0x1e, 0x11,
1398     0x45, 0x2a, 0xb1, 0xeb, 0x97, 0x07, 0x0b, 0xff,
1399     0xb3, 0x1f, 0xc4, 0xa4, 0x80, 0xae, 0x1c, 0x8c,
1400     0x66, 0x71, 0x95, 0x80, 0x60, 0xea, 0x4d, 0xde,
1401     0x90, 0x98, 0xe8, 0xe2, 0x96, 0xa7, 0x0e, 0x5f,
1402     0x00, 0x74, 0xed, 0x79, 0xc3, 0xe2, 0xc2, 0x4e,
1403     0xbe, 0x07, 0xbd, 0xb1, 0xb2, 0xeb, 0x6c, 0x29,
1404     0x9a, 0x59, 0x29, 0x81, 0xa3, 0x83, 0xa3, 0x00,
1405     0x24, 0xa8, 0xfd, 0x45, 0xbb, 0xca, 0x1e, 0x44,
1406     0x47, 0xbb, 0x82, 0x4a, 0x5b, 0x71, 0x46, 0xc0,
1407     0xb4, 0xcc, 0x1b, 0x5e, 0x88, 0x9c, 0x89, 0x69,
1408     0xb4, 0xb0, 0x7c, 0x8e, 0xea, 0x24, 0xc0, 0x2f,
1409     0xc8, 0x3f, 0x9d, 0x9f, 0x43, 0xd3, 0xf0, 0x25,
1410     0x67, 0xf1, 0xf0, 0x9b, 0xd4, 0xff, 0x17, 0x9f,
1411     0xc3, 0x41, 0x2f, 0x53, 0x33, 0xdd, 0x73, 0x8a,
1412     0x5c, 0x74, 0x04, 0x3b, 0x60, 0xcc, 0x9f, 0xca,
1413     0x01, 0xb0, 0x0d, 0xe0, 0xcf, 0xb2, 0xf0, 0x08,
1414     0x73, 0xb6, 0x67, 0x6c, 0x54, 0x9e, 0x1c, 0x01,
1415     0xb5, 0x34, 0xab, 0xcf, 0x77, 0xfe, 0x04, 0x01,
1416     0xc1, 0xd2, 0x4d, 0x47, 0x60, 0x5c, 0x68, 0x47,
1417     0x8a, 0x47, 0x3c, 0x3a, 0xa3, 0xb2, 0x75, 0x87,
1418     0x6e, 0x01, 0x7b, 0xdb, 0xe9, 0x6e, 0x63, 0xb2,
1419     0x65, 0xab, 0xc6, 0xed, 0x0d, 0xa6, 0x84, 0xff,
1420     0xf3, 0xcf, 0xd3, 0x9a, 0x96, 0x9b, 0x5c, 0x22,
1421     0xf8, 0x07, 0x7d, 0x63, 0x75, 0x50, 0x91, 0x5b,
1422     0xc4, 0x1f, 0x29, 0x1f, 0x5d, 0xb0, 0x6e, 0xfa,
1423     0x9b, 0x16, 0xf0, 0xe4, 0xda, 0x2c, 0x94, 0x20,
1424     0x9b, 0x44, 0x51, 0x38, 0xd0, 0xe4, 0x86, 0xc9,
1425     0x76, 0x12, 0x04, 0x1a, 0x25, 0x14, 0xb7, 0x14,
1426     0xdb, 0x6e, 0xd2, 0xc3, 0x57, 0x2c, 0x4c, 0xec,
1427     0xfe, 0x25, 0xed, 0x3e, 0xe3, 0x26, 0xa8, 0xd4,
1428     0xd0, 0x21, 0xbc, 0x09, 0x7e, 0xb0, 0x02, 0x3c,
1429     0xa3, 0x43, 0xa4, 0x1f, 0x73, 0x54, 0x5f, 0xa3,
1430     0xe2, 0x49, 0x4e, 0x25, 0xe8, 0xfc, 0xfb, 0xa9,
1431     0x29, 0xc0, 0x7d, 0xd0, 0x06, 0xd5, 0x5c, 0x52,
1432     0x68, 0x3c, 0xf8, 0xc5, 0xdb, 0x92, 0x27, 0x7c,
1433     0xd8, 0x56, 0x1a, 0x7d, 0xe3, 0x32, 0xe5, 0x08,
1434     0xc9, 0x36, 0x9d, 0x7e, 0xd2, 0x2d, 0xc2, 0x53,
1435     0xf2, 0x7e, 0xce, 0x8a, 0x10, 0x5c, 0xf7, 0xe9,
1436     0x99, 0xa6, 0xa8, 0xf5, 0x8d, 0x6c, 0xed, 0xf3,
1437     0xa1, 0xc8, 0x2a, 0x75, 0x77, 0x99, 0x18, 0xe1,
1438     0x32, 0xdb, 0x35, 0x4a, 0x8b, 0x4a, 0xec, 0xc2,
1439     0x15, 0xe9, 0x4b, 0x89, 0x13, 0x81, 0xfb, 0x0c,
1440     0xf9, 0xb4, 0xd8, 0xee, 0xb5, 0xba, 0x45, 0xa1,
1441     0xea, 0x01, 0xf9, 0xbb, 0xd5, 0xa1, 0x73, 0xa1,
1442     0x5b, 0xef, 0x98, 0xa8, 0xcf, 0x74, 0xf4, 0xd5,
1443     0x1a, 0xe2, 0xa7, 0xb9, 0x37, 0x43, 0xb1, 0x29,
1444     0x94, 0xc3, 0x71, 0x74, 0x34, 0x7d, 0x6f, 0xac,
1445     0x97, 0xb3, 0x5b, 0x3a, 0x0a, 0x3c, 0xe2, 0x94,
1446     0x6c, 0x39, 0xb8, 0xe9, 0x2c, 0xf9, 0xc3, 0x8b,
1447     0xd1, 0x80, 0x4d, 0x22, 0x64, 0x63, 0x20, 0x1b,
1448     0xeb, 0xf9, 0x09, 0x14, 0x86, 0x6e, 0xf4, 0x6d,
1449     0xfc, 0xe5, 0x1b, 0xf7, 0xf2, 0xe0, 0x4d, 0xc8,
1450     0xeb, 0x24, 0x35, 0x16, 0x0a, 0x81, 0x9f, 0x9e,
1451     0x47, 0xd8, 0xea, 0x85, 0xda, 0x77, 0x6c, 0x3d,
1452     0xd4, 0xa9, 0x15, 0xbd, 0xda, 0x5d, 0xf0, 0x72,
1453     0x8d, 0xb5, 0x12, 0x72, 0xb1, 0x62, 0xa0, 0xad,
1454     0xc8, 0x0e, 0x5b, 0x47, 0x4c, 0x69, 0xf7, 0x07,
1455     0xe8, 0xd9, 0x9b, 0xc7, 0x2f, 0xd5, 0x68, 0x1e,
1456     0x1c, 0xe0, 0x8f, 0x40, 0x45, 0x5f, 0x08, 0xc8,
1457     0x95, 0x57, 0xb7, 0x35, 0x92, 0x97, 0xf9, 0x7d,
1458 };
1459 static const unsigned char rsa_sigverpss_0_e[] = {
1460     0x01, 0x00, 0x01,
1461 };
1462 static const unsigned char rsa_sigverpss_0_msg[] = {
1463     0x32, 0x03, 0x0c, 0x2e, 0x06, 0xfc, 0x0f, 0xa5,
1464     0x65, 0xcd, 0x0f, 0x88, 0x52, 0x80, 0xc3, 0x43,
1465     0xda, 0x01, 0x36, 0x48, 0xf5, 0x76, 0xc8, 0x03,
1466     0xae, 0xce, 0x76, 0x0f, 0x83, 0x9d, 0x5c, 0xaa,
1467     0x0f, 0x27, 0x78, 0x66, 0xe6, 0xba, 0xb1, 0x22,
1468     0xc1, 0x42, 0x18, 0x39, 0xdb, 0x17, 0x6d, 0xf9,
1469     0x9a, 0x19, 0xe5, 0x57, 0x72, 0xff, 0x2a, 0xe0,
1470     0x07, 0xec, 0xa4, 0xf3, 0x91, 0x43, 0xf7, 0x2e,
1471     0x85, 0xbd, 0xcd, 0x26, 0x72, 0xb9, 0xd5, 0x5b,
1472     0x28, 0xd3, 0x0c, 0x6b, 0x20, 0xb7, 0x3b, 0x85,
1473     0x18, 0x38, 0xc0, 0x21, 0xfe, 0x9c, 0x92, 0xee,
1474     0x0f, 0x3a, 0x80, 0x0c, 0x40, 0x48, 0xb9, 0x7c,
1475     0xdd, 0xee, 0x91, 0xd5, 0x70, 0x9e, 0x82, 0x38,
1476     0xe4, 0xa8, 0x71, 0x85, 0xea, 0x09, 0x33, 0xcf,
1477     0x9c, 0x84, 0x50, 0x0e, 0x60, 0xf5, 0x07, 0x14,
1478     0x10, 0xe1, 0x92, 0xc3, 0x58, 0x51, 0xab, 0x7c,
1479 };
1480 static const unsigned char rsa_sigverpss_0_sig[] = {
1481     0x43, 0xb2, 0x4a, 0x50, 0xa7, 0xe2, 0x6c, 0x5d,
1482     0x50, 0xc5, 0x39, 0xc1, 0xc1, 0x35, 0xbd, 0x66,
1483     0xbd, 0x86, 0x54, 0xc5, 0x2e, 0x65, 0xfc, 0x19,
1484     0x19, 0x6a, 0x22, 0x43, 0x22, 0x11, 0x26, 0xae,
1485     0x51, 0x78, 0xfa, 0xfa, 0xc1, 0xf0, 0x77, 0x1b,
1486     0xd6, 0x5b, 0x93, 0xbd, 0x84, 0xe4, 0x35, 0xbd,
1487     0x8d, 0x91, 0xb2, 0x7c, 0xb2, 0xb1, 0xda, 0xd7,
1488     0x72, 0x62, 0x88, 0x3e, 0xe9, 0x40, 0x27, 0x4e,
1489     0xa5, 0x17, 0x94, 0xf1, 0xe9, 0xdd, 0x8c, 0x6c,
1490     0x5b, 0xc0, 0x0b, 0xe3, 0x7c, 0x8b, 0xc8, 0x10,
1491     0x57, 0x35, 0x69, 0xb7, 0x56, 0xe0, 0x2f, 0x61,
1492     0x2e, 0x13, 0x11, 0x79, 0xfa, 0x60, 0x8f, 0x2a,
1493     0x65, 0x73, 0xf5, 0x17, 0x34, 0x74, 0x72, 0x22,
1494     0xff, 0x22, 0x5b, 0x97, 0x59, 0x44, 0xf4, 0xfb,
1495     0x4a, 0x2b, 0x7e, 0x28, 0xe3, 0x79, 0x84, 0x24,
1496     0x63, 0xeb, 0xde, 0x63, 0x88, 0xe0, 0xbd, 0x28,
1497     0xef, 0x49, 0x6d, 0xd4, 0x2a, 0x87, 0x53, 0xba,
1498     0x5f, 0xde, 0xe3, 0xd4, 0xb2, 0xc2, 0x6f, 0x49,
1499     0x10, 0xae, 0x5e, 0x15, 0xdd, 0x0f, 0x91, 0xe2,
1500     0xeb, 0x1e, 0xc5, 0x36, 0x8e, 0xdf, 0xa6, 0x17,
1501     0x25, 0x21, 0x16, 0x06, 0x72, 0x37, 0x77, 0x19,
1502     0xe5, 0x88, 0x1b, 0x0b, 0x5b, 0x80, 0x44, 0x8f,
1503     0x13, 0xef, 0xbb, 0xfa, 0xf6, 0x4a, 0x11, 0x6a,
1504     0x6a, 0x0c, 0xe0, 0x42, 0x6b, 0x7d, 0xfd, 0xad,
1505     0xb0, 0x4b, 0xff, 0x3f, 0x20, 0xca, 0x5f, 0x64,
1506     0xcc, 0xc9, 0x5b, 0x89, 0xc2, 0x05, 0x33, 0xf9,
1507     0xa5, 0x31, 0x55, 0xfb, 0xdc, 0xeb, 0xd1, 0x24,
1508     0xbf, 0x17, 0x0f, 0xc8, 0xfd, 0xe9, 0x6a, 0xc1,
1509     0xa7, 0x94, 0x36, 0x72, 0x22, 0x29, 0x2c, 0x1c,
1510     0xd1, 0x8b, 0x7b, 0x37, 0x42, 0x25, 0x8d, 0xe3,
1511     0xcc, 0x06, 0x5f, 0x3c, 0x15, 0xfa, 0x74, 0x8a,
1512     0x83, 0xf0, 0xcc, 0xf5, 0x30, 0xd1, 0xa8, 0x88,
1513     0x9f, 0x4e, 0x1d, 0xd8, 0xe3, 0x1b, 0xb5, 0xe3,
1514     0xdb, 0xce, 0xbc, 0x03, 0xfe, 0xe6, 0xa2, 0xb4,
1515     0x94, 0x76, 0xd1, 0xb7, 0xce, 0xae, 0x6a, 0x7c,
1516     0xbd, 0x4f, 0xd6, 0xfe, 0x60, 0xd0, 0x78, 0xd4,
1517     0x04, 0x3f, 0xe0, 0x17, 0x2a, 0x41, 0x26, 0x5a,
1518     0x81, 0x80, 0xcd, 0x40, 0x7c, 0x4f, 0xd6, 0xd6,
1519     0x1d, 0x1f, 0x58, 0x59, 0xaf, 0xa8, 0x00, 0x91,
1520     0x69, 0xb1, 0xf8, 0x3b, 0xef, 0x59, 0x7e, 0x83,
1521     0x4e, 0xca, 0x1d, 0x33, 0x35, 0xb6, 0xa5, 0x9a,
1522     0x0e, 0xc5, 0xe5, 0x11, 0xdd, 0x5d, 0xb7, 0x32,
1523     0x66, 0x23, 0x63, 0x08, 0xbc, 0x2e, 0x9c, 0x10,
1524     0x30, 0xa4, 0x13, 0x38, 0xee, 0xc7, 0x10, 0xf6,
1525     0xed, 0xe9, 0xe1, 0xd1, 0x89, 0x8b, 0x94, 0x21,
1526     0xde, 0x76, 0x72, 0x90, 0xc4, 0xbc, 0x59, 0x31,
1527     0x1b, 0x1b, 0xd7, 0xa0, 0xd0, 0x3d, 0xaa, 0x43,
1528     0x66, 0xfa, 0x43, 0x8d, 0xcc, 0x37, 0xdc, 0x60,
1529     0x59, 0xaf, 0x02, 0x98, 0xe5, 0xe0, 0x17, 0xd6,
1530     0xc3, 0x84, 0xf2, 0xaa, 0x5d, 0x88, 0xa8, 0x78,
1531     0xbf, 0xbd, 0x18, 0x34, 0x9f, 0x5c, 0x6d, 0x22,
1532     0x0c, 0x77, 0x4f, 0x16, 0xf2, 0x85, 0x88, 0x2e,
1533     0x9a, 0x2b, 0x30, 0x1e, 0x17, 0xc8, 0xc7, 0xd4,
1534     0x20, 0x93, 0x47, 0x0d, 0x32, 0x7d, 0xcb, 0x77,
1535     0x85, 0x82, 0xc3, 0x80, 0x75, 0x10, 0x83, 0x33,
1536     0xd5, 0xde, 0x47, 0xd4, 0x22, 0x55, 0x4d, 0xca,
1537     0x4f, 0x90, 0xd2, 0x9f, 0x80, 0x58, 0x22, 0x4c,
1538     0x5a, 0xaa, 0x53, 0x9e, 0xeb, 0xde, 0x62, 0x8a,
1539     0xfb, 0xd7, 0x4b, 0x28, 0xd5, 0xe1, 0x02, 0xf9,
1540     0x61, 0x74, 0x42, 0x12, 0x32, 0x5d, 0x1b, 0x10,
1541     0x8f, 0x51, 0x8d, 0x7c, 0x59, 0xc5, 0xb7, 0x5a,
1542     0x68, 0xe7, 0xdd, 0xb0, 0xc0, 0x22, 0xbc, 0xf1,
1543     0x37, 0xcc, 0x63, 0xa2, 0x85, 0xb9, 0x11, 0x91,
1544     0x43, 0xb9, 0x7b, 0xfb, 0x4a, 0x21, 0xc9, 0xd5,
1545 };
1546
1547 #define rsa_sigverpss_1_n rsa_sigverpss_0_n
1548 #define rsa_sigverpss_1_e rsa_sigverpss_0_e
1549 static const unsigned char rsa_sigverpss_1_msg[] = {
1550     0x29, 0xdc, 0x70, 0xd8, 0xa5, 0xde, 0x41, 0x1d,
1551     0xed, 0x05, 0x16, 0x04, 0x48, 0x05, 0x21, 0x05,
1552     0x1c, 0x40, 0x8a, 0xbb, 0x6c, 0x3c, 0x11, 0xf3,
1553     0x9f, 0x55, 0xf4, 0x03, 0x83, 0xaf, 0x13, 0x5d,
1554     0x91, 0x6f, 0x52, 0x63, 0x73, 0x2b, 0x3f, 0x7d,
1555     0xc3, 0x9e, 0xf5, 0x69, 0x16, 0xa1, 0x40, 0xd3,
1556     0x39, 0x57, 0x01, 0x26, 0xba, 0xa7, 0xd4, 0xa1,
1557     0xaa, 0xef, 0xf1, 0xad, 0xa2, 0xf6, 0x50, 0x6e,
1558     0x04, 0x23, 0x11, 0x98, 0x83, 0xed, 0x1a, 0x84,
1559     0xe6, 0x93, 0x02, 0x83, 0x08, 0x0d, 0x2e, 0x72,
1560     0x24, 0x42, 0x39, 0x8e, 0x4f, 0x7b, 0x99, 0x8a,
1561     0x46, 0x18, 0x80, 0xdf, 0x6a, 0x82, 0x01, 0x64,
1562     0x09, 0x60, 0x74, 0x1e, 0xdf, 0x0e, 0x1b, 0x59,
1563     0xdd, 0x4a, 0x06, 0xf7, 0x29, 0x31, 0x33, 0x09,
1564     0x65, 0x6b, 0xfa, 0x9c, 0x34, 0xa2, 0xa8, 0xd5,
1565     0xfa, 0x38, 0x6b, 0x41, 0xe4, 0x39, 0x6e, 0x66,
1566 };
1567 static const unsigned char rsa_sigverpss_1_sig[] = {
1568     0x48, 0x7f, 0x71, 0x82, 0x63, 0x1d, 0xf2, 0xee,
1569     0xe8, 0x79, 0xeb, 0x3a, 0xaf, 0x41, 0x8a, 0x7c,
1570     0xab, 0x0b, 0xd4, 0x57, 0xb6, 0x62, 0x9f, 0x6f,
1571     0xec, 0xc1, 0xd4, 0xef, 0x55, 0x51, 0xd1, 0x0a,
1572     0x0e, 0x1d, 0x8a, 0x64, 0x69, 0x08, 0x57, 0xf5,
1573     0x04, 0xa8, 0x6c, 0xde, 0x76, 0x4d, 0x81, 0xf4,
1574     0x95, 0x7e, 0x95, 0x6d, 0x41, 0x31, 0x2f, 0x9d,
1575     0xe7, 0x47, 0x45, 0x45, 0x9f, 0xa8, 0xf8, 0xe3,
1576     0x30, 0xa6, 0x41, 0x0f, 0x12, 0x05, 0x6d, 0x2b,
1577     0x1a, 0xae, 0xef, 0xd4, 0x6b, 0xc6, 0xf4, 0x61,
1578     0xa5, 0x07, 0xfe, 0xe8, 0xd0, 0xfd, 0xa3, 0x93,
1579     0x58, 0xb4, 0x22, 0x37, 0x1b, 0x84, 0xcb, 0xef,
1580     0xae, 0x24, 0xec, 0x62, 0xe2, 0x7d, 0xf4, 0x09,
1581     0x5a, 0xc3, 0x0f, 0x4b, 0x49, 0xb7, 0xe7, 0xb2,
1582     0x9b, 0x01, 0x2c, 0x8a, 0x39, 0xdd, 0x10, 0xec,
1583     0x30, 0xb9, 0x7e, 0x39, 0x98, 0x94, 0x2a, 0xa4,
1584     0xb3, 0x97, 0x7f, 0x85, 0x6e, 0x19, 0x75, 0x9e,
1585     0x91, 0x94, 0xaa, 0xb5, 0xb0, 0x1f, 0x72, 0x50,
1586     0xb5, 0x6d, 0x7a, 0xff, 0x90, 0xcc, 0x24, 0x80,
1587     0x20, 0x23, 0x1c, 0xf3, 0xbd, 0x01, 0xc7, 0x82,
1588     0x63, 0x04, 0xcc, 0xbd, 0xfb, 0x41, 0x9a, 0xb8,
1589     0xeb, 0x6d, 0x78, 0x02, 0xee, 0x4a, 0x6d, 0xbb,
1590     0xf7, 0xb7, 0xcf, 0x91, 0xca, 0x11, 0xf2, 0x62,
1591     0xec, 0x18, 0x14, 0xcd, 0x10, 0xd8, 0x60, 0xe5,
1592     0x20, 0x86, 0x74, 0x84, 0xd5, 0x35, 0x34, 0x69,
1593     0x65, 0x93, 0x31, 0x99, 0xb6, 0x2d, 0x43, 0x23,
1594     0x1d, 0x73, 0x55, 0xfa, 0x03, 0x76, 0x22, 0xcc,
1595     0x66, 0xbc, 0x20, 0x2f, 0x7f, 0x4f, 0x78, 0xdd,
1596     0xd1, 0x1f, 0xb6, 0x79, 0x6b, 0x58, 0x58, 0x57,
1597     0x56, 0x87, 0xbc, 0x72, 0x6c, 0x81, 0x0a, 0xe2,
1598     0xae, 0xb2, 0x4b, 0x66, 0x5b, 0x65, 0x35, 0x2b,
1599     0x89, 0x0b, 0xa8, 0x5c, 0x34, 0xb3, 0x5f, 0xb0,
1600     0x21, 0x5d, 0x4c, 0x60, 0x57, 0x73, 0xb6, 0x16,
1601     0x94, 0xa7, 0x55, 0x52, 0x2a, 0x87, 0x10, 0xc9,
1602     0x7c, 0x86, 0xb9, 0xdd, 0xf5, 0xb9, 0x30, 0xc0,
1603     0xe6, 0x2a, 0xc9, 0x08, 0x3a, 0x88, 0xdc, 0x27,
1604     0xea, 0x2f, 0xd9, 0x37, 0x06, 0x36, 0xd8, 0xe5,
1605     0x66, 0x11, 0x54, 0x72, 0x4c, 0xc8, 0xa2, 0xc1,
1606     0xed, 0xf5, 0x17, 0x3b, 0x06, 0x2b, 0x4c, 0xc9,
1607     0x49, 0x2b, 0x98, 0x6f, 0xb8, 0x77, 0x96, 0x0c,
1608     0x6b, 0x47, 0x81, 0x6c, 0xf3, 0x94, 0x3d, 0x3b,
1609     0x24, 0x2d, 0x26, 0x9c, 0x40, 0xc1, 0x1f, 0xa7,
1610     0xb2, 0xb4, 0x29, 0xb6, 0x05, 0xe5, 0x6e, 0x3c,
1611     0xab, 0xd4, 0xaa, 0x3d, 0x78, 0x63, 0x3e, 0xf2,
1612     0x75, 0x0d, 0xc3, 0x46, 0x0e, 0x68, 0xd7, 0x3d,
1613     0xb9, 0xcb, 0x9a, 0x0a, 0xce, 0xec, 0x6f, 0x21,
1614     0x8c, 0x86, 0xaa, 0xeb, 0x7b, 0x56, 0x41, 0xa6,
1615     0x7a, 0xd3, 0x03, 0x02, 0x5c, 0x76, 0x01, 0xf7,
1616     0x5d, 0x5e, 0x8e, 0x7d, 0xac, 0x35, 0x84, 0x11,
1617     0xc6, 0xbc, 0x9a, 0x53, 0xcc, 0x3b, 0x4f, 0x5b,
1618     0x23, 0x79, 0x30, 0x52, 0xc3, 0x73, 0x5d, 0xc8,
1619     0xf1, 0xec, 0x2e, 0x0d, 0xda, 0x64, 0x90, 0x50,
1620     0x62, 0xcf, 0x18, 0xc5, 0x52, 0x45, 0xe7, 0x38,
1621     0x1a, 0xec, 0x01, 0x18, 0xbb, 0x85, 0x97, 0x7f,
1622     0x68, 0x2b, 0x6f, 0xfc, 0xcd, 0x08, 0xc8, 0xe2,
1623     0xca, 0x7e, 0xa6, 0x4f, 0xca, 0x5d, 0xdd, 0xf8,
1624     0xfa, 0x52, 0x1c, 0x91, 0x82, 0x56, 0x07, 0xb2,
1625     0x03, 0x3e, 0xa2, 0x8d, 0x60, 0xff, 0x78, 0x05,
1626     0x1a, 0xfc, 0x6e, 0x27, 0x80, 0xbd, 0x90, 0x98,
1627     0x83, 0x46, 0xba, 0xec, 0xee, 0x89, 0xe3, 0x1b,
1628     0xc0, 0xcd, 0x2f, 0x05, 0x37, 0x18, 0xb5, 0xfa,
1629     0xc3, 0x91, 0x85, 0x0f, 0xb7, 0x74, 0x1c, 0x64,
1630     0xf0, 0xf8, 0x56, 0x35, 0xb8, 0x1d, 0xc3, 0x39,
1631     0x5c, 0xea, 0x8a, 0x92, 0x31, 0xd2, 0x11, 0x4b,
1632 };
1633
1634 static const unsigned char rsa_sigverx931_0_n[] = {
1635     0xa0, 0x16, 0x14, 0x80, 0x8b, 0x17, 0x2b, 0xad,
1636     0xd7, 0x07, 0x31, 0x6d, 0xfc, 0xba, 0x25, 0x83,
1637     0x09, 0xa0, 0xf7, 0x71, 0xc6, 0x06, 0x22, 0x87,
1638     0xd6, 0xbd, 0x13, 0xd9, 0xfe, 0x7c, 0xf7, 0xe6,
1639     0x48, 0xdb, 0x27, 0xd8, 0xa5, 0x49, 0x8e, 0x8c,
1640     0xea, 0xbe, 0xe0, 0x04, 0x6f, 0x3d, 0x3b, 0x73,
1641     0xdc, 0xc5, 0xd4, 0xdc, 0x85, 0xef, 0xea, 0x10,
1642     0x46, 0xf3, 0x88, 0xb9, 0x93, 0xbc, 0xa0, 0xb6,
1643     0x06, 0x02, 0x82, 0xb4, 0x2d, 0x54, 0xec, 0x79,
1644     0x50, 0x8a, 0xfc, 0xfa, 0x62, 0x45, 0xbb, 0xd7,
1645     0x26, 0xcd, 0x88, 0xfa, 0xe8, 0x0f, 0x26, 0x5b,
1646     0x1f, 0x21, 0x3f, 0x3b, 0x5d, 0x98, 0x3f, 0x02,
1647     0x8c, 0xa1, 0xbf, 0xc0, 0x70, 0x4d, 0xd1, 0x41,
1648     0xfd, 0xb9, 0x55, 0x12, 0x90, 0xc8, 0x6e, 0x0f,
1649     0x19, 0xa8, 0x5c, 0x31, 0xd6, 0x16, 0x0e, 0xdf,
1650     0x08, 0x84, 0xcd, 0x4b, 0xfd, 0x28, 0x8d, 0x7d,
1651     0x6e, 0xea, 0xc7, 0x95, 0x4a, 0xc3, 0x84, 0x54,
1652     0x7f, 0xb0, 0x20, 0x29, 0x96, 0x39, 0x4c, 0x3e,
1653     0x85, 0xec, 0x22, 0xdd, 0xb9, 0x14, 0xbb, 0x04,
1654     0x2f, 0x4c, 0x0c, 0xe3, 0xfa, 0xae, 0x47, 0x79,
1655     0x59, 0x8e, 0x4e, 0x7d, 0x4a, 0x17, 0xae, 0x16,
1656     0x38, 0x66, 0x4e, 0xff, 0x45, 0x7f, 0xac, 0x5e,
1657     0x75, 0x9f, 0x51, 0x18, 0xe6, 0xad, 0x6b, 0x8b,
1658     0x3d, 0x08, 0x4d, 0x9a, 0xd2, 0x11, 0xba, 0xa8,
1659     0xc3, 0xb5, 0x17, 0xb5, 0xdf, 0xe7, 0x39, 0x89,
1660     0x27, 0x7b, 0xeb, 0xf4, 0xe5, 0x7e, 0xa9, 0x7b,
1661     0x39, 0x40, 0x6f, 0xe4, 0x82, 0x14, 0x3d, 0x62,
1662     0xb6, 0xd4, 0x43, 0xd0, 0x0a, 0x2f, 0xc1, 0x73,
1663     0x3d, 0x99, 0x37, 0xbe, 0x62, 0x13, 0x6a, 0x8b,
1664     0xeb, 0xc5, 0x64, 0xd5, 0x2a, 0x8b, 0x4f, 0x7f,
1665     0x82, 0x48, 0x69, 0x3e, 0x08, 0x1b, 0xb5, 0x77,
1666     0xd3, 0xdc, 0x1b, 0x2c, 0xe5, 0x59, 0xf6, 0x33,
1667     0x47, 0xa0, 0x0f, 0xff, 0x8a, 0x6a, 0x1d, 0x66,
1668     0x24, 0x67, 0x36, 0x7d, 0x21, 0xda, 0xc1, 0xd4,
1669     0x11, 0x6c, 0xe8, 0x5f, 0xd7, 0x8a, 0x53, 0x5c,
1670     0xb2, 0xe2, 0xf9, 0x14, 0x29, 0x0f, 0xcf, 0x28,
1671     0x32, 0x4f, 0xc6, 0x17, 0xf6, 0xbc, 0x0e, 0xb8,
1672     0x99, 0x7c, 0x14, 0xa3, 0x40, 0x3f, 0xf3, 0xe4,
1673     0x31, 0xbe, 0x54, 0x64, 0x5a, 0xad, 0x1d, 0xb0,
1674     0x37, 0xcc, 0xd9, 0x0b, 0xa4, 0xbc, 0xe0, 0x07,
1675     0x37, 0xd1, 0xe1, 0x65, 0xc6, 0x53, 0xfe, 0x60,
1676     0x6a, 0x64, 0xa4, 0x01, 0x00, 0xf3, 0x5b, 0x9a,
1677     0x28, 0x61, 0xde, 0x7a, 0xd7, 0x0d, 0x56, 0x1e,
1678     0x4d, 0xa8, 0x6a, 0xb5, 0xf2, 0x86, 0x2a, 0x4e,
1679     0xaa, 0x37, 0x23, 0x5a, 0x3b, 0x69, 0x66, 0x81,
1680     0xc8, 0x8e, 0x1b, 0x31, 0x0f, 0x28, 0x31, 0x9a,
1681     0x2d, 0xe5, 0x79, 0xcc, 0xa4, 0xca, 0x60, 0x45,
1682     0xf7, 0x83, 0x73, 0x5a, 0x01, 0x29, 0xda, 0xf7,
1683
1684 };
1685 static const unsigned char rsa_sigverx931_0_e[] = {
1686     0x01, 0x00, 0x01,
1687 };
1688 static const unsigned char rsa_sigverx931_0_msg[] = {
1689     0x82, 0x2e, 0x41, 0x70, 0x9d, 0x1f, 0xe9, 0x47,
1690     0xec, 0xf1, 0x79, 0xcc, 0x05, 0xef, 0xdb, 0xcd,
1691     0xca, 0x8b, 0x8e, 0x61, 0x45, 0xad, 0xa6, 0xd9,
1692     0xd7, 0x4b, 0x15, 0xf4, 0x92, 0x3a, 0x2a, 0x52,
1693     0xe3, 0x44, 0x57, 0x2b, 0x74, 0x7a, 0x37, 0x41,
1694     0x50, 0xcb, 0xcf, 0x13, 0x49, 0xd6, 0x15, 0x54,
1695     0x97, 0xfd, 0xae, 0x9b, 0xc1, 0xbb, 0xfc, 0x5c,
1696     0xc1, 0x37, 0x58, 0x17, 0x63, 0x19, 0x9c, 0xcf,
1697     0xee, 0x9c, 0xe5, 0xbe, 0x06, 0xe4, 0x97, 0x47,
1698     0xd1, 0x93, 0xa1, 0x2c, 0x59, 0x97, 0x02, 0x01,
1699     0x31, 0x45, 0x8c, 0xe1, 0x5c, 0xac, 0xe7, 0x5f,
1700     0x6a, 0x23, 0xda, 0xbf, 0xe4, 0x25, 0xc6, 0x67,
1701     0xea, 0x5f, 0x73, 0x90, 0x1b, 0x06, 0x0f, 0x41,
1702     0xb5, 0x6e, 0x74, 0x7e, 0xfd, 0xd9, 0xaa, 0xbd,
1703     0xe2, 0x8d, 0xad, 0x99, 0xdd, 0x29, 0x70, 0xca,
1704     0x1b, 0x38, 0x21, 0x55, 0xde, 0x07, 0xaf, 0x00,
1705
1706 };
1707 static const unsigned char rsa_sigverx931_0_sig[] = {
1708     0x29, 0xa9, 0x3a, 0x8e, 0x9e, 0x90, 0x1b, 0xdb,
1709     0xaf, 0x0b, 0x47, 0x5b, 0xb5, 0xc3, 0x8c, 0xc3,
1710     0x70, 0xbe, 0x73, 0xf9, 0x65, 0x8e, 0xc6, 0x1e,
1711     0x95, 0x0b, 0xdb, 0x24, 0x76, 0x79, 0xf1, 0x00,
1712     0x71, 0xcd, 0xc5, 0x6a, 0x7b, 0xd2, 0x8b, 0x18,
1713     0xc4, 0xdd, 0xf1, 0x2a, 0x31, 0x04, 0x3f, 0xfc,
1714     0x36, 0x06, 0x20, 0x71, 0x3d, 0x62, 0xf2, 0xb5,
1715     0x79, 0x0a, 0xd5, 0xd2, 0x81, 0xf1, 0xb1, 0x4f,
1716     0x9a, 0x17, 0xe8, 0x67, 0x64, 0x48, 0x09, 0x75,
1717     0xff, 0x2d, 0xee, 0x36, 0xca, 0xca, 0x1d, 0x74,
1718     0x99, 0xbe, 0x5c, 0x94, 0x31, 0xcc, 0x12, 0xf4,
1719     0x59, 0x7e, 0x17, 0x00, 0x4f, 0x7b, 0xa4, 0xb1,
1720     0xda, 0xdb, 0x3e, 0xa4, 0x34, 0x10, 0x4a, 0x19,
1721     0x0a, 0xd2, 0xa7, 0xa0, 0xc5, 0xe6, 0xef, 0x82,
1722     0xd4, 0x2e, 0x21, 0xbe, 0x15, 0x73, 0xac, 0xef,
1723     0x05, 0xdb, 0x6a, 0x8a, 0x1a, 0xcb, 0x8e, 0xa5,
1724     0xee, 0xfb, 0x28, 0xbf, 0x96, 0xa4, 0x2b, 0xd2,
1725     0x85, 0x2b, 0x20, 0xc3, 0xaf, 0x9a, 0x32, 0x04,
1726     0xa0, 0x49, 0x24, 0x47, 0xd0, 0x09, 0xf7, 0xcf,
1727     0x73, 0xb6, 0xf6, 0x70, 0xda, 0x3b, 0xf8, 0x5a,
1728     0x28, 0x2e, 0x14, 0x6c, 0x52, 0xbd, 0x2a, 0x7c,
1729     0x8e, 0xc1, 0xa8, 0x0e, 0xb1, 0x1e, 0x6b, 0x8d,
1730     0x76, 0xea, 0x70, 0x81, 0xa0, 0x02, 0x63, 0x74,
1731     0xbc, 0x7e, 0xb9, 0xac, 0x0e, 0x7b, 0x1b, 0x75,
1732     0x82, 0xe2, 0x98, 0x4e, 0x24, 0x55, 0xd4, 0xbd,
1733     0x14, 0xde, 0x58, 0x56, 0x3a, 0x5d, 0x4e, 0x57,
1734     0x0d, 0x54, 0x74, 0xe8, 0x86, 0x8c, 0xcb, 0x07,
1735     0x9f, 0x0b, 0xfb, 0xc2, 0x08, 0x5c, 0xd7, 0x05,
1736     0x3b, 0xc8, 0xd2, 0x15, 0x68, 0x8f, 0x3d, 0x3c,
1737     0x4e, 0x85, 0xa9, 0x25, 0x6f, 0xf5, 0x2e, 0xca,
1738     0xca, 0xa8, 0x27, 0x89, 0x61, 0x4e, 0x1f, 0x57,
1739     0x2d, 0x99, 0x10, 0x3f, 0xbc, 0x9e, 0x96, 0x5e,
1740     0x2f, 0x0a, 0x25, 0xa7, 0x5c, 0xea, 0x65, 0x2a,
1741     0x22, 0x35, 0xa3, 0xf9, 0x13, 0x89, 0x05, 0x2e,
1742     0x19, 0x73, 0x1d, 0x70, 0x74, 0x98, 0x15, 0x4b,
1743     0xab, 0x56, 0x52, 0xe0, 0x01, 0x42, 0x95, 0x6a,
1744     0x46, 0x2c, 0x78, 0xff, 0x26, 0xbc, 0x48, 0x10,
1745     0x38, 0x25, 0xab, 0x32, 0x7c, 0x79, 0x7c, 0x5d,
1746     0x6f, 0x45, 0x54, 0x74, 0x2d, 0x93, 0x56, 0x52,
1747     0x11, 0x34, 0x1e, 0xe3, 0x4b, 0x6a, 0x17, 0x4f,
1748     0x37, 0x14, 0x75, 0xac, 0xa3, 0xa1, 0xca, 0xda,
1749     0x38, 0x06, 0xa9, 0x78, 0xb9, 0x5d, 0xd0, 0x59,
1750     0x1b, 0x5d, 0x1e, 0xc2, 0x0b, 0xfb, 0x39, 0x37,
1751     0x44, 0x85, 0xb6, 0x36, 0x06, 0x95, 0xbc, 0x15,
1752     0x35, 0xb9, 0xe6, 0x27, 0x42, 0xe3, 0xc8, 0xec,
1753     0x30, 0x37, 0x20, 0x26, 0x9a, 0x11, 0x61, 0xc0,
1754     0xdb, 0xb2, 0x5a, 0x26, 0x78, 0x27, 0xb9, 0x13,
1755     0xc9, 0x1a, 0xa7, 0x67, 0x93, 0xe8, 0xbe, 0xcb,
1756 };
1757
1758 #define rsa_sigverx931_1_n rsa_sigverx931_0_n
1759 #define rsa_sigverx931_1_e rsa_sigverx931_0_e
1760 static const unsigned char rsa_sigverx931_1_msg[] = {
1761     0x79, 0x02, 0xb9, 0xd2, 0x3e, 0x84, 0x02, 0xc8,
1762     0x2a, 0x94, 0x92, 0x14, 0x8d, 0xd5, 0xd3, 0x8d,
1763     0xb2, 0xf6, 0x00, 0x8b, 0x61, 0x2c, 0xd2, 0xf9,
1764     0xa8, 0xe0, 0x5d, 0xac, 0xdc, 0xa5, 0x34, 0xf3,
1765     0xda, 0x6c, 0xd4, 0x70, 0x92, 0xfb, 0x40, 0x26,
1766     0xc7, 0x9b, 0xe8, 0xd2, 0x10, 0x11, 0xcf, 0x7f,
1767     0x23, 0xd0, 0xed, 0x55, 0x52, 0x6d, 0xd3, 0xb2,
1768     0x56, 0x53, 0x8d, 0x7c, 0x4c, 0xb8, 0xcc, 0xb5,
1769     0xfd, 0xd0, 0x45, 0x4f, 0x62, 0x40, 0x54, 0x42,
1770     0x68, 0xd5, 0xe5, 0xdd, 0xf0, 0x76, 0x94, 0x59,
1771     0x1a, 0x57, 0x13, 0xb4, 0xc3, 0x70, 0xcc, 0xbd,
1772     0x4c, 0x2e, 0xc8, 0x6b, 0x9d, 0x68, 0xd0, 0x72,
1773     0x6a, 0x94, 0xd2, 0x18, 0xb5, 0x3b, 0x86, 0x45,
1774     0x95, 0xaa, 0x50, 0xda, 0x35, 0xeb, 0x69, 0x44,
1775     0x1f, 0xf3, 0x3a, 0x51, 0xbb, 0x1d, 0x08, 0x42,
1776     0x12, 0xd7, 0xd6, 0x21, 0xd8, 0x9b, 0x87, 0x55,
1777 };
1778
1779 static const unsigned char rsa_sigverx931_1_sig[] = {
1780     0x3b, 0xba, 0xb3, 0xb1, 0xb2, 0x6a, 0x29, 0xb5,
1781     0xf9, 0x94, 0xf1, 0x00, 0x5c, 0x16, 0x67, 0x67,
1782     0x73, 0xd3, 0xde, 0x7e, 0x07, 0xfa, 0xaa, 0x95,
1783     0xeb, 0x5a, 0x55, 0xdc, 0xb2, 0xa9, 0x70, 0x5a,
1784     0xee, 0x8f, 0x8d, 0x69, 0x85, 0x2b, 0x00, 0xe3,
1785     0xdc, 0xe2, 0x73, 0x9b, 0x68, 0xeb, 0x93, 0x69,
1786     0x08, 0x03, 0x17, 0xd6, 0x50, 0x21, 0x14, 0x23,
1787     0x8c, 0xe6, 0x54, 0x3a, 0xd9, 0xfc, 0x8b, 0x14,
1788     0x81, 0xb1, 0x8b, 0x9d, 0xd2, 0xbe, 0x58, 0x75,
1789     0x94, 0x74, 0x93, 0xc9, 0xbb, 0x4e, 0xf6, 0x1f,
1790     0x73, 0x7d, 0x1a, 0x5f, 0xbd, 0xbf, 0x59, 0x37,
1791     0x5b, 0x98, 0x54, 0xad, 0x3a, 0xef, 0xa0, 0xef,
1792     0xcb, 0xc3, 0xe8, 0x84, 0xd8, 0x3d, 0xf5, 0x60,
1793     0xb8, 0xc3, 0x8d, 0x1e, 0x78, 0xa0, 0x91, 0x94,
1794     0xb7, 0xd7, 0xb1, 0xd4, 0xe2, 0xee, 0x81, 0x93,
1795     0xfc, 0x41, 0xf0, 0x31, 0xbb, 0x03, 0x52, 0xde,
1796     0x80, 0x20, 0x3a, 0x68, 0xe6, 0xc5, 0x50, 0x1b,
1797     0x08, 0x3f, 0x40, 0xde, 0xb3, 0xe5, 0x81, 0x99,
1798     0x7f, 0xdb, 0xb6, 0x5d, 0x61, 0x27, 0xd4, 0xfb,
1799     0xcd, 0xc5, 0x7a, 0xea, 0xde, 0x7a, 0x66, 0xef,
1800     0x55, 0x3f, 0x85, 0xea, 0x84, 0xc5, 0x0a, 0xf6,
1801     0x3c, 0x40, 0x38, 0xf7, 0x6c, 0x66, 0xe5, 0xbe,
1802     0x61, 0x41, 0xd3, 0xb1, 0x08, 0xe1, 0xb4, 0xf9,
1803     0x6e, 0xf6, 0x0e, 0x4a, 0x72, 0x6c, 0x61, 0x63,
1804     0x3e, 0x41, 0x33, 0x94, 0xd6, 0x27, 0xa4, 0xd9,
1805     0x3a, 0x20, 0x2b, 0x39, 0xea, 0xe5, 0x82, 0x48,
1806     0xd6, 0x5b, 0x58, 0x85, 0x44, 0xb0, 0xd2, 0xfd,
1807     0xfb, 0x3e, 0xeb, 0x78, 0xac, 0xbc, 0xba, 0x16,
1808     0x92, 0x0e, 0x20, 0xc1, 0xb2, 0xd1, 0x92, 0xa8,
1809     0x00, 0x88, 0xc0, 0x41, 0x46, 0x38, 0xb6, 0x54,
1810     0x70, 0x0c, 0x00, 0x62, 0x97, 0x6a, 0x8e, 0x66,
1811     0x5a, 0xa1, 0x6c, 0xf7, 0x6d, 0xc2, 0x27, 0x56,
1812     0x60, 0x5b, 0x0c, 0x52, 0xac, 0x5c, 0xae, 0x99,
1813     0x55, 0x11, 0x62, 0x52, 0x09, 0x48, 0x53, 0x90,
1814     0x3c, 0x0b, 0xd4, 0xdc, 0x7b, 0xe3, 0x4c, 0xe3,
1815     0xa8, 0x6d, 0xc5, 0xdf, 0xc1, 0x5c, 0x59, 0x25,
1816     0x99, 0x30, 0xde, 0x57, 0x6a, 0x84, 0x25, 0x34,
1817     0x3e, 0x64, 0x11, 0xdb, 0x7a, 0x82, 0x8e, 0x70,
1818     0xd2, 0x5c, 0x0e, 0x81, 0xa0, 0x24, 0x53, 0x75,
1819     0x98, 0xd6, 0x10, 0x01, 0x6a, 0x14, 0xed, 0xc3,
1820     0x6f, 0xc4, 0x18, 0xb8, 0xd2, 0x9f, 0x59, 0x53,
1821     0x81, 0x3a, 0x86, 0x31, 0xfc, 0x9e, 0xbf, 0x6c,
1822     0x52, 0x93, 0x86, 0x9c, 0xaa, 0x6c, 0x6f, 0x07,
1823     0x8a, 0x40, 0x33, 0x64, 0xb2, 0x70, 0x48, 0x85,
1824     0x05, 0x59, 0x65, 0x2d, 0x6b, 0x9a, 0xad, 0xab,
1825     0x20, 0x7e, 0x02, 0x6d, 0xde, 0xcf, 0x22, 0x0b,
1826     0xea, 0x6e, 0xbd, 0x1c, 0x39, 0x3a, 0xfd, 0xa4,
1827     0xde, 0x54, 0xae, 0xde, 0x5e, 0xf7, 0xb0, 0x6d,
1828 };
1829
1830 static const struct rsa_sigver_st rsa_sigver_data[] = {
1831     {
1832         "pkcs1", /* pkcs1v1.5 */
1833         2048,
1834         "SHA224",
1835         ITM(rsa_sigver15_0_msg),
1836         ITM(rsa_sigver15_0_n),
1837         ITM(rsa_sigver15_0_e),
1838         ITM(rsa_sigver15_0_sig),
1839         NO_PSS_SALT_LEN,
1840         PASS
1841     },
1842     {
1843         "pkcs1", /* pkcs1v1.5 */
1844         2048,
1845         "SHA224",
1846         ITM(rsa_sigver15_1_msg),
1847         ITM(rsa_sigver15_1_n),
1848         ITM(rsa_sigver15_1_e),
1849         ITM(rsa_sigver15_1_sig),
1850         NO_PSS_SALT_LEN,
1851         FAIL
1852     },
1853     {
1854         "x931",
1855         3072,
1856         "SHA1",
1857         ITM(rsa_sigverx931_0_msg),
1858         ITM(rsa_sigverx931_0_n),
1859         ITM(rsa_sigverx931_0_e),
1860         ITM(rsa_sigverx931_0_sig),
1861         NO_PSS_SALT_LEN,
1862         PASS
1863     },
1864     {
1865         "x931",
1866         3072,
1867         "SHA256",
1868         ITM(rsa_sigverx931_1_msg),
1869         ITM(rsa_sigverx931_1_n),
1870         ITM(rsa_sigverx931_1_e),
1871         ITM(rsa_sigverx931_1_sig),
1872         NO_PSS_SALT_LEN,
1873         FAIL
1874     },
1875     {
1876         "pss",
1877         4096,
1878         "SHA384",
1879         ITM(rsa_sigverpss_0_msg),
1880         ITM(rsa_sigverpss_0_n),
1881         ITM(rsa_sigverpss_0_e),
1882         ITM(rsa_sigverpss_0_sig),
1883         62,
1884         PASS
1885     },
1886     {
1887         "pss",
1888         4096,
1889         "SHA384",
1890         ITM(rsa_sigverpss_1_msg),
1891         ITM(rsa_sigverpss_1_n),
1892         ITM(rsa_sigverpss_1_e),
1893         ITM(rsa_sigverpss_1_sig),
1894         62,
1895         FAIL
1896     },
1897 };
1898
1899 struct rsa_decrypt_prim_st {
1900     const unsigned char *ct;
1901     size_t ct_len;
1902 };
1903
1904 static const unsigned char rsa_decrypt_prim_0_ct[] = {
1905     0x09, 0x7e, 0x82, 0xfe, 0xc7, 0x24, 0x65, 0xe0,
1906     0x49, 0x2e, 0x78, 0xed, 0xf4, 0x7d, 0x05, 0x0d,
1907     0xff, 0x2f, 0x1a, 0x95, 0xeb, 0x74, 0x60, 0x3d,
1908     0xd3, 0x3a, 0xec, 0x8a, 0x2c, 0x8b, 0x00, 0xa5,
1909     0x75, 0x2c, 0x87, 0x7b, 0xa5, 0x76, 0x08, 0xee,
1910     0x99, 0xab, 0x5b, 0x21, 0x69, 0x90, 0x72, 0x0d,
1911     0x55, 0xe4, 0x7d, 0x1d, 0xcb, 0xaa, 0xeb, 0x32,
1912     0x24, 0xf7, 0xce, 0x95, 0xb5, 0x3e, 0x0e, 0x57,
1913     0xd4, 0x2a, 0x5b, 0xfc, 0x1f, 0xf7, 0x28, 0x3f,
1914     0xd6, 0x31, 0x36, 0x92, 0xc5, 0x13, 0xe3, 0x4e,
1915     0x28, 0x53, 0xbe, 0x60, 0x5f, 0x82, 0x12, 0x7a,
1916     0x50, 0xe6, 0x91, 0x40, 0xcf, 0x52, 0x3a, 0xd2,
1917     0x15, 0x20, 0xd5, 0x82, 0x6d, 0x5e, 0xab, 0x47,
1918     0xd1, 0x2d, 0x00, 0xf5, 0xea, 0xf4, 0x68, 0x88,
1919     0x38, 0x43, 0xd6, 0xcb, 0xaa, 0xd0, 0xd1, 0x75,
1920     0xe6, 0x87, 0x5f, 0xd1, 0x89, 0xd3, 0x57, 0x1b,
1921     0xf2, 0x45, 0x8a, 0x92, 0xe6, 0x95, 0xb8, 0x99,
1922     0x80, 0xe9, 0xe6, 0x5f, 0x2b, 0x48, 0x2b, 0xb3,
1923     0x2b, 0x80, 0x56, 0xf8, 0xd4, 0x96, 0x44, 0xb5,
1924     0xae, 0x6d, 0x4a, 0x3d, 0x7b, 0x0a, 0x54, 0x3c,
1925     0xa8, 0x21, 0x8b, 0x64, 0x96, 0xea, 0xc2, 0xef,
1926     0x60, 0xbb, 0xd3, 0x4e, 0xaf, 0x6c, 0x5b, 0x06,
1927     0x57, 0xe8, 0x5e, 0x2c, 0x87, 0x46, 0x12, 0xeb,
1928     0xfb, 0xe2, 0xdb, 0x7b, 0xac, 0x09, 0x8b, 0xa0,
1929     0x98, 0x6e, 0xc6, 0x3f, 0x98, 0xdd, 0x7d, 0xc6,
1930     0xc6, 0x32, 0xc2, 0xcc, 0x73, 0xe2, 0x15, 0xde,
1931     0xb2, 0x0f, 0x41, 0x08, 0x1e, 0x2e, 0xba, 0x93,
1932     0x65, 0x94, 0xab, 0x84, 0x0e, 0x1e, 0xda, 0x1b,
1933     0xf0, 0xe0, 0x13, 0x13, 0xe2, 0xa5, 0x31, 0xb8,
1934     0x80, 0xc1, 0x38, 0xc5, 0x08, 0x09, 0x0a, 0xe2,
1935     0x78, 0x7d, 0xd6, 0xcf, 0x8d, 0x6b, 0xe8, 0x1b,
1936     0x47, 0x83, 0x80, 0x71, 0xe2, 0xd3, 0x01, 0xbc,
1937 };
1938
1939 static const unsigned char rsa_decrypt_prim_1_ct[] = {
1940     0xff, 0xd5, 0xaa, 0x3f, 0x0c, 0x7c, 0x78, 0x7e,
1941     0xe3, 0x8a, 0x4f, 0xcc, 0x20, 0x3f, 0x51, 0xe5,
1942     0xf4, 0x9c, 0xc5, 0x62, 0xcc, 0xa3, 0xcb, 0xce,
1943     0x39, 0x80, 0x35, 0xef, 0xd5, 0x95, 0x56, 0xcb,
1944     0xb2, 0x62, 0x8c, 0xe6, 0x8b, 0x20, 0xe4, 0x36,
1945     0xae, 0xe8, 0x07, 0x07, 0xc2, 0x23, 0x6a, 0xfc,
1946     0x83, 0xf0, 0x04, 0x88, 0x19, 0xf8, 0x9f, 0x5c,
1947     0x59, 0x4d, 0xb3, 0x81, 0x86, 0x9d, 0x3b, 0x61,
1948     0x73, 0x31, 0x03, 0xec, 0x9c, 0xdd, 0x75, 0xb7,
1949     0x37, 0x0a, 0x8d, 0x94, 0xd9, 0x9f, 0x6d, 0x85,
1950     0xb0, 0x5c, 0x08, 0xcc, 0xb4, 0x27, 0x8c, 0xf0,
1951     0xe6, 0xd6, 0xe0, 0xc1, 0x57, 0x59, 0xaa, 0xc7,
1952     0x8f, 0x5c, 0xa7, 0x4b, 0x3c, 0x81, 0x4a, 0xa3,
1953     0x9b, 0x18, 0x88, 0x04, 0x98, 0x54, 0x3d, 0x87,
1954     0x2a, 0x89, 0xb6, 0x41, 0xe8, 0xbd, 0x37, 0x17,
1955     0x03, 0xa8, 0xf1, 0x37, 0xa5, 0x5e, 0x02, 0x13,
1956     0x67, 0x08, 0xec, 0x9e, 0x97, 0xf5, 0xcc, 0x5f,
1957     0x75, 0x37, 0xbe, 0xce, 0xe8, 0x5e, 0xa1, 0xca,
1958     0x46, 0xa3, 0xda, 0xe4, 0x1f, 0xf8, 0xc4, 0xa3,
1959     0x26, 0xbb, 0xed, 0xa2, 0x71, 0xb2, 0x44, 0x00,
1960     0xd3, 0xe5, 0x06, 0xf1, 0xb4, 0xc1, 0xe0, 0x29,
1961     0xca, 0xeb, 0xe0, 0xdf, 0xd1, 0x69, 0x5f, 0xa9,
1962     0x03, 0x7c, 0x49, 0x93, 0xfb, 0xc2, 0xdf, 0x39,
1963     0xbc, 0x2a, 0x6b, 0x59, 0x7d, 0xf4, 0x84, 0x93,
1964     0xa2, 0x8b, 0x7a, 0x5a, 0x7a, 0xa9, 0xff, 0x41,
1965     0x4c, 0x52, 0x5c, 0xf9, 0x59, 0xd2, 0x91, 0xc3,
1966     0xa9, 0xe8, 0x23, 0x36, 0x5f, 0x2f, 0xb9, 0xbe,
1967     0x22, 0xc4, 0xfd, 0x84, 0x5f, 0x81, 0x3d, 0x94,
1968     0xf8, 0xa4, 0x9b, 0xae, 0xc0, 0xb5, 0x78, 0x4f,
1969     0x91, 0x76, 0x02, 0x5d, 0x60, 0x71, 0x8b, 0xeb,
1970     0x08, 0x42, 0xe3, 0xb3, 0x63, 0x05, 0x60, 0x59,
1971     0x98, 0xc1, 0x6d, 0x66, 0xb3, 0xc5, 0x8a, 0xbc,
1972 };
1973
1974 static const struct rsa_decrypt_prim_st rsa_decrypt_prim_data[] = {
1975     {
1976         ITM(rsa_decrypt_prim_0_ct),
1977     },
1978     {
1979         ITM(rsa_decrypt_prim_1_ct),
1980     },
1981 };
1982
1983 struct drbg_st {
1984     const char *drbg_name;
1985     const char *cipher;
1986     int use_df;
1987
1988     const unsigned char *entropy_input;
1989     size_t entropy_input_len;
1990     const unsigned char *nonce;
1991     size_t nonce_len;
1992     const unsigned char *returned_bits;
1993     size_t returned_bits_len;
1994 };
1995
1996 static const unsigned char drbg_entropy_input[] = {
1997     0x36, 0x40, 0x19, 0x40, 0xfa, 0x8b, 0x1f, 0xba,
1998     0x91, 0xa1, 0x66, 0x1f, 0x21, 0x1d, 0x78, 0xa0,
1999     0xb9, 0x38, 0x9a, 0x74, 0xe5, 0xbc, 0xcf, 0xec,
2000     0xe8, 0xd7, 0x66, 0xaf, 0x1a, 0x6d, 0x3b, 0x14
2001 };
2002
2003 static const unsigned char drbg_nonce[] = {
2004     0x49, 0x6f, 0x25, 0xb0, 0xf1, 0x30, 0x1b, 0x4f,
2005     0x50, 0x1b, 0xe3, 0x03, 0x80, 0xa1, 0x37, 0xeb
2006 };
2007
2008 static const unsigned char drbg_returned_bits[] = {
2009     0x58, 0x62, 0xeb, 0x38, 0xbd, 0x55, 0x8d, 0xd9,
2010     0x78, 0xa6, 0x96, 0xe6, 0xdf, 0x16, 0x47, 0x82,
2011     0xdd, 0xd8, 0x87, 0xe7, 0xe9, 0xa6, 0xc9, 0xf3,
2012     0xf1, 0xfb, 0xaf, 0xb7, 0x89, 0x41, 0xb5, 0x35,
2013     0xa6, 0x49, 0x12, 0xdf, 0xd2, 0x24, 0xc6, 0xdc,
2014     0x74, 0x54, 0xe5, 0x25, 0x0b, 0x3d, 0x97, 0x16,
2015     0x5e, 0x16, 0x26, 0x0c, 0x2f, 0xaf, 0x1c, 0xc7,
2016     0x73, 0x5c, 0xb7, 0x5f, 0xb4, 0xf0, 0x7e, 0x1d
2017 };
2018
2019 static const unsigned char drbg_key_0[] = {
2020     0x33, 0x63, 0xd9, 0x00, 0x0e, 0x6d, 0xb4, 0x7c,
2021     0x16, 0xd3, 0xfc, 0x65, 0xf2, 0x87, 0x2c, 0x08,
2022     0xa3, 0x5f, 0x99, 0xb2, 0xd1, 0x74, 0xaf, 0xa5,
2023     0x37, 0xa6, 0x6e, 0xc1, 0x53, 0x05, 0x2d, 0x98
2024 };
2025
2026 static const struct drbg_st drbg_data[] = {
2027     {
2028         "CTR-DRBG",
2029         "AES-256-CTR",
2030         1,
2031         ITM(drbg_entropy_input),
2032         ITM(drbg_nonce),
2033         ITM(drbg_returned_bits)
2034     }
2035 };