Coverage Report

Created: 2026-07-23 06:28

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl35/fuzz/dtlsserver.c
Line
Count
Source
1
/*
2
 * Copyright 2016-2026 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the Apache License 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 * https://www.openssl.org/source/license.html
8
 * or in the file LICENSE in the source distribution.
9
 */
10
11
/* Shamelessly copied from BoringSSL and converted to C. */
12
13
/* Test first part of SSL server handshake. */
14
15
/* We need to use some deprecated APIs */
16
#define OPENSSL_SUPPRESS_DEPRECATED
17
18
#include <time.h>
19
#include <openssl/rand.h>
20
#include <openssl/ssl.h>
21
#include <openssl/rsa.h>
22
#include <openssl/dsa.h>
23
#include <openssl/ec.h>
24
#include <openssl/dh.h>
25
#include <openssl/err.h>
26
#include "fuzzer.h"
27
28
/*
29
-----BEGIN CERTIFICATE-----
30
MIIDozCCAougAwIBAgIUSKwQD1qRtS+lridawmaYK6cej2kwDQYJKoZIhvcNAQEL
31
BQAwYTELMAkGA1UEBhMCbm8xCzAJBgNVBAgMAm5vMQswCQYDVQQHDAJubzELMAkG
32
A1UECgwCbm8xCzAJBgNVBAsMAm5vMQswCQYDVQQDDAJubzERMA8GCSqGSIb3DQEJ
33
ARYCbm8wHhcNMjQwMjI4MTkzNzEwWhcNMjUwMjI3MTkzNzEwWjBhMQswCQYDVQQG
34
EwJubzELMAkGA1UECAwCbm8xCzAJBgNVBAcMAm5vMQswCQYDVQQKDAJubzELMAkG
35
A1UECwwCbm8xCzAJBgNVBAMMAm5vMREwDwYJKoZIhvcNAQkBFgJubzCCASIwDQYJ
36
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALWZB9Mtas0V9Sya+UhEabwzs3Eol+/M
37
hwUFWIFrr8tVyYvg8Xs/KnC2VaEpnEltBNLaOADZGUuXzz5Ebccb2i18ghvMDX5o
38
OwAAidL3tv6lh8/Vuj8tpLA53SDR5VTQcxitipsccjacHDftTqDA7+94STT8QSHt
39
Wu5FmXPKvJLmPuKQJMbOJSGDJLvdT/0dyM9aU3xKw64iv7S3laERWyW4/OemMQXs
40
i+kbanpVNJVmqTtS+q/FyYvvr1NpX0Oc/A5H2HYQ6f6P3nvJ22IOXoIcNjI1FmKb
41
X3NJHetHXtyZKXcfpizljsNvbffsL6twxjjCR3JdUqP1xECeuoLBMzkCAwEAAaNT
42
MFEwHQYDVR0OBBYEFKZ2b9IJ3YWCYyMkROjtjF7CxsfaMB8GA1UdIwQYMBaAFKZ2
43
b9IJ3YWCYyMkROjtjF7CxsfaMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
44
BQADggEBAGJoHDTsAiuRtACTGiGz/oyNZfH/OUJaijUMaLbHd/JG2L6gtpACYY2b
45
AoLkIcCl38nsLYMLZ32Bbc5jnP/Qy3d2HKsTJ5It4qxDgtbtpU8e5MhEeJoeMHOC
46
fizbcWc7W7m2SLfpeQJWMgu2Da0HYEDS/xzLn7pxQgZpOrMQ7Ihi1jwXfKFqIIal
47
g6SijRGXh7onEAxEmKLkpVQRq633BYPV6odxtXDhxyJKyGjSJsQoKv9oCF2kAdAi
48
CvvatqRWRwgIeln1Sw9Ee6cTYZCG2U+/Uf+Ls7fjN8trb/Shmxo8do/npBnz8j+1
49
a2vbz3gpOsl87U0c01JCl9SZXDSO09w=
50
-----END CERTIFICATE-----
51
 */
52
static const uint8_t RSACertificatePEM[] = {
53
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47,
54
    0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49,
55
    0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
56
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44,
57
    0x6f, 0x7a, 0x43, 0x43, 0x41, 0x6f, 0x75, 0x67,
58
    0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55,
59
    0x53, 0x4b, 0x77, 0x51, 0x44, 0x31, 0x71, 0x52,
60
    0x74, 0x53, 0x2b, 0x6c, 0x72, 0x69, 0x64, 0x61,
61
    0x77, 0x6d, 0x61, 0x59, 0x4b, 0x36, 0x63, 0x65,
62
    0x6a, 0x32, 0x6b, 0x77, 0x44, 0x51, 0x59, 0x4a,
63
    0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e,
64
    0x41, 0x51, 0x45, 0x4c, 0x0a, 0x42, 0x51, 0x41,
65
    0x77, 0x59, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b,
66
    0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d,
67
    0x43, 0x62, 0x6d, 0x38, 0x78, 0x43, 0x7a, 0x41,
68
    0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67,
69
    0x4d, 0x41, 0x6d, 0x35, 0x76, 0x4d, 0x51, 0x73,
70
    0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51,
71
    0x48, 0x44, 0x41, 0x4a, 0x75, 0x62, 0x7a, 0x45,
72
    0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31,
73
    0x55, 0x45, 0x43, 0x67, 0x77, 0x43, 0x62, 0x6d,
74
    0x38, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67,
75
    0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x41, 0x6d,
76
    0x35, 0x76, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51,
77
    0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x41,
78
    0x4a, 0x75, 0x62, 0x7a, 0x45, 0x52, 0x4d, 0x41,
79
    0x38, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49,
80
    0x62, 0x33, 0x44, 0x51, 0x45, 0x4a, 0x0a, 0x41,
81
    0x52, 0x59, 0x43, 0x62, 0x6d, 0x38, 0x77, 0x48,
82
    0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x51, 0x77, 0x4d,
83
    0x6a, 0x49, 0x34, 0x4d, 0x54, 0x6b, 0x7a, 0x4e,
84
    0x7a, 0x45, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d,
85
    0x6a, 0x55, 0x77, 0x4d, 0x6a, 0x49, 0x33, 0x4d,
86
    0x54, 0x6b, 0x7a, 0x4e, 0x7a, 0x45, 0x77, 0x57,
87
    0x6a, 0x42, 0x68, 0x4d, 0x51, 0x73, 0x77, 0x43,
88
    0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a,
89
    0x45, 0x77, 0x4a, 0x75, 0x62, 0x7a, 0x45, 0x4c,
90
    0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45,
91
    0x43, 0x41, 0x77, 0x43, 0x62, 0x6d, 0x38, 0x78,
92
    0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56,
93
    0x42, 0x41, 0x63, 0x4d, 0x41, 0x6d, 0x35, 0x76,
94
    0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44,
95
    0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x4a, 0x75,
96
    0x62, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47,
97
    0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77,
98
    0x43, 0x62, 0x6d, 0x38, 0x78, 0x43, 0x7a, 0x41,
99
    0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d,
100
    0x4d, 0x41, 0x6d, 0x35, 0x76, 0x4d, 0x52, 0x45,
101
    0x77, 0x44, 0x77, 0x59, 0x4a, 0x4b, 0x6f, 0x5a,
102
    0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x6b,
103
    0x42, 0x46, 0x67, 0x4a, 0x75, 0x62, 0x7a, 0x43,
104
    0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59,
105
    0x4a, 0x0a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76,
106
    0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51,
107
    0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44,
108
    0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67,
109
    0x45, 0x42, 0x41, 0x4c, 0x57, 0x5a, 0x42, 0x39,
110
    0x4d, 0x74, 0x61, 0x73, 0x30, 0x56, 0x39, 0x53,
111
    0x79, 0x61, 0x2b, 0x55, 0x68, 0x45, 0x61, 0x62,
112
    0x77, 0x7a, 0x73, 0x33, 0x45, 0x6f, 0x6c, 0x2b,
113
    0x2f, 0x4d, 0x0a, 0x68, 0x77, 0x55, 0x46, 0x57,
114
    0x49, 0x46, 0x72, 0x72, 0x38, 0x74, 0x56, 0x79,
115
    0x59, 0x76, 0x67, 0x38, 0x58, 0x73, 0x2f, 0x4b,
116
    0x6e, 0x43, 0x32, 0x56, 0x61, 0x45, 0x70, 0x6e,
117
    0x45, 0x6c, 0x74, 0x42, 0x4e, 0x4c, 0x61, 0x4f,
118
    0x41, 0x44, 0x5a, 0x47, 0x55, 0x75, 0x58, 0x7a,
119
    0x7a, 0x35, 0x45, 0x62, 0x63, 0x63, 0x62, 0x32,
120
    0x69, 0x31, 0x38, 0x67, 0x68, 0x76, 0x4d, 0x44,
121
    0x58, 0x35, 0x6f, 0x0a, 0x4f, 0x77, 0x41, 0x41,
122
    0x69, 0x64, 0x4c, 0x33, 0x74, 0x76, 0x36, 0x6c,
123
    0x68, 0x38, 0x2f, 0x56, 0x75, 0x6a, 0x38, 0x74,
124
    0x70, 0x4c, 0x41, 0x35, 0x33, 0x53, 0x44, 0x52,
125
    0x35, 0x56, 0x54, 0x51, 0x63, 0x78, 0x69, 0x74,
126
    0x69, 0x70, 0x73, 0x63, 0x63, 0x6a, 0x61, 0x63,
127
    0x48, 0x44, 0x66, 0x74, 0x54, 0x71, 0x44, 0x41,
128
    0x37, 0x2b, 0x39, 0x34, 0x53, 0x54, 0x54, 0x38,
129
    0x51, 0x53, 0x48, 0x74, 0x0a, 0x57, 0x75, 0x35,
130
    0x46, 0x6d, 0x58, 0x50, 0x4b, 0x76, 0x4a, 0x4c,
131
    0x6d, 0x50, 0x75, 0x4b, 0x51, 0x4a, 0x4d, 0x62,
132
    0x4f, 0x4a, 0x53, 0x47, 0x44, 0x4a, 0x4c, 0x76,
133
    0x64, 0x54, 0x2f, 0x30, 0x64, 0x79, 0x4d, 0x39,
134
    0x61, 0x55, 0x33, 0x78, 0x4b, 0x77, 0x36, 0x34,
135
    0x69, 0x76, 0x37, 0x53, 0x33, 0x6c, 0x61, 0x45,
136
    0x52, 0x57, 0x79, 0x57, 0x34, 0x2f, 0x4f, 0x65,
137
    0x6d, 0x4d, 0x51, 0x58, 0x73, 0x0a, 0x69, 0x2b,
138
    0x6b, 0x62, 0x61, 0x6e, 0x70, 0x56, 0x4e, 0x4a,
139
    0x56, 0x6d, 0x71, 0x54, 0x74, 0x53, 0x2b, 0x71,
140
    0x2f, 0x46, 0x79, 0x59, 0x76, 0x76, 0x72, 0x31,
141
    0x4e, 0x70, 0x58, 0x30, 0x4f, 0x63, 0x2f, 0x41,
142
    0x35, 0x48, 0x32, 0x48, 0x59, 0x51, 0x36, 0x66,
143
    0x36, 0x50, 0x33, 0x6e, 0x76, 0x4a, 0x32, 0x32,
144
    0x49, 0x4f, 0x58, 0x6f, 0x49, 0x63, 0x4e, 0x6a,
145
    0x49, 0x31, 0x46, 0x6d, 0x4b, 0x62, 0x0a, 0x58,
146
    0x33, 0x4e, 0x4a, 0x48, 0x65, 0x74, 0x48, 0x58,
147
    0x74, 0x79, 0x5a, 0x4b, 0x58, 0x63, 0x66, 0x70,
148
    0x69, 0x7a, 0x6c, 0x6a, 0x73, 0x4e, 0x76, 0x62,
149
    0x66, 0x66, 0x73, 0x4c, 0x36, 0x74, 0x77, 0x78,
150
    0x6a, 0x6a, 0x43, 0x52, 0x33, 0x4a, 0x64, 0x55,
151
    0x71, 0x50, 0x31, 0x78, 0x45, 0x43, 0x65, 0x75,
152
    0x6f, 0x4c, 0x42, 0x4d, 0x7a, 0x6b, 0x43, 0x41,
153
    0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x54, 0x0a,
154
    0x4d, 0x46, 0x45, 0x77, 0x48, 0x51, 0x59, 0x44,
155
    0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45,
156
    0x46, 0x4b, 0x5a, 0x32, 0x62, 0x39, 0x49, 0x4a,
157
    0x33, 0x59, 0x57, 0x43, 0x59, 0x79, 0x4d, 0x6b,
158
    0x52, 0x4f, 0x6a, 0x74, 0x6a, 0x46, 0x37, 0x43,
159
    0x78, 0x73, 0x66, 0x61, 0x4d, 0x42, 0x38, 0x47,
160
    0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59,
161
    0x4d, 0x42, 0x61, 0x41, 0x46, 0x4b, 0x5a, 0x32,
162
    0x0a, 0x62, 0x39, 0x49, 0x4a, 0x33, 0x59, 0x57,
163
    0x43, 0x59, 0x79, 0x4d, 0x6b, 0x52, 0x4f, 0x6a,
164
    0x74, 0x6a, 0x46, 0x37, 0x43, 0x78, 0x73, 0x66,
165
    0x61, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55,
166
    0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51,
167
    0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38,
168
    0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a,
169
    0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45,
170
    0x4c, 0x0a, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67,
171
    0x45, 0x42, 0x41, 0x47, 0x4a, 0x6f, 0x48, 0x44,
172
    0x54, 0x73, 0x41, 0x69, 0x75, 0x52, 0x74, 0x41,
173
    0x43, 0x54, 0x47, 0x69, 0x47, 0x7a, 0x2f, 0x6f,
174
    0x79, 0x4e, 0x5a, 0x66, 0x48, 0x2f, 0x4f, 0x55,
175
    0x4a, 0x61, 0x69, 0x6a, 0x55, 0x4d, 0x61, 0x4c,
176
    0x62, 0x48, 0x64, 0x2f, 0x4a, 0x47, 0x32, 0x4c,
177
    0x36, 0x67, 0x74, 0x70, 0x41, 0x43, 0x59, 0x59,
178
    0x32, 0x62, 0x0a, 0x41, 0x6f, 0x4c, 0x6b, 0x49,
179
    0x63, 0x43, 0x6c, 0x33, 0x38, 0x6e, 0x73, 0x4c,
180
    0x59, 0x4d, 0x4c, 0x5a, 0x33, 0x32, 0x42, 0x62,
181
    0x63, 0x35, 0x6a, 0x6e, 0x50, 0x2f, 0x51, 0x79,
182
    0x33, 0x64, 0x32, 0x48, 0x4b, 0x73, 0x54, 0x4a,
183
    0x35, 0x49, 0x74, 0x34, 0x71, 0x78, 0x44, 0x67,
184
    0x74, 0x62, 0x74, 0x70, 0x55, 0x38, 0x65, 0x35,
185
    0x4d, 0x68, 0x45, 0x65, 0x4a, 0x6f, 0x65, 0x4d,
186
    0x48, 0x4f, 0x43, 0x0a, 0x66, 0x69, 0x7a, 0x62,
187
    0x63, 0x57, 0x63, 0x37, 0x57, 0x37, 0x6d, 0x32,
188
    0x53, 0x4c, 0x66, 0x70, 0x65, 0x51, 0x4a, 0x57,
189
    0x4d, 0x67, 0x75, 0x32, 0x44, 0x61, 0x30, 0x48,
190
    0x59, 0x45, 0x44, 0x53, 0x2f, 0x78, 0x7a, 0x4c,
191
    0x6e, 0x37, 0x70, 0x78, 0x51, 0x67, 0x5a, 0x70,
192
    0x4f, 0x72, 0x4d, 0x51, 0x37, 0x49, 0x68, 0x69,
193
    0x31, 0x6a, 0x77, 0x58, 0x66, 0x4b, 0x46, 0x71,
194
    0x49, 0x49, 0x61, 0x6c, 0x0a, 0x67, 0x36, 0x53,
195
    0x69, 0x6a, 0x52, 0x47, 0x58, 0x68, 0x37, 0x6f,
196
    0x6e, 0x45, 0x41, 0x78, 0x45, 0x6d, 0x4b, 0x4c,
197
    0x6b, 0x70, 0x56, 0x51, 0x52, 0x71, 0x36, 0x33,
198
    0x33, 0x42, 0x59, 0x50, 0x56, 0x36, 0x6f, 0x64,
199
    0x78, 0x74, 0x58, 0x44, 0x68, 0x78, 0x79, 0x4a,
200
    0x4b, 0x79, 0x47, 0x6a, 0x53, 0x4a, 0x73, 0x51,
201
    0x6f, 0x4b, 0x76, 0x39, 0x6f, 0x43, 0x46, 0x32,
202
    0x6b, 0x41, 0x64, 0x41, 0x69, 0x0a, 0x43, 0x76,
203
    0x76, 0x61, 0x74, 0x71, 0x52, 0x57, 0x52, 0x77,
204
    0x67, 0x49, 0x65, 0x6c, 0x6e, 0x31, 0x53, 0x77,
205
    0x39, 0x45, 0x65, 0x36, 0x63, 0x54, 0x59, 0x5a,
206
    0x43, 0x47, 0x32, 0x55, 0x2b, 0x2f, 0x55, 0x66,
207
    0x2b, 0x4c, 0x73, 0x37, 0x66, 0x6a, 0x4e, 0x38,
208
    0x74, 0x72, 0x62, 0x2f, 0x53, 0x68, 0x6d, 0x78,
209
    0x6f, 0x38, 0x64, 0x6f, 0x2f, 0x6e, 0x70, 0x42,
210
    0x6e, 0x7a, 0x38, 0x6a, 0x2b, 0x31, 0x0a, 0x61,
211
    0x32, 0x76, 0x62, 0x7a, 0x33, 0x67, 0x70, 0x4f,
212
    0x73, 0x6c, 0x38, 0x37, 0x55, 0x30, 0x63, 0x30,
213
    0x31, 0x4a, 0x43, 0x6c, 0x39, 0x53, 0x5a, 0x58,
214
    0x44, 0x53, 0x4f, 0x30, 0x39, 0x77, 0x3d, 0x0a,
215
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44,
216
    0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49,
217
    0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d,
218
    0x2d, 0x0a
219
};
220
221
#ifndef OPENSSL_NO_DEPRECATED_3_0
222
/*
223
-----BEGIN PRIVATE KEY-----
224
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1mQfTLWrNFfUs
225
mvlIRGm8M7NxKJfvzIcFBViBa6/LVcmL4PF7PypwtlWhKZxJbQTS2jgA2RlLl88+
226
RG3HG9otfIIbzA1+aDsAAInS97b+pYfP1bo/LaSwOd0g0eVU0HMYrYqbHHI2nBw3
227
7U6gwO/veEk0/EEh7VruRZlzyryS5j7ikCTGziUhgyS73U/9HcjPWlN8SsOuIr+0
228
t5WhEVsluPznpjEF7IvpG2p6VTSVZqk7UvqvxcmL769TaV9DnPwOR9h2EOn+j957
229
ydtiDl6CHDYyNRZim19zSR3rR17cmSl3H6Ys5Y7Db2337C+rcMY4wkdyXVKj9cRA
230
nrqCwTM5AgMBAAECggEAFOD+XFJZeDDxGmrLBHsRKRlMpVMEfQan83TU4zRtZtR7
231
MsDvIrt1drYQDFKLbInDRzbdv4M2fFF8+2zErmLOZ/JrxyRj3MfBGNP3BLGEcay4
232
e7XYDxGBYN2WRgK7+k9pHEo/qGvR2eOC/w8ivirQq1jKGfRyzKLMlJ6d8Qk7OyxZ
233
n0u3v2EJ9CWoNDgUH4exCil/Oe4h5WA59xT5NAkx4RUojsJiExWZpzT/VX1d21mN
234
WMb5EO8eyi6FyZlAcb9MID0kMF6Q3hUv+jTw+X9yig+3B9bg2Z0I+IKHl9InShkC
235
ndYn4ad0zd/ggMVkloomh4uaSqZxUi3ywtszZkRbzQKBgQD7Pvx1ErKm5lZDAS2b
236
b4rltzqJRUEKyEqjqzPzgasOa0jWEq/fxuGc/bixg/EBaQ8yyTGYdIYyr7DKYYjC
237
0AGVnBCh0+TFUDB1kfwkbef2b8yufQ/vJwcOJ+5kBXQZx8+L8U9iWKANXxkEeCX2
238
iWPZPz52pTTYlf90PLzEW6QyDwKBgQC5CKyfUwx3Ba2iXtfIreyPqDobbybyTEYk
239
ayA2oElSdejgVkWwJ+q77gwrnF5Pe9zbpUBoc7VJjrRhUojI7LOySyto3WYYoczX
240
LprzPnj2yEVeV2lrTS6lKNpdraO8QZcSD7mUUmiNRZnoPK16Mm9qjkk29HnY7Msq
241
pkiOg4huNwKBgQCkh2HBtOXjH/GbXVklcc0Ok4e0vvJSAknGlmWl7+M5xQ3kikY8
242
D7xNF2XscY/QsaDvTAu7X4tGBAGM9oQdtyNietn1b5JfmByz0U7B+Gsv2ZS7K1DU
243
9sTLA2E8hMm73DpQ1Ux8BbeCKiVy5M9PfDcz3BOmlJdfwhKQZvniyHRlBwKBgQCH
244
/sAhOcDnmdzMgjjG3k4IJ/TNRRyy6SyEh9fdTmGVoePPPplpp2z3Qzbetsb6VGc3
245
aHW2T5Tmw2QAQ9EVHCPW3zjAkjj/0avkW/S24yu09e1GMajhnJC0Axq7z2uQagTG
246
2ZfkU81UR9uevTojnf4Vqw5UvcrwjNmmNyEM3c/gcQKBgHa2dT5svzM1jReiO3Vt
247
dAUDztGKUE3clPV35L2xmJeJDXPOqCL3qoZ9A6hHmDw6gmg82gQDQeJbL/+jKkon
248
e6atH/Dfr+M4nPft9Lt4fOAWOQ3tDsDuCkOMjSTn8cLMZLGcwT2H1H2vBocM+UTd
249
hljAVnB9v6NMfcRERTx10SUc
250
-----END PRIVATE KEY-----
251
 */
252
static const uint8_t RSAPrivateKeyPEM[] = {
253
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47,
254
    0x49, 0x4e, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41,
255
    0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d,
256
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45,
257
    0x76, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e,
258
    0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47,
259
    0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46,
260
    0x41, 0x41, 0x53, 0x43, 0x42, 0x4b, 0x67, 0x77,
261
    0x67, 0x67, 0x53, 0x6b, 0x41, 0x67, 0x45, 0x41,
262
    0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x31,
263
    0x6d, 0x51, 0x66, 0x54, 0x4c, 0x57, 0x72, 0x4e,
264
    0x46, 0x66, 0x55, 0x73, 0x0a, 0x6d, 0x76, 0x6c,
265
    0x49, 0x52, 0x47, 0x6d, 0x38, 0x4d, 0x37, 0x4e,
266
    0x78, 0x4b, 0x4a, 0x66, 0x76, 0x7a, 0x49, 0x63,
267
    0x46, 0x42, 0x56, 0x69, 0x42, 0x61, 0x36, 0x2f,
268
    0x4c, 0x56, 0x63, 0x6d, 0x4c, 0x34, 0x50, 0x46,
269
    0x37, 0x50, 0x79, 0x70, 0x77, 0x74, 0x6c, 0x57,
270
    0x68, 0x4b, 0x5a, 0x78, 0x4a, 0x62, 0x51, 0x54,
271
    0x53, 0x32, 0x6a, 0x67, 0x41, 0x32, 0x52, 0x6c,
272
    0x4c, 0x6c, 0x38, 0x38, 0x2b, 0x0a, 0x52, 0x47,
273
    0x33, 0x48, 0x47, 0x39, 0x6f, 0x74, 0x66, 0x49,
274
    0x49, 0x62, 0x7a, 0x41, 0x31, 0x2b, 0x61, 0x44,
275
    0x73, 0x41, 0x41, 0x49, 0x6e, 0x53, 0x39, 0x37,
276
    0x62, 0x2b, 0x70, 0x59, 0x66, 0x50, 0x31, 0x62,
277
    0x6f, 0x2f, 0x4c, 0x61, 0x53, 0x77, 0x4f, 0x64,
278
    0x30, 0x67, 0x30, 0x65, 0x56, 0x55, 0x30, 0x48,
279
    0x4d, 0x59, 0x72, 0x59, 0x71, 0x62, 0x48, 0x48,
280
    0x49, 0x32, 0x6e, 0x42, 0x77, 0x33, 0x0a, 0x37,
281
    0x55, 0x36, 0x67, 0x77, 0x4f, 0x2f, 0x76, 0x65,
282
    0x45, 0x6b, 0x30, 0x2f, 0x45, 0x45, 0x68, 0x37,
283
    0x56, 0x72, 0x75, 0x52, 0x5a, 0x6c, 0x7a, 0x79,
284
    0x72, 0x79, 0x53, 0x35, 0x6a, 0x37, 0x69, 0x6b,
285
    0x43, 0x54, 0x47, 0x7a, 0x69, 0x55, 0x68, 0x67,
286
    0x79, 0x53, 0x37, 0x33, 0x55, 0x2f, 0x39, 0x48,
287
    0x63, 0x6a, 0x50, 0x57, 0x6c, 0x4e, 0x38, 0x53,
288
    0x73, 0x4f, 0x75, 0x49, 0x72, 0x2b, 0x30, 0x0a,
289
    0x74, 0x35, 0x57, 0x68, 0x45, 0x56, 0x73, 0x6c,
290
    0x75, 0x50, 0x7a, 0x6e, 0x70, 0x6a, 0x45, 0x46,
291
    0x37, 0x49, 0x76, 0x70, 0x47, 0x32, 0x70, 0x36,
292
    0x56, 0x54, 0x53, 0x56, 0x5a, 0x71, 0x6b, 0x37,
293
    0x55, 0x76, 0x71, 0x76, 0x78, 0x63, 0x6d, 0x4c,
294
    0x37, 0x36, 0x39, 0x54, 0x61, 0x56, 0x39, 0x44,
295
    0x6e, 0x50, 0x77, 0x4f, 0x52, 0x39, 0x68, 0x32,
296
    0x45, 0x4f, 0x6e, 0x2b, 0x6a, 0x39, 0x35, 0x37,
297
    0x0a, 0x79, 0x64, 0x74, 0x69, 0x44, 0x6c, 0x36,
298
    0x43, 0x48, 0x44, 0x59, 0x79, 0x4e, 0x52, 0x5a,
299
    0x69, 0x6d, 0x31, 0x39, 0x7a, 0x53, 0x52, 0x33,
300
    0x72, 0x52, 0x31, 0x37, 0x63, 0x6d, 0x53, 0x6c,
301
    0x33, 0x48, 0x36, 0x59, 0x73, 0x35, 0x59, 0x37,
302
    0x44, 0x62, 0x32, 0x33, 0x33, 0x37, 0x43, 0x2b,
303
    0x72, 0x63, 0x4d, 0x59, 0x34, 0x77, 0x6b, 0x64,
304
    0x79, 0x58, 0x56, 0x4b, 0x6a, 0x39, 0x63, 0x52,
305
    0x41, 0x0a, 0x6e, 0x72, 0x71, 0x43, 0x77, 0x54,
306
    0x4d, 0x35, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41,
307
    0x45, 0x43, 0x67, 0x67, 0x45, 0x41, 0x46, 0x4f,
308
    0x44, 0x2b, 0x58, 0x46, 0x4a, 0x5a, 0x65, 0x44,
309
    0x44, 0x78, 0x47, 0x6d, 0x72, 0x4c, 0x42, 0x48,
310
    0x73, 0x52, 0x4b, 0x52, 0x6c, 0x4d, 0x70, 0x56,
311
    0x4d, 0x45, 0x66, 0x51, 0x61, 0x6e, 0x38, 0x33,
312
    0x54, 0x55, 0x34, 0x7a, 0x52, 0x74, 0x5a, 0x74,
313
    0x52, 0x37, 0x0a, 0x4d, 0x73, 0x44, 0x76, 0x49,
314
    0x72, 0x74, 0x31, 0x64, 0x72, 0x59, 0x51, 0x44,
315
    0x46, 0x4b, 0x4c, 0x62, 0x49, 0x6e, 0x44, 0x52,
316
    0x7a, 0x62, 0x64, 0x76, 0x34, 0x4d, 0x32, 0x66,
317
    0x46, 0x46, 0x38, 0x2b, 0x32, 0x7a, 0x45, 0x72,
318
    0x6d, 0x4c, 0x4f, 0x5a, 0x2f, 0x4a, 0x72, 0x78,
319
    0x79, 0x52, 0x6a, 0x33, 0x4d, 0x66, 0x42, 0x47,
320
    0x4e, 0x50, 0x33, 0x42, 0x4c, 0x47, 0x45, 0x63,
321
    0x61, 0x79, 0x34, 0x0a, 0x65, 0x37, 0x58, 0x59,
322
    0x44, 0x78, 0x47, 0x42, 0x59, 0x4e, 0x32, 0x57,
323
    0x52, 0x67, 0x4b, 0x37, 0x2b, 0x6b, 0x39, 0x70,
324
    0x48, 0x45, 0x6f, 0x2f, 0x71, 0x47, 0x76, 0x52,
325
    0x32, 0x65, 0x4f, 0x43, 0x2f, 0x77, 0x38, 0x69,
326
    0x76, 0x69, 0x72, 0x51, 0x71, 0x31, 0x6a, 0x4b,
327
    0x47, 0x66, 0x52, 0x79, 0x7a, 0x4b, 0x4c, 0x4d,
328
    0x6c, 0x4a, 0x36, 0x64, 0x38, 0x51, 0x6b, 0x37,
329
    0x4f, 0x79, 0x78, 0x5a, 0x0a, 0x6e, 0x30, 0x75,
330
    0x33, 0x76, 0x32, 0x45, 0x4a, 0x39, 0x43, 0x57,
331
    0x6f, 0x4e, 0x44, 0x67, 0x55, 0x48, 0x34, 0x65,
332
    0x78, 0x43, 0x69, 0x6c, 0x2f, 0x4f, 0x65, 0x34,
333
    0x68, 0x35, 0x57, 0x41, 0x35, 0x39, 0x78, 0x54,
334
    0x35, 0x4e, 0x41, 0x6b, 0x78, 0x34, 0x52, 0x55,
335
    0x6f, 0x6a, 0x73, 0x4a, 0x69, 0x45, 0x78, 0x57,
336
    0x5a, 0x70, 0x7a, 0x54, 0x2f, 0x56, 0x58, 0x31,
337
    0x64, 0x32, 0x31, 0x6d, 0x4e, 0x0a, 0x57, 0x4d,
338
    0x62, 0x35, 0x45, 0x4f, 0x38, 0x65, 0x79, 0x69,
339
    0x36, 0x46, 0x79, 0x5a, 0x6c, 0x41, 0x63, 0x62,
340
    0x39, 0x4d, 0x49, 0x44, 0x30, 0x6b, 0x4d, 0x46,
341
    0x36, 0x51, 0x33, 0x68, 0x55, 0x76, 0x2b, 0x6a,
342
    0x54, 0x77, 0x2b, 0x58, 0x39, 0x79, 0x69, 0x67,
343
    0x2b, 0x33, 0x42, 0x39, 0x62, 0x67, 0x32, 0x5a,
344
    0x30, 0x49, 0x2b, 0x49, 0x4b, 0x48, 0x6c, 0x39,
345
    0x49, 0x6e, 0x53, 0x68, 0x6b, 0x43, 0x0a, 0x6e,
346
    0x64, 0x59, 0x6e, 0x34, 0x61, 0x64, 0x30, 0x7a,
347
    0x64, 0x2f, 0x67, 0x67, 0x4d, 0x56, 0x6b, 0x6c,
348
    0x6f, 0x6f, 0x6d, 0x68, 0x34, 0x75, 0x61, 0x53,
349
    0x71, 0x5a, 0x78, 0x55, 0x69, 0x33, 0x79, 0x77,
350
    0x74, 0x73, 0x7a, 0x5a, 0x6b, 0x52, 0x62, 0x7a,
351
    0x51, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x37, 0x50,
352
    0x76, 0x78, 0x31, 0x45, 0x72, 0x4b, 0x6d, 0x35,
353
    0x6c, 0x5a, 0x44, 0x41, 0x53, 0x32, 0x62, 0x0a,
354
    0x62, 0x34, 0x72, 0x6c, 0x74, 0x7a, 0x71, 0x4a,
355
    0x52, 0x55, 0x45, 0x4b, 0x79, 0x45, 0x71, 0x6a,
356
    0x71, 0x7a, 0x50, 0x7a, 0x67, 0x61, 0x73, 0x4f,
357
    0x61, 0x30, 0x6a, 0x57, 0x45, 0x71, 0x2f, 0x66,
358
    0x78, 0x75, 0x47, 0x63, 0x2f, 0x62, 0x69, 0x78,
359
    0x67, 0x2f, 0x45, 0x42, 0x61, 0x51, 0x38, 0x79,
360
    0x79, 0x54, 0x47, 0x59, 0x64, 0x49, 0x59, 0x79,
361
    0x72, 0x37, 0x44, 0x4b, 0x59, 0x59, 0x6a, 0x43,
362
    0x0a, 0x30, 0x41, 0x47, 0x56, 0x6e, 0x42, 0x43,
363
    0x68, 0x30, 0x2b, 0x54, 0x46, 0x55, 0x44, 0x42,
364
    0x31, 0x6b, 0x66, 0x77, 0x6b, 0x62, 0x65, 0x66,
365
    0x32, 0x62, 0x38, 0x79, 0x75, 0x66, 0x51, 0x2f,
366
    0x76, 0x4a, 0x77, 0x63, 0x4f, 0x4a, 0x2b, 0x35,
367
    0x6b, 0x42, 0x58, 0x51, 0x5a, 0x78, 0x38, 0x2b,
368
    0x4c, 0x38, 0x55, 0x39, 0x69, 0x57, 0x4b, 0x41,
369
    0x4e, 0x58, 0x78, 0x6b, 0x45, 0x65, 0x43, 0x58,
370
    0x32, 0x0a, 0x69, 0x57, 0x50, 0x5a, 0x50, 0x7a,
371
    0x35, 0x32, 0x70, 0x54, 0x54, 0x59, 0x6c, 0x66,
372
    0x39, 0x30, 0x50, 0x4c, 0x7a, 0x45, 0x57, 0x36,
373
    0x51, 0x79, 0x44, 0x77, 0x4b, 0x42, 0x67, 0x51,
374
    0x43, 0x35, 0x43, 0x4b, 0x79, 0x66, 0x55, 0x77,
375
    0x78, 0x33, 0x42, 0x61, 0x32, 0x69, 0x58, 0x74,
376
    0x66, 0x49, 0x72, 0x65, 0x79, 0x50, 0x71, 0x44,
377
    0x6f, 0x62, 0x62, 0x79, 0x62, 0x79, 0x54, 0x45,
378
    0x59, 0x6b, 0x0a, 0x61, 0x79, 0x41, 0x32, 0x6f,
379
    0x45, 0x6c, 0x53, 0x64, 0x65, 0x6a, 0x67, 0x56,
380
    0x6b, 0x57, 0x77, 0x4a, 0x2b, 0x71, 0x37, 0x37,
381
    0x67, 0x77, 0x72, 0x6e, 0x46, 0x35, 0x50, 0x65,
382
    0x39, 0x7a, 0x62, 0x70, 0x55, 0x42, 0x6f, 0x63,
383
    0x37, 0x56, 0x4a, 0x6a, 0x72, 0x52, 0x68, 0x55,
384
    0x6f, 0x6a, 0x49, 0x37, 0x4c, 0x4f, 0x79, 0x53,
385
    0x79, 0x74, 0x6f, 0x33, 0x57, 0x59, 0x59, 0x6f,
386
    0x63, 0x7a, 0x58, 0x0a, 0x4c, 0x70, 0x72, 0x7a,
387
    0x50, 0x6e, 0x6a, 0x32, 0x79, 0x45, 0x56, 0x65,
388
    0x56, 0x32, 0x6c, 0x72, 0x54, 0x53, 0x36, 0x6c,
389
    0x4b, 0x4e, 0x70, 0x64, 0x72, 0x61, 0x4f, 0x38,
390
    0x51, 0x5a, 0x63, 0x53, 0x44, 0x37, 0x6d, 0x55,
391
    0x55, 0x6d, 0x69, 0x4e, 0x52, 0x5a, 0x6e, 0x6f,
392
    0x50, 0x4b, 0x31, 0x36, 0x4d, 0x6d, 0x39, 0x71,
393
    0x6a, 0x6b, 0x6b, 0x32, 0x39, 0x48, 0x6e, 0x59,
394
    0x37, 0x4d, 0x73, 0x71, 0x0a, 0x70, 0x6b, 0x69,
395
    0x4f, 0x67, 0x34, 0x68, 0x75, 0x4e, 0x77, 0x4b,
396
    0x42, 0x67, 0x51, 0x43, 0x6b, 0x68, 0x32, 0x48,
397
    0x42, 0x74, 0x4f, 0x58, 0x6a, 0x48, 0x2f, 0x47,
398
    0x62, 0x58, 0x56, 0x6b, 0x6c, 0x63, 0x63, 0x30,
399
    0x4f, 0x6b, 0x34, 0x65, 0x30, 0x76, 0x76, 0x4a,
400
    0x53, 0x41, 0x6b, 0x6e, 0x47, 0x6c, 0x6d, 0x57,
401
    0x6c, 0x37, 0x2b, 0x4d, 0x35, 0x78, 0x51, 0x33,
402
    0x6b, 0x69, 0x6b, 0x59, 0x38, 0x0a, 0x44, 0x37,
403
    0x78, 0x4e, 0x46, 0x32, 0x58, 0x73, 0x63, 0x59,
404
    0x2f, 0x51, 0x73, 0x61, 0x44, 0x76, 0x54, 0x41,
405
    0x75, 0x37, 0x58, 0x34, 0x74, 0x47, 0x42, 0x41,
406
    0x47, 0x4d, 0x39, 0x6f, 0x51, 0x64, 0x74, 0x79,
407
    0x4e, 0x69, 0x65, 0x74, 0x6e, 0x31, 0x62, 0x35,
408
    0x4a, 0x66, 0x6d, 0x42, 0x79, 0x7a, 0x30, 0x55,
409
    0x37, 0x42, 0x2b, 0x47, 0x73, 0x76, 0x32, 0x5a,
410
    0x53, 0x37, 0x4b, 0x31, 0x44, 0x55, 0x0a, 0x39,
411
    0x73, 0x54, 0x4c, 0x41, 0x32, 0x45, 0x38, 0x68,
412
    0x4d, 0x6d, 0x37, 0x33, 0x44, 0x70, 0x51, 0x31,
413
    0x55, 0x78, 0x38, 0x42, 0x62, 0x65, 0x43, 0x4b,
414
    0x69, 0x56, 0x79, 0x35, 0x4d, 0x39, 0x50, 0x66,
415
    0x44, 0x63, 0x7a, 0x33, 0x42, 0x4f, 0x6d, 0x6c,
416
    0x4a, 0x64, 0x66, 0x77, 0x68, 0x4b, 0x51, 0x5a,
417
    0x76, 0x6e, 0x69, 0x79, 0x48, 0x52, 0x6c, 0x42,
418
    0x77, 0x4b, 0x42, 0x67, 0x51, 0x43, 0x48, 0x0a,
419
    0x2f, 0x73, 0x41, 0x68, 0x4f, 0x63, 0x44, 0x6e,
420
    0x6d, 0x64, 0x7a, 0x4d, 0x67, 0x6a, 0x6a, 0x47,
421
    0x33, 0x6b, 0x34, 0x49, 0x4a, 0x2f, 0x54, 0x4e,
422
    0x52, 0x52, 0x79, 0x79, 0x36, 0x53, 0x79, 0x45,
423
    0x68, 0x39, 0x66, 0x64, 0x54, 0x6d, 0x47, 0x56,
424
    0x6f, 0x65, 0x50, 0x50, 0x50, 0x70, 0x6c, 0x70,
425
    0x70, 0x32, 0x7a, 0x33, 0x51, 0x7a, 0x62, 0x65,
426
    0x74, 0x73, 0x62, 0x36, 0x56, 0x47, 0x63, 0x33,
427
    0x0a, 0x61, 0x48, 0x57, 0x32, 0x54, 0x35, 0x54,
428
    0x6d, 0x77, 0x32, 0x51, 0x41, 0x51, 0x39, 0x45,
429
    0x56, 0x48, 0x43, 0x50, 0x57, 0x33, 0x7a, 0x6a,
430
    0x41, 0x6b, 0x6a, 0x6a, 0x2f, 0x30, 0x61, 0x76,
431
    0x6b, 0x57, 0x2f, 0x53, 0x32, 0x34, 0x79, 0x75,
432
    0x30, 0x39, 0x65, 0x31, 0x47, 0x4d, 0x61, 0x6a,
433
    0x68, 0x6e, 0x4a, 0x43, 0x30, 0x41, 0x78, 0x71,
434
    0x37, 0x7a, 0x32, 0x75, 0x51, 0x61, 0x67, 0x54,
435
    0x47, 0x0a, 0x32, 0x5a, 0x66, 0x6b, 0x55, 0x38,
436
    0x31, 0x55, 0x52, 0x39, 0x75, 0x65, 0x76, 0x54,
437
    0x6f, 0x6a, 0x6e, 0x66, 0x34, 0x56, 0x71, 0x77,
438
    0x35, 0x55, 0x76, 0x63, 0x72, 0x77, 0x6a, 0x4e,
439
    0x6d, 0x6d, 0x4e, 0x79, 0x45, 0x4d, 0x33, 0x63,
440
    0x2f, 0x67, 0x63, 0x51, 0x4b, 0x42, 0x67, 0x48,
441
    0x61, 0x32, 0x64, 0x54, 0x35, 0x73, 0x76, 0x7a,
442
    0x4d, 0x31, 0x6a, 0x52, 0x65, 0x69, 0x4f, 0x33,
443
    0x56, 0x74, 0x0a, 0x64, 0x41, 0x55, 0x44, 0x7a,
444
    0x74, 0x47, 0x4b, 0x55, 0x45, 0x33, 0x63, 0x6c,
445
    0x50, 0x56, 0x33, 0x35, 0x4c, 0x32, 0x78, 0x6d,
446
    0x4a, 0x65, 0x4a, 0x44, 0x58, 0x50, 0x4f, 0x71,
447
    0x43, 0x4c, 0x33, 0x71, 0x6f, 0x5a, 0x39, 0x41,
448
    0x36, 0x68, 0x48, 0x6d, 0x44, 0x77, 0x36, 0x67,
449
    0x6d, 0x67, 0x38, 0x32, 0x67, 0x51, 0x44, 0x51,
450
    0x65, 0x4a, 0x62, 0x4c, 0x2f, 0x2b, 0x6a, 0x4b,
451
    0x6b, 0x6f, 0x6e, 0x0a, 0x65, 0x36, 0x61, 0x74,
452
    0x48, 0x2f, 0x44, 0x66, 0x72, 0x2b, 0x4d, 0x34,
453
    0x6e, 0x50, 0x66, 0x74, 0x39, 0x4c, 0x74, 0x34,
454
    0x66, 0x4f, 0x41, 0x57, 0x4f, 0x51, 0x33, 0x74,
455
    0x44, 0x73, 0x44, 0x75, 0x43, 0x6b, 0x4f, 0x4d,
456
    0x6a, 0x53, 0x54, 0x6e, 0x38, 0x63, 0x4c, 0x4d,
457
    0x5a, 0x4c, 0x47, 0x63, 0x77, 0x54, 0x32, 0x48,
458
    0x31, 0x48, 0x32, 0x76, 0x42, 0x6f, 0x63, 0x4d,
459
    0x2b, 0x55, 0x54, 0x64, 0x0a, 0x68, 0x6c, 0x6a,
460
    0x41, 0x56, 0x6e, 0x42, 0x39, 0x76, 0x36, 0x4e,
461
    0x4d, 0x66, 0x63, 0x52, 0x45, 0x52, 0x54, 0x78,
462
    0x31, 0x30, 0x53, 0x55, 0x63, 0x0a, 0x2d, 0x2d,
463
    0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50,
464
    0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
465
    0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
466
};
467
#endif
468
469
#ifndef OPENSSL_NO_EC
470
#ifndef OPENSSL_NO_DEPRECATED_3_0
471
/*
472
-----BEGIN EC PRIVATE KEY-----
473
MHcCAQEEIJLyl7hJjpQL/RhP1x2zS79xdiPJQB683gWeqcqHPeZkoAoGCCqGSM49
474
AwEHoUQDQgAEdsjygVYjjaKBF4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazI
475
D/xy8JiYjtPKVE/Zqwbmivp2UwtH28a7NQ==
476
-----END EC PRIVATE KEY-----
477
 */
478
static const char ECDSAPrivateKeyPEM[] = {
479
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45,
480
    0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45,
481
    0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x48, 0x63, 0x43, 0x41,
482
    0x51, 0x45, 0x45, 0x49, 0x4a, 0x4c, 0x79, 0x6c, 0x37, 0x68, 0x4a, 0x6a,
483
    0x70, 0x51, 0x4c, 0x2f, 0x52, 0x68, 0x50, 0x31, 0x78, 0x32, 0x7a, 0x53,
484
    0x37, 0x39, 0x78, 0x64, 0x69, 0x50, 0x4a, 0x51, 0x42, 0x36, 0x38, 0x33,
485
    0x67, 0x57, 0x65, 0x71, 0x63, 0x71, 0x48, 0x50, 0x65, 0x5a, 0x6b, 0x6f,
486
    0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x0a,
487
    0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45,
488
    0x64, 0x73, 0x6a, 0x79, 0x67, 0x56, 0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42,
489
    0x46, 0x34, 0x43, 0x4e, 0x45, 0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30,
490
    0x31, 0x37, 0x70, 0x35, 0x2f, 0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f,
491
    0x54, 0x48, 0x79, 0x39, 0x49, 0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44,
492
    0x44, 0x61, 0x7a, 0x49, 0x0a, 0x44, 0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69,
493
    0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56, 0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62,
494
    0x6d, 0x69, 0x76, 0x70, 0x32, 0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61,
495
    0x37, 0x4e, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45,
496
    0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
497
    0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
498
};
499
#endif
500
501
/*
502
-----BEGIN CERTIFICATE-----
503
MIIBXzCCAQagAwIBAgIJAK6/Yvf/ain6MAoGCCqGSM49BAMCMBIxEDAOBgNVBAoM
504
B0FjbWUgQ28wHhcNMTYxMjI1MTEzOTI3WhcNMjYxMjI1MTEzOTI3WjASMRAwDgYD
505
VQQKDAdBY21lIENvMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdsjygVYjjaKB
506
F4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazID/xy8JiYjtPKVE/Zqwbmivp2
507
UwtH28a7NaNFMEMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYI
508
KwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0cAMEQC
509
IEzr3t/jejVE9oSnBp8c3P2p+lDLVRrB8zxLyjZvirUXAiAyQPaE9MNcL8/nRpuu
510
99I1enCSmWIAJ57IwuJ/n1d45Q==
511
-----END CERTIFICATE-----
512
 */
513
static const char ECDSACertPEM[] = {
514
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
515
    0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
516
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x58, 0x7a, 0x43, 0x43,
517
    0x41, 0x51, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
518
    0x41, 0x4b, 0x36, 0x2f, 0x59, 0x76, 0x66, 0x2f, 0x61, 0x69, 0x6e, 0x36,
519
    0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39,
520
    0x42, 0x41, 0x4d, 0x43, 0x4d, 0x42, 0x49, 0x78, 0x45, 0x44, 0x41, 0x4f,
521
    0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x42, 0x30, 0x46,
522
    0x6a, 0x62, 0x57, 0x55, 0x67, 0x51, 0x32, 0x38, 0x77, 0x48, 0x68, 0x63,
523
    0x4e, 0x4d, 0x54, 0x59, 0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45,
524
    0x7a, 0x4f, 0x54, 0x49, 0x33, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x59,
525
    0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45, 0x7a, 0x4f, 0x54, 0x49,
526
    0x33, 0x57, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59,
527
    0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x64, 0x42, 0x59, 0x32,
528
    0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x46, 0x6b, 0x77, 0x45, 0x77,
529
    0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51,
530
    0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x44, 0x41, 0x51,
531
    0x63, 0x44, 0x51, 0x67, 0x41, 0x45, 0x64, 0x73, 0x6a, 0x79, 0x67, 0x56,
532
    0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42, 0x0a, 0x46, 0x34, 0x43, 0x4e, 0x45,
533
    0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30, 0x31, 0x37, 0x70, 0x35, 0x2f,
534
    0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f, 0x54, 0x48, 0x79, 0x39, 0x49,
535
    0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44, 0x44, 0x61, 0x7a, 0x49, 0x44,
536
    0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69, 0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56,
537
    0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62, 0x6d, 0x69, 0x76, 0x70, 0x32, 0x0a,
538
    0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61, 0x37, 0x4e, 0x61, 0x4e, 0x46,
539
    0x4d, 0x45, 0x4d, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54,
540
    0x42, 0x41, 0x49, 0x77, 0x41, 0x44, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56,
541
    0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x42, 0x61, 0x41, 0x77,
542
    0x45, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6c, 0x42, 0x41, 0x77, 0x77,
543
    0x43, 0x67, 0x59, 0x49, 0x0a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55,
544
    0x48, 0x41, 0x77, 0x45, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30,
545
    0x52, 0x42, 0x41, 0x30, 0x77, 0x43, 0x34, 0x49, 0x4a, 0x62, 0x47, 0x39,
546
    0x6a, 0x59, 0x57, 0x78, 0x6f, 0x62, 0x33, 0x4e, 0x30, 0x4d, 0x41, 0x6f,
547
    0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d,
548
    0x43, 0x41, 0x30, 0x63, 0x41, 0x4d, 0x45, 0x51, 0x43, 0x0a, 0x49, 0x45,
549
    0x7a, 0x72, 0x33, 0x74, 0x2f, 0x6a, 0x65, 0x6a, 0x56, 0x45, 0x39, 0x6f,
550
    0x53, 0x6e, 0x42, 0x70, 0x38, 0x63, 0x33, 0x50, 0x32, 0x70, 0x2b, 0x6c,
551
    0x44, 0x4c, 0x56, 0x52, 0x72, 0x42, 0x38, 0x7a, 0x78, 0x4c, 0x79, 0x6a,
552
    0x5a, 0x76, 0x69, 0x72, 0x55, 0x58, 0x41, 0x69, 0x41, 0x79, 0x51, 0x50,
553
    0x61, 0x45, 0x39, 0x4d, 0x4e, 0x63, 0x4c, 0x38, 0x2f, 0x6e, 0x52, 0x70,
554
    0x75, 0x75, 0x0a, 0x39, 0x39, 0x49, 0x31, 0x65, 0x6e, 0x43, 0x53, 0x6d,
555
    0x57, 0x49, 0x41, 0x4a, 0x35, 0x37, 0x49, 0x77, 0x75, 0x4a, 0x2f, 0x6e,
556
    0x31, 0x64, 0x34, 0x35, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d,
557
    0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49,
558
    0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
559
};
560
#endif
561
562
#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
563
/*
564
-----BEGIN DSA PRIVATE KEY-----
565
MIIBuwIBAAKBgQDdkFKzNABLOha7Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXP
566
Wzf03ULKS5UKjA6WpR6EiZAhm+PdxusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM8
567
0TGcnw5ijwKmSw5yyHPDWdiHzoqEBlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEg
568
QqWRf/1EIZZcgM65Qpd65YuxAoGBAKBauV/RuloFHoSy5iWXESDywiS380tN5974
569
GukGwoYdZo5uSIH6ahpeNSef0MbHGAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+
570
QtQHOwvQHgLAynhI4i73c794czHaR+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmG
571
POIMWNXXAoGAI6Ep5IE7yn3JzkXO9B6tC3bbDM+ZzuuInwZLbtZ8lim7Dsqabg4k
572
2YbE4R95Bnfwnjsyl80mq/DbQN5lAHBvjDrkC6ItojBGKI3+iIrqGUEJdxvl4ulj
573
F0PmSD7zvIG8BfocKOel+EHH0YryExiW6krV1KW2ZRmJrqSFw6KCjV0CFFQFbPfU
574
xy5PmKytJmXR8BmppkIO
575
-----END DSA PRIVATE KEY-----
576
 */
577
static const char DSAPrivateKeyPEM[] = {
578
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x44,
579
    0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
580
    0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42,
581
    0x75, 0x77, 0x49, 0x42, 0x41, 0x41, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x64,
582
    0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41, 0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37,
583
    0x45, 0x71, 0x6a, 0x37, 0x30, 0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68,
584
    0x74, 0x52, 0x36, 0x62, 0x78, 0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d,
585
    0x53, 0x5a, 0x54, 0x59, 0x69, 0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50,
586
    0x0a, 0x57, 0x7a, 0x66, 0x30, 0x33, 0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55,
587
    0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70, 0x52, 0x36, 0x45, 0x69, 0x5a, 0x41,
588
    0x68, 0x6d, 0x2b, 0x50, 0x64, 0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66,
589
    0x41, 0x75, 0x52, 0x5a, 0x4c, 0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78,
590
    0x6e, 0x31, 0x66, 0x33, 0x34, 0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51,
591
    0x4e, 0x61, 0x45, 0x4d, 0x38, 0x0a, 0x30, 0x54, 0x47, 0x63, 0x6e, 0x77,
592
    0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d, 0x53, 0x77, 0x35, 0x79, 0x79, 0x48,
593
    0x50, 0x44, 0x57, 0x64, 0x69, 0x48, 0x7a, 0x6f, 0x71, 0x45, 0x42, 0x6c,
594
    0x68, 0x41, 0x66, 0x38, 0x4e, 0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61,
595
    0x78, 0x2f, 0x63, 0x6c, 0x73, 0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52,
596
    0x4c, 0x41, 0x64, 0x77, 0x49, 0x56, 0x41, 0x49, 0x45, 0x67, 0x0a, 0x51,
597
    0x71, 0x57, 0x52, 0x66, 0x2f, 0x31, 0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67,
598
    0x4d, 0x36, 0x35, 0x51, 0x70, 0x64, 0x36, 0x35, 0x59, 0x75, 0x78, 0x41,
599
    0x6f, 0x47, 0x42, 0x41, 0x4b, 0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75,
600
    0x6c, 0x6f, 0x46, 0x48, 0x6f, 0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45,
601
    0x53, 0x44, 0x79, 0x77, 0x69, 0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35,
602
    0x39, 0x37, 0x34, 0x0a, 0x47, 0x75, 0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64,
603
    0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49, 0x48, 0x36, 0x61, 0x68, 0x70, 0x65,
604
    0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d, 0x62, 0x48, 0x47, 0x41, 0x7a, 0x72,
605
    0x37, 0x5a, 0x56, 0x45, 0x6e, 0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77,
606
    0x48, 0x31, 0x67, 0x52, 0x76, 0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62,
607
    0x6d, 0x63, 0x76, 0x74, 0x64, 0x33, 0x72, 0x2b, 0x0a, 0x51, 0x74, 0x51,
608
    0x48, 0x4f, 0x77, 0x76, 0x51, 0x48, 0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68,
609
    0x49, 0x34, 0x69, 0x37, 0x33, 0x63, 0x37, 0x39, 0x34, 0x63, 0x7a, 0x48,
610
    0x61, 0x52, 0x2b, 0x34, 0x33, 0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77,
611
    0x44, 0x6e, 0x51, 0x64, 0x75, 0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f,
612
    0x2f, 0x6a, 0x69, 0x69, 0x5a, 0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d,
613
    0x47, 0x0a, 0x50, 0x4f, 0x49, 0x4d, 0x57, 0x4e, 0x58, 0x58, 0x41, 0x6f,
614
    0x47, 0x41, 0x49, 0x36, 0x45, 0x70, 0x35, 0x49, 0x45, 0x37, 0x79, 0x6e,
615
    0x33, 0x4a, 0x7a, 0x6b, 0x58, 0x4f, 0x39, 0x42, 0x36, 0x74, 0x43, 0x33,
616
    0x62, 0x62, 0x44, 0x4d, 0x2b, 0x5a, 0x7a, 0x75, 0x75, 0x49, 0x6e, 0x77,
617
    0x5a, 0x4c, 0x62, 0x74, 0x5a, 0x38, 0x6c, 0x69, 0x6d, 0x37, 0x44, 0x73,
618
    0x71, 0x61, 0x62, 0x67, 0x34, 0x6b, 0x0a, 0x32, 0x59, 0x62, 0x45, 0x34,
619
    0x52, 0x39, 0x35, 0x42, 0x6e, 0x66, 0x77, 0x6e, 0x6a, 0x73, 0x79, 0x6c,
620
    0x38, 0x30, 0x6d, 0x71, 0x2f, 0x44, 0x62, 0x51, 0x4e, 0x35, 0x6c, 0x41,
621
    0x48, 0x42, 0x76, 0x6a, 0x44, 0x72, 0x6b, 0x43, 0x36, 0x49, 0x74, 0x6f,
622
    0x6a, 0x42, 0x47, 0x4b, 0x49, 0x33, 0x2b, 0x69, 0x49, 0x72, 0x71, 0x47,
623
    0x55, 0x45, 0x4a, 0x64, 0x78, 0x76, 0x6c, 0x34, 0x75, 0x6c, 0x6a, 0x0a,
624
    0x46, 0x30, 0x50, 0x6d, 0x53, 0x44, 0x37, 0x7a, 0x76, 0x49, 0x47, 0x38,
625
    0x42, 0x66, 0x6f, 0x63, 0x4b, 0x4f, 0x65, 0x6c, 0x2b, 0x45, 0x48, 0x48,
626
    0x30, 0x59, 0x72, 0x79, 0x45, 0x78, 0x69, 0x57, 0x36, 0x6b, 0x72, 0x56,
627
    0x31, 0x4b, 0x57, 0x32, 0x5a, 0x52, 0x6d, 0x4a, 0x72, 0x71, 0x53, 0x46,
628
    0x77, 0x36, 0x4b, 0x43, 0x6a, 0x56, 0x30, 0x43, 0x46, 0x46, 0x51, 0x46,
629
    0x62, 0x50, 0x66, 0x55, 0x0a, 0x78, 0x79, 0x35, 0x50, 0x6d, 0x4b, 0x79,
630
    0x74, 0x4a, 0x6d, 0x58, 0x52, 0x38, 0x42, 0x6d, 0x70, 0x70, 0x6b, 0x49,
631
    0x4f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x44,
632
    0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
633
    0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
634
};
635
636
/*
637
-----BEGIN CERTIFICATE-----
638
MIICqTCCAmegAwIBAgIJAILDGUk37fWGMAsGCWCGSAFlAwQDAjASMRAwDgYDVQQK
639
DAdBY21lIENvMB4XDTE2MTIyNTEzMjUzNloXDTI2MTIyNTEzMjUzNlowEjEQMA4G
640
A1UECgwHQWNtZSBDbzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDdkFKzNABLOha7
641
Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXPWzf03ULKS5UKjA6WpR6EiZAhm+Pd
642
xusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM80TGcnw5ijwKmSw5yyHPDWdiHzoqE
643
BlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEgQqWRf/1EIZZcgM65Qpd65YuxAoGB
644
AKBauV/RuloFHoSy5iWXESDywiS380tN5974GukGwoYdZo5uSIH6ahpeNSef0MbH
645
GAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+QtQHOwvQHgLAynhI4i73c794czHa
646
R+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmGPOIMWNXXA4GEAAKBgCOhKeSBO8p9
647
yc5FzvQerQt22wzPmc7riJ8GS27WfJYpuw7Kmm4OJNmGxOEfeQZ38J47MpfNJqvw
648
20DeZQBwb4w65AuiLaIwRiiN/oiK6hlBCXcb5eLpYxdD5kg+87yBvAX6HCjnpfhB
649
x9GK8hMYlupK1dSltmUZia6khcOigo1do0UwQzAJBgNVHRMEAjAAMAsGA1UdDwQE
650
AwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAUBgNVHREEDTALgglsb2NhbGhvc3Qw
651
CwYJYIZIAWUDBAMCAy8AMCwCFClxInXTRWNJEWdi5ilNr/fbM1bKAhQy4B7wtmfd
652
I+zV6g3w9qBkNqStpA==
653
-----END CERTIFICATE-----
654
 */
655
static const char DSACertPEM[] = {
656
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
657
    0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
658
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x71, 0x54, 0x43, 0x43,
659
    0x41, 0x6d, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
660
    0x41, 0x49, 0x4c, 0x44, 0x47, 0x55, 0x6b, 0x33, 0x37, 0x66, 0x57, 0x47,
661
    0x4d, 0x41, 0x73, 0x47, 0x43, 0x57, 0x43, 0x47, 0x53, 0x41, 0x46, 0x6c,
662
    0x41, 0x77, 0x51, 0x44, 0x41, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77,
663
    0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x64,
664
    0x42, 0x59, 0x32, 0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x42, 0x34,
665
    0x58, 0x44, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45,
666
    0x7a, 0x4d, 0x6a, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x49,
667
    0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45, 0x7a, 0x4d, 0x6a, 0x55,
668
    0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x45, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34,
669
    0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x48, 0x51, 0x57,
670
    0x4e, 0x74, 0x5a, 0x53, 0x42, 0x44, 0x62, 0x7a, 0x43, 0x43, 0x41, 0x62,
671
    0x63, 0x77, 0x67, 0x67, 0x45, 0x73, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b,
672
    0x6a, 0x4f, 0x4f, 0x41, 0x51, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x48, 0x77,
673
    0x4b, 0x42, 0x67, 0x51, 0x44, 0x64, 0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41,
674
    0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37, 0x0a, 0x45, 0x71, 0x6a, 0x37, 0x30,
675
    0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68, 0x74, 0x52, 0x36, 0x62, 0x78,
676
    0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d, 0x53, 0x5a, 0x54, 0x59, 0x69,
677
    0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50, 0x57, 0x7a, 0x66, 0x30, 0x33,
678
    0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55, 0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70,
679
    0x52, 0x36, 0x45, 0x69, 0x5a, 0x41, 0x68, 0x6d, 0x2b, 0x50, 0x64, 0x0a,
680
    0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66, 0x41, 0x75, 0x52, 0x5a, 0x4c,
681
    0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78, 0x6e, 0x31, 0x66, 0x33, 0x34,
682
    0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51, 0x4e, 0x61, 0x45, 0x4d, 0x38,
683
    0x30, 0x54, 0x47, 0x63, 0x6e, 0x77, 0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d,
684
    0x53, 0x77, 0x35, 0x79, 0x79, 0x48, 0x50, 0x44, 0x57, 0x64, 0x69, 0x48,
685
    0x7a, 0x6f, 0x71, 0x45, 0x0a, 0x42, 0x6c, 0x68, 0x41, 0x66, 0x38, 0x4e,
686
    0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61, 0x78, 0x2f, 0x63, 0x6c, 0x73,
687
    0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52, 0x4c, 0x41, 0x64, 0x77, 0x49,
688
    0x56, 0x41, 0x49, 0x45, 0x67, 0x51, 0x71, 0x57, 0x52, 0x66, 0x2f, 0x31,
689
    0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67, 0x4d, 0x36, 0x35, 0x51, 0x70, 0x64,
690
    0x36, 0x35, 0x59, 0x75, 0x78, 0x41, 0x6f, 0x47, 0x42, 0x0a, 0x41, 0x4b,
691
    0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75, 0x6c, 0x6f, 0x46, 0x48, 0x6f,
692
    0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45, 0x53, 0x44, 0x79, 0x77, 0x69,
693
    0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35, 0x39, 0x37, 0x34, 0x47, 0x75,
694
    0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64, 0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49,
695
    0x48, 0x36, 0x61, 0x68, 0x70, 0x65, 0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d,
696
    0x62, 0x48, 0x0a, 0x47, 0x41, 0x7a, 0x72, 0x37, 0x5a, 0x56, 0x45, 0x6e,
697
    0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77, 0x48, 0x31, 0x67, 0x52, 0x76,
698
    0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62, 0x6d, 0x63, 0x76, 0x74, 0x64,
699
    0x33, 0x72, 0x2b, 0x51, 0x74, 0x51, 0x48, 0x4f, 0x77, 0x76, 0x51, 0x48,
700
    0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68, 0x49, 0x34, 0x69, 0x37, 0x33, 0x63,
701
    0x37, 0x39, 0x34, 0x63, 0x7a, 0x48, 0x61, 0x0a, 0x52, 0x2b, 0x34, 0x33,
702
    0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77, 0x44, 0x6e, 0x51, 0x64, 0x75,
703
    0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f, 0x2f, 0x6a, 0x69, 0x69, 0x5a,
704
    0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d, 0x47, 0x50, 0x4f, 0x49, 0x4d,
705
    0x57, 0x4e, 0x58, 0x58, 0x41, 0x34, 0x47, 0x45, 0x41, 0x41, 0x4b, 0x42,
706
    0x67, 0x43, 0x4f, 0x68, 0x4b, 0x65, 0x53, 0x42, 0x4f, 0x38, 0x70, 0x39,
707
    0x0a, 0x79, 0x63, 0x35, 0x46, 0x7a, 0x76, 0x51, 0x65, 0x72, 0x51, 0x74,
708
    0x32, 0x32, 0x77, 0x7a, 0x50, 0x6d, 0x63, 0x37, 0x72, 0x69, 0x4a, 0x38,
709
    0x47, 0x53, 0x32, 0x37, 0x57, 0x66, 0x4a, 0x59, 0x70, 0x75, 0x77, 0x37,
710
    0x4b, 0x6d, 0x6d, 0x34, 0x4f, 0x4a, 0x4e, 0x6d, 0x47, 0x78, 0x4f, 0x45,
711
    0x66, 0x65, 0x51, 0x5a, 0x33, 0x38, 0x4a, 0x34, 0x37, 0x4d, 0x70, 0x66,
712
    0x4e, 0x4a, 0x71, 0x76, 0x77, 0x0a, 0x32, 0x30, 0x44, 0x65, 0x5a, 0x51,
713
    0x42, 0x77, 0x62, 0x34, 0x77, 0x36, 0x35, 0x41, 0x75, 0x69, 0x4c, 0x61,
714
    0x49, 0x77, 0x52, 0x69, 0x69, 0x4e, 0x2f, 0x6f, 0x69, 0x4b, 0x36, 0x68,
715
    0x6c, 0x42, 0x43, 0x58, 0x63, 0x62, 0x35, 0x65, 0x4c, 0x70, 0x59, 0x78,
716
    0x64, 0x44, 0x35, 0x6b, 0x67, 0x2b, 0x38, 0x37, 0x79, 0x42, 0x76, 0x41,
717
    0x58, 0x36, 0x48, 0x43, 0x6a, 0x6e, 0x70, 0x66, 0x68, 0x42, 0x0a, 0x78,
718
    0x39, 0x47, 0x4b, 0x38, 0x68, 0x4d, 0x59, 0x6c, 0x75, 0x70, 0x4b, 0x31,
719
    0x64, 0x53, 0x6c, 0x74, 0x6d, 0x55, 0x5a, 0x69, 0x61, 0x36, 0x6b, 0x68,
720
    0x63, 0x4f, 0x69, 0x67, 0x6f, 0x31, 0x64, 0x6f, 0x30, 0x55, 0x77, 0x51,
721
    0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x45, 0x41,
722
    0x6a, 0x41, 0x41, 0x4d, 0x41, 0x73, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44,
723
    0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x46, 0x6f, 0x44, 0x41, 0x54,
724
    0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x55, 0x45, 0x44, 0x44, 0x41, 0x4b,
725
    0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x44,
726
    0x41, 0x54, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45,
727
    0x44, 0x54, 0x41, 0x4c, 0x67, 0x67, 0x6c, 0x73, 0x62, 0x32, 0x4e, 0x68,
728
    0x62, 0x47, 0x68, 0x76, 0x63, 0x33, 0x51, 0x77, 0x0a, 0x43, 0x77, 0x59,
729
    0x4a, 0x59, 0x49, 0x5a, 0x49, 0x41, 0x57, 0x55, 0x44, 0x42, 0x41, 0x4d,
730
    0x43, 0x41, 0x79, 0x38, 0x41, 0x4d, 0x43, 0x77, 0x43, 0x46, 0x43, 0x6c,
731
    0x78, 0x49, 0x6e, 0x58, 0x54, 0x52, 0x57, 0x4e, 0x4a, 0x45, 0x57, 0x64,
732
    0x69, 0x35, 0x69, 0x6c, 0x4e, 0x72, 0x2f, 0x66, 0x62, 0x4d, 0x31, 0x62,
733
    0x4b, 0x41, 0x68, 0x51, 0x79, 0x34, 0x42, 0x37, 0x77, 0x74, 0x6d, 0x66,
734
    0x64, 0x0a, 0x49, 0x2b, 0x7a, 0x56, 0x36, 0x67, 0x33, 0x77, 0x39, 0x71,
735
    0x42, 0x6b, 0x4e, 0x71, 0x53, 0x74, 0x70, 0x41, 0x3d, 0x3d, 0x0a, 0x2d,
736
    0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54,
737
    0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
738
    0x0a
739
};
740
#endif
741
742
/* unused, to avoid warning. */
743
static int idx;
744
745
12.3k
#define FUZZTIME 1485898104
746
747
#define TIME_IMPL(t)       \
748
11.2k
    {                      \
749
11.2k
        if (t != NULL)     \
750
11.2k
            *t = FUZZTIME; \
751
11.2k
        return FUZZTIME;   \
752
11.2k
    }
753
754
/*
755
 * This might not work in all cases (and definitely not on Windows
756
 * because of the way linkers are) and callees can still get the
757
 * current time instead of the fixed time. This will just result
758
 * in things not being fully reproducible and have a slightly
759
 * different coverage.
760
 */
761
#if !defined(_WIN32)
762
11.2k
time_t time(time_t *t) TIME_IMPL(t)
763
#endif
764
765
    int FuzzerInitialize(int *argc, char ***argv)
766
60
{
767
60
    STACK_OF(SSL_COMP) *comp_methods;
768
769
60
    FuzzerSetRand();
770
60
    OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ASYNC, NULL);
771
60
    OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
772
60
    ERR_clear_error();
773
60
    CRYPTO_free_ex_index(0, -1);
774
60
    idx = SSL_get_ex_data_X509_STORE_CTX_idx();
775
60
    comp_methods = SSL_COMP_get_compression_methods();
776
60
    if (comp_methods != NULL)
777
60
        sk_SSL_COMP_sort(comp_methods);
778
779
60
    return 1;
780
60
}
781
782
int FuzzerTestOneInput(const uint8_t *buf, size_t len)
783
12.9k
{
784
12.9k
    SSL *server;
785
12.9k
    BIO *in;
786
12.9k
    BIO *out;
787
12.9k
    BIO *bio_buf;
788
12.9k
    SSL_CTX *ctx;
789
12.9k
    int ret;
790
12.9k
#ifndef OPENSSL_NO_DEPRECATED_3_0
791
12.9k
    RSA *privkey;
792
12.9k
#endif
793
12.9k
#if !defined(OPENSSL_NO_DEPRECATED_3_0)
794
12.9k
    EVP_PKEY *pkey;
795
12.9k
#endif
796
12.9k
    X509 *cert;
797
12.9k
#ifndef OPENSSL_NO_DEPRECATED_3_0
798
12.9k
#ifndef OPENSSL_NO_EC
799
12.9k
    EC_KEY *ecdsakey = NULL;
800
12.9k
#endif
801
12.9k
#endif
802
12.9k
#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
803
12.9k
    DSA *dsakey = NULL;
804
12.9k
#endif
805
806
12.9k
    if (len < 2)
807
3
        return 0;
808
809
    /* This only fuzzes the initial flow from the client so far. */
810
12.9k
    ctx = SSL_CTX_new(DTLS_server_method());
811
812
12.9k
    ret = SSL_CTX_set_min_proto_version(ctx, 0);
813
12.9k
    OPENSSL_assert(ret == 1);
814
12.9k
    ret = SSL_CTX_set_cipher_list(ctx, "ALL:eNULL:@SECLEVEL=0");
815
12.9k
    OPENSSL_assert(ret == 1);
816
817
12.9k
#ifndef OPENSSL_NO_DEPRECATED_3_0
818
    /* RSA */
819
12.9k
    bio_buf = BIO_new(BIO_s_mem());
820
12.9k
    OPENSSL_assert((size_t)BIO_write(bio_buf, RSAPrivateKeyPEM, sizeof(RSAPrivateKeyPEM)) == sizeof(RSAPrivateKeyPEM));
821
12.9k
    privkey = PEM_read_bio_RSAPrivateKey(bio_buf, NULL, NULL, NULL);
822
12.9k
    ERR_print_errors_fp(stderr);
823
12.9k
    OPENSSL_assert(privkey != NULL);
824
12.9k
    BIO_free(bio_buf);
825
12.9k
    pkey = EVP_PKEY_new();
826
12.9k
    EVP_PKEY_assign_RSA(pkey, privkey);
827
12.9k
    ret = SSL_CTX_use_PrivateKey(ctx, pkey);
828
12.9k
    OPENSSL_assert(ret == 1);
829
12.9k
    EVP_PKEY_free(pkey);
830
12.9k
#endif
831
832
12.9k
    bio_buf = BIO_new(BIO_s_mem());
833
12.9k
    OPENSSL_assert((size_t)BIO_write(bio_buf, RSACertificatePEM, sizeof(RSACertificatePEM)) == sizeof(RSACertificatePEM));
834
12.9k
    cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
835
12.9k
    BIO_free(bio_buf);
836
12.9k
    OPENSSL_assert(cert != NULL);
837
12.9k
    ret = SSL_CTX_use_certificate(ctx, cert);
838
12.9k
    OPENSSL_assert(ret == 1);
839
12.9k
    X509_free(cert);
840
841
12.9k
#ifndef OPENSSL_NO_EC
842
12.9k
#ifndef OPENSSL_NO_DEPRECATED_3_0
843
    /* ECDSA */
844
12.9k
    bio_buf = BIO_new(BIO_s_mem());
845
12.9k
    OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSAPrivateKeyPEM, sizeof(ECDSAPrivateKeyPEM)) == sizeof(ECDSAPrivateKeyPEM));
846
12.9k
    ecdsakey = PEM_read_bio_ECPrivateKey(bio_buf, NULL, NULL, NULL);
847
12.9k
    ERR_print_errors_fp(stderr);
848
12.9k
    OPENSSL_assert(ecdsakey != NULL);
849
12.9k
    BIO_free(bio_buf);
850
12.9k
    pkey = EVP_PKEY_new();
851
12.9k
    EVP_PKEY_assign_EC_KEY(pkey, ecdsakey);
852
12.9k
    ret = SSL_CTX_use_PrivateKey(ctx, pkey);
853
12.9k
    OPENSSL_assert(ret == 1);
854
12.9k
    EVP_PKEY_free(pkey);
855
12.9k
#endif
856
12.9k
    bio_buf = BIO_new(BIO_s_mem());
857
12.9k
    OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSACertPEM, sizeof(ECDSACertPEM)) == sizeof(ECDSACertPEM));
858
12.9k
    cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
859
12.9k
    OPENSSL_assert(cert != NULL);
860
12.9k
    BIO_free(bio_buf);
861
12.9k
    ret = SSL_CTX_use_certificate(ctx, cert);
862
12.9k
    OPENSSL_assert(ret == 1);
863
12.9k
    X509_free(cert);
864
12.9k
#endif
865
866
12.9k
#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
867
    /* DSA */
868
12.9k
    bio_buf = BIO_new(BIO_s_mem());
869
12.9k
    OPENSSL_assert((size_t)BIO_write(bio_buf, DSAPrivateKeyPEM, sizeof(DSAPrivateKeyPEM)) == sizeof(DSAPrivateKeyPEM));
870
12.9k
    dsakey = PEM_read_bio_DSAPrivateKey(bio_buf, NULL, NULL, NULL);
871
12.9k
    ERR_print_errors_fp(stderr);
872
12.9k
    OPENSSL_assert(dsakey != NULL);
873
12.9k
    BIO_free(bio_buf);
874
12.9k
    pkey = EVP_PKEY_new();
875
12.9k
    EVP_PKEY_assign_DSA(pkey, dsakey);
876
12.9k
    ret = SSL_CTX_use_PrivateKey(ctx, pkey);
877
12.9k
    OPENSSL_assert(ret == 1);
878
12.9k
    EVP_PKEY_free(pkey);
879
880
12.9k
    bio_buf = BIO_new(BIO_s_mem());
881
12.9k
    OPENSSL_assert((size_t)BIO_write(bio_buf, DSACertPEM, sizeof(DSACertPEM)) == sizeof(DSACertPEM));
882
12.9k
    cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
883
12.9k
    OPENSSL_assert(cert != NULL);
884
12.9k
    BIO_free(bio_buf);
885
12.9k
    ret = SSL_CTX_use_certificate(ctx, cert);
886
12.9k
    OPENSSL_assert(ret == 1);
887
12.9k
    X509_free(cert);
888
12.9k
#endif
889
890
12.9k
    server = SSL_new(ctx);
891
12.9k
    in = BIO_new(BIO_s_mem());
892
12.9k
    out = BIO_new(BIO_s_mem());
893
12.9k
    SSL_set_bio(server, in, out);
894
12.9k
    SSL_set_accept_state(server);
895
896
12.9k
    OPENSSL_assert((size_t)BIO_write(in, buf, len) == len);
897
898
12.9k
    if (SSL_do_handshake(server) == 1) {
899
        /* Keep reading application data until error or EOF. */
900
0
        uint8_t tmp[1024];
901
0
        for (;;) {
902
0
            if (SSL_read(server, tmp, sizeof(tmp)) <= 0) {
903
0
                break;
904
0
            }
905
0
        }
906
0
    }
907
12.9k
    SSL_free(server);
908
12.9k
    ERR_clear_error();
909
12.9k
    SSL_CTX_free(ctx);
910
911
12.9k
    return 0;
912
12.9k
}
913
914
void FuzzerCleanup(void)
915
0
{
916
0
    FuzzerClearRand();
917
0
}