Write a test provider to test the TLS-GROUPS capability
[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 #ifndef OPENSSL_NO_RSA
1014 struct rsa_keygen_st {
1015     size_t mod;
1016     const unsigned char *e;
1017     size_t e_len;
1018     const unsigned char *xp1;
1019     size_t xp1_len;
1020     const unsigned char *xp2;
1021     size_t xp2_len;
1022     const unsigned char *xp;
1023     size_t xp_len;
1024     const unsigned char *xq1;
1025     size_t xq1_len;
1026     const unsigned char *xq2;
1027     size_t xq2_len;
1028     const unsigned char *xq;
1029     size_t xq_len;
1030
1031     const unsigned char *p1;
1032     size_t p1_len;
1033     const unsigned char *p2;
1034     size_t p2_len;
1035     const unsigned char *q1;
1036     size_t q1_len;
1037     const unsigned char *q2;
1038     size_t q2_len;
1039     const unsigned char *p;
1040     size_t p_len;
1041     const unsigned char *q;
1042     size_t q_len;
1043     const unsigned char *n;
1044     size_t n_len;
1045     const unsigned char *d;
1046     size_t d_len;
1047 };
1048
1049 static const unsigned char rsa_keygen0_e[] = {
1050     0x01,0x00,0x01
1051 };
1052 static const unsigned char rsa_keygen0_xp[] = {
1053     0xcf,0x72,0x1b,0x9a,0xfd,0x0d,0x22,0x1a,0x74,0x50,0x97,0x22,0x76,0xd8,0xc0,
1054     0xc2,0xfd,0x08,0x81,0x05,0xdd,0x18,0x21,0x99,0x96,0xd6,0x5c,0x79,0xe3,0x02,
1055     0x81,0xd7,0x0e,0x3f,0x3b,0x34,0xda,0x61,0xc9,0x2d,0x84,0x86,0x62,0x1e,0x3d,
1056     0x5d,0xbf,0x92,0x2e,0xcd,0x35,0x3d,0x6e,0xb9,0x59,0x16,0xc9,0x82,0x50,0x41,
1057     0x30,0x45,0x67,0xaa,0xb7,0xbe,0xec,0xea,0x4b,0x9e,0xa0,0xc3,0x05,0xb3,0x88,
1058     0xd4,0x4c,0xac,0xeb,0xe4,0x03,0xc6,0xca,0xcb,0xd9,0xd3,0x4e,0xf6,0x7f,0x2c,
1059     0x27,0x1e,0x08,0x6c,0xc2,0xd6,0x45,0x1f,0x84,0xe4,0x3c,0x97,0x19,0xde,0xb8,
1060     0x55,0xaf,0x0e,0xcf,0x9e,0xb0,0x9c,0x20,0xd3,0x1f,0xa8,0xd7,0x52,0xc2,0x95,
1061     0x1c,0x80,0x15,0x42,0x4d,0x4f,0x19,0x16
1062 };
1063 static const unsigned char rsa_keygen0_xp1[] = {
1064     0xac,0x5f,0x7f,0x6e,0x33,0x3e,0x97,0x3a,0xb3,0x17,0x44,0xa9,0x0f,0x7a,0x54,
1065     0x70,0x27,0x06,0x93,0xd5,0x49,0xde,0x91,0x83,0xbc,0x8a,0x7b,0x95
1066 };
1067 static const unsigned char rsa_keygen0_xp2[] = {
1068     0x0b,0xf6,0xe8,0x79,0x5a,0x81,0xae,0x90,0x1d,0xa4,0x38,0x74,0x9c,0x0e,0x6f,
1069     0xe0,0x03,0xcf,0xc4,0x53,0x16,0x32,0x17,0xf7,0x09,0x5f,0xd9
1070 };
1071 static const unsigned char rsa_keygen0_xq[] = {
1072     0xfe,0xab,0xf2,0x7c,0x16,0x4a,0xf0,0x8d,0x31,0xc6,0x0a,0x82,0xe2,0xae,0xbb,
1073     0x03,0x7e,0x7b,0x20,0x4e,0x64,0xb0,0x16,0xad,0x3c,0x01,0x1a,0xd3,0x54,0xbf,
1074     0x2b,0xa4,0x02,0x9e,0xc3,0x0d,0x60,0x3d,0x1f,0xb9,0xc0,0x0d,0xe6,0x97,0x68,
1075     0xbb,0x8c,0x81,0xd5,0xc1,0x54,0x96,0x0f,0x99,0xf0,0xa8,0xa2,0xf3,0xc6,0x8e,
1076     0xec,0xbc,0x31,0x17,0x70,0x98,0x24,0xa3,0x36,0x51,0xa8,0x54,0xbd,0x9a,0x89,
1077     0x99,0x6e,0x57,0x5e,0xd0,0x39,0x86,0xc3,0xa3,0x1b,0xc7,0xcf,0xc4,0x4f,0x47,
1078     0x25,0x9e,0x2c,0x79,0xe1,0x2c,0xcc,0xe4,0x63,0xf4,0x02,0x84,0xf8,0xf6,0xa1,
1079     0x5c,0x93,0x14,0xf2,0x68,0x5f,0x3a,0x90,0x2f,0x4e,0x5e,0xf9,0x16,0x05,0xcf,
1080     0x21,0x63,0xca,0xfa,0xb0,0x08,0x02,0xc0
1081 };
1082 static const unsigned char rsa_keygen0_xq1[] = {
1083     0x9b,0x02,0xd4,0xba,0xf0,0xaa,0x14,0x99,0x6d,0xc0,0xb7,0xa5,0xe1,0xd3,0x70,
1084     0xb6,0x5a,0xa2,0x9b,0x59,0xd5,0x8c,0x1e,0x9f,0x3f,0x9a,0xde,0xeb,0x9e,0x9c,
1085     0x61,0xd6,0x5a,0xe1
1086 };
1087 static const unsigned char rsa_keygen0_xq2[] = {
1088     0x06,0x81,0x53,0xfd,0xa8,0x7b,0xa3,0x85,0x90,0x15,0x2c,0x97,0xb2,0xa0,0x17,
1089     0x48,0xb0,0x7f,0x0a,0x01,0x6d
1090 };
1091 /* expected values */
1092 static const unsigned char rsa_keygen0_p1[] = {
1093     0xac,0x5f,0x7f,0x6e,0x33,0x3e,0x97,0x3a,0xb3,0x17,0x44,0xa9,0x0f,0x7a,0x54,
1094     0x70,0x27,0x06,0x93,0xd5,0x49,0xde,0x91,0x83,0xbc,0x8a,0x7b,0xc3
1095 };
1096 static const unsigned char rsa_keygen0_p2[] = {
1097     0x0b,0xf6,0xe8,0x79,0x5a,0x81,0xae,0x90,0x1d,0xa4,0x38,0x74,0x9c,0x0e,0x6f,
1098     0xe0,0x03,0xcf,0xc4,0x53,0x16,0x32,0x17,0xf7,0x09,0x5f,0xd9
1099 };
1100 static const unsigned char rsa_keygen0_q1[] = {
1101     0x9b,0x02,0xd4,0xba,0xf0,0xaa,0x14,0x99,0x6d,0xc0,0xb7,0xa5,0xe1,0xd3,0x70,
1102     0xb6,0x5a,0xa2,0x9b,0x59,0xd5,0x8c,0x1e,0x9f,0x3f,0x9a,0xde,0xeb,0x9e,0x9c,
1103     0x61,0xd6,0x5d,0x47
1104 };
1105 static const unsigned char rsa_keygen0_q2[] = {
1106     0x06,0x81,0x53,0xfd,0xa8,0x7b,0xa3,0x85,0x90,0x15,0x2c,0x97,0xb2,0xa0,0x17,
1107     0x48,0xb0,0x7f,0x0a,0x01,0x8f
1108 };
1109 static const unsigned char rsa_keygen0_p[] = {
1110     0xcf,0x72,0x1b,0x9a,0xfd,0x0d,0x22,0x1a,0x74,0x50,0x97,0x22,0x76,0xd8,0xc0,
1111     0xc2,0xfd,0x08,0x81,0x05,0xdd,0x18,0x21,0x99,0x96,0xd6,0x5c,0x79,0xe3,0x02,
1112     0x81,0xd7,0x0e,0x3f,0x3b,0x34,0xda,0x61,0xc9,0x2d,0x84,0x86,0x62,0x1e,0x3d,
1113     0x5d,0xbf,0x92,0x2e,0xcd,0x35,0x3d,0x6e,0xb9,0x59,0x16,0xc9,0x82,0x50,0x41,
1114     0x30,0x45,0x67,0xaa,0xb7,0xbe,0xec,0xea,0x4b,0x9e,0xa0,0xc3,0x05,0xbc,0x4c,
1115     0x01,0xa5,0x4b,0xbd,0xa4,0x20,0xb5,0x20,0xd5,0x59,0x6f,0x82,0x5c,0x8f,0x4f,
1116     0xe0,0x3a,0x4e,0x7e,0xfe,0x44,0xf3,0x3c,0xc0,0x0e,0x14,0x2b,0x32,0xe6,0x28,
1117     0x8b,0x63,0x87,0x00,0xc3,0x53,0x4a,0x5b,0x71,0x7a,0x5b,0x28,0x40,0xc4,0x18,
1118     0xb6,0x77,0x0b,0xab,0x59,0xa4,0x96,0x7d
1119 };
1120 static const unsigned char rsa_keygen0_q[] = {
1121     0xfe,0xab,0xf2,0x7c,0x16,0x4a,0xf0,0x8d,0x31,0xc6,0x0a,0x82,0xe2,0xae,0xbb,
1122     0x03,0x7e,0x7b,0x20,0x4e,0x64,0xb0,0x16,0xad,0x3c,0x01,0x1a,0xd3,0x54,0xbf,
1123     0x2b,0xa4,0x02,0x9e,0xc3,0x0d,0x60,0x3d,0x1f,0xb9,0xc0,0x0d,0xe6,0x97,0x68,
1124     0xbb,0x8c,0x81,0xd5,0xc1,0x54,0x96,0x0f,0x99,0xf0,0xa8,0xa2,0xf3,0xc6,0x8e,
1125     0xec,0xbc,0x31,0x17,0x70,0x98,0x24,0xa3,0x36,0x51,0xa8,0x54,0xc4,0x44,0xdd,
1126     0xf7,0x7e,0xda,0x47,0x4a,0x67,0x44,0x5d,0x4e,0x75,0xf0,0x4d,0x00,0x68,0xe1,
1127     0x4a,0xec,0x1f,0x45,0xf9,0xe6,0xca,0x38,0x95,0x48,0x6f,0xdc,0x9d,0x1b,0xa3,
1128     0x4b,0xfd,0x08,0x4b,0x54,0xcd,0xeb,0x3d,0xef,0x33,0x11,0x6e,0xce,0xe4,0x5d,
1129     0xef,0xa9,0x58,0x5c,0x87,0x4d,0xc8,0xcf
1130 };
1131 static const unsigned char rsa_keygen0_n[] = {
1132     0xce,0x5e,0x8d,0x1a,0xa3,0x08,0x7a,0x2d,0xb4,0x49,0x48,0xf0,0x06,0xb6,0xfe,
1133     0xba,0x2f,0x39,0x7c,0x7b,0xe0,0x5d,0x09,0x2d,0x57,0x4e,0x54,0x60,0x9c,0xe5,
1134     0x08,0x4b,0xe1,0x1a,0x73,0xc1,0x5e,0x2f,0xb6,0x46,0xd7,0x81,0xca,0xbc,0x98,
1135     0xd2,0xf9,0xef,0x1c,0x92,0x8c,0x8d,0x99,0x85,0x28,0x52,0xd6,0xd5,0xab,0x70,
1136     0x7e,0x9e,0xa9,0x87,0x82,0xc8,0x95,0x64,0xeb,0xf0,0x6c,0x0f,0x3f,0xe9,0x02,
1137     0x29,0x2e,0x6d,0xa1,0xec,0xbf,0xdc,0x23,0xdf,0x82,0x4f,0xab,0x39,0x8d,0xcc,
1138     0xac,0x21,0x51,0x14,0xf8,0xef,0xec,0x73,0x80,0x86,0xa3,0xcf,0x8f,0xd5,0xcf,
1139     0x22,0x1f,0xcc,0x23,0x2f,0xba,0xcb,0xf6,0x17,0xcd,0x3a,0x1f,0xd9,0x84,0xb9,
1140     0x88,0xa7,0x78,0x0f,0xaa,0xc9,0x04,0x01,0x20,0x72,0x5d,0x2a,0xfe,0x5b,0xdd,
1141     0x16,0x5a,0xed,0x83,0x02,0x96,0x39,0x46,0x37,0x30,0xc1,0x0d,0x87,0xc2,0xc8,
1142     0x33,0x38,0xed,0x35,0x72,0xe5,0x29,0xf8,0x1f,0x23,0x60,0xe1,0x2a,0x5b,0x1d,
1143     0x6b,0x53,0x3f,0x07,0xc4,0xd9,0xbb,0x04,0x0c,0x5c,0x3f,0x0b,0xc4,0xd4,0x61,
1144     0x96,0x94,0xf1,0x0f,0x4a,0x49,0xac,0xde,0xd2,0xe8,0x42,0xb3,0x4a,0x0b,0x64,
1145     0x7a,0x32,0x5f,0x2b,0x5b,0x0f,0x8b,0x8b,0xe0,0x33,0x23,0x34,0x64,0xf8,0xb5,
1146     0x7f,0x69,0x60,0xb8,0x71,0xe9,0xff,0x92,0x42,0xb1,0xf7,0x23,0xa8,0xa7,0x92,
1147     0x04,0x3d,0x6b,0xff,0xf7,0xab,0xbb,0x14,0x1f,0x4c,0x10,0x97,0xd5,0x6b,0x71,
1148     0x12,0xfd,0x93,0xa0,0x4a,0x3b,0x75,0x72,0x40,0x96,0x1c,0x5f,0x40,0x40,0x57,
1149     0x13
1150 };
1151 static const unsigned char rsa_keygen0_d[] = {
1152     0x47,0x47,0x49,0x1d,0x66,0x2a,0x4b,0x68,0xf5,0xd8,0x4a,0x24,0xfd,0x6c,0xbf,
1153     0x56,0xb7,0x70,0xf7,0x9a,0x21,0xc8,0x80,0x9e,0xf4,0x84,0xcd,0x88,0x01,0x28,
1154     0xea,0x50,0xab,0x13,0x63,0xdf,0xea,0x14,0x38,0xb5,0x07,0x42,0x81,0x2f,0xda,
1155     0xe9,0x24,0x02,0x7e,0xaf,0xef,0x74,0x09,0x0e,0x80,0xfa,0xfb,0xd1,0x19,0x41,
1156     0xe5,0xba,0x0f,0x7c,0x0a,0xa4,0x15,0x55,0xa2,0x58,0x8c,0x3a,0x48,0x2c,0xc6,
1157     0xde,0x4a,0x76,0xfb,0x72,0xb6,0x61,0xe6,0xd2,0x10,0x44,0x4c,0x33,0xb8,0xd2,
1158     0x74,0xb1,0x9d,0x3b,0xcd,0x2f,0xb1,0x4f,0xc3,0x98,0xbd,0x83,0xb7,0x7e,0x75,
1159     0xe8,0xa7,0x6a,0xee,0xcc,0x51,0x8c,0x99,0x17,0x67,0x7f,0x27,0xf9,0x0d,0x6a,
1160     0xb7,0xd4,0x80,0x17,0x89,0x39,0x9c,0xf3,0xd7,0x0f,0xdf,0xb0,0x55,0x80,0x1d,
1161     0xaf,0x57,0x2e,0xd0,0xf0,0x4f,0x42,0x69,0x55,0xbc,0x83,0xd6,0x97,0x83,0x7a,
1162     0xe6,0xc6,0x30,0x6d,0x3d,0xb5,0x21,0xa7,0xc4,0x62,0x0a,0x20,0xce,0x5e,0x5a,
1163     0x17,0x98,0xb3,0x6f,0x6b,0x9a,0xeb,0x6b,0xa3,0xc4,0x75,0xd8,0x2b,0xdc,0x5c,
1164     0x6f,0xec,0x5d,0x49,0xac,0xa8,0xa4,0x2f,0xb8,0x8c,0x4f,0x2e,0x46,0x21,0xee,
1165     0x72,0x6a,0x0e,0x22,0x80,0x71,0xc8,0x76,0x40,0x44,0x61,0x16,0xbf,0xa5,0xf8,
1166     0x89,0xc7,0xe9,0x87,0xdf,0xbd,0x2e,0x4b,0x4e,0xc2,0x97,0x53,0xe9,0x49,0x1c,
1167     0x05,0xb0,0x0b,0x9b,0x9f,0x21,0x19,0x41,0xe9,0xf5,0x61,0xd7,0x33,0x2e,0x2c,
1168     0x94,0xb8,0xa8,0x9a,0x3a,0xcc,0x6a,0x24,0x8d,0x19,0x13,0xee,0xb9,0xb0,0x48,
1169     0x61
1170 };
1171
1172 static const struct rsa_keygen_st rsa_keygen_data[] = {
1173     {
1174         2048,
1175         ITM(rsa_keygen0_e),
1176         ITM(rsa_keygen0_xp1),
1177         ITM(rsa_keygen0_xp2),
1178         ITM(rsa_keygen0_xp),
1179         ITM(rsa_keygen0_xq1),
1180         ITM(rsa_keygen0_xq2),
1181         ITM(rsa_keygen0_xq),
1182
1183         ITM(rsa_keygen0_p1),
1184         ITM(rsa_keygen0_p2),
1185         ITM(rsa_keygen0_q1),
1186         ITM(rsa_keygen0_q2),
1187
1188         ITM(rsa_keygen0_p),
1189         ITM(rsa_keygen0_q),
1190         ITM(rsa_keygen0_n),
1191         ITM(rsa_keygen0_d),
1192     },
1193 };
1194
1195 #define NO_PSS_SALT_LEN -1
1196 struct rsa_siggen_st {
1197     const char *sig_pad_mode;
1198     size_t mod;
1199     const char *digest_alg;
1200     const unsigned char *msg;
1201     size_t msg_len;
1202     int pss_salt_len;
1203 };
1204 static const unsigned char rsa_siggen0_msg[] = {
1205     0xa3, 0x76, 0x35, 0xc2, 0x6d, 0x6b, 0xa0, 0xe1,
1206     0x2e, 0x0b, 0x58, 0x33, 0x0d, 0x30, 0xdd, 0x07,
1207     0xa9, 0x53, 0xd6, 0x37, 0x07, 0xad, 0xa8, 0x67,
1208 };
1209 static const struct rsa_siggen_st rsa_siggen_data[] = {
1210     {
1211         "pkcs1", /* pkcs1v1.5 */
1212         2048,
1213         "SHA384",
1214         ITM(rsa_siggen0_msg),
1215         NO_PSS_SALT_LEN,
1216     },
1217     {
1218         "x931",
1219         2048,
1220         "SHA384",
1221         ITM(rsa_siggen0_msg),
1222         NO_PSS_SALT_LEN,
1223     },
1224     {
1225         "pss",
1226         2048,
1227         "SHA384",
1228         ITM(rsa_siggen0_msg),
1229         62
1230     },
1231 };
1232
1233 struct rsa_sigver_st {
1234     const char *sig_pad_mode;
1235     size_t mod;
1236     const char *digest_alg;
1237     const unsigned char *msg;
1238     size_t msg_len;
1239     const unsigned char *n;
1240     size_t n_len;
1241     const unsigned char *e;
1242     size_t e_len;
1243     const unsigned char *sig;
1244     size_t sig_len;
1245     int pss_salt_len;
1246     int pass;
1247 };
1248
1249 static const unsigned char rsa_sigver15_0_n[] = {
1250     0xbb, 0xbc, 0xf3, 0x35, 0x6f, 0x8e, 0x2e, 0x4f,
1251     0x32, 0xb5, 0xbb, 0x47, 0x9d, 0x02, 0x2a, 0xac,
1252     0x93, 0x9e, 0x70, 0x50, 0x0f, 0x59, 0x0d, 0x38,
1253     0x1c, 0xe5, 0xda, 0x87, 0x61, 0x6b, 0xbf, 0xa8,
1254     0x2c, 0x2f, 0x97, 0xbc, 0x4b, 0xd4, 0xae, 0x21,
1255     0xed, 0xbe, 0x7a, 0x98, 0x15, 0xa8, 0xe2, 0xf0,
1256     0x5f, 0x4d, 0xf8, 0xe2, 0x7c, 0x7e, 0x87, 0x52,
1257     0x8e, 0xbf, 0xb6, 0x3f, 0x1a, 0x12, 0x96, 0x87,
1258     0x2c, 0xd2, 0xac, 0x85, 0x87, 0xe5, 0xcd, 0x4c,
1259     0x31, 0x2b, 0x98, 0x16, 0x9f, 0xcf, 0x3e, 0xef,
1260     0x50, 0xaa, 0xee, 0xc0, 0x6c, 0x80, 0x94, 0xc5,
1261     0xb1, 0xc7, 0x0d, 0xd4, 0x24, 0x94, 0x44, 0x3a,
1262     0x44, 0xdb, 0x10, 0xdc, 0x21, 0x57, 0xe0, 0x77,
1263     0xe5, 0x9c, 0xc4, 0x49, 0x06, 0xe3, 0x5a, 0xea,
1264     0x64, 0xf4, 0x54, 0xca, 0xfc, 0x5a, 0x2b, 0x92,
1265     0x76, 0xe1, 0x86, 0x6f, 0x3b, 0x4e, 0x7d, 0xe7,
1266     0xb9, 0x62, 0xc4, 0x63, 0x12, 0x65, 0x16, 0x58,
1267     0x11, 0x23, 0xba, 0x1b, 0x95, 0x06, 0x1c, 0xdd,
1268     0xdc, 0x49, 0x0b, 0x67, 0x7c, 0xb0, 0xdb, 0x45,
1269     0x88, 0x6e, 0x42, 0xdd, 0x67, 0xbf, 0xec, 0x0e,
1270     0xfa, 0x64, 0x06, 0x3e, 0xb9, 0x40, 0xee, 0xc6,
1271     0x56, 0xdf, 0xe7, 0xd8, 0xed, 0xf1, 0xf7, 0x53,
1272     0xec, 0xd6, 0x1e, 0xb1, 0x66, 0x66, 0x80, 0x16,
1273     0x5b, 0xba, 0x8c, 0x75, 0xe2, 0x6c, 0x19, 0xe7,
1274     0xf9, 0xc8, 0xae, 0x75, 0xc9, 0xc4, 0x19, 0xe6,
1275     0xba, 0xfd, 0x3e, 0x12, 0xf0, 0x88, 0x90, 0xee,
1276     0x39, 0xf8, 0x85, 0x3c, 0x20, 0x3b, 0xfe, 0xb9,
1277     0xa0, 0x07, 0x93, 0x6d, 0x20, 0x78, 0xf2, 0xc2,
1278     0xa5, 0x49, 0x51, 0xa3, 0xb7, 0x13, 0x83, 0xeb,
1279     0x19, 0x55, 0x08, 0x4f, 0x28, 0x32, 0x1a, 0x9b,
1280     0xab, 0x05, 0x9a, 0xaa, 0x28, 0xdc, 0xfa, 0xbf,
1281     0xf3, 0x52, 0x40, 0x0c, 0x4a, 0xb3, 0xd6, 0xb5,
1282 };
1283 static const unsigned char rsa_sigver15_0_e[] = {
1284     0x01, 0x00, 0x01,
1285 };
1286 static const unsigned char rsa_sigver15_0_msg[] = {
1287     0xba, 0x1a, 0x03, 0xda, 0x95, 0xd4, 0x36, 0x60,
1288     0xe6, 0x77, 0xc7, 0x80, 0x49, 0x42, 0xc7, 0x98,
1289     0xf6, 0x9e, 0xcf, 0x6f, 0xe5, 0xaf, 0x41, 0x6c,
1290     0x36, 0x29, 0xd0, 0x06, 0xcf, 0x65, 0x43, 0x7c,
1291     0x47, 0xb4, 0x75, 0xc6, 0x03, 0xf3, 0xa1, 0xcb,
1292     0x9e, 0x5f, 0xdc, 0xd4, 0x8e, 0xab, 0xe3, 0x41,
1293     0x05, 0x50, 0x17, 0x7b, 0x16, 0x25, 0xc6, 0x29,
1294     0x19, 0x2f, 0xac, 0xa7, 0x50, 0xba, 0xba, 0xb3,
1295     0xcb, 0xa8, 0x16, 0x6a, 0x88, 0x0a, 0x62, 0x74,
1296     0xdf, 0xed, 0x41, 0x7b, 0x1d, 0x76, 0x17, 0xe1,
1297     0x70, 0x32, 0x11, 0xb2, 0x03, 0xa7, 0x66, 0xd7,
1298     0x69, 0x2f, 0xdc, 0x8d, 0x3f, 0x06, 0x8d, 0x16,
1299     0x0d, 0xa1, 0xeb, 0xae, 0x6e, 0x41, 0x02, 0xc1,
1300     0x71, 0xc9, 0xfd, 0x5b, 0x3e, 0xcc, 0xec, 0xe0,
1301     0xfd, 0xeb, 0xc4, 0xfd, 0xf3, 0x5e, 0xa7, 0xde,
1302     0xee, 0xd0, 0x66, 0xa2, 0xe4, 0x70, 0x45, 0x0c,
1303 };
1304 static const unsigned char rsa_sigver15_0_sig[] = {
1305     0x4a, 0x8a, 0xcb, 0x88, 0x89, 0xd3, 0xa9, 0x48,
1306     0x84, 0x09, 0x2e, 0x2c, 0x50, 0x02, 0xb9, 0xad,
1307     0xe5, 0x10, 0xac, 0x27, 0x8f, 0x2d, 0x36, 0x7e,
1308     0x6e, 0x32, 0x5c, 0x1d, 0xcb, 0xfa, 0xb8, 0xc7,
1309     0x1a, 0x27, 0x11, 0x2b, 0x34, 0xf4, 0xa9, 0xda,
1310     0xa0, 0x99, 0x86, 0xbe, 0x81, 0xd0, 0xd9, 0x2a,
1311     0x88, 0x25, 0x99, 0xb3, 0x02, 0x50, 0xf1, 0xa5,
1312     0x4f, 0x3a, 0x1d, 0x7f, 0xcf, 0x7d, 0x76, 0x00,
1313     0x06, 0x87, 0x9f, 0x39, 0x3a, 0x3c, 0xc0, 0xc6,
1314     0x46, 0x7a, 0x65, 0x0d, 0x85, 0x06, 0xd8, 0x51,
1315     0xbe, 0xc5, 0x00, 0x80, 0xeb, 0x73, 0xbb, 0x71,
1316     0x8c, 0xcc, 0x72, 0x83, 0x1f, 0x9d, 0x73, 0x75,
1317     0xb8, 0xc8, 0x4c, 0x07, 0x5b, 0xda, 0x8c, 0x9b,
1318     0x6f, 0x65, 0x8c, 0x2e, 0x23, 0x62, 0x6c, 0x8d,
1319     0x94, 0x54, 0x5b, 0x7f, 0xe6, 0x5c, 0x90, 0xa3,
1320     0x07, 0xe2, 0x14, 0x4d, 0xe7, 0x71, 0x6c, 0xfd,
1321     0x64, 0x12, 0x14, 0x12, 0x14, 0x00, 0x1b, 0xc4,
1322     0x65, 0xe7, 0x28, 0x5c, 0x34, 0x2d, 0xda, 0x94,
1323     0xfd, 0x71, 0xcb, 0x27, 0xa6, 0x0e, 0x63, 0xd4,
1324     0xd6, 0x14, 0x65, 0xc0, 0xe3, 0x65, 0x94, 0x61,
1325     0x59, 0xb8, 0xc9, 0x3b, 0x9b, 0xc2, 0x82, 0xe2,
1326     0x76, 0xe7, 0x17, 0xf1, 0xef, 0x32, 0x9e, 0x8a,
1327     0x04, 0xf3, 0x1e, 0xcc, 0x16, 0xb4, 0x45, 0x0e,
1328     0x77, 0xdb, 0x8b, 0x38, 0x6c, 0xcc, 0x98, 0xf4,
1329     0xf8, 0xb5, 0x45, 0x2c, 0xde, 0x23, 0x36, 0xe7,
1330     0x83, 0xf0, 0xb4, 0xb5, 0xe3, 0xd3, 0xd4, 0x59,
1331     0xf1, 0x46, 0x7f, 0x0f, 0x55, 0x58, 0xff, 0x75,
1332     0xc7, 0x7f, 0xee, 0xf8, 0xe0, 0xb2, 0x52, 0xd8,
1333     0xba, 0x37, 0x4f, 0x7b, 0xba, 0xa3, 0xf0, 0x13,
1334     0xa7, 0x3a, 0x21, 0xac, 0xdc, 0x9e, 0x63, 0x36,
1335     0x38, 0xe7, 0x90, 0xeb, 0xea, 0x7f, 0x83, 0xf4,
1336     0x9d, 0xf3, 0x6b, 0x31, 0x44, 0x47, 0x27, 0x8e,
1337 };
1338
1339 #define rsa_sigver15_1_n rsa_sigver15_0_n
1340 #define rsa_sigver15_1_e rsa_sigver15_0_e
1341 static const unsigned char rsa_sigver15_1_msg[] = {
1342     0x52, 0x68, 0x35, 0xd6, 0x4a, 0x95, 0xaa, 0xbd,
1343     0x02, 0x69, 0x7f, 0x92, 0xc7, 0x8c, 0x04, 0x71,
1344     0x17, 0x10, 0x5a, 0x0d, 0xab, 0x5e, 0x91, 0x45,
1345     0xb5, 0x70, 0x0d, 0xf8, 0x66, 0x41, 0x2e, 0x19,
1346     0xb3, 0x82, 0x30, 0x06, 0x59, 0x8f, 0x4f, 0x15,
1347     0x1e, 0xa1, 0x2f, 0x70, 0x5a, 0x45, 0x7c, 0x24,
1348     0xb7, 0x0d, 0xcd, 0x74, 0x35, 0x85, 0xcf, 0x73,
1349     0x71, 0x68, 0x9f, 0xd2, 0x26, 0x14, 0x77, 0xf6,
1350     0xf4, 0x3c, 0x8d, 0x4d, 0x60, 0xdd, 0x38, 0xe3,
1351     0x1d, 0x73, 0x55, 0x30, 0x8a, 0x6c, 0xe9, 0x35,
1352     0x7b, 0xdd, 0x08, 0xc7, 0x3c, 0x74, 0xf5, 0x2a,
1353     0xd3, 0xae, 0x8a, 0xe1, 0x86, 0x49, 0xda, 0xc5,
1354     0x9d, 0xfd, 0x16, 0x55, 0x69, 0x67, 0xad, 0x4d,
1355     0x85, 0x46, 0xb7, 0x7a, 0x5c, 0xe9, 0x94, 0xcc,
1356     0xeb, 0xe8, 0xd0, 0xad, 0xc9, 0x13, 0x4a, 0x91,
1357     0x64, 0xa8, 0x96, 0xce, 0x8d, 0xc9, 0x9f, 0xaf,
1358 };
1359 static const unsigned char rsa_sigver15_1_sig[] = {
1360     0x81, 0x96, 0xdb, 0x65, 0x66, 0x5d, 0xec, 0x14,
1361     0xb3, 0x42, 0xf6, 0x93, 0x89, 0xae, 0x49, 0x81,
1362     0x98, 0xda, 0x71, 0x6d, 0x72, 0x9b, 0xcb, 0x39,
1363     0xe4, 0x85, 0xd1, 0x9f, 0xbe, 0xb8, 0x69, 0x0e,
1364     0xbe, 0xc0, 0x07, 0x88, 0xee, 0xbf, 0xf9, 0x5d,
1365     0x20, 0x0f, 0x90, 0x48, 0x93, 0x53, 0xbb, 0xc6,
1366     0x2f, 0xf8, 0xb7, 0x1d, 0xd2, 0x15, 0x0f, 0x1f,
1367     0x25, 0xab, 0x5b, 0xae, 0x52, 0xe6, 0x8e, 0x06,
1368     0x43, 0xe1, 0xd9, 0x4a, 0x4c, 0xee, 0x24, 0x0e,
1369     0xeb, 0x4f, 0x9b, 0x1a, 0xcb, 0x6d, 0x22, 0x93,
1370     0xa8, 0xa8, 0xcd, 0x4b, 0xa2, 0xf6, 0x88, 0x1a,
1371     0xaf, 0x3b, 0x2b, 0xdf, 0x04, 0x2d, 0x2b, 0x27,
1372     0x54, 0x90, 0x41, 0xb0, 0x4a, 0xda, 0xb1, 0xdf,
1373     0xce, 0x39, 0xda, 0xd7, 0xda, 0x00, 0x97, 0x89,
1374     0x9a, 0xaf, 0x4c, 0xc3, 0x0b, 0x6d, 0xb3, 0xce,
1375     0x59, 0x0b, 0xd9, 0x91, 0x17, 0x31, 0x6a, 0xe7,
1376     0x92, 0xec, 0x62, 0xe1, 0xe9, 0x73, 0xc7, 0x14,
1377     0x06, 0x16, 0x42, 0x8a, 0x68, 0xb1, 0x7c, 0xb8,
1378     0xa1, 0x45, 0xf0, 0x06, 0xf6, 0x85, 0xb5, 0x93,
1379     0xf1, 0x45, 0xc4, 0xe5, 0xf1, 0x76, 0x71, 0xb4,
1380     0xdc, 0x03, 0x55, 0xde, 0xb1, 0xd3, 0x5a, 0x0f,
1381     0x1f, 0x4f, 0xdd, 0xaa, 0x87, 0x8e, 0x46, 0x4d,
1382     0xe3, 0xd0, 0x5b, 0x28, 0x01, 0xc4, 0x94, 0xf7,
1383     0x00, 0x93, 0xae, 0xa3, 0xb5, 0x64, 0x65, 0xa1,
1384     0x16, 0x29, 0x2e, 0xc7, 0xbb, 0xeb, 0x71, 0x02,
1385     0xf9, 0x26, 0xb6, 0xa6, 0x24, 0xdc, 0x6a, 0x0e,
1386     0x0d, 0xad, 0x50, 0xf5, 0x4b, 0xe7, 0x0e, 0x9a,
1387     0x39, 0x20, 0x70, 0xe2, 0xdf, 0x3b, 0x6f, 0x9d,
1388     0xe3, 0x8f, 0x15, 0x6d, 0x5a, 0xaf, 0x12, 0xf7,
1389     0xf7, 0x85, 0x6f, 0x0e, 0xe4, 0x6e, 0x27, 0xf7,
1390     0xb3, 0x44, 0x38, 0x73, 0x45, 0x80, 0x7a, 0x72,
1391     0x82, 0xf3, 0xc8, 0x32, 0xb8, 0x25, 0xef, 0xdc,
1392 };
1393
1394 static const unsigned char rsa_sigverpss_0_n[] = {
1395     0xb2, 0xee, 0xdd, 0xdf, 0xa0, 0x35, 0x92, 0x21,
1396     0xf4, 0x8e, 0xc3, 0x24, 0x39, 0xed, 0xe2, 0x38,
1397     0xc0, 0xaa, 0xff, 0x35, 0x75, 0x27, 0x05, 0xd4,
1398     0x84, 0x78, 0x23, 0x50, 0xa5, 0x64, 0x1e, 0x11,
1399     0x45, 0x2a, 0xb1, 0xeb, 0x97, 0x07, 0x0b, 0xff,
1400     0xb3, 0x1f, 0xc4, 0xa4, 0x80, 0xae, 0x1c, 0x8c,
1401     0x66, 0x71, 0x95, 0x80, 0x60, 0xea, 0x4d, 0xde,
1402     0x90, 0x98, 0xe8, 0xe2, 0x96, 0xa7, 0x0e, 0x5f,
1403     0x00, 0x74, 0xed, 0x79, 0xc3, 0xe2, 0xc2, 0x4e,
1404     0xbe, 0x07, 0xbd, 0xb1, 0xb2, 0xeb, 0x6c, 0x29,
1405     0x9a, 0x59, 0x29, 0x81, 0xa3, 0x83, 0xa3, 0x00,
1406     0x24, 0xa8, 0xfd, 0x45, 0xbb, 0xca, 0x1e, 0x44,
1407     0x47, 0xbb, 0x82, 0x4a, 0x5b, 0x71, 0x46, 0xc0,
1408     0xb4, 0xcc, 0x1b, 0x5e, 0x88, 0x9c, 0x89, 0x69,
1409     0xb4, 0xb0, 0x7c, 0x8e, 0xea, 0x24, 0xc0, 0x2f,
1410     0xc8, 0x3f, 0x9d, 0x9f, 0x43, 0xd3, 0xf0, 0x25,
1411     0x67, 0xf1, 0xf0, 0x9b, 0xd4, 0xff, 0x17, 0x9f,
1412     0xc3, 0x41, 0x2f, 0x53, 0x33, 0xdd, 0x73, 0x8a,
1413     0x5c, 0x74, 0x04, 0x3b, 0x60, 0xcc, 0x9f, 0xca,
1414     0x01, 0xb0, 0x0d, 0xe0, 0xcf, 0xb2, 0xf0, 0x08,
1415     0x73, 0xb6, 0x67, 0x6c, 0x54, 0x9e, 0x1c, 0x01,
1416     0xb5, 0x34, 0xab, 0xcf, 0x77, 0xfe, 0x04, 0x01,
1417     0xc1, 0xd2, 0x4d, 0x47, 0x60, 0x5c, 0x68, 0x47,
1418     0x8a, 0x47, 0x3c, 0x3a, 0xa3, 0xb2, 0x75, 0x87,
1419     0x6e, 0x01, 0x7b, 0xdb, 0xe9, 0x6e, 0x63, 0xb2,
1420     0x65, 0xab, 0xc6, 0xed, 0x0d, 0xa6, 0x84, 0xff,
1421     0xf3, 0xcf, 0xd3, 0x9a, 0x96, 0x9b, 0x5c, 0x22,
1422     0xf8, 0x07, 0x7d, 0x63, 0x75, 0x50, 0x91, 0x5b,
1423     0xc4, 0x1f, 0x29, 0x1f, 0x5d, 0xb0, 0x6e, 0xfa,
1424     0x9b, 0x16, 0xf0, 0xe4, 0xda, 0x2c, 0x94, 0x20,
1425     0x9b, 0x44, 0x51, 0x38, 0xd0, 0xe4, 0x86, 0xc9,
1426     0x76, 0x12, 0x04, 0x1a, 0x25, 0x14, 0xb7, 0x14,
1427     0xdb, 0x6e, 0xd2, 0xc3, 0x57, 0x2c, 0x4c, 0xec,
1428     0xfe, 0x25, 0xed, 0x3e, 0xe3, 0x26, 0xa8, 0xd4,
1429     0xd0, 0x21, 0xbc, 0x09, 0x7e, 0xb0, 0x02, 0x3c,
1430     0xa3, 0x43, 0xa4, 0x1f, 0x73, 0x54, 0x5f, 0xa3,
1431     0xe2, 0x49, 0x4e, 0x25, 0xe8, 0xfc, 0xfb, 0xa9,
1432     0x29, 0xc0, 0x7d, 0xd0, 0x06, 0xd5, 0x5c, 0x52,
1433     0x68, 0x3c, 0xf8, 0xc5, 0xdb, 0x92, 0x27, 0x7c,
1434     0xd8, 0x56, 0x1a, 0x7d, 0xe3, 0x32, 0xe5, 0x08,
1435     0xc9, 0x36, 0x9d, 0x7e, 0xd2, 0x2d, 0xc2, 0x53,
1436     0xf2, 0x7e, 0xce, 0x8a, 0x10, 0x5c, 0xf7, 0xe9,
1437     0x99, 0xa6, 0xa8, 0xf5, 0x8d, 0x6c, 0xed, 0xf3,
1438     0xa1, 0xc8, 0x2a, 0x75, 0x77, 0x99, 0x18, 0xe1,
1439     0x32, 0xdb, 0x35, 0x4a, 0x8b, 0x4a, 0xec, 0xc2,
1440     0x15, 0xe9, 0x4b, 0x89, 0x13, 0x81, 0xfb, 0x0c,
1441     0xf9, 0xb4, 0xd8, 0xee, 0xb5, 0xba, 0x45, 0xa1,
1442     0xea, 0x01, 0xf9, 0xbb, 0xd5, 0xa1, 0x73, 0xa1,
1443     0x5b, 0xef, 0x98, 0xa8, 0xcf, 0x74, 0xf4, 0xd5,
1444     0x1a, 0xe2, 0xa7, 0xb9, 0x37, 0x43, 0xb1, 0x29,
1445     0x94, 0xc3, 0x71, 0x74, 0x34, 0x7d, 0x6f, 0xac,
1446     0x97, 0xb3, 0x5b, 0x3a, 0x0a, 0x3c, 0xe2, 0x94,
1447     0x6c, 0x39, 0xb8, 0xe9, 0x2c, 0xf9, 0xc3, 0x8b,
1448     0xd1, 0x80, 0x4d, 0x22, 0x64, 0x63, 0x20, 0x1b,
1449     0xeb, 0xf9, 0x09, 0x14, 0x86, 0x6e, 0xf4, 0x6d,
1450     0xfc, 0xe5, 0x1b, 0xf7, 0xf2, 0xe0, 0x4d, 0xc8,
1451     0xeb, 0x24, 0x35, 0x16, 0x0a, 0x81, 0x9f, 0x9e,
1452     0x47, 0xd8, 0xea, 0x85, 0xda, 0x77, 0x6c, 0x3d,
1453     0xd4, 0xa9, 0x15, 0xbd, 0xda, 0x5d, 0xf0, 0x72,
1454     0x8d, 0xb5, 0x12, 0x72, 0xb1, 0x62, 0xa0, 0xad,
1455     0xc8, 0x0e, 0x5b, 0x47, 0x4c, 0x69, 0xf7, 0x07,
1456     0xe8, 0xd9, 0x9b, 0xc7, 0x2f, 0xd5, 0x68, 0x1e,
1457     0x1c, 0xe0, 0x8f, 0x40, 0x45, 0x5f, 0x08, 0xc8,
1458     0x95, 0x57, 0xb7, 0x35, 0x92, 0x97, 0xf9, 0x7d,
1459 };
1460 static const unsigned char rsa_sigverpss_0_e[] = {
1461     0x01, 0x00, 0x01,
1462 };
1463 static const unsigned char rsa_sigverpss_0_msg[] = {
1464     0x32, 0x03, 0x0c, 0x2e, 0x06, 0xfc, 0x0f, 0xa5,
1465     0x65, 0xcd, 0x0f, 0x88, 0x52, 0x80, 0xc3, 0x43,
1466     0xda, 0x01, 0x36, 0x48, 0xf5, 0x76, 0xc8, 0x03,
1467     0xae, 0xce, 0x76, 0x0f, 0x83, 0x9d, 0x5c, 0xaa,
1468     0x0f, 0x27, 0x78, 0x66, 0xe6, 0xba, 0xb1, 0x22,
1469     0xc1, 0x42, 0x18, 0x39, 0xdb, 0x17, 0x6d, 0xf9,
1470     0x9a, 0x19, 0xe5, 0x57, 0x72, 0xff, 0x2a, 0xe0,
1471     0x07, 0xec, 0xa4, 0xf3, 0x91, 0x43, 0xf7, 0x2e,
1472     0x85, 0xbd, 0xcd, 0x26, 0x72, 0xb9, 0xd5, 0x5b,
1473     0x28, 0xd3, 0x0c, 0x6b, 0x20, 0xb7, 0x3b, 0x85,
1474     0x18, 0x38, 0xc0, 0x21, 0xfe, 0x9c, 0x92, 0xee,
1475     0x0f, 0x3a, 0x80, 0x0c, 0x40, 0x48, 0xb9, 0x7c,
1476     0xdd, 0xee, 0x91, 0xd5, 0x70, 0x9e, 0x82, 0x38,
1477     0xe4, 0xa8, 0x71, 0x85, 0xea, 0x09, 0x33, 0xcf,
1478     0x9c, 0x84, 0x50, 0x0e, 0x60, 0xf5, 0x07, 0x14,
1479     0x10, 0xe1, 0x92, 0xc3, 0x58, 0x51, 0xab, 0x7c,
1480 };
1481 static const unsigned char rsa_sigverpss_0_sig[] = {
1482     0x43, 0xb2, 0x4a, 0x50, 0xa7, 0xe2, 0x6c, 0x5d,
1483     0x50, 0xc5, 0x39, 0xc1, 0xc1, 0x35, 0xbd, 0x66,
1484     0xbd, 0x86, 0x54, 0xc5, 0x2e, 0x65, 0xfc, 0x19,
1485     0x19, 0x6a, 0x22, 0x43, 0x22, 0x11, 0x26, 0xae,
1486     0x51, 0x78, 0xfa, 0xfa, 0xc1, 0xf0, 0x77, 0x1b,
1487     0xd6, 0x5b, 0x93, 0xbd, 0x84, 0xe4, 0x35, 0xbd,
1488     0x8d, 0x91, 0xb2, 0x7c, 0xb2, 0xb1, 0xda, 0xd7,
1489     0x72, 0x62, 0x88, 0x3e, 0xe9, 0x40, 0x27, 0x4e,
1490     0xa5, 0x17, 0x94, 0xf1, 0xe9, 0xdd, 0x8c, 0x6c,
1491     0x5b, 0xc0, 0x0b, 0xe3, 0x7c, 0x8b, 0xc8, 0x10,
1492     0x57, 0x35, 0x69, 0xb7, 0x56, 0xe0, 0x2f, 0x61,
1493     0x2e, 0x13, 0x11, 0x79, 0xfa, 0x60, 0x8f, 0x2a,
1494     0x65, 0x73, 0xf5, 0x17, 0x34, 0x74, 0x72, 0x22,
1495     0xff, 0x22, 0x5b, 0x97, 0x59, 0x44, 0xf4, 0xfb,
1496     0x4a, 0x2b, 0x7e, 0x28, 0xe3, 0x79, 0x84, 0x24,
1497     0x63, 0xeb, 0xde, 0x63, 0x88, 0xe0, 0xbd, 0x28,
1498     0xef, 0x49, 0x6d, 0xd4, 0x2a, 0x87, 0x53, 0xba,
1499     0x5f, 0xde, 0xe3, 0xd4, 0xb2, 0xc2, 0x6f, 0x49,
1500     0x10, 0xae, 0x5e, 0x15, 0xdd, 0x0f, 0x91, 0xe2,
1501     0xeb, 0x1e, 0xc5, 0x36, 0x8e, 0xdf, 0xa6, 0x17,
1502     0x25, 0x21, 0x16, 0x06, 0x72, 0x37, 0x77, 0x19,
1503     0xe5, 0x88, 0x1b, 0x0b, 0x5b, 0x80, 0x44, 0x8f,
1504     0x13, 0xef, 0xbb, 0xfa, 0xf6, 0x4a, 0x11, 0x6a,
1505     0x6a, 0x0c, 0xe0, 0x42, 0x6b, 0x7d, 0xfd, 0xad,
1506     0xb0, 0x4b, 0xff, 0x3f, 0x20, 0xca, 0x5f, 0x64,
1507     0xcc, 0xc9, 0x5b, 0x89, 0xc2, 0x05, 0x33, 0xf9,
1508     0xa5, 0x31, 0x55, 0xfb, 0xdc, 0xeb, 0xd1, 0x24,
1509     0xbf, 0x17, 0x0f, 0xc8, 0xfd, 0xe9, 0x6a, 0xc1,
1510     0xa7, 0x94, 0x36, 0x72, 0x22, 0x29, 0x2c, 0x1c,
1511     0xd1, 0x8b, 0x7b, 0x37, 0x42, 0x25, 0x8d, 0xe3,
1512     0xcc, 0x06, 0x5f, 0x3c, 0x15, 0xfa, 0x74, 0x8a,
1513     0x83, 0xf0, 0xcc, 0xf5, 0x30, 0xd1, 0xa8, 0x88,
1514     0x9f, 0x4e, 0x1d, 0xd8, 0xe3, 0x1b, 0xb5, 0xe3,
1515     0xdb, 0xce, 0xbc, 0x03, 0xfe, 0xe6, 0xa2, 0xb4,
1516     0x94, 0x76, 0xd1, 0xb7, 0xce, 0xae, 0x6a, 0x7c,
1517     0xbd, 0x4f, 0xd6, 0xfe, 0x60, 0xd0, 0x78, 0xd4,
1518     0x04, 0x3f, 0xe0, 0x17, 0x2a, 0x41, 0x26, 0x5a,
1519     0x81, 0x80, 0xcd, 0x40, 0x7c, 0x4f, 0xd6, 0xd6,
1520     0x1d, 0x1f, 0x58, 0x59, 0xaf, 0xa8, 0x00, 0x91,
1521     0x69, 0xb1, 0xf8, 0x3b, 0xef, 0x59, 0x7e, 0x83,
1522     0x4e, 0xca, 0x1d, 0x33, 0x35, 0xb6, 0xa5, 0x9a,
1523     0x0e, 0xc5, 0xe5, 0x11, 0xdd, 0x5d, 0xb7, 0x32,
1524     0x66, 0x23, 0x63, 0x08, 0xbc, 0x2e, 0x9c, 0x10,
1525     0x30, 0xa4, 0x13, 0x38, 0xee, 0xc7, 0x10, 0xf6,
1526     0xed, 0xe9, 0xe1, 0xd1, 0x89, 0x8b, 0x94, 0x21,
1527     0xde, 0x76, 0x72, 0x90, 0xc4, 0xbc, 0x59, 0x31,
1528     0x1b, 0x1b, 0xd7, 0xa0, 0xd0, 0x3d, 0xaa, 0x43,
1529     0x66, 0xfa, 0x43, 0x8d, 0xcc, 0x37, 0xdc, 0x60,
1530     0x59, 0xaf, 0x02, 0x98, 0xe5, 0xe0, 0x17, 0xd6,
1531     0xc3, 0x84, 0xf2, 0xaa, 0x5d, 0x88, 0xa8, 0x78,
1532     0xbf, 0xbd, 0x18, 0x34, 0x9f, 0x5c, 0x6d, 0x22,
1533     0x0c, 0x77, 0x4f, 0x16, 0xf2, 0x85, 0x88, 0x2e,
1534     0x9a, 0x2b, 0x30, 0x1e, 0x17, 0xc8, 0xc7, 0xd4,
1535     0x20, 0x93, 0x47, 0x0d, 0x32, 0x7d, 0xcb, 0x77,
1536     0x85, 0x82, 0xc3, 0x80, 0x75, 0x10, 0x83, 0x33,
1537     0xd5, 0xde, 0x47, 0xd4, 0x22, 0x55, 0x4d, 0xca,
1538     0x4f, 0x90, 0xd2, 0x9f, 0x80, 0x58, 0x22, 0x4c,
1539     0x5a, 0xaa, 0x53, 0x9e, 0xeb, 0xde, 0x62, 0x8a,
1540     0xfb, 0xd7, 0x4b, 0x28, 0xd5, 0xe1, 0x02, 0xf9,
1541     0x61, 0x74, 0x42, 0x12, 0x32, 0x5d, 0x1b, 0x10,
1542     0x8f, 0x51, 0x8d, 0x7c, 0x59, 0xc5, 0xb7, 0x5a,
1543     0x68, 0xe7, 0xdd, 0xb0, 0xc0, 0x22, 0xbc, 0xf1,
1544     0x37, 0xcc, 0x63, 0xa2, 0x85, 0xb9, 0x11, 0x91,
1545     0x43, 0xb9, 0x7b, 0xfb, 0x4a, 0x21, 0xc9, 0xd5,
1546 };
1547
1548 #define rsa_sigverpss_1_n rsa_sigverpss_0_n
1549 #define rsa_sigverpss_1_e rsa_sigverpss_0_e
1550 static const unsigned char rsa_sigverpss_1_msg[] = {
1551     0x29, 0xdc, 0x70, 0xd8, 0xa5, 0xde, 0x41, 0x1d,
1552     0xed, 0x05, 0x16, 0x04, 0x48, 0x05, 0x21, 0x05,
1553     0x1c, 0x40, 0x8a, 0xbb, 0x6c, 0x3c, 0x11, 0xf3,
1554     0x9f, 0x55, 0xf4, 0x03, 0x83, 0xaf, 0x13, 0x5d,
1555     0x91, 0x6f, 0x52, 0x63, 0x73, 0x2b, 0x3f, 0x7d,
1556     0xc3, 0x9e, 0xf5, 0x69, 0x16, 0xa1, 0x40, 0xd3,
1557     0x39, 0x57, 0x01, 0x26, 0xba, 0xa7, 0xd4, 0xa1,
1558     0xaa, 0xef, 0xf1, 0xad, 0xa2, 0xf6, 0x50, 0x6e,
1559     0x04, 0x23, 0x11, 0x98, 0x83, 0xed, 0x1a, 0x84,
1560     0xe6, 0x93, 0x02, 0x83, 0x08, 0x0d, 0x2e, 0x72,
1561     0x24, 0x42, 0x39, 0x8e, 0x4f, 0x7b, 0x99, 0x8a,
1562     0x46, 0x18, 0x80, 0xdf, 0x6a, 0x82, 0x01, 0x64,
1563     0x09, 0x60, 0x74, 0x1e, 0xdf, 0x0e, 0x1b, 0x59,
1564     0xdd, 0x4a, 0x06, 0xf7, 0x29, 0x31, 0x33, 0x09,
1565     0x65, 0x6b, 0xfa, 0x9c, 0x34, 0xa2, 0xa8, 0xd5,
1566     0xfa, 0x38, 0x6b, 0x41, 0xe4, 0x39, 0x6e, 0x66,
1567 };
1568 static const unsigned char rsa_sigverpss_1_sig[] = {
1569     0x48, 0x7f, 0x71, 0x82, 0x63, 0x1d, 0xf2, 0xee,
1570     0xe8, 0x79, 0xeb, 0x3a, 0xaf, 0x41, 0x8a, 0x7c,
1571     0xab, 0x0b, 0xd4, 0x57, 0xb6, 0x62, 0x9f, 0x6f,
1572     0xec, 0xc1, 0xd4, 0xef, 0x55, 0x51, 0xd1, 0x0a,
1573     0x0e, 0x1d, 0x8a, 0x64, 0x69, 0x08, 0x57, 0xf5,
1574     0x04, 0xa8, 0x6c, 0xde, 0x76, 0x4d, 0x81, 0xf4,
1575     0x95, 0x7e, 0x95, 0x6d, 0x41, 0x31, 0x2f, 0x9d,
1576     0xe7, 0x47, 0x45, 0x45, 0x9f, 0xa8, 0xf8, 0xe3,
1577     0x30, 0xa6, 0x41, 0x0f, 0x12, 0x05, 0x6d, 0x2b,
1578     0x1a, 0xae, 0xef, 0xd4, 0x6b, 0xc6, 0xf4, 0x61,
1579     0xa5, 0x07, 0xfe, 0xe8, 0xd0, 0xfd, 0xa3, 0x93,
1580     0x58, 0xb4, 0x22, 0x37, 0x1b, 0x84, 0xcb, 0xef,
1581     0xae, 0x24, 0xec, 0x62, 0xe2, 0x7d, 0xf4, 0x09,
1582     0x5a, 0xc3, 0x0f, 0x4b, 0x49, 0xb7, 0xe7, 0xb2,
1583     0x9b, 0x01, 0x2c, 0x8a, 0x39, 0xdd, 0x10, 0xec,
1584     0x30, 0xb9, 0x7e, 0x39, 0x98, 0x94, 0x2a, 0xa4,
1585     0xb3, 0x97, 0x7f, 0x85, 0x6e, 0x19, 0x75, 0x9e,
1586     0x91, 0x94, 0xaa, 0xb5, 0xb0, 0x1f, 0x72, 0x50,
1587     0xb5, 0x6d, 0x7a, 0xff, 0x90, 0xcc, 0x24, 0x80,
1588     0x20, 0x23, 0x1c, 0xf3, 0xbd, 0x01, 0xc7, 0x82,
1589     0x63, 0x04, 0xcc, 0xbd, 0xfb, 0x41, 0x9a, 0xb8,
1590     0xeb, 0x6d, 0x78, 0x02, 0xee, 0x4a, 0x6d, 0xbb,
1591     0xf7, 0xb7, 0xcf, 0x91, 0xca, 0x11, 0xf2, 0x62,
1592     0xec, 0x18, 0x14, 0xcd, 0x10, 0xd8, 0x60, 0xe5,
1593     0x20, 0x86, 0x74, 0x84, 0xd5, 0x35, 0x34, 0x69,
1594     0x65, 0x93, 0x31, 0x99, 0xb6, 0x2d, 0x43, 0x23,
1595     0x1d, 0x73, 0x55, 0xfa, 0x03, 0x76, 0x22, 0xcc,
1596     0x66, 0xbc, 0x20, 0x2f, 0x7f, 0x4f, 0x78, 0xdd,
1597     0xd1, 0x1f, 0xb6, 0x79, 0x6b, 0x58, 0x58, 0x57,
1598     0x56, 0x87, 0xbc, 0x72, 0x6c, 0x81, 0x0a, 0xe2,
1599     0xae, 0xb2, 0x4b, 0x66, 0x5b, 0x65, 0x35, 0x2b,
1600     0x89, 0x0b, 0xa8, 0x5c, 0x34, 0xb3, 0x5f, 0xb0,
1601     0x21, 0x5d, 0x4c, 0x60, 0x57, 0x73, 0xb6, 0x16,
1602     0x94, 0xa7, 0x55, 0x52, 0x2a, 0x87, 0x10, 0xc9,
1603     0x7c, 0x86, 0xb9, 0xdd, 0xf5, 0xb9, 0x30, 0xc0,
1604     0xe6, 0x2a, 0xc9, 0x08, 0x3a, 0x88, 0xdc, 0x27,
1605     0xea, 0x2f, 0xd9, 0x37, 0x06, 0x36, 0xd8, 0xe5,
1606     0x66, 0x11, 0x54, 0x72, 0x4c, 0xc8, 0xa2, 0xc1,
1607     0xed, 0xf5, 0x17, 0x3b, 0x06, 0x2b, 0x4c, 0xc9,
1608     0x49, 0x2b, 0x98, 0x6f, 0xb8, 0x77, 0x96, 0x0c,
1609     0x6b, 0x47, 0x81, 0x6c, 0xf3, 0x94, 0x3d, 0x3b,
1610     0x24, 0x2d, 0x26, 0x9c, 0x40, 0xc1, 0x1f, 0xa7,
1611     0xb2, 0xb4, 0x29, 0xb6, 0x05, 0xe5, 0x6e, 0x3c,
1612     0xab, 0xd4, 0xaa, 0x3d, 0x78, 0x63, 0x3e, 0xf2,
1613     0x75, 0x0d, 0xc3, 0x46, 0x0e, 0x68, 0xd7, 0x3d,
1614     0xb9, 0xcb, 0x9a, 0x0a, 0xce, 0xec, 0x6f, 0x21,
1615     0x8c, 0x86, 0xaa, 0xeb, 0x7b, 0x56, 0x41, 0xa6,
1616     0x7a, 0xd3, 0x03, 0x02, 0x5c, 0x76, 0x01, 0xf7,
1617     0x5d, 0x5e, 0x8e, 0x7d, 0xac, 0x35, 0x84, 0x11,
1618     0xc6, 0xbc, 0x9a, 0x53, 0xcc, 0x3b, 0x4f, 0x5b,
1619     0x23, 0x79, 0x30, 0x52, 0xc3, 0x73, 0x5d, 0xc8,
1620     0xf1, 0xec, 0x2e, 0x0d, 0xda, 0x64, 0x90, 0x50,
1621     0x62, 0xcf, 0x18, 0xc5, 0x52, 0x45, 0xe7, 0x38,
1622     0x1a, 0xec, 0x01, 0x18, 0xbb, 0x85, 0x97, 0x7f,
1623     0x68, 0x2b, 0x6f, 0xfc, 0xcd, 0x08, 0xc8, 0xe2,
1624     0xca, 0x7e, 0xa6, 0x4f, 0xca, 0x5d, 0xdd, 0xf8,
1625     0xfa, 0x52, 0x1c, 0x91, 0x82, 0x56, 0x07, 0xb2,
1626     0x03, 0x3e, 0xa2, 0x8d, 0x60, 0xff, 0x78, 0x05,
1627     0x1a, 0xfc, 0x6e, 0x27, 0x80, 0xbd, 0x90, 0x98,
1628     0x83, 0x46, 0xba, 0xec, 0xee, 0x89, 0xe3, 0x1b,
1629     0xc0, 0xcd, 0x2f, 0x05, 0x37, 0x18, 0xb5, 0xfa,
1630     0xc3, 0x91, 0x85, 0x0f, 0xb7, 0x74, 0x1c, 0x64,
1631     0xf0, 0xf8, 0x56, 0x35, 0xb8, 0x1d, 0xc3, 0x39,
1632     0x5c, 0xea, 0x8a, 0x92, 0x31, 0xd2, 0x11, 0x4b,
1633 };
1634
1635 static const unsigned char rsa_sigverx931_0_n[] = {
1636     0xa0, 0x16, 0x14, 0x80, 0x8b, 0x17, 0x2b, 0xad,
1637     0xd7, 0x07, 0x31, 0x6d, 0xfc, 0xba, 0x25, 0x83,
1638     0x09, 0xa0, 0xf7, 0x71, 0xc6, 0x06, 0x22, 0x87,
1639     0xd6, 0xbd, 0x13, 0xd9, 0xfe, 0x7c, 0xf7, 0xe6,
1640     0x48, 0xdb, 0x27, 0xd8, 0xa5, 0x49, 0x8e, 0x8c,
1641     0xea, 0xbe, 0xe0, 0x04, 0x6f, 0x3d, 0x3b, 0x73,
1642     0xdc, 0xc5, 0xd4, 0xdc, 0x85, 0xef, 0xea, 0x10,
1643     0x46, 0xf3, 0x88, 0xb9, 0x93, 0xbc, 0xa0, 0xb6,
1644     0x06, 0x02, 0x82, 0xb4, 0x2d, 0x54, 0xec, 0x79,
1645     0x50, 0x8a, 0xfc, 0xfa, 0x62, 0x45, 0xbb, 0xd7,
1646     0x26, 0xcd, 0x88, 0xfa, 0xe8, 0x0f, 0x26, 0x5b,
1647     0x1f, 0x21, 0x3f, 0x3b, 0x5d, 0x98, 0x3f, 0x02,
1648     0x8c, 0xa1, 0xbf, 0xc0, 0x70, 0x4d, 0xd1, 0x41,
1649     0xfd, 0xb9, 0x55, 0x12, 0x90, 0xc8, 0x6e, 0x0f,
1650     0x19, 0xa8, 0x5c, 0x31, 0xd6, 0x16, 0x0e, 0xdf,
1651     0x08, 0x84, 0xcd, 0x4b, 0xfd, 0x28, 0x8d, 0x7d,
1652     0x6e, 0xea, 0xc7, 0x95, 0x4a, 0xc3, 0x84, 0x54,
1653     0x7f, 0xb0, 0x20, 0x29, 0x96, 0x39, 0x4c, 0x3e,
1654     0x85, 0xec, 0x22, 0xdd, 0xb9, 0x14, 0xbb, 0x04,
1655     0x2f, 0x4c, 0x0c, 0xe3, 0xfa, 0xae, 0x47, 0x79,
1656     0x59, 0x8e, 0x4e, 0x7d, 0x4a, 0x17, 0xae, 0x16,
1657     0x38, 0x66, 0x4e, 0xff, 0x45, 0x7f, 0xac, 0x5e,
1658     0x75, 0x9f, 0x51, 0x18, 0xe6, 0xad, 0x6b, 0x8b,
1659     0x3d, 0x08, 0x4d, 0x9a, 0xd2, 0x11, 0xba, 0xa8,
1660     0xc3, 0xb5, 0x17, 0xb5, 0xdf, 0xe7, 0x39, 0x89,
1661     0x27, 0x7b, 0xeb, 0xf4, 0xe5, 0x7e, 0xa9, 0x7b,
1662     0x39, 0x40, 0x6f, 0xe4, 0x82, 0x14, 0x3d, 0x62,
1663     0xb6, 0xd4, 0x43, 0xd0, 0x0a, 0x2f, 0xc1, 0x73,
1664     0x3d, 0x99, 0x37, 0xbe, 0x62, 0x13, 0x6a, 0x8b,
1665     0xeb, 0xc5, 0x64, 0xd5, 0x2a, 0x8b, 0x4f, 0x7f,
1666     0x82, 0x48, 0x69, 0x3e, 0x08, 0x1b, 0xb5, 0x77,
1667     0xd3, 0xdc, 0x1b, 0x2c, 0xe5, 0x59, 0xf6, 0x33,
1668     0x47, 0xa0, 0x0f, 0xff, 0x8a, 0x6a, 0x1d, 0x66,
1669     0x24, 0x67, 0x36, 0x7d, 0x21, 0xda, 0xc1, 0xd4,
1670     0x11, 0x6c, 0xe8, 0x5f, 0xd7, 0x8a, 0x53, 0x5c,
1671     0xb2, 0xe2, 0xf9, 0x14, 0x29, 0x0f, 0xcf, 0x28,
1672     0x32, 0x4f, 0xc6, 0x17, 0xf6, 0xbc, 0x0e, 0xb8,
1673     0x99, 0x7c, 0x14, 0xa3, 0x40, 0x3f, 0xf3, 0xe4,
1674     0x31, 0xbe, 0x54, 0x64, 0x5a, 0xad, 0x1d, 0xb0,
1675     0x37, 0xcc, 0xd9, 0x0b, 0xa4, 0xbc, 0xe0, 0x07,
1676     0x37, 0xd1, 0xe1, 0x65, 0xc6, 0x53, 0xfe, 0x60,
1677     0x6a, 0x64, 0xa4, 0x01, 0x00, 0xf3, 0x5b, 0x9a,
1678     0x28, 0x61, 0xde, 0x7a, 0xd7, 0x0d, 0x56, 0x1e,
1679     0x4d, 0xa8, 0x6a, 0xb5, 0xf2, 0x86, 0x2a, 0x4e,
1680     0xaa, 0x37, 0x23, 0x5a, 0x3b, 0x69, 0x66, 0x81,
1681     0xc8, 0x8e, 0x1b, 0x31, 0x0f, 0x28, 0x31, 0x9a,
1682     0x2d, 0xe5, 0x79, 0xcc, 0xa4, 0xca, 0x60, 0x45,
1683     0xf7, 0x83, 0x73, 0x5a, 0x01, 0x29, 0xda, 0xf7,
1684
1685 };
1686 static const unsigned char rsa_sigverx931_0_e[] = {
1687     0x01, 0x00, 0x01,
1688 };
1689 static const unsigned char rsa_sigverx931_0_msg[] = {
1690     0x82, 0x2e, 0x41, 0x70, 0x9d, 0x1f, 0xe9, 0x47,
1691     0xec, 0xf1, 0x79, 0xcc, 0x05, 0xef, 0xdb, 0xcd,
1692     0xca, 0x8b, 0x8e, 0x61, 0x45, 0xad, 0xa6, 0xd9,
1693     0xd7, 0x4b, 0x15, 0xf4, 0x92, 0x3a, 0x2a, 0x52,
1694     0xe3, 0x44, 0x57, 0x2b, 0x74, 0x7a, 0x37, 0x41,
1695     0x50, 0xcb, 0xcf, 0x13, 0x49, 0xd6, 0x15, 0x54,
1696     0x97, 0xfd, 0xae, 0x9b, 0xc1, 0xbb, 0xfc, 0x5c,
1697     0xc1, 0x37, 0x58, 0x17, 0x63, 0x19, 0x9c, 0xcf,
1698     0xee, 0x9c, 0xe5, 0xbe, 0x06, 0xe4, 0x97, 0x47,
1699     0xd1, 0x93, 0xa1, 0x2c, 0x59, 0x97, 0x02, 0x01,
1700     0x31, 0x45, 0x8c, 0xe1, 0x5c, 0xac, 0xe7, 0x5f,
1701     0x6a, 0x23, 0xda, 0xbf, 0xe4, 0x25, 0xc6, 0x67,
1702     0xea, 0x5f, 0x73, 0x90, 0x1b, 0x06, 0x0f, 0x41,
1703     0xb5, 0x6e, 0x74, 0x7e, 0xfd, 0xd9, 0xaa, 0xbd,
1704     0xe2, 0x8d, 0xad, 0x99, 0xdd, 0x29, 0x70, 0xca,
1705     0x1b, 0x38, 0x21, 0x55, 0xde, 0x07, 0xaf, 0x00,
1706
1707 };
1708 static const unsigned char rsa_sigverx931_0_sig[] = {
1709     0x29, 0xa9, 0x3a, 0x8e, 0x9e, 0x90, 0x1b, 0xdb,
1710     0xaf, 0x0b, 0x47, 0x5b, 0xb5, 0xc3, 0x8c, 0xc3,
1711     0x70, 0xbe, 0x73, 0xf9, 0x65, 0x8e, 0xc6, 0x1e,
1712     0x95, 0x0b, 0xdb, 0x24, 0x76, 0x79, 0xf1, 0x00,
1713     0x71, 0xcd, 0xc5, 0x6a, 0x7b, 0xd2, 0x8b, 0x18,
1714     0xc4, 0xdd, 0xf1, 0x2a, 0x31, 0x04, 0x3f, 0xfc,
1715     0x36, 0x06, 0x20, 0x71, 0x3d, 0x62, 0xf2, 0xb5,
1716     0x79, 0x0a, 0xd5, 0xd2, 0x81, 0xf1, 0xb1, 0x4f,
1717     0x9a, 0x17, 0xe8, 0x67, 0x64, 0x48, 0x09, 0x75,
1718     0xff, 0x2d, 0xee, 0x36, 0xca, 0xca, 0x1d, 0x74,
1719     0x99, 0xbe, 0x5c, 0x94, 0x31, 0xcc, 0x12, 0xf4,
1720     0x59, 0x7e, 0x17, 0x00, 0x4f, 0x7b, 0xa4, 0xb1,
1721     0xda, 0xdb, 0x3e, 0xa4, 0x34, 0x10, 0x4a, 0x19,
1722     0x0a, 0xd2, 0xa7, 0xa0, 0xc5, 0xe6, 0xef, 0x82,
1723     0xd4, 0x2e, 0x21, 0xbe, 0x15, 0x73, 0xac, 0xef,
1724     0x05, 0xdb, 0x6a, 0x8a, 0x1a, 0xcb, 0x8e, 0xa5,
1725     0xee, 0xfb, 0x28, 0xbf, 0x96, 0xa4, 0x2b, 0xd2,
1726     0x85, 0x2b, 0x20, 0xc3, 0xaf, 0x9a, 0x32, 0x04,
1727     0xa0, 0x49, 0x24, 0x47, 0xd0, 0x09, 0xf7, 0xcf,
1728     0x73, 0xb6, 0xf6, 0x70, 0xda, 0x3b, 0xf8, 0x5a,
1729     0x28, 0x2e, 0x14, 0x6c, 0x52, 0xbd, 0x2a, 0x7c,
1730     0x8e, 0xc1, 0xa8, 0x0e, 0xb1, 0x1e, 0x6b, 0x8d,
1731     0x76, 0xea, 0x70, 0x81, 0xa0, 0x02, 0x63, 0x74,
1732     0xbc, 0x7e, 0xb9, 0xac, 0x0e, 0x7b, 0x1b, 0x75,
1733     0x82, 0xe2, 0x98, 0x4e, 0x24, 0x55, 0xd4, 0xbd,
1734     0x14, 0xde, 0x58, 0x56, 0x3a, 0x5d, 0x4e, 0x57,
1735     0x0d, 0x54, 0x74, 0xe8, 0x86, 0x8c, 0xcb, 0x07,
1736     0x9f, 0x0b, 0xfb, 0xc2, 0x08, 0x5c, 0xd7, 0x05,
1737     0x3b, 0xc8, 0xd2, 0x15, 0x68, 0x8f, 0x3d, 0x3c,
1738     0x4e, 0x85, 0xa9, 0x25, 0x6f, 0xf5, 0x2e, 0xca,
1739     0xca, 0xa8, 0x27, 0x89, 0x61, 0x4e, 0x1f, 0x57,
1740     0x2d, 0x99, 0x10, 0x3f, 0xbc, 0x9e, 0x96, 0x5e,
1741     0x2f, 0x0a, 0x25, 0xa7, 0x5c, 0xea, 0x65, 0x2a,
1742     0x22, 0x35, 0xa3, 0xf9, 0x13, 0x89, 0x05, 0x2e,
1743     0x19, 0x73, 0x1d, 0x70, 0x74, 0x98, 0x15, 0x4b,
1744     0xab, 0x56, 0x52, 0xe0, 0x01, 0x42, 0x95, 0x6a,
1745     0x46, 0x2c, 0x78, 0xff, 0x26, 0xbc, 0x48, 0x10,
1746     0x38, 0x25, 0xab, 0x32, 0x7c, 0x79, 0x7c, 0x5d,
1747     0x6f, 0x45, 0x54, 0x74, 0x2d, 0x93, 0x56, 0x52,
1748     0x11, 0x34, 0x1e, 0xe3, 0x4b, 0x6a, 0x17, 0x4f,
1749     0x37, 0x14, 0x75, 0xac, 0xa3, 0xa1, 0xca, 0xda,
1750     0x38, 0x06, 0xa9, 0x78, 0xb9, 0x5d, 0xd0, 0x59,
1751     0x1b, 0x5d, 0x1e, 0xc2, 0x0b, 0xfb, 0x39, 0x37,
1752     0x44, 0x85, 0xb6, 0x36, 0x06, 0x95, 0xbc, 0x15,
1753     0x35, 0xb9, 0xe6, 0x27, 0x42, 0xe3, 0xc8, 0xec,
1754     0x30, 0x37, 0x20, 0x26, 0x9a, 0x11, 0x61, 0xc0,
1755     0xdb, 0xb2, 0x5a, 0x26, 0x78, 0x27, 0xb9, 0x13,
1756     0xc9, 0x1a, 0xa7, 0x67, 0x93, 0xe8, 0xbe, 0xcb,
1757 };
1758
1759 #define rsa_sigverx931_1_n rsa_sigverx931_0_n
1760 #define rsa_sigverx931_1_e rsa_sigverx931_0_e
1761 static const unsigned char rsa_sigverx931_1_msg[] = {
1762     0x79, 0x02, 0xb9, 0xd2, 0x3e, 0x84, 0x02, 0xc8,
1763     0x2a, 0x94, 0x92, 0x14, 0x8d, 0xd5, 0xd3, 0x8d,
1764     0xb2, 0xf6, 0x00, 0x8b, 0x61, 0x2c, 0xd2, 0xf9,
1765     0xa8, 0xe0, 0x5d, 0xac, 0xdc, 0xa5, 0x34, 0xf3,
1766     0xda, 0x6c, 0xd4, 0x70, 0x92, 0xfb, 0x40, 0x26,
1767     0xc7, 0x9b, 0xe8, 0xd2, 0x10, 0x11, 0xcf, 0x7f,
1768     0x23, 0xd0, 0xed, 0x55, 0x52, 0x6d, 0xd3, 0xb2,
1769     0x56, 0x53, 0x8d, 0x7c, 0x4c, 0xb8, 0xcc, 0xb5,
1770     0xfd, 0xd0, 0x45, 0x4f, 0x62, 0x40, 0x54, 0x42,
1771     0x68, 0xd5, 0xe5, 0xdd, 0xf0, 0x76, 0x94, 0x59,
1772     0x1a, 0x57, 0x13, 0xb4, 0xc3, 0x70, 0xcc, 0xbd,
1773     0x4c, 0x2e, 0xc8, 0x6b, 0x9d, 0x68, 0xd0, 0x72,
1774     0x6a, 0x94, 0xd2, 0x18, 0xb5, 0x3b, 0x86, 0x45,
1775     0x95, 0xaa, 0x50, 0xda, 0x35, 0xeb, 0x69, 0x44,
1776     0x1f, 0xf3, 0x3a, 0x51, 0xbb, 0x1d, 0x08, 0x42,
1777     0x12, 0xd7, 0xd6, 0x21, 0xd8, 0x9b, 0x87, 0x55,
1778 };
1779
1780 static const unsigned char rsa_sigverx931_1_sig[] = {
1781     0x3b, 0xba, 0xb3, 0xb1, 0xb2, 0x6a, 0x29, 0xb5,
1782     0xf9, 0x94, 0xf1, 0x00, 0x5c, 0x16, 0x67, 0x67,
1783     0x73, 0xd3, 0xde, 0x7e, 0x07, 0xfa, 0xaa, 0x95,
1784     0xeb, 0x5a, 0x55, 0xdc, 0xb2, 0xa9, 0x70, 0x5a,
1785     0xee, 0x8f, 0x8d, 0x69, 0x85, 0x2b, 0x00, 0xe3,
1786     0xdc, 0xe2, 0x73, 0x9b, 0x68, 0xeb, 0x93, 0x69,
1787     0x08, 0x03, 0x17, 0xd6, 0x50, 0x21, 0x14, 0x23,
1788     0x8c, 0xe6, 0x54, 0x3a, 0xd9, 0xfc, 0x8b, 0x14,
1789     0x81, 0xb1, 0x8b, 0x9d, 0xd2, 0xbe, 0x58, 0x75,
1790     0x94, 0x74, 0x93, 0xc9, 0xbb, 0x4e, 0xf6, 0x1f,
1791     0x73, 0x7d, 0x1a, 0x5f, 0xbd, 0xbf, 0x59, 0x37,
1792     0x5b, 0x98, 0x54, 0xad, 0x3a, 0xef, 0xa0, 0xef,
1793     0xcb, 0xc3, 0xe8, 0x84, 0xd8, 0x3d, 0xf5, 0x60,
1794     0xb8, 0xc3, 0x8d, 0x1e, 0x78, 0xa0, 0x91, 0x94,
1795     0xb7, 0xd7, 0xb1, 0xd4, 0xe2, 0xee, 0x81, 0x93,
1796     0xfc, 0x41, 0xf0, 0x31, 0xbb, 0x03, 0x52, 0xde,
1797     0x80, 0x20, 0x3a, 0x68, 0xe6, 0xc5, 0x50, 0x1b,
1798     0x08, 0x3f, 0x40, 0xde, 0xb3, 0xe5, 0x81, 0x99,
1799     0x7f, 0xdb, 0xb6, 0x5d, 0x61, 0x27, 0xd4, 0xfb,
1800     0xcd, 0xc5, 0x7a, 0xea, 0xde, 0x7a, 0x66, 0xef,
1801     0x55, 0x3f, 0x85, 0xea, 0x84, 0xc5, 0x0a, 0xf6,
1802     0x3c, 0x40, 0x38, 0xf7, 0x6c, 0x66, 0xe5, 0xbe,
1803     0x61, 0x41, 0xd3, 0xb1, 0x08, 0xe1, 0xb4, 0xf9,
1804     0x6e, 0xf6, 0x0e, 0x4a, 0x72, 0x6c, 0x61, 0x63,
1805     0x3e, 0x41, 0x33, 0x94, 0xd6, 0x27, 0xa4, 0xd9,
1806     0x3a, 0x20, 0x2b, 0x39, 0xea, 0xe5, 0x82, 0x48,
1807     0xd6, 0x5b, 0x58, 0x85, 0x44, 0xb0, 0xd2, 0xfd,
1808     0xfb, 0x3e, 0xeb, 0x78, 0xac, 0xbc, 0xba, 0x16,
1809     0x92, 0x0e, 0x20, 0xc1, 0xb2, 0xd1, 0x92, 0xa8,
1810     0x00, 0x88, 0xc0, 0x41, 0x46, 0x38, 0xb6, 0x54,
1811     0x70, 0x0c, 0x00, 0x62, 0x97, 0x6a, 0x8e, 0x66,
1812     0x5a, 0xa1, 0x6c, 0xf7, 0x6d, 0xc2, 0x27, 0x56,
1813     0x60, 0x5b, 0x0c, 0x52, 0xac, 0x5c, 0xae, 0x99,
1814     0x55, 0x11, 0x62, 0x52, 0x09, 0x48, 0x53, 0x90,
1815     0x3c, 0x0b, 0xd4, 0xdc, 0x7b, 0xe3, 0x4c, 0xe3,
1816     0xa8, 0x6d, 0xc5, 0xdf, 0xc1, 0x5c, 0x59, 0x25,
1817     0x99, 0x30, 0xde, 0x57, 0x6a, 0x84, 0x25, 0x34,
1818     0x3e, 0x64, 0x11, 0xdb, 0x7a, 0x82, 0x8e, 0x70,
1819     0xd2, 0x5c, 0x0e, 0x81, 0xa0, 0x24, 0x53, 0x75,
1820     0x98, 0xd6, 0x10, 0x01, 0x6a, 0x14, 0xed, 0xc3,
1821     0x6f, 0xc4, 0x18, 0xb8, 0xd2, 0x9f, 0x59, 0x53,
1822     0x81, 0x3a, 0x86, 0x31, 0xfc, 0x9e, 0xbf, 0x6c,
1823     0x52, 0x93, 0x86, 0x9c, 0xaa, 0x6c, 0x6f, 0x07,
1824     0x8a, 0x40, 0x33, 0x64, 0xb2, 0x70, 0x48, 0x85,
1825     0x05, 0x59, 0x65, 0x2d, 0x6b, 0x9a, 0xad, 0xab,
1826     0x20, 0x7e, 0x02, 0x6d, 0xde, 0xcf, 0x22, 0x0b,
1827     0xea, 0x6e, 0xbd, 0x1c, 0x39, 0x3a, 0xfd, 0xa4,
1828     0xde, 0x54, 0xae, 0xde, 0x5e, 0xf7, 0xb0, 0x6d,
1829 };
1830
1831 static const struct rsa_sigver_st rsa_sigver_data[] = {
1832     {
1833         "pkcs1", /* pkcs1v1.5 */
1834         2048,
1835         "SHA224",
1836         ITM(rsa_sigver15_0_msg),
1837         ITM(rsa_sigver15_0_n),
1838         ITM(rsa_sigver15_0_e),
1839         ITM(rsa_sigver15_0_sig),
1840         NO_PSS_SALT_LEN,
1841         PASS
1842     },
1843     {
1844         "pkcs1", /* pkcs1v1.5 */
1845         2048,
1846         "SHA224",
1847         ITM(rsa_sigver15_1_msg),
1848         ITM(rsa_sigver15_1_n),
1849         ITM(rsa_sigver15_1_e),
1850         ITM(rsa_sigver15_1_sig),
1851         NO_PSS_SALT_LEN,
1852         FAIL
1853     },
1854     {
1855         "x931",
1856         3072,
1857         "SHA1",
1858         ITM(rsa_sigverx931_0_msg),
1859         ITM(rsa_sigverx931_0_n),
1860         ITM(rsa_sigverx931_0_e),
1861         ITM(rsa_sigverx931_0_sig),
1862         NO_PSS_SALT_LEN,
1863         PASS
1864     },
1865     {
1866         "x931",
1867         3072,
1868         "SHA256",
1869         ITM(rsa_sigverx931_1_msg),
1870         ITM(rsa_sigverx931_1_n),
1871         ITM(rsa_sigverx931_1_e),
1872         ITM(rsa_sigverx931_1_sig),
1873         NO_PSS_SALT_LEN,
1874         FAIL
1875     },
1876     {
1877         "pss",
1878         4096,
1879         "SHA384",
1880         ITM(rsa_sigverpss_0_msg),
1881         ITM(rsa_sigverpss_0_n),
1882         ITM(rsa_sigverpss_0_e),
1883         ITM(rsa_sigverpss_0_sig),
1884         62,
1885         PASS
1886     },
1887     {
1888         "pss",
1889         4096,
1890         "SHA384",
1891         ITM(rsa_sigverpss_1_msg),
1892         ITM(rsa_sigverpss_1_n),
1893         ITM(rsa_sigverpss_1_e),
1894         ITM(rsa_sigverpss_1_sig),
1895         62,
1896         FAIL
1897     },
1898 };
1899
1900 struct rsa_decrypt_prim_st {
1901     const unsigned char *ct;
1902     size_t ct_len;
1903 };
1904
1905 static const unsigned char rsa_decrypt_prim_0_ct[] = {
1906     0x09, 0x7e, 0x82, 0xfe, 0xc7, 0x24, 0x65, 0xe0,
1907     0x49, 0x2e, 0x78, 0xed, 0xf4, 0x7d, 0x05, 0x0d,
1908     0xff, 0x2f, 0x1a, 0x95, 0xeb, 0x74, 0x60, 0x3d,
1909     0xd3, 0x3a, 0xec, 0x8a, 0x2c, 0x8b, 0x00, 0xa5,
1910     0x75, 0x2c, 0x87, 0x7b, 0xa5, 0x76, 0x08, 0xee,
1911     0x99, 0xab, 0x5b, 0x21, 0x69, 0x90, 0x72, 0x0d,
1912     0x55, 0xe4, 0x7d, 0x1d, 0xcb, 0xaa, 0xeb, 0x32,
1913     0x24, 0xf7, 0xce, 0x95, 0xb5, 0x3e, 0x0e, 0x57,
1914     0xd4, 0x2a, 0x5b, 0xfc, 0x1f, 0xf7, 0x28, 0x3f,
1915     0xd6, 0x31, 0x36, 0x92, 0xc5, 0x13, 0xe3, 0x4e,
1916     0x28, 0x53, 0xbe, 0x60, 0x5f, 0x82, 0x12, 0x7a,
1917     0x50, 0xe6, 0x91, 0x40, 0xcf, 0x52, 0x3a, 0xd2,
1918     0x15, 0x20, 0xd5, 0x82, 0x6d, 0x5e, 0xab, 0x47,
1919     0xd1, 0x2d, 0x00, 0xf5, 0xea, 0xf4, 0x68, 0x88,
1920     0x38, 0x43, 0xd6, 0xcb, 0xaa, 0xd0, 0xd1, 0x75,
1921     0xe6, 0x87, 0x5f, 0xd1, 0x89, 0xd3, 0x57, 0x1b,
1922     0xf2, 0x45, 0x8a, 0x92, 0xe6, 0x95, 0xb8, 0x99,
1923     0x80, 0xe9, 0xe6, 0x5f, 0x2b, 0x48, 0x2b, 0xb3,
1924     0x2b, 0x80, 0x56, 0xf8, 0xd4, 0x96, 0x44, 0xb5,
1925     0xae, 0x6d, 0x4a, 0x3d, 0x7b, 0x0a, 0x54, 0x3c,
1926     0xa8, 0x21, 0x8b, 0x64, 0x96, 0xea, 0xc2, 0xef,
1927     0x60, 0xbb, 0xd3, 0x4e, 0xaf, 0x6c, 0x5b, 0x06,
1928     0x57, 0xe8, 0x5e, 0x2c, 0x87, 0x46, 0x12, 0xeb,
1929     0xfb, 0xe2, 0xdb, 0x7b, 0xac, 0x09, 0x8b, 0xa0,
1930     0x98, 0x6e, 0xc6, 0x3f, 0x98, 0xdd, 0x7d, 0xc6,
1931     0xc6, 0x32, 0xc2, 0xcc, 0x73, 0xe2, 0x15, 0xde,
1932     0xb2, 0x0f, 0x41, 0x08, 0x1e, 0x2e, 0xba, 0x93,
1933     0x65, 0x94, 0xab, 0x84, 0x0e, 0x1e, 0xda, 0x1b,
1934     0xf0, 0xe0, 0x13, 0x13, 0xe2, 0xa5, 0x31, 0xb8,
1935     0x80, 0xc1, 0x38, 0xc5, 0x08, 0x09, 0x0a, 0xe2,
1936     0x78, 0x7d, 0xd6, 0xcf, 0x8d, 0x6b, 0xe8, 0x1b,
1937     0x47, 0x83, 0x80, 0x71, 0xe2, 0xd3, 0x01, 0xbc,
1938 };
1939
1940 static const unsigned char rsa_decrypt_prim_1_ct[] = {
1941     0xff, 0xd5, 0xaa, 0x3f, 0x0c, 0x7c, 0x78, 0x7e,
1942     0xe3, 0x8a, 0x4f, 0xcc, 0x20, 0x3f, 0x51, 0xe5,
1943     0xf4, 0x9c, 0xc5, 0x62, 0xcc, 0xa3, 0xcb, 0xce,
1944     0x39, 0x80, 0x35, 0xef, 0xd5, 0x95, 0x56, 0xcb,
1945     0xb2, 0x62, 0x8c, 0xe6, 0x8b, 0x20, 0xe4, 0x36,
1946     0xae, 0xe8, 0x07, 0x07, 0xc2, 0x23, 0x6a, 0xfc,
1947     0x83, 0xf0, 0x04, 0x88, 0x19, 0xf8, 0x9f, 0x5c,
1948     0x59, 0x4d, 0xb3, 0x81, 0x86, 0x9d, 0x3b, 0x61,
1949     0x73, 0x31, 0x03, 0xec, 0x9c, 0xdd, 0x75, 0xb7,
1950     0x37, 0x0a, 0x8d, 0x94, 0xd9, 0x9f, 0x6d, 0x85,
1951     0xb0, 0x5c, 0x08, 0xcc, 0xb4, 0x27, 0x8c, 0xf0,
1952     0xe6, 0xd6, 0xe0, 0xc1, 0x57, 0x59, 0xaa, 0xc7,
1953     0x8f, 0x5c, 0xa7, 0x4b, 0x3c, 0x81, 0x4a, 0xa3,
1954     0x9b, 0x18, 0x88, 0x04, 0x98, 0x54, 0x3d, 0x87,
1955     0x2a, 0x89, 0xb6, 0x41, 0xe8, 0xbd, 0x37, 0x17,
1956     0x03, 0xa8, 0xf1, 0x37, 0xa5, 0x5e, 0x02, 0x13,
1957     0x67, 0x08, 0xec, 0x9e, 0x97, 0xf5, 0xcc, 0x5f,
1958     0x75, 0x37, 0xbe, 0xce, 0xe8, 0x5e, 0xa1, 0xca,
1959     0x46, 0xa3, 0xda, 0xe4, 0x1f, 0xf8, 0xc4, 0xa3,
1960     0x26, 0xbb, 0xed, 0xa2, 0x71, 0xb2, 0x44, 0x00,
1961     0xd3, 0xe5, 0x06, 0xf1, 0xb4, 0xc1, 0xe0, 0x29,
1962     0xca, 0xeb, 0xe0, 0xdf, 0xd1, 0x69, 0x5f, 0xa9,
1963     0x03, 0x7c, 0x49, 0x93, 0xfb, 0xc2, 0xdf, 0x39,
1964     0xbc, 0x2a, 0x6b, 0x59, 0x7d, 0xf4, 0x84, 0x93,
1965     0xa2, 0x8b, 0x7a, 0x5a, 0x7a, 0xa9, 0xff, 0x41,
1966     0x4c, 0x52, 0x5c, 0xf9, 0x59, 0xd2, 0x91, 0xc3,
1967     0xa9, 0xe8, 0x23, 0x36, 0x5f, 0x2f, 0xb9, 0xbe,
1968     0x22, 0xc4, 0xfd, 0x84, 0x5f, 0x81, 0x3d, 0x94,
1969     0xf8, 0xa4, 0x9b, 0xae, 0xc0, 0xb5, 0x78, 0x4f,
1970     0x91, 0x76, 0x02, 0x5d, 0x60, 0x71, 0x8b, 0xeb,
1971     0x08, 0x42, 0xe3, 0xb3, 0x63, 0x05, 0x60, 0x59,
1972     0x98, 0xc1, 0x6d, 0x66, 0xb3, 0xc5, 0x8a, 0xbc,
1973 };
1974
1975 static const struct rsa_decrypt_prim_st rsa_decrypt_prim_data[] = {
1976     {
1977         ITM(rsa_decrypt_prim_0_ct),
1978     },
1979     {
1980         ITM(rsa_decrypt_prim_1_ct),
1981     },
1982 };
1983
1984 #endif /* OPENSSL_NO_RSA */