Coverage Report

Created: 2026-09-12 06:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl41/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
/*
222
-----BEGIN PRIVATE KEY-----
223
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1mQfTLWrNFfUs
224
mvlIRGm8M7NxKJfvzIcFBViBa6/LVcmL4PF7PypwtlWhKZxJbQTS2jgA2RlLl88+
225
RG3HG9otfIIbzA1+aDsAAInS97b+pYfP1bo/LaSwOd0g0eVU0HMYrYqbHHI2nBw3
226
7U6gwO/veEk0/EEh7VruRZlzyryS5j7ikCTGziUhgyS73U/9HcjPWlN8SsOuIr+0
227
t5WhEVsluPznpjEF7IvpG2p6VTSVZqk7UvqvxcmL769TaV9DnPwOR9h2EOn+j957
228
ydtiDl6CHDYyNRZim19zSR3rR17cmSl3H6Ys5Y7Db2337C+rcMY4wkdyXVKj9cRA
229
nrqCwTM5AgMBAAECggEAFOD+XFJZeDDxGmrLBHsRKRlMpVMEfQan83TU4zRtZtR7
230
MsDvIrt1drYQDFKLbInDRzbdv4M2fFF8+2zErmLOZ/JrxyRj3MfBGNP3BLGEcay4
231
e7XYDxGBYN2WRgK7+k9pHEo/qGvR2eOC/w8ivirQq1jKGfRyzKLMlJ6d8Qk7OyxZ
232
n0u3v2EJ9CWoNDgUH4exCil/Oe4h5WA59xT5NAkx4RUojsJiExWZpzT/VX1d21mN
233
WMb5EO8eyi6FyZlAcb9MID0kMF6Q3hUv+jTw+X9yig+3B9bg2Z0I+IKHl9InShkC
234
ndYn4ad0zd/ggMVkloomh4uaSqZxUi3ywtszZkRbzQKBgQD7Pvx1ErKm5lZDAS2b
235
b4rltzqJRUEKyEqjqzPzgasOa0jWEq/fxuGc/bixg/EBaQ8yyTGYdIYyr7DKYYjC
236
0AGVnBCh0+TFUDB1kfwkbef2b8yufQ/vJwcOJ+5kBXQZx8+L8U9iWKANXxkEeCX2
237
iWPZPz52pTTYlf90PLzEW6QyDwKBgQC5CKyfUwx3Ba2iXtfIreyPqDobbybyTEYk
238
ayA2oElSdejgVkWwJ+q77gwrnF5Pe9zbpUBoc7VJjrRhUojI7LOySyto3WYYoczX
239
LprzPnj2yEVeV2lrTS6lKNpdraO8QZcSD7mUUmiNRZnoPK16Mm9qjkk29HnY7Msq
240
pkiOg4huNwKBgQCkh2HBtOXjH/GbXVklcc0Ok4e0vvJSAknGlmWl7+M5xQ3kikY8
241
D7xNF2XscY/QsaDvTAu7X4tGBAGM9oQdtyNietn1b5JfmByz0U7B+Gsv2ZS7K1DU
242
9sTLA2E8hMm73DpQ1Ux8BbeCKiVy5M9PfDcz3BOmlJdfwhKQZvniyHRlBwKBgQCH
243
/sAhOcDnmdzMgjjG3k4IJ/TNRRyy6SyEh9fdTmGVoePPPplpp2z3Qzbetsb6VGc3
244
aHW2T5Tmw2QAQ9EVHCPW3zjAkjj/0avkW/S24yu09e1GMajhnJC0Axq7z2uQagTG
245
2ZfkU81UR9uevTojnf4Vqw5UvcrwjNmmNyEM3c/gcQKBgHa2dT5svzM1jReiO3Vt
246
dAUDztGKUE3clPV35L2xmJeJDXPOqCL3qoZ9A6hHmDw6gmg82gQDQeJbL/+jKkon
247
e6atH/Dfr+M4nPft9Lt4fOAWOQ3tDsDuCkOMjSTn8cLMZLGcwT2H1H2vBocM+UTd
248
hljAVnB9v6NMfcRERTx10SUc
249
-----END PRIVATE KEY-----
250
 */
251
static const uint8_t RSAPrivateKeyPEM[] = {
252
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47,
253
    0x49, 0x4e, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41,
254
    0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d,
255
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45,
256
    0x76, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e,
257
    0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47,
258
    0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46,
259
    0x41, 0x41, 0x53, 0x43, 0x42, 0x4b, 0x67, 0x77,
260
    0x67, 0x67, 0x53, 0x6b, 0x41, 0x67, 0x45, 0x41,
261
    0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x31,
262
    0x6d, 0x51, 0x66, 0x54, 0x4c, 0x57, 0x72, 0x4e,
263
    0x46, 0x66, 0x55, 0x73, 0x0a, 0x6d, 0x76, 0x6c,
264
    0x49, 0x52, 0x47, 0x6d, 0x38, 0x4d, 0x37, 0x4e,
265
    0x78, 0x4b, 0x4a, 0x66, 0x76, 0x7a, 0x49, 0x63,
266
    0x46, 0x42, 0x56, 0x69, 0x42, 0x61, 0x36, 0x2f,
267
    0x4c, 0x56, 0x63, 0x6d, 0x4c, 0x34, 0x50, 0x46,
268
    0x37, 0x50, 0x79, 0x70, 0x77, 0x74, 0x6c, 0x57,
269
    0x68, 0x4b, 0x5a, 0x78, 0x4a, 0x62, 0x51, 0x54,
270
    0x53, 0x32, 0x6a, 0x67, 0x41, 0x32, 0x52, 0x6c,
271
    0x4c, 0x6c, 0x38, 0x38, 0x2b, 0x0a, 0x52, 0x47,
272
    0x33, 0x48, 0x47, 0x39, 0x6f, 0x74, 0x66, 0x49,
273
    0x49, 0x62, 0x7a, 0x41, 0x31, 0x2b, 0x61, 0x44,
274
    0x73, 0x41, 0x41, 0x49, 0x6e, 0x53, 0x39, 0x37,
275
    0x62, 0x2b, 0x70, 0x59, 0x66, 0x50, 0x31, 0x62,
276
    0x6f, 0x2f, 0x4c, 0x61, 0x53, 0x77, 0x4f, 0x64,
277
    0x30, 0x67, 0x30, 0x65, 0x56, 0x55, 0x30, 0x48,
278
    0x4d, 0x59, 0x72, 0x59, 0x71, 0x62, 0x48, 0x48,
279
    0x49, 0x32, 0x6e, 0x42, 0x77, 0x33, 0x0a, 0x37,
280
    0x55, 0x36, 0x67, 0x77, 0x4f, 0x2f, 0x76, 0x65,
281
    0x45, 0x6b, 0x30, 0x2f, 0x45, 0x45, 0x68, 0x37,
282
    0x56, 0x72, 0x75, 0x52, 0x5a, 0x6c, 0x7a, 0x79,
283
    0x72, 0x79, 0x53, 0x35, 0x6a, 0x37, 0x69, 0x6b,
284
    0x43, 0x54, 0x47, 0x7a, 0x69, 0x55, 0x68, 0x67,
285
    0x79, 0x53, 0x37, 0x33, 0x55, 0x2f, 0x39, 0x48,
286
    0x63, 0x6a, 0x50, 0x57, 0x6c, 0x4e, 0x38, 0x53,
287
    0x73, 0x4f, 0x75, 0x49, 0x72, 0x2b, 0x30, 0x0a,
288
    0x74, 0x35, 0x57, 0x68, 0x45, 0x56, 0x73, 0x6c,
289
    0x75, 0x50, 0x7a, 0x6e, 0x70, 0x6a, 0x45, 0x46,
290
    0x37, 0x49, 0x76, 0x70, 0x47, 0x32, 0x70, 0x36,
291
    0x56, 0x54, 0x53, 0x56, 0x5a, 0x71, 0x6b, 0x37,
292
    0x55, 0x76, 0x71, 0x76, 0x78, 0x63, 0x6d, 0x4c,
293
    0x37, 0x36, 0x39, 0x54, 0x61, 0x56, 0x39, 0x44,
294
    0x6e, 0x50, 0x77, 0x4f, 0x52, 0x39, 0x68, 0x32,
295
    0x45, 0x4f, 0x6e, 0x2b, 0x6a, 0x39, 0x35, 0x37,
296
    0x0a, 0x79, 0x64, 0x74, 0x69, 0x44, 0x6c, 0x36,
297
    0x43, 0x48, 0x44, 0x59, 0x79, 0x4e, 0x52, 0x5a,
298
    0x69, 0x6d, 0x31, 0x39, 0x7a, 0x53, 0x52, 0x33,
299
    0x72, 0x52, 0x31, 0x37, 0x63, 0x6d, 0x53, 0x6c,
300
    0x33, 0x48, 0x36, 0x59, 0x73, 0x35, 0x59, 0x37,
301
    0x44, 0x62, 0x32, 0x33, 0x33, 0x37, 0x43, 0x2b,
302
    0x72, 0x63, 0x4d, 0x59, 0x34, 0x77, 0x6b, 0x64,
303
    0x79, 0x58, 0x56, 0x4b, 0x6a, 0x39, 0x63, 0x52,
304
    0x41, 0x0a, 0x6e, 0x72, 0x71, 0x43, 0x77, 0x54,
305
    0x4d, 0x35, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41,
306
    0x45, 0x43, 0x67, 0x67, 0x45, 0x41, 0x46, 0x4f,
307
    0x44, 0x2b, 0x58, 0x46, 0x4a, 0x5a, 0x65, 0x44,
308
    0x44, 0x78, 0x47, 0x6d, 0x72, 0x4c, 0x42, 0x48,
309
    0x73, 0x52, 0x4b, 0x52, 0x6c, 0x4d, 0x70, 0x56,
310
    0x4d, 0x45, 0x66, 0x51, 0x61, 0x6e, 0x38, 0x33,
311
    0x54, 0x55, 0x34, 0x7a, 0x52, 0x74, 0x5a, 0x74,
312
    0x52, 0x37, 0x0a, 0x4d, 0x73, 0x44, 0x76, 0x49,
313
    0x72, 0x74, 0x31, 0x64, 0x72, 0x59, 0x51, 0x44,
314
    0x46, 0x4b, 0x4c, 0x62, 0x49, 0x6e, 0x44, 0x52,
315
    0x7a, 0x62, 0x64, 0x76, 0x34, 0x4d, 0x32, 0x66,
316
    0x46, 0x46, 0x38, 0x2b, 0x32, 0x7a, 0x45, 0x72,
317
    0x6d, 0x4c, 0x4f, 0x5a, 0x2f, 0x4a, 0x72, 0x78,
318
    0x79, 0x52, 0x6a, 0x33, 0x4d, 0x66, 0x42, 0x47,
319
    0x4e, 0x50, 0x33, 0x42, 0x4c, 0x47, 0x45, 0x63,
320
    0x61, 0x79, 0x34, 0x0a, 0x65, 0x37, 0x58, 0x59,
321
    0x44, 0x78, 0x47, 0x42, 0x59, 0x4e, 0x32, 0x57,
322
    0x52, 0x67, 0x4b, 0x37, 0x2b, 0x6b, 0x39, 0x70,
323
    0x48, 0x45, 0x6f, 0x2f, 0x71, 0x47, 0x76, 0x52,
324
    0x32, 0x65, 0x4f, 0x43, 0x2f, 0x77, 0x38, 0x69,
325
    0x76, 0x69, 0x72, 0x51, 0x71, 0x31, 0x6a, 0x4b,
326
    0x47, 0x66, 0x52, 0x79, 0x7a, 0x4b, 0x4c, 0x4d,
327
    0x6c, 0x4a, 0x36, 0x64, 0x38, 0x51, 0x6b, 0x37,
328
    0x4f, 0x79, 0x78, 0x5a, 0x0a, 0x6e, 0x30, 0x75,
329
    0x33, 0x76, 0x32, 0x45, 0x4a, 0x39, 0x43, 0x57,
330
    0x6f, 0x4e, 0x44, 0x67, 0x55, 0x48, 0x34, 0x65,
331
    0x78, 0x43, 0x69, 0x6c, 0x2f, 0x4f, 0x65, 0x34,
332
    0x68, 0x35, 0x57, 0x41, 0x35, 0x39, 0x78, 0x54,
333
    0x35, 0x4e, 0x41, 0x6b, 0x78, 0x34, 0x52, 0x55,
334
    0x6f, 0x6a, 0x73, 0x4a, 0x69, 0x45, 0x78, 0x57,
335
    0x5a, 0x70, 0x7a, 0x54, 0x2f, 0x56, 0x58, 0x31,
336
    0x64, 0x32, 0x31, 0x6d, 0x4e, 0x0a, 0x57, 0x4d,
337
    0x62, 0x35, 0x45, 0x4f, 0x38, 0x65, 0x79, 0x69,
338
    0x36, 0x46, 0x79, 0x5a, 0x6c, 0x41, 0x63, 0x62,
339
    0x39, 0x4d, 0x49, 0x44, 0x30, 0x6b, 0x4d, 0x46,
340
    0x36, 0x51, 0x33, 0x68, 0x55, 0x76, 0x2b, 0x6a,
341
    0x54, 0x77, 0x2b, 0x58, 0x39, 0x79, 0x69, 0x67,
342
    0x2b, 0x33, 0x42, 0x39, 0x62, 0x67, 0x32, 0x5a,
343
    0x30, 0x49, 0x2b, 0x49, 0x4b, 0x48, 0x6c, 0x39,
344
    0x49, 0x6e, 0x53, 0x68, 0x6b, 0x43, 0x0a, 0x6e,
345
    0x64, 0x59, 0x6e, 0x34, 0x61, 0x64, 0x30, 0x7a,
346
    0x64, 0x2f, 0x67, 0x67, 0x4d, 0x56, 0x6b, 0x6c,
347
    0x6f, 0x6f, 0x6d, 0x68, 0x34, 0x75, 0x61, 0x53,
348
    0x71, 0x5a, 0x78, 0x55, 0x69, 0x33, 0x79, 0x77,
349
    0x74, 0x73, 0x7a, 0x5a, 0x6b, 0x52, 0x62, 0x7a,
350
    0x51, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x37, 0x50,
351
    0x76, 0x78, 0x31, 0x45, 0x72, 0x4b, 0x6d, 0x35,
352
    0x6c, 0x5a, 0x44, 0x41, 0x53, 0x32, 0x62, 0x0a,
353
    0x62, 0x34, 0x72, 0x6c, 0x74, 0x7a, 0x71, 0x4a,
354
    0x52, 0x55, 0x45, 0x4b, 0x79, 0x45, 0x71, 0x6a,
355
    0x71, 0x7a, 0x50, 0x7a, 0x67, 0x61, 0x73, 0x4f,
356
    0x61, 0x30, 0x6a, 0x57, 0x45, 0x71, 0x2f, 0x66,
357
    0x78, 0x75, 0x47, 0x63, 0x2f, 0x62, 0x69, 0x78,
358
    0x67, 0x2f, 0x45, 0x42, 0x61, 0x51, 0x38, 0x79,
359
    0x79, 0x54, 0x47, 0x59, 0x64, 0x49, 0x59, 0x79,
360
    0x72, 0x37, 0x44, 0x4b, 0x59, 0x59, 0x6a, 0x43,
361
    0x0a, 0x30, 0x41, 0x47, 0x56, 0x6e, 0x42, 0x43,
362
    0x68, 0x30, 0x2b, 0x54, 0x46, 0x55, 0x44, 0x42,
363
    0x31, 0x6b, 0x66, 0x77, 0x6b, 0x62, 0x65, 0x66,
364
    0x32, 0x62, 0x38, 0x79, 0x75, 0x66, 0x51, 0x2f,
365
    0x76, 0x4a, 0x77, 0x63, 0x4f, 0x4a, 0x2b, 0x35,
366
    0x6b, 0x42, 0x58, 0x51, 0x5a, 0x78, 0x38, 0x2b,
367
    0x4c, 0x38, 0x55, 0x39, 0x69, 0x57, 0x4b, 0x41,
368
    0x4e, 0x58, 0x78, 0x6b, 0x45, 0x65, 0x43, 0x58,
369
    0x32, 0x0a, 0x69, 0x57, 0x50, 0x5a, 0x50, 0x7a,
370
    0x35, 0x32, 0x70, 0x54, 0x54, 0x59, 0x6c, 0x66,
371
    0x39, 0x30, 0x50, 0x4c, 0x7a, 0x45, 0x57, 0x36,
372
    0x51, 0x79, 0x44, 0x77, 0x4b, 0x42, 0x67, 0x51,
373
    0x43, 0x35, 0x43, 0x4b, 0x79, 0x66, 0x55, 0x77,
374
    0x78, 0x33, 0x42, 0x61, 0x32, 0x69, 0x58, 0x74,
375
    0x66, 0x49, 0x72, 0x65, 0x79, 0x50, 0x71, 0x44,
376
    0x6f, 0x62, 0x62, 0x79, 0x62, 0x79, 0x54, 0x45,
377
    0x59, 0x6b, 0x0a, 0x61, 0x79, 0x41, 0x32, 0x6f,
378
    0x45, 0x6c, 0x53, 0x64, 0x65, 0x6a, 0x67, 0x56,
379
    0x6b, 0x57, 0x77, 0x4a, 0x2b, 0x71, 0x37, 0x37,
380
    0x67, 0x77, 0x72, 0x6e, 0x46, 0x35, 0x50, 0x65,
381
    0x39, 0x7a, 0x62, 0x70, 0x55, 0x42, 0x6f, 0x63,
382
    0x37, 0x56, 0x4a, 0x6a, 0x72, 0x52, 0x68, 0x55,
383
    0x6f, 0x6a, 0x49, 0x37, 0x4c, 0x4f, 0x79, 0x53,
384
    0x79, 0x74, 0x6f, 0x33, 0x57, 0x59, 0x59, 0x6f,
385
    0x63, 0x7a, 0x58, 0x0a, 0x4c, 0x70, 0x72, 0x7a,
386
    0x50, 0x6e, 0x6a, 0x32, 0x79, 0x45, 0x56, 0x65,
387
    0x56, 0x32, 0x6c, 0x72, 0x54, 0x53, 0x36, 0x6c,
388
    0x4b, 0x4e, 0x70, 0x64, 0x72, 0x61, 0x4f, 0x38,
389
    0x51, 0x5a, 0x63, 0x53, 0x44, 0x37, 0x6d, 0x55,
390
    0x55, 0x6d, 0x69, 0x4e, 0x52, 0x5a, 0x6e, 0x6f,
391
    0x50, 0x4b, 0x31, 0x36, 0x4d, 0x6d, 0x39, 0x71,
392
    0x6a, 0x6b, 0x6b, 0x32, 0x39, 0x48, 0x6e, 0x59,
393
    0x37, 0x4d, 0x73, 0x71, 0x0a, 0x70, 0x6b, 0x69,
394
    0x4f, 0x67, 0x34, 0x68, 0x75, 0x4e, 0x77, 0x4b,
395
    0x42, 0x67, 0x51, 0x43, 0x6b, 0x68, 0x32, 0x48,
396
    0x42, 0x74, 0x4f, 0x58, 0x6a, 0x48, 0x2f, 0x47,
397
    0x62, 0x58, 0x56, 0x6b, 0x6c, 0x63, 0x63, 0x30,
398
    0x4f, 0x6b, 0x34, 0x65, 0x30, 0x76, 0x76, 0x4a,
399
    0x53, 0x41, 0x6b, 0x6e, 0x47, 0x6c, 0x6d, 0x57,
400
    0x6c, 0x37, 0x2b, 0x4d, 0x35, 0x78, 0x51, 0x33,
401
    0x6b, 0x69, 0x6b, 0x59, 0x38, 0x0a, 0x44, 0x37,
402
    0x78, 0x4e, 0x46, 0x32, 0x58, 0x73, 0x63, 0x59,
403
    0x2f, 0x51, 0x73, 0x61, 0x44, 0x76, 0x54, 0x41,
404
    0x75, 0x37, 0x58, 0x34, 0x74, 0x47, 0x42, 0x41,
405
    0x47, 0x4d, 0x39, 0x6f, 0x51, 0x64, 0x74, 0x79,
406
    0x4e, 0x69, 0x65, 0x74, 0x6e, 0x31, 0x62, 0x35,
407
    0x4a, 0x66, 0x6d, 0x42, 0x79, 0x7a, 0x30, 0x55,
408
    0x37, 0x42, 0x2b, 0x47, 0x73, 0x76, 0x32, 0x5a,
409
    0x53, 0x37, 0x4b, 0x31, 0x44, 0x55, 0x0a, 0x39,
410
    0x73, 0x54, 0x4c, 0x41, 0x32, 0x45, 0x38, 0x68,
411
    0x4d, 0x6d, 0x37, 0x33, 0x44, 0x70, 0x51, 0x31,
412
    0x55, 0x78, 0x38, 0x42, 0x62, 0x65, 0x43, 0x4b,
413
    0x69, 0x56, 0x79, 0x35, 0x4d, 0x39, 0x50, 0x66,
414
    0x44, 0x63, 0x7a, 0x33, 0x42, 0x4f, 0x6d, 0x6c,
415
    0x4a, 0x64, 0x66, 0x77, 0x68, 0x4b, 0x51, 0x5a,
416
    0x76, 0x6e, 0x69, 0x79, 0x48, 0x52, 0x6c, 0x42,
417
    0x77, 0x4b, 0x42, 0x67, 0x51, 0x43, 0x48, 0x0a,
418
    0x2f, 0x73, 0x41, 0x68, 0x4f, 0x63, 0x44, 0x6e,
419
    0x6d, 0x64, 0x7a, 0x4d, 0x67, 0x6a, 0x6a, 0x47,
420
    0x33, 0x6b, 0x34, 0x49, 0x4a, 0x2f, 0x54, 0x4e,
421
    0x52, 0x52, 0x79, 0x79, 0x36, 0x53, 0x79, 0x45,
422
    0x68, 0x39, 0x66, 0x64, 0x54, 0x6d, 0x47, 0x56,
423
    0x6f, 0x65, 0x50, 0x50, 0x50, 0x70, 0x6c, 0x70,
424
    0x70, 0x32, 0x7a, 0x33, 0x51, 0x7a, 0x62, 0x65,
425
    0x74, 0x73, 0x62, 0x36, 0x56, 0x47, 0x63, 0x33,
426
    0x0a, 0x61, 0x48, 0x57, 0x32, 0x54, 0x35, 0x54,
427
    0x6d, 0x77, 0x32, 0x51, 0x41, 0x51, 0x39, 0x45,
428
    0x56, 0x48, 0x43, 0x50, 0x57, 0x33, 0x7a, 0x6a,
429
    0x41, 0x6b, 0x6a, 0x6a, 0x2f, 0x30, 0x61, 0x76,
430
    0x6b, 0x57, 0x2f, 0x53, 0x32, 0x34, 0x79, 0x75,
431
    0x30, 0x39, 0x65, 0x31, 0x47, 0x4d, 0x61, 0x6a,
432
    0x68, 0x6e, 0x4a, 0x43, 0x30, 0x41, 0x78, 0x71,
433
    0x37, 0x7a, 0x32, 0x75, 0x51, 0x61, 0x67, 0x54,
434
    0x47, 0x0a, 0x32, 0x5a, 0x66, 0x6b, 0x55, 0x38,
435
    0x31, 0x55, 0x52, 0x39, 0x75, 0x65, 0x76, 0x54,
436
    0x6f, 0x6a, 0x6e, 0x66, 0x34, 0x56, 0x71, 0x77,
437
    0x35, 0x55, 0x76, 0x63, 0x72, 0x77, 0x6a, 0x4e,
438
    0x6d, 0x6d, 0x4e, 0x79, 0x45, 0x4d, 0x33, 0x63,
439
    0x2f, 0x67, 0x63, 0x51, 0x4b, 0x42, 0x67, 0x48,
440
    0x61, 0x32, 0x64, 0x54, 0x35, 0x73, 0x76, 0x7a,
441
    0x4d, 0x31, 0x6a, 0x52, 0x65, 0x69, 0x4f, 0x33,
442
    0x56, 0x74, 0x0a, 0x64, 0x41, 0x55, 0x44, 0x7a,
443
    0x74, 0x47, 0x4b, 0x55, 0x45, 0x33, 0x63, 0x6c,
444
    0x50, 0x56, 0x33, 0x35, 0x4c, 0x32, 0x78, 0x6d,
445
    0x4a, 0x65, 0x4a, 0x44, 0x58, 0x50, 0x4f, 0x71,
446
    0x43, 0x4c, 0x33, 0x71, 0x6f, 0x5a, 0x39, 0x41,
447
    0x36, 0x68, 0x48, 0x6d, 0x44, 0x77, 0x36, 0x67,
448
    0x6d, 0x67, 0x38, 0x32, 0x67, 0x51, 0x44, 0x51,
449
    0x65, 0x4a, 0x62, 0x4c, 0x2f, 0x2b, 0x6a, 0x4b,
450
    0x6b, 0x6f, 0x6e, 0x0a, 0x65, 0x36, 0x61, 0x74,
451
    0x48, 0x2f, 0x44, 0x66, 0x72, 0x2b, 0x4d, 0x34,
452
    0x6e, 0x50, 0x66, 0x74, 0x39, 0x4c, 0x74, 0x34,
453
    0x66, 0x4f, 0x41, 0x57, 0x4f, 0x51, 0x33, 0x74,
454
    0x44, 0x73, 0x44, 0x75, 0x43, 0x6b, 0x4f, 0x4d,
455
    0x6a, 0x53, 0x54, 0x6e, 0x38, 0x63, 0x4c, 0x4d,
456
    0x5a, 0x4c, 0x47, 0x63, 0x77, 0x54, 0x32, 0x48,
457
    0x31, 0x48, 0x32, 0x76, 0x42, 0x6f, 0x63, 0x4d,
458
    0x2b, 0x55, 0x54, 0x64, 0x0a, 0x68, 0x6c, 0x6a,
459
    0x41, 0x56, 0x6e, 0x42, 0x39, 0x76, 0x36, 0x4e,
460
    0x4d, 0x66, 0x63, 0x52, 0x45, 0x52, 0x54, 0x78,
461
    0x31, 0x30, 0x53, 0x55, 0x63, 0x0a, 0x2d, 0x2d,
462
    0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50,
463
    0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
464
    0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
465
};
466
467
#ifndef OPENSSL_NO_EC
468
/*
469
-----BEGIN EC PRIVATE KEY-----
470
MHcCAQEEIJLyl7hJjpQL/RhP1x2zS79xdiPJQB683gWeqcqHPeZkoAoGCCqGSM49
471
AwEHoUQDQgAEdsjygVYjjaKBF4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazI
472
D/xy8JiYjtPKVE/Zqwbmivp2UwtH28a7NQ==
473
-----END EC PRIVATE KEY-----
474
 */
475
static const char ECDSAPrivateKeyPEM[] = {
476
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45,
477
    0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45,
478
    0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x48, 0x63, 0x43, 0x41,
479
    0x51, 0x45, 0x45, 0x49, 0x4a, 0x4c, 0x79, 0x6c, 0x37, 0x68, 0x4a, 0x6a,
480
    0x70, 0x51, 0x4c, 0x2f, 0x52, 0x68, 0x50, 0x31, 0x78, 0x32, 0x7a, 0x53,
481
    0x37, 0x39, 0x78, 0x64, 0x69, 0x50, 0x4a, 0x51, 0x42, 0x36, 0x38, 0x33,
482
    0x67, 0x57, 0x65, 0x71, 0x63, 0x71, 0x48, 0x50, 0x65, 0x5a, 0x6b, 0x6f,
483
    0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x0a,
484
    0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45,
485
    0x64, 0x73, 0x6a, 0x79, 0x67, 0x56, 0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42,
486
    0x46, 0x34, 0x43, 0x4e, 0x45, 0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30,
487
    0x31, 0x37, 0x70, 0x35, 0x2f, 0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f,
488
    0x54, 0x48, 0x79, 0x39, 0x49, 0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44,
489
    0x44, 0x61, 0x7a, 0x49, 0x0a, 0x44, 0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69,
490
    0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56, 0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62,
491
    0x6d, 0x69, 0x76, 0x70, 0x32, 0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61,
492
    0x37, 0x4e, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45,
493
    0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
494
    0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
495
};
496
497
/*
498
-----BEGIN CERTIFICATE-----
499
MIIBXzCCAQagAwIBAgIJAK6/Yvf/ain6MAoGCCqGSM49BAMCMBIxEDAOBgNVBAoM
500
B0FjbWUgQ28wHhcNMTYxMjI1MTEzOTI3WhcNMjYxMjI1MTEzOTI3WjASMRAwDgYD
501
VQQKDAdBY21lIENvMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdsjygVYjjaKB
502
F4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazID/xy8JiYjtPKVE/Zqwbmivp2
503
UwtH28a7NaNFMEMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYI
504
KwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0cAMEQC
505
IEzr3t/jejVE9oSnBp8c3P2p+lDLVRrB8zxLyjZvirUXAiAyQPaE9MNcL8/nRpuu
506
99I1enCSmWIAJ57IwuJ/n1d45Q==
507
-----END CERTIFICATE-----
508
 */
509
static const char ECDSACertPEM[] = {
510
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
511
    0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
512
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x58, 0x7a, 0x43, 0x43,
513
    0x41, 0x51, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
514
    0x41, 0x4b, 0x36, 0x2f, 0x59, 0x76, 0x66, 0x2f, 0x61, 0x69, 0x6e, 0x36,
515
    0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39,
516
    0x42, 0x41, 0x4d, 0x43, 0x4d, 0x42, 0x49, 0x78, 0x45, 0x44, 0x41, 0x4f,
517
    0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x42, 0x30, 0x46,
518
    0x6a, 0x62, 0x57, 0x55, 0x67, 0x51, 0x32, 0x38, 0x77, 0x48, 0x68, 0x63,
519
    0x4e, 0x4d, 0x54, 0x59, 0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45,
520
    0x7a, 0x4f, 0x54, 0x49, 0x33, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x59,
521
    0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45, 0x7a, 0x4f, 0x54, 0x49,
522
    0x33, 0x57, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59,
523
    0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x64, 0x42, 0x59, 0x32,
524
    0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x46, 0x6b, 0x77, 0x45, 0x77,
525
    0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51,
526
    0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x44, 0x41, 0x51,
527
    0x63, 0x44, 0x51, 0x67, 0x41, 0x45, 0x64, 0x73, 0x6a, 0x79, 0x67, 0x56,
528
    0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42, 0x0a, 0x46, 0x34, 0x43, 0x4e, 0x45,
529
    0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30, 0x31, 0x37, 0x70, 0x35, 0x2f,
530
    0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f, 0x54, 0x48, 0x79, 0x39, 0x49,
531
    0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44, 0x44, 0x61, 0x7a, 0x49, 0x44,
532
    0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69, 0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56,
533
    0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62, 0x6d, 0x69, 0x76, 0x70, 0x32, 0x0a,
534
    0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61, 0x37, 0x4e, 0x61, 0x4e, 0x46,
535
    0x4d, 0x45, 0x4d, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54,
536
    0x42, 0x41, 0x49, 0x77, 0x41, 0x44, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56,
537
    0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x42, 0x61, 0x41, 0x77,
538
    0x45, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6c, 0x42, 0x41, 0x77, 0x77,
539
    0x43, 0x67, 0x59, 0x49, 0x0a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55,
540
    0x48, 0x41, 0x77, 0x45, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30,
541
    0x52, 0x42, 0x41, 0x30, 0x77, 0x43, 0x34, 0x49, 0x4a, 0x62, 0x47, 0x39,
542
    0x6a, 0x59, 0x57, 0x78, 0x6f, 0x62, 0x33, 0x4e, 0x30, 0x4d, 0x41, 0x6f,
543
    0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d,
544
    0x43, 0x41, 0x30, 0x63, 0x41, 0x4d, 0x45, 0x51, 0x43, 0x0a, 0x49, 0x45,
545
    0x7a, 0x72, 0x33, 0x74, 0x2f, 0x6a, 0x65, 0x6a, 0x56, 0x45, 0x39, 0x6f,
546
    0x53, 0x6e, 0x42, 0x70, 0x38, 0x63, 0x33, 0x50, 0x32, 0x70, 0x2b, 0x6c,
547
    0x44, 0x4c, 0x56, 0x52, 0x72, 0x42, 0x38, 0x7a, 0x78, 0x4c, 0x79, 0x6a,
548
    0x5a, 0x76, 0x69, 0x72, 0x55, 0x58, 0x41, 0x69, 0x41, 0x79, 0x51, 0x50,
549
    0x61, 0x45, 0x39, 0x4d, 0x4e, 0x63, 0x4c, 0x38, 0x2f, 0x6e, 0x52, 0x70,
550
    0x75, 0x75, 0x0a, 0x39, 0x39, 0x49, 0x31, 0x65, 0x6e, 0x43, 0x53, 0x6d,
551
    0x57, 0x49, 0x41, 0x4a, 0x35, 0x37, 0x49, 0x77, 0x75, 0x4a, 0x2f, 0x6e,
552
    0x31, 0x64, 0x34, 0x35, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d,
553
    0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49,
554
    0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
555
};
556
#endif
557
558
#ifndef OPENSSL_NO_DSA
559
/*
560
-----BEGIN DSA PRIVATE KEY-----
561
MIIBuwIBAAKBgQDdkFKzNABLOha7Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXP
562
Wzf03ULKS5UKjA6WpR6EiZAhm+PdxusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM8
563
0TGcnw5ijwKmSw5yyHPDWdiHzoqEBlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEg
564
QqWRf/1EIZZcgM65Qpd65YuxAoGBAKBauV/RuloFHoSy5iWXESDywiS380tN5974
565
GukGwoYdZo5uSIH6ahpeNSef0MbHGAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+
566
QtQHOwvQHgLAynhI4i73c794czHaR+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmG
567
POIMWNXXAoGAI6Ep5IE7yn3JzkXO9B6tC3bbDM+ZzuuInwZLbtZ8lim7Dsqabg4k
568
2YbE4R95Bnfwnjsyl80mq/DbQN5lAHBvjDrkC6ItojBGKI3+iIrqGUEJdxvl4ulj
569
F0PmSD7zvIG8BfocKOel+EHH0YryExiW6krV1KW2ZRmJrqSFw6KCjV0CFFQFbPfU
570
xy5PmKytJmXR8BmppkIO
571
-----END DSA PRIVATE KEY-----
572
 */
573
static const char DSAPrivateKeyPEM[] = {
574
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x44,
575
    0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
576
    0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42,
577
    0x75, 0x77, 0x49, 0x42, 0x41, 0x41, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x64,
578
    0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41, 0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37,
579
    0x45, 0x71, 0x6a, 0x37, 0x30, 0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68,
580
    0x74, 0x52, 0x36, 0x62, 0x78, 0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d,
581
    0x53, 0x5a, 0x54, 0x59, 0x69, 0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50,
582
    0x0a, 0x57, 0x7a, 0x66, 0x30, 0x33, 0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55,
583
    0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70, 0x52, 0x36, 0x45, 0x69, 0x5a, 0x41,
584
    0x68, 0x6d, 0x2b, 0x50, 0x64, 0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66,
585
    0x41, 0x75, 0x52, 0x5a, 0x4c, 0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78,
586
    0x6e, 0x31, 0x66, 0x33, 0x34, 0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51,
587
    0x4e, 0x61, 0x45, 0x4d, 0x38, 0x0a, 0x30, 0x54, 0x47, 0x63, 0x6e, 0x77,
588
    0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d, 0x53, 0x77, 0x35, 0x79, 0x79, 0x48,
589
    0x50, 0x44, 0x57, 0x64, 0x69, 0x48, 0x7a, 0x6f, 0x71, 0x45, 0x42, 0x6c,
590
    0x68, 0x41, 0x66, 0x38, 0x4e, 0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61,
591
    0x78, 0x2f, 0x63, 0x6c, 0x73, 0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52,
592
    0x4c, 0x41, 0x64, 0x77, 0x49, 0x56, 0x41, 0x49, 0x45, 0x67, 0x0a, 0x51,
593
    0x71, 0x57, 0x52, 0x66, 0x2f, 0x31, 0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67,
594
    0x4d, 0x36, 0x35, 0x51, 0x70, 0x64, 0x36, 0x35, 0x59, 0x75, 0x78, 0x41,
595
    0x6f, 0x47, 0x42, 0x41, 0x4b, 0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75,
596
    0x6c, 0x6f, 0x46, 0x48, 0x6f, 0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45,
597
    0x53, 0x44, 0x79, 0x77, 0x69, 0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35,
598
    0x39, 0x37, 0x34, 0x0a, 0x47, 0x75, 0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64,
599
    0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49, 0x48, 0x36, 0x61, 0x68, 0x70, 0x65,
600
    0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d, 0x62, 0x48, 0x47, 0x41, 0x7a, 0x72,
601
    0x37, 0x5a, 0x56, 0x45, 0x6e, 0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77,
602
    0x48, 0x31, 0x67, 0x52, 0x76, 0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62,
603
    0x6d, 0x63, 0x76, 0x74, 0x64, 0x33, 0x72, 0x2b, 0x0a, 0x51, 0x74, 0x51,
604
    0x48, 0x4f, 0x77, 0x76, 0x51, 0x48, 0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68,
605
    0x49, 0x34, 0x69, 0x37, 0x33, 0x63, 0x37, 0x39, 0x34, 0x63, 0x7a, 0x48,
606
    0x61, 0x52, 0x2b, 0x34, 0x33, 0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77,
607
    0x44, 0x6e, 0x51, 0x64, 0x75, 0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f,
608
    0x2f, 0x6a, 0x69, 0x69, 0x5a, 0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d,
609
    0x47, 0x0a, 0x50, 0x4f, 0x49, 0x4d, 0x57, 0x4e, 0x58, 0x58, 0x41, 0x6f,
610
    0x47, 0x41, 0x49, 0x36, 0x45, 0x70, 0x35, 0x49, 0x45, 0x37, 0x79, 0x6e,
611
    0x33, 0x4a, 0x7a, 0x6b, 0x58, 0x4f, 0x39, 0x42, 0x36, 0x74, 0x43, 0x33,
612
    0x62, 0x62, 0x44, 0x4d, 0x2b, 0x5a, 0x7a, 0x75, 0x75, 0x49, 0x6e, 0x77,
613
    0x5a, 0x4c, 0x62, 0x74, 0x5a, 0x38, 0x6c, 0x69, 0x6d, 0x37, 0x44, 0x73,
614
    0x71, 0x61, 0x62, 0x67, 0x34, 0x6b, 0x0a, 0x32, 0x59, 0x62, 0x45, 0x34,
615
    0x52, 0x39, 0x35, 0x42, 0x6e, 0x66, 0x77, 0x6e, 0x6a, 0x73, 0x79, 0x6c,
616
    0x38, 0x30, 0x6d, 0x71, 0x2f, 0x44, 0x62, 0x51, 0x4e, 0x35, 0x6c, 0x41,
617
    0x48, 0x42, 0x76, 0x6a, 0x44, 0x72, 0x6b, 0x43, 0x36, 0x49, 0x74, 0x6f,
618
    0x6a, 0x42, 0x47, 0x4b, 0x49, 0x33, 0x2b, 0x69, 0x49, 0x72, 0x71, 0x47,
619
    0x55, 0x45, 0x4a, 0x64, 0x78, 0x76, 0x6c, 0x34, 0x75, 0x6c, 0x6a, 0x0a,
620
    0x46, 0x30, 0x50, 0x6d, 0x53, 0x44, 0x37, 0x7a, 0x76, 0x49, 0x47, 0x38,
621
    0x42, 0x66, 0x6f, 0x63, 0x4b, 0x4f, 0x65, 0x6c, 0x2b, 0x45, 0x48, 0x48,
622
    0x30, 0x59, 0x72, 0x79, 0x45, 0x78, 0x69, 0x57, 0x36, 0x6b, 0x72, 0x56,
623
    0x31, 0x4b, 0x57, 0x32, 0x5a, 0x52, 0x6d, 0x4a, 0x72, 0x71, 0x53, 0x46,
624
    0x77, 0x36, 0x4b, 0x43, 0x6a, 0x56, 0x30, 0x43, 0x46, 0x46, 0x51, 0x46,
625
    0x62, 0x50, 0x66, 0x55, 0x0a, 0x78, 0x79, 0x35, 0x50, 0x6d, 0x4b, 0x79,
626
    0x74, 0x4a, 0x6d, 0x58, 0x52, 0x38, 0x42, 0x6d, 0x70, 0x70, 0x6b, 0x49,
627
    0x4f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x44,
628
    0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
629
    0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
630
};
631
632
/*
633
-----BEGIN CERTIFICATE-----
634
MIICqTCCAmegAwIBAgIJAILDGUk37fWGMAsGCWCGSAFlAwQDAjASMRAwDgYDVQQK
635
DAdBY21lIENvMB4XDTE2MTIyNTEzMjUzNloXDTI2MTIyNTEzMjUzNlowEjEQMA4G
636
A1UECgwHQWNtZSBDbzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDdkFKzNABLOha7
637
Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXPWzf03ULKS5UKjA6WpR6EiZAhm+Pd
638
xusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM80TGcnw5ijwKmSw5yyHPDWdiHzoqE
639
BlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEgQqWRf/1EIZZcgM65Qpd65YuxAoGB
640
AKBauV/RuloFHoSy5iWXESDywiS380tN5974GukGwoYdZo5uSIH6ahpeNSef0MbH
641
GAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+QtQHOwvQHgLAynhI4i73c794czHa
642
R+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmGPOIMWNXXA4GEAAKBgCOhKeSBO8p9
643
yc5FzvQerQt22wzPmc7riJ8GS27WfJYpuw7Kmm4OJNmGxOEfeQZ38J47MpfNJqvw
644
20DeZQBwb4w65AuiLaIwRiiN/oiK6hlBCXcb5eLpYxdD5kg+87yBvAX6HCjnpfhB
645
x9GK8hMYlupK1dSltmUZia6khcOigo1do0UwQzAJBgNVHRMEAjAAMAsGA1UdDwQE
646
AwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAUBgNVHREEDTALgglsb2NhbGhvc3Qw
647
CwYJYIZIAWUDBAMCAy8AMCwCFClxInXTRWNJEWdi5ilNr/fbM1bKAhQy4B7wtmfd
648
I+zV6g3w9qBkNqStpA==
649
-----END CERTIFICATE-----
650
 */
651
static const char DSACertPEM[] = {
652
    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
653
    0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
654
    0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x71, 0x54, 0x43, 0x43,
655
    0x41, 0x6d, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
656
    0x41, 0x49, 0x4c, 0x44, 0x47, 0x55, 0x6b, 0x33, 0x37, 0x66, 0x57, 0x47,
657
    0x4d, 0x41, 0x73, 0x47, 0x43, 0x57, 0x43, 0x47, 0x53, 0x41, 0x46, 0x6c,
658
    0x41, 0x77, 0x51, 0x44, 0x41, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77,
659
    0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x64,
660
    0x42, 0x59, 0x32, 0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x42, 0x34,
661
    0x58, 0x44, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45,
662
    0x7a, 0x4d, 0x6a, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x49,
663
    0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45, 0x7a, 0x4d, 0x6a, 0x55,
664
    0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x45, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34,
665
    0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x48, 0x51, 0x57,
666
    0x4e, 0x74, 0x5a, 0x53, 0x42, 0x44, 0x62, 0x7a, 0x43, 0x43, 0x41, 0x62,
667
    0x63, 0x77, 0x67, 0x67, 0x45, 0x73, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b,
668
    0x6a, 0x4f, 0x4f, 0x41, 0x51, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x48, 0x77,
669
    0x4b, 0x42, 0x67, 0x51, 0x44, 0x64, 0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41,
670
    0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37, 0x0a, 0x45, 0x71, 0x6a, 0x37, 0x30,
671
    0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68, 0x74, 0x52, 0x36, 0x62, 0x78,
672
    0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d, 0x53, 0x5a, 0x54, 0x59, 0x69,
673
    0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50, 0x57, 0x7a, 0x66, 0x30, 0x33,
674
    0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55, 0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70,
675
    0x52, 0x36, 0x45, 0x69, 0x5a, 0x41, 0x68, 0x6d, 0x2b, 0x50, 0x64, 0x0a,
676
    0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66, 0x41, 0x75, 0x52, 0x5a, 0x4c,
677
    0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78, 0x6e, 0x31, 0x66, 0x33, 0x34,
678
    0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51, 0x4e, 0x61, 0x45, 0x4d, 0x38,
679
    0x30, 0x54, 0x47, 0x63, 0x6e, 0x77, 0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d,
680
    0x53, 0x77, 0x35, 0x79, 0x79, 0x48, 0x50, 0x44, 0x57, 0x64, 0x69, 0x48,
681
    0x7a, 0x6f, 0x71, 0x45, 0x0a, 0x42, 0x6c, 0x68, 0x41, 0x66, 0x38, 0x4e,
682
    0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61, 0x78, 0x2f, 0x63, 0x6c, 0x73,
683
    0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52, 0x4c, 0x41, 0x64, 0x77, 0x49,
684
    0x56, 0x41, 0x49, 0x45, 0x67, 0x51, 0x71, 0x57, 0x52, 0x66, 0x2f, 0x31,
685
    0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67, 0x4d, 0x36, 0x35, 0x51, 0x70, 0x64,
686
    0x36, 0x35, 0x59, 0x75, 0x78, 0x41, 0x6f, 0x47, 0x42, 0x0a, 0x41, 0x4b,
687
    0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75, 0x6c, 0x6f, 0x46, 0x48, 0x6f,
688
    0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45, 0x53, 0x44, 0x79, 0x77, 0x69,
689
    0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35, 0x39, 0x37, 0x34, 0x47, 0x75,
690
    0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64, 0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49,
691
    0x48, 0x36, 0x61, 0x68, 0x70, 0x65, 0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d,
692
    0x62, 0x48, 0x0a, 0x47, 0x41, 0x7a, 0x72, 0x37, 0x5a, 0x56, 0x45, 0x6e,
693
    0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77, 0x48, 0x31, 0x67, 0x52, 0x76,
694
    0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62, 0x6d, 0x63, 0x76, 0x74, 0x64,
695
    0x33, 0x72, 0x2b, 0x51, 0x74, 0x51, 0x48, 0x4f, 0x77, 0x76, 0x51, 0x48,
696
    0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68, 0x49, 0x34, 0x69, 0x37, 0x33, 0x63,
697
    0x37, 0x39, 0x34, 0x63, 0x7a, 0x48, 0x61, 0x0a, 0x52, 0x2b, 0x34, 0x33,
698
    0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77, 0x44, 0x6e, 0x51, 0x64, 0x75,
699
    0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f, 0x2f, 0x6a, 0x69, 0x69, 0x5a,
700
    0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d, 0x47, 0x50, 0x4f, 0x49, 0x4d,
701
    0x57, 0x4e, 0x58, 0x58, 0x41, 0x34, 0x47, 0x45, 0x41, 0x41, 0x4b, 0x42,
702
    0x67, 0x43, 0x4f, 0x68, 0x4b, 0x65, 0x53, 0x42, 0x4f, 0x38, 0x70, 0x39,
703
    0x0a, 0x79, 0x63, 0x35, 0x46, 0x7a, 0x76, 0x51, 0x65, 0x72, 0x51, 0x74,
704
    0x32, 0x32, 0x77, 0x7a, 0x50, 0x6d, 0x63, 0x37, 0x72, 0x69, 0x4a, 0x38,
705
    0x47, 0x53, 0x32, 0x37, 0x57, 0x66, 0x4a, 0x59, 0x70, 0x75, 0x77, 0x37,
706
    0x4b, 0x6d, 0x6d, 0x34, 0x4f, 0x4a, 0x4e, 0x6d, 0x47, 0x78, 0x4f, 0x45,
707
    0x66, 0x65, 0x51, 0x5a, 0x33, 0x38, 0x4a, 0x34, 0x37, 0x4d, 0x70, 0x66,
708
    0x4e, 0x4a, 0x71, 0x76, 0x77, 0x0a, 0x32, 0x30, 0x44, 0x65, 0x5a, 0x51,
709
    0x42, 0x77, 0x62, 0x34, 0x77, 0x36, 0x35, 0x41, 0x75, 0x69, 0x4c, 0x61,
710
    0x49, 0x77, 0x52, 0x69, 0x69, 0x4e, 0x2f, 0x6f, 0x69, 0x4b, 0x36, 0x68,
711
    0x6c, 0x42, 0x43, 0x58, 0x63, 0x62, 0x35, 0x65, 0x4c, 0x70, 0x59, 0x78,
712
    0x64, 0x44, 0x35, 0x6b, 0x67, 0x2b, 0x38, 0x37, 0x79, 0x42, 0x76, 0x41,
713
    0x58, 0x36, 0x48, 0x43, 0x6a, 0x6e, 0x70, 0x66, 0x68, 0x42, 0x0a, 0x78,
714
    0x39, 0x47, 0x4b, 0x38, 0x68, 0x4d, 0x59, 0x6c, 0x75, 0x70, 0x4b, 0x31,
715
    0x64, 0x53, 0x6c, 0x74, 0x6d, 0x55, 0x5a, 0x69, 0x61, 0x36, 0x6b, 0x68,
716
    0x63, 0x4f, 0x69, 0x67, 0x6f, 0x31, 0x64, 0x6f, 0x30, 0x55, 0x77, 0x51,
717
    0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x45, 0x41,
718
    0x6a, 0x41, 0x41, 0x4d, 0x41, 0x73, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44,
719
    0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x46, 0x6f, 0x44, 0x41, 0x54,
720
    0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x55, 0x45, 0x44, 0x44, 0x41, 0x4b,
721
    0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x44,
722
    0x41, 0x54, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45,
723
    0x44, 0x54, 0x41, 0x4c, 0x67, 0x67, 0x6c, 0x73, 0x62, 0x32, 0x4e, 0x68,
724
    0x62, 0x47, 0x68, 0x76, 0x63, 0x33, 0x51, 0x77, 0x0a, 0x43, 0x77, 0x59,
725
    0x4a, 0x59, 0x49, 0x5a, 0x49, 0x41, 0x57, 0x55, 0x44, 0x42, 0x41, 0x4d,
726
    0x43, 0x41, 0x79, 0x38, 0x41, 0x4d, 0x43, 0x77, 0x43, 0x46, 0x43, 0x6c,
727
    0x78, 0x49, 0x6e, 0x58, 0x54, 0x52, 0x57, 0x4e, 0x4a, 0x45, 0x57, 0x64,
728
    0x69, 0x35, 0x69, 0x6c, 0x4e, 0x72, 0x2f, 0x66, 0x62, 0x4d, 0x31, 0x62,
729
    0x4b, 0x41, 0x68, 0x51, 0x79, 0x34, 0x42, 0x37, 0x77, 0x74, 0x6d, 0x66,
730
    0x64, 0x0a, 0x49, 0x2b, 0x7a, 0x56, 0x36, 0x67, 0x33, 0x77, 0x39, 0x71,
731
    0x42, 0x6b, 0x4e, 0x71, 0x53, 0x74, 0x70, 0x41, 0x3d, 0x3d, 0x0a, 0x2d,
732
    0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54,
733
    0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
734
    0x0a
735
};
736
#endif
737
738
/* unused, to avoid warning. */
739
static int idx;
740
741
1.52k
#define FUZZTIME 1485898104
742
743
#define TIME_IMPL(t)       \
744
930
    {                      \
745
930
        if (t != NULL)     \
746
930
            *t = FUZZTIME; \
747
930
        return FUZZTIME;   \
748
930
    }
749
750
/*
751
 * This might not work in all cases (and definitely not on Windows
752
 * because of the way linkers are) and callees can still get the
753
 * current time instead of the fixed time. This will just result
754
 * in things not being fully reproducible and have a slightly
755
 * different coverage.
756
 */
757
#if !defined(_WIN32)
758
930
time_t time(time_t *t) TIME_IMPL(t)
759
#endif
760
761
    int FuzzerInitialize(int *argc, char ***argv)
762
64
{
763
64
    STACK_OF(SSL_COMP) *comp_methods;
764
765
64
    FuzzerSetRand();
766
64
    OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ASYNC, NULL);
767
64
    OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
768
64
    ERR_clear_error();
769
64
    CRYPTO_free_ex_index(0, -1);
770
64
    idx = SSL_get_ex_data_X509_STORE_CTX_idx();
771
64
    comp_methods = SSL_COMP_get_compression_methods();
772
64
    if (comp_methods != NULL)
773
64
        sk_SSL_COMP_sort(comp_methods);
774
775
64
    return 1;
776
64
}
777
778
static int use_pem_privkey(SSL_CTX *ctx, const void *pem, size_t pem_len)
779
13.2k
{
780
13.2k
    BIO *bio_buf;
781
13.2k
    EVP_PKEY *pkey;
782
13.2k
    int rv = 0;
783
784
13.2k
    bio_buf = BIO_new(BIO_s_mem());
785
13.2k
    if (bio_buf == NULL)
786
0
        return 0;
787
13.2k
    if ((size_t)BIO_write(bio_buf, pem, (int)pem_len) != pem_len) {
788
0
        BIO_free(bio_buf);
789
0
        return 0;
790
0
    }
791
13.2k
    pkey = PEM_read_bio_PrivateKey(bio_buf, NULL, NULL, NULL);
792
13.2k
    BIO_free(bio_buf);
793
13.2k
    if (pkey == NULL)
794
0
        return 0;
795
13.2k
    if (SSL_CTX_use_PrivateKey(ctx, pkey) == 1)
796
13.2k
        rv = 1;
797
13.2k
    EVP_PKEY_free(pkey);
798
13.2k
    return rv;
799
13.2k
}
800
801
static int use_pem_cert(SSL_CTX *ctx, const void *pem, size_t pem_len)
802
13.2k
{
803
13.2k
    BIO *bio_buf;
804
13.2k
    X509 *cert;
805
13.2k
    int rv = 0;
806
807
13.2k
    bio_buf = BIO_new(BIO_s_mem());
808
13.2k
    if (bio_buf == NULL)
809
0
        return 0;
810
13.2k
    if ((size_t)BIO_write(bio_buf, pem, (int)pem_len) != pem_len) {
811
0
        BIO_free(bio_buf);
812
0
        return 0;
813
0
    }
814
13.2k
    cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
815
13.2k
    BIO_free(bio_buf);
816
13.2k
    if (cert == NULL)
817
0
        return 0;
818
13.2k
    if (SSL_CTX_use_certificate(ctx, cert) == 1)
819
13.2k
        rv = 1;
820
13.2k
    X509_free(cert);
821
13.2k
    return rv;
822
13.2k
}
823
824
int FuzzerTestOneInput(const uint8_t *buf, size_t len)
825
4.41k
{
826
4.41k
    SSL *server = NULL;
827
4.41k
    BIO *in;
828
4.41k
    BIO *out;
829
4.41k
    SSL_CTX *ctx;
830
831
4.41k
    if (len < 2 || len > INT_MAX)
832
1
        return 0;
833
834
4.41k
    ctx = SSL_CTX_new(DTLS_server_method());
835
4.41k
    if (ctx == NULL)
836
0
        return 0;
837
838
4.41k
    if (SSL_CTX_set_min_proto_version(ctx, 0) != 1)
839
0
        goto end;
840
4.41k
    if (SSL_CTX_set_cipher_list(ctx, "ALL:eNULL:@SECLEVEL=0") != 1)
841
0
        goto end;
842
843
    /* RSA */
844
4.41k
    if (!use_pem_privkey(ctx, RSAPrivateKeyPEM, sizeof(RSAPrivateKeyPEM)))
845
0
        goto end;
846
4.41k
    if (!use_pem_cert(ctx, RSACertificatePEM, sizeof(RSACertificatePEM)))
847
0
        goto end;
848
849
4.41k
#ifndef OPENSSL_NO_EC
850
    /* ECDSA */
851
4.41k
    if (!use_pem_privkey(ctx, ECDSAPrivateKeyPEM, sizeof(ECDSAPrivateKeyPEM)))
852
0
        goto end;
853
4.41k
    if (!use_pem_cert(ctx, ECDSACertPEM, sizeof(ECDSACertPEM)))
854
0
        goto end;
855
4.41k
#endif
856
857
4.41k
#ifndef OPENSSL_NO_DSA
858
    /* DSA */
859
4.41k
    if (!use_pem_privkey(ctx, DSAPrivateKeyPEM, sizeof(DSAPrivateKeyPEM)))
860
0
        goto end;
861
4.41k
    if (!use_pem_cert(ctx, DSACertPEM, sizeof(DSACertPEM)))
862
0
        goto end;
863
4.41k
#endif
864
865
4.41k
    server = SSL_new(ctx);
866
4.41k
    if (server == NULL)
867
0
        goto end;
868
4.41k
    in = BIO_new(BIO_s_mem());
869
4.41k
    if (in == NULL)
870
0
        goto end;
871
4.41k
    out = BIO_new(BIO_s_mem());
872
4.41k
    if (out == NULL) {
873
0
        BIO_free(in);
874
0
        goto end;
875
0
    }
876
4.41k
    SSL_set_bio(server, in, out);
877
4.41k
    SSL_set_accept_state(server);
878
879
4.41k
    if ((size_t)BIO_write(in, buf, (int)len) != len)
880
0
        goto end;
881
882
4.41k
    if (SSL_do_handshake(server) == 1) {
883
        /* Keep reading application data until error or EOF. */
884
0
        uint8_t tmp[1024];
885
0
        for (;;) {
886
0
            if (SSL_read(server, tmp, sizeof(tmp)) <= 0) {
887
0
                break;
888
0
            }
889
0
        }
890
0
    }
891
4.41k
end:
892
4.41k
    SSL_free(server);
893
4.41k
    ERR_clear_error();
894
4.41k
    SSL_CTX_free(ctx);
895
896
4.41k
    return 0;
897
4.41k
}
898
899
void FuzzerCleanup(void)
900
0
{
901
0
    FuzzerClearRand();
902
0
}