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 static const uint8_t kCertificateDER[] = { 29 0x30, 0x82, 0x02, 0xff, 0x30, 0x82, 0x01, 0xe7, 30 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00, 31 0xb1, 0x84, 0xee, 0x34, 0x99, 0x98, 0x76, 0xfb, 32 0x6f, 0xb2, 0x15, 0xc8, 0x47, 0x79, 0x05, 0x9b, 33 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 34 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 35 0x12, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 36 0x04, 0x0a, 0x13, 0x07, 0x41, 0x63, 0x6d, 0x65, 37 0x20, 0x43, 0x6f, 0x30, 0x1e, 0x17, 0x0d, 0x31, 38 0x35, 0x31, 0x31, 0x30, 0x37, 0x30, 0x30, 0x32, 39 0x34, 0x35, 0x36, 0x5a, 0x17, 0x0d, 0x31, 0x36, 40 0x31, 0x31, 0x30, 0x36, 0x30, 0x30, 0x32, 0x34, 41 0x35, 0x36, 0x5a, 0x30, 0x12, 0x31, 0x10, 0x30, 42 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 43 0x41, 0x63, 0x6d, 0x65, 0x20, 0x43, 0x6f, 0x30, 44 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 45 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 46 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 47 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 48 0xce, 0x47, 0xcb, 0x11, 0xbb, 0xd2, 0x9d, 0x8e, 49 0x9e, 0xd2, 0x1e, 0x14, 0xaf, 0xc7, 0xea, 0xb6, 50 0xc9, 0x38, 0x2a, 0x6f, 0xb3, 0x7e, 0xfb, 0xbc, 51 0xfc, 0x59, 0x42, 0xb9, 0x56, 0xf0, 0x4c, 0x3f, 52 0xf7, 0x31, 0x84, 0xbe, 0xac, 0x03, 0x9e, 0x71, 53 0x91, 0x85, 0xd8, 0x32, 0xbd, 0x00, 0xea, 0xac, 54 0x65, 0xf6, 0x03, 0xc8, 0x0f, 0x8b, 0xfd, 0x6e, 55 0x58, 0x88, 0x04, 0x41, 0x92, 0x74, 0xa6, 0x57, 56 0x2e, 0x8e, 0x88, 0xd5, 0x3d, 0xda, 0x14, 0x3e, 57 0x63, 0x88, 0x22, 0xe3, 0x53, 0xe9, 0xba, 0x39, 58 0x09, 0xac, 0xfb, 0xd0, 0x4c, 0xf2, 0x3c, 0x20, 59 0xd6, 0x97, 0xe6, 0xed, 0xf1, 0x62, 0x1e, 0xe5, 60 0xc9, 0x48, 0xa0, 0xca, 0x2e, 0x3c, 0x14, 0x5a, 61 0x82, 0xd4, 0xed, 0xb1, 0xe3, 0x43, 0xc1, 0x2a, 62 0x59, 0xa5, 0xb9, 0xc8, 0x48, 0xa7, 0x39, 0x23, 63 0x74, 0xa7, 0x37, 0xb0, 0x6f, 0xc3, 0x64, 0x99, 64 0x6c, 0xa2, 0x82, 0xc8, 0xf6, 0xdb, 0x86, 0x40, 65 0xce, 0xd1, 0x85, 0x9f, 0xce, 0x69, 0xf4, 0x15, 66 0x2a, 0x23, 0xca, 0xea, 0xb7, 0x7b, 0xdf, 0xfb, 67 0x43, 0x5f, 0xff, 0x7a, 0x49, 0x49, 0x0e, 0xe7, 68 0x02, 0x51, 0x45, 0x13, 0xe8, 0x90, 0x64, 0x21, 69 0x0c, 0x26, 0x2b, 0x5d, 0xfc, 0xe4, 0xb5, 0x86, 70 0x89, 0x43, 0x22, 0x4c, 0xf3, 0x3b, 0xf3, 0x09, 71 0xc4, 0xa4, 0x10, 0x80, 0xf2, 0x46, 0xe2, 0x46, 72 0x8f, 0x76, 0x50, 0xbf, 0xaf, 0x2b, 0x90, 0x1b, 73 0x78, 0xc7, 0xcf, 0xc1, 0x77, 0xd0, 0xfb, 0xa9, 74 0xfb, 0xc9, 0x66, 0x5a, 0xc5, 0x9b, 0x31, 0x41, 75 0x67, 0x01, 0xbe, 0x33, 0x10, 0xba, 0x05, 0x58, 76 0xed, 0x76, 0x53, 0xde, 0x5d, 0xc1, 0xe8, 0xbb, 77 0x9f, 0xf1, 0xcd, 0xfb, 0xdf, 0x64, 0x7f, 0xd7, 78 0x18, 0xab, 0x0f, 0x94, 0x28, 0x95, 0x4a, 0xcc, 79 0x6a, 0xa9, 0x50, 0xc7, 0x05, 0x47, 0x10, 0x41, 80 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, 0x30, 81 0x4e, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 82 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x05, 83 0xa0, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x25, 84 0x04, 0x0c, 0x30, 0x0a, 0x06, 0x08, 0x2b, 0x06, 85 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x0c, 86 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 87 0x04, 0x02, 0x30, 0x00, 0x30, 0x19, 0x06, 0x03, 88 0x55, 0x1d, 0x11, 0x04, 0x12, 0x30, 0x10, 0x82, 89 0x0e, 0x66, 0x75, 0x7a, 0x7a, 0x2e, 0x62, 0x6f, 90 0x72, 0x69, 0x6e, 0x67, 0x73, 0x73, 0x6c, 0x30, 91 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 92 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 93 0x01, 0x01, 0x00, 0x92, 0xde, 0xef, 0x96, 0x06, 94 0x7b, 0xff, 0x71, 0x7d, 0x4e, 0xa0, 0x7d, 0xae, 95 0xb8, 0x22, 0xb4, 0x2c, 0xf7, 0x96, 0x9c, 0x37, 96 0x1d, 0x8f, 0xe7, 0xd9, 0x47, 0xff, 0x3f, 0xe9, 97 0x35, 0x95, 0x0e, 0xdd, 0xdc, 0x7f, 0xc8, 0x8a, 98 0x1e, 0x36, 0x1d, 0x38, 0x47, 0xfc, 0x76, 0xd2, 99 0x1f, 0x98, 0xa1, 0x36, 0xac, 0xc8, 0x70, 0x38, 100 0x0a, 0x3d, 0x51, 0x8d, 0x0f, 0x03, 0x1b, 0xef, 101 0x62, 0xa1, 0xcb, 0x2b, 0x4a, 0x8c, 0x12, 0x2b, 102 0x54, 0x50, 0x9a, 0x6b, 0xfe, 0xaf, 0xd9, 0xf6, 103 0xbf, 0x58, 0x11, 0x58, 0x5e, 0xe5, 0x86, 0x1e, 104 0x3b, 0x6b, 0x30, 0x7e, 0x72, 0x89, 0xe8, 0x6b, 105 0x7b, 0xb7, 0xaf, 0xef, 0x8b, 0xa9, 0x3e, 0xb0, 106 0xcd, 0x0b, 0xef, 0xb0, 0x0c, 0x96, 0x2b, 0xc5, 107 0x3b, 0xd5, 0xf1, 0xc2, 0xae, 0x3a, 0x60, 0xd9, 108 0x0f, 0x75, 0x37, 0x55, 0x4d, 0x62, 0xd2, 0xed, 109 0x96, 0xac, 0x30, 0x6b, 0xda, 0xa1, 0x48, 0x17, 110 0x96, 0x23, 0x85, 0x9a, 0x57, 0x77, 0xe9, 0x22, 111 0xa2, 0x37, 0x03, 0xba, 0x49, 0x77, 0x40, 0x3b, 112 0x76, 0x4b, 0xda, 0xc1, 0x04, 0x57, 0x55, 0x34, 113 0x22, 0x83, 0x45, 0x29, 0xab, 0x2e, 0x11, 0xff, 114 0x0d, 0xab, 0x55, 0xb1, 0xa7, 0x58, 0x59, 0x05, 115 0x25, 0xf9, 0x1e, 0x3d, 0xb7, 0xac, 0x04, 0x39, 116 0x2c, 0xf9, 0xaf, 0xb8, 0x68, 0xfb, 0x8e, 0x35, 117 0x71, 0x32, 0xff, 0x70, 0xe9, 0x46, 0x6d, 0x5c, 118 0x06, 0x90, 0x88, 0x23, 0x48, 0x0c, 0x50, 0xeb, 119 0x0a, 0xa9, 0xae, 0xe8, 0xfc, 0xbe, 0xa5, 0x76, 120 0x94, 0xd7, 0x64, 0x22, 0x38, 0x98, 0x17, 0xa4, 121 0x3a, 0xa7, 0x59, 0x9f, 0x1d, 0x3b, 0x75, 0x90, 122 0x1a, 0x81, 0xef, 0x19, 0xfb, 0x2b, 0xb7, 0xa7, 123 0x64, 0x61, 0x22, 0xa4, 0x6f, 0x7b, 0xfa, 0x58, 124 0xbb, 0x8c, 0x4e, 0x77, 0x67, 0xd0, 0x5d, 0x58, 125 0x76, 0x8a, 0xbb 126 }; 127 128 #ifndef OPENSSL_NO_DEPRECATED_3_0 129 static const uint8_t kRSAPrivateKeyDER[] = { 130 0x30, 0x82, 0x04, 0xa5, 0x02, 0x01, 0x00, 0x02, 131 0x82, 0x01, 0x01, 0x00, 0xce, 0x47, 0xcb, 0x11, 132 0xbb, 0xd2, 0x9d, 0x8e, 0x9e, 0xd2, 0x1e, 0x14, 133 0xaf, 0xc7, 0xea, 0xb6, 0xc9, 0x38, 0x2a, 0x6f, 134 0xb3, 0x7e, 0xfb, 0xbc, 0xfc, 0x59, 0x42, 0xb9, 135 0x56, 0xf0, 0x4c, 0x3f, 0xf7, 0x31, 0x84, 0xbe, 136 0xac, 0x03, 0x9e, 0x71, 0x91, 0x85, 0xd8, 0x32, 137 0xbd, 0x00, 0xea, 0xac, 0x65, 0xf6, 0x03, 0xc8, 138 0x0f, 0x8b, 0xfd, 0x6e, 0x58, 0x88, 0x04, 0x41, 139 0x92, 0x74, 0xa6, 0x57, 0x2e, 0x8e, 0x88, 0xd5, 140 0x3d, 0xda, 0x14, 0x3e, 0x63, 0x88, 0x22, 0xe3, 141 0x53, 0xe9, 0xba, 0x39, 0x09, 0xac, 0xfb, 0xd0, 142 0x4c, 0xf2, 0x3c, 0x20, 0xd6, 0x97, 0xe6, 0xed, 143 0xf1, 0x62, 0x1e, 0xe5, 0xc9, 0x48, 0xa0, 0xca, 144 0x2e, 0x3c, 0x14, 0x5a, 0x82, 0xd4, 0xed, 0xb1, 145 0xe3, 0x43, 0xc1, 0x2a, 0x59, 0xa5, 0xb9, 0xc8, 146 0x48, 0xa7, 0x39, 0x23, 0x74, 0xa7, 0x37, 0xb0, 147 0x6f, 0xc3, 0x64, 0x99, 0x6c, 0xa2, 0x82, 0xc8, 148 0xf6, 0xdb, 0x86, 0x40, 0xce, 0xd1, 0x85, 0x9f, 149 0xce, 0x69, 0xf4, 0x15, 0x2a, 0x23, 0xca, 0xea, 150 0xb7, 0x7b, 0xdf, 0xfb, 0x43, 0x5f, 0xff, 0x7a, 151 0x49, 0x49, 0x0e, 0xe7, 0x02, 0x51, 0x45, 0x13, 152 0xe8, 0x90, 0x64, 0x21, 0x0c, 0x26, 0x2b, 0x5d, 153 0xfc, 0xe4, 0xb5, 0x86, 0x89, 0x43, 0x22, 0x4c, 154 0xf3, 0x3b, 0xf3, 0x09, 0xc4, 0xa4, 0x10, 0x80, 155 0xf2, 0x46, 0xe2, 0x46, 0x8f, 0x76, 0x50, 0xbf, 156 0xaf, 0x2b, 0x90, 0x1b, 0x78, 0xc7, 0xcf, 0xc1, 157 0x77, 0xd0, 0xfb, 0xa9, 0xfb, 0xc9, 0x66, 0x5a, 158 0xc5, 0x9b, 0x31, 0x41, 0x67, 0x01, 0xbe, 0x33, 159 0x10, 0xba, 0x05, 0x58, 0xed, 0x76, 0x53, 0xde, 160 0x5d, 0xc1, 0xe8, 0xbb, 0x9f, 0xf1, 0xcd, 0xfb, 161 0xdf, 0x64, 0x7f, 0xd7, 0x18, 0xab, 0x0f, 0x94, 162 0x28, 0x95, 0x4a, 0xcc, 0x6a, 0xa9, 0x50, 0xc7, 163 0x05, 0x47, 0x10, 0x41, 0x02, 0x03, 0x01, 0x00, 164 0x01, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa8, 0x47, 165 0xb9, 0x4a, 0x06, 0x47, 0x93, 0x71, 0x3d, 0xef, 166 0x7b, 0xca, 0xb4, 0x7c, 0x0a, 0xe6, 0x82, 0xd0, 167 0xe7, 0x0d, 0xa9, 0x08, 0xf6, 0xa4, 0xfd, 0xd8, 168 0x73, 0xae, 0x6f, 0x56, 0x29, 0x5e, 0x25, 0x72, 169 0xa8, 0x30, 0x44, 0x73, 0xcf, 0x56, 0x26, 0xb9, 170 0x61, 0xde, 0x42, 0x81, 0xf4, 0xf0, 0x1f, 0x5d, 171 0xcb, 0x47, 0xf2, 0x26, 0xe9, 0xe0, 0x93, 0x28, 172 0xa3, 0x10, 0x3b, 0x42, 0x1e, 0x51, 0x11, 0x12, 173 0x06, 0x5e, 0xaf, 0xce, 0xb0, 0xa5, 0x14, 0xdd, 174 0x82, 0x58, 0xa1, 0xa4, 0x12, 0xdf, 0x65, 0x1d, 175 0x51, 0x70, 0x64, 0xd5, 0x58, 0x68, 0x11, 0xa8, 176 0x6a, 0x23, 0xc2, 0xbf, 0xa1, 0x25, 0x24, 0x47, 177 0xb3, 0xa4, 0x3c, 0x83, 0x96, 0xb7, 0x1f, 0xf4, 178 0x44, 0xd4, 0xd1, 0xe9, 0xfc, 0x33, 0x68, 0x5e, 179 0xe2, 0x68, 0x99, 0x9c, 0x91, 0xe8, 0x72, 0xc9, 180 0xd7, 0x8c, 0x80, 0x20, 0x8e, 0x77, 0x83, 0x4d, 181 0xe4, 0xab, 0xf9, 0x74, 0xa1, 0xdf, 0xd3, 0xc0, 182 0x0d, 0x5b, 0x05, 0x51, 0xc2, 0x6f, 0xb2, 0x91, 183 0x02, 0xec, 0xc0, 0x02, 0x1a, 0x5c, 0x91, 0x05, 184 0xf1, 0xe3, 0xfa, 0x65, 0xc2, 0xad, 0x24, 0xe6, 185 0xe5, 0x3c, 0xb6, 0x16, 0xf1, 0xa1, 0x67, 0x1a, 186 0x9d, 0x37, 0x56, 0xbf, 0x01, 0xd7, 0x3b, 0x35, 187 0x30, 0x57, 0x73, 0xf4, 0xf0, 0x5e, 0xa7, 0xe8, 188 0x0a, 0xc1, 0x94, 0x17, 0xcf, 0x0a, 0xbd, 0xf5, 189 0x31, 0xa7, 0x2d, 0xf7, 0xf5, 0xd9, 0x8c, 0xc2, 190 0x01, 0xbd, 0xda, 0x16, 0x8e, 0xb9, 0x30, 0x40, 191 0xa6, 0x6e, 0xbd, 0xcd, 0x4d, 0x84, 0x67, 0x4e, 192 0x0b, 0xce, 0xd5, 0xef, 0xf8, 0x08, 0x63, 0x02, 193 0xc6, 0xc7, 0xf7, 0x67, 0x92, 0xe2, 0x23, 0x9d, 194 0x27, 0x22, 0x1d, 0xc6, 0x67, 0x5e, 0x66, 0xbf, 195 0x03, 0xb8, 0xa9, 0x67, 0xd4, 0x39, 0xd8, 0x75, 196 0xfa, 0xe8, 0xed, 0x56, 0xb8, 0x81, 0x02, 0x81, 197 0x81, 0x00, 0xf7, 0x46, 0x68, 0xc6, 0x13, 0xf8, 198 0xba, 0x0f, 0x83, 0xdb, 0x05, 0xa8, 0x25, 0x00, 199 0x70, 0x9c, 0x9e, 0x8b, 0x12, 0x34, 0x0d, 0x96, 200 0xcf, 0x0d, 0x98, 0x9b, 0x8d, 0x9c, 0x96, 0x78, 201 0xd1, 0x3c, 0x01, 0x8c, 0xb9, 0x35, 0x5c, 0x20, 202 0x42, 0xb4, 0x38, 0xe3, 0xd6, 0x54, 0xe7, 0x55, 203 0xd6, 0x26, 0x8a, 0x0c, 0xf6, 0x1f, 0xe0, 0x04, 204 0xc1, 0x22, 0x42, 0x19, 0x61, 0xc4, 0x94, 0x7c, 205 0x07, 0x2e, 0x80, 0x52, 0xfe, 0x8d, 0xe6, 0x92, 206 0x3a, 0x91, 0xfe, 0x72, 0x99, 0xe1, 0x2a, 0x73, 207 0x76, 0xb1, 0x24, 0x20, 0x67, 0xde, 0x28, 0xcb, 208 0x0e, 0xe6, 0x52, 0xb5, 0xfa, 0xfb, 0x8b, 0x1e, 209 0x6a, 0x1d, 0x09, 0x26, 0xb9, 0xa7, 0x61, 0xba, 210 0xf8, 0x79, 0xd2, 0x66, 0x57, 0x28, 0xd7, 0x31, 211 0xb5, 0x0b, 0x27, 0x19, 0x1e, 0x6f, 0x46, 0xfc, 212 0x54, 0x95, 0xeb, 0x78, 0x01, 0xb6, 0xd9, 0x79, 213 0x5a, 0x4d, 0x02, 0x81, 0x81, 0x00, 0xd5, 0x8f, 214 0x16, 0x53, 0x2f, 0x57, 0x93, 0xbf, 0x09, 0x75, 215 0xbf, 0x63, 0x40, 0x3d, 0x27, 0xfd, 0x23, 0x21, 216 0xde, 0x9b, 0xe9, 0x73, 0x3f, 0x49, 0x02, 0xd2, 217 0x38, 0x96, 0xcf, 0xc3, 0xba, 0x92, 0x07, 0x87, 218 0x52, 0xa9, 0x35, 0xe3, 0x0c, 0xe4, 0x2f, 0x05, 219 0x7b, 0x37, 0xa5, 0x40, 0x9c, 0x3b, 0x94, 0xf7, 220 0xad, 0xa0, 0xee, 0x3a, 0xa8, 0xfb, 0x1f, 0x11, 221 0x1f, 0xd8, 0x9a, 0x80, 0x42, 0x3d, 0x7f, 0xa4, 222 0xb8, 0x9a, 0xaa, 0xea, 0x72, 0xc1, 0xe3, 0xed, 223 0x06, 0x60, 0x92, 0x37, 0xf9, 0xba, 0xfb, 0x9e, 224 0xed, 0x05, 0xa6, 0xd4, 0x72, 0x68, 0x4f, 0x63, 225 0xfe, 0xd6, 0x10, 0x0d, 0x4f, 0x0a, 0x93, 0xc6, 226 0xb9, 0xd7, 0xaf, 0xfd, 0xd9, 0x57, 0x7d, 0xcb, 227 0x75, 0xe8, 0x93, 0x2b, 0xae, 0x4f, 0xea, 0xd7, 228 0x30, 0x0b, 0x58, 0x44, 0x82, 0x0f, 0x84, 0x5d, 229 0x62, 0x11, 0x78, 0xea, 0x5f, 0xc5, 0x02, 0x81, 230 0x81, 0x00, 0x82, 0x0c, 0xc1, 0xe6, 0x0b, 0x72, 231 0xf1, 0x48, 0x5f, 0xac, 0xbd, 0x98, 0xe5, 0x7d, 232 0x09, 0xbd, 0x15, 0x95, 0x47, 0x09, 0xa1, 0x6c, 233 0x03, 0x91, 0xbf, 0x05, 0x70, 0xc1, 0x3e, 0x52, 234 0x64, 0x99, 0x0e, 0xa7, 0x98, 0x70, 0xfb, 0xf6, 235 0xeb, 0x9e, 0x25, 0x9d, 0x8e, 0x88, 0x30, 0xf2, 236 0xf0, 0x22, 0x6c, 0xd0, 0xcc, 0x51, 0x8f, 0x5c, 237 0x70, 0xc7, 0x37, 0xc4, 0x69, 0xab, 0x1d, 0xfc, 238 0xed, 0x3a, 0x03, 0xbb, 0xa2, 0xad, 0xb6, 0xea, 239 0x89, 0x6b, 0x67, 0x4b, 0x96, 0xaa, 0xd9, 0xcc, 240 0xc8, 0x4b, 0xfa, 0x18, 0x21, 0x08, 0xb2, 0xa3, 241 0xb9, 0x3e, 0x61, 0x99, 0xdc, 0x5a, 0x97, 0x9c, 242 0x73, 0x6a, 0xb9, 0xf9, 0x68, 0x03, 0x24, 0x5f, 243 0x55, 0x77, 0x9c, 0xb4, 0xbe, 0x7a, 0x78, 0x53, 244 0x68, 0x48, 0x69, 0x53, 0xc8, 0xb1, 0xf5, 0xbf, 245 0x98, 0x2d, 0x11, 0x1e, 0x98, 0xa8, 0x36, 0x50, 246 0xa0, 0xb1, 0x02, 0x81, 0x81, 0x00, 0x90, 0x88, 247 0x30, 0x71, 0xc7, 0xfe, 0x9b, 0x6d, 0x95, 0x37, 248 0x6d, 0x79, 0xfc, 0x85, 0xe7, 0x44, 0x78, 0xbc, 249 0x79, 0x6e, 0x47, 0x86, 0xc9, 0xf3, 0xdd, 0xc6, 250 0xec, 0xa9, 0x94, 0x9f, 0x40, 0xeb, 0x87, 0xd0, 251 0xdb, 0xee, 0xcd, 0x1b, 0x87, 0x23, 0xff, 0x76, 252 0xd4, 0x37, 0x8a, 0xcd, 0xb9, 0x6e, 0xd1, 0x98, 253 0xf6, 0x97, 0x8d, 0xe3, 0x81, 0x6d, 0xc3, 0x4e, 254 0xd1, 0xa0, 0xc4, 0x9f, 0xbd, 0x34, 0xe5, 0xe8, 255 0x53, 0x4f, 0xca, 0x10, 0xb5, 0xed, 0xe7, 0x16, 256 0x09, 0x54, 0xde, 0x60, 0xa7, 0xd1, 0x16, 0x6e, 257 0x2e, 0xb7, 0xbe, 0x7a, 0xd5, 0x9b, 0x26, 0xef, 258 0xe4, 0x0e, 0x77, 0xfa, 0xa9, 0xdd, 0xdc, 0xb9, 259 0x88, 0x19, 0x23, 0x70, 0xc7, 0xe1, 0x60, 0xaf, 260 0x8c, 0x73, 0x04, 0xf7, 0x71, 0x17, 0x81, 0x36, 261 0x75, 0xbb, 0x97, 0xd7, 0x75, 0xb6, 0x8e, 0xbc, 262 0xac, 0x9c, 0x6a, 0x9b, 0x24, 0x89, 0x02, 0x81, 263 0x80, 0x5a, 0x2b, 0xc7, 0x6b, 0x8c, 0x65, 0xdb, 264 0x04, 0x73, 0xab, 0x25, 0xe1, 0x5b, 0xbc, 0x3c, 265 0xcf, 0x5a, 0x3c, 0x04, 0xae, 0x97, 0x2e, 0xfd, 266 0xa4, 0x97, 0x1f, 0x05, 0x17, 0x27, 0xac, 0x7c, 267 0x30, 0x85, 0xb4, 0x82, 0x3f, 0x5b, 0xb7, 0x94, 268 0x3b, 0x7f, 0x6c, 0x0c, 0xc7, 0x16, 0xc6, 0xa0, 269 0xbd, 0x80, 0xb0, 0x81, 0xde, 0xa0, 0x23, 0xa6, 270 0xf6, 0x75, 0x33, 0x51, 0x35, 0xa2, 0x75, 0x55, 271 0x70, 0x4d, 0x42, 0xbb, 0xcf, 0x54, 0xe4, 0xdb, 272 0x2d, 0x88, 0xa0, 0x7a, 0xf2, 0x17, 0xa7, 0xdd, 273 0x13, 0x44, 0x9f, 0x5f, 0x6b, 0x2c, 0x42, 0x42, 274 0x8b, 0x13, 0x4d, 0xf9, 0x5b, 0xf8, 0x33, 0x42, 275 0xd9, 0x9e, 0x50, 0x1c, 0x7c, 0xbc, 0xfa, 0x62, 276 0x85, 0x0b, 0xcf, 0x99, 0xda, 0x9e, 0x04, 0x90, 277 0xb2, 0xc6, 0xb2, 0x0a, 0x2a, 0x7c, 0x6d, 0x6a, 278 0x40, 0xfc, 0xf5, 0x50, 0x98, 0x46, 0x89, 0x82, 279 0x40 280 }; 281 #endif 282 283 #ifndef OPENSSL_NO_EC 284 #ifndef OPENSSL_NO_DEPRECATED_3_0 285 /* 286 * -----BEGIN EC PRIVATE KEY----- 287 * MHcCAQEEIJLyl7hJjpQL/RhP1x2zS79xdiPJQB683gWeqcqHPeZkoAoGCCqGSM49 288 * AwEHoUQDQgAEdsjygVYjjaKBF4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazI 289 * D/xy8JiYjtPKVE/Zqwbmivp2UwtH28a7NQ== 290 * -----END EC PRIVATE KEY----- 291 */ 292 static const char ECDSAPrivateKeyPEM[] = { 293 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45, 294 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 295 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x48, 0x63, 0x43, 0x41, 296 0x51, 0x45, 0x45, 0x49, 0x4a, 0x4c, 0x79, 0x6c, 0x37, 0x68, 0x4a, 0x6a, 297 0x70, 0x51, 0x4c, 0x2f, 0x52, 0x68, 0x50, 0x31, 0x78, 0x32, 0x7a, 0x53, 298 0x37, 0x39, 0x78, 0x64, 0x69, 0x50, 0x4a, 0x51, 0x42, 0x36, 0x38, 0x33, 299 0x67, 0x57, 0x65, 0x71, 0x63, 0x71, 0x48, 0x50, 0x65, 0x5a, 0x6b, 0x6f, 300 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x0a, 301 0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45, 302 0x64, 0x73, 0x6a, 0x79, 0x67, 0x56, 0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42, 303 0x46, 0x34, 0x43, 0x4e, 0x45, 0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30, 304 0x31, 0x37, 0x70, 0x35, 0x2f, 0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f, 305 0x54, 0x48, 0x79, 0x39, 0x49, 0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44, 306 0x44, 0x61, 0x7a, 0x49, 0x0a, 0x44, 0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69, 307 0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56, 0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62, 308 0x6d, 0x69, 0x76, 0x70, 0x32, 0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61, 309 0x37, 0x4e, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 310 0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 311 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a 312 }; 313 #endif 314 315 /* 316 * -----BEGIN CERTIFICATE----- 317 * MIIBXzCCAQagAwIBAgIJAK6/Yvf/ain6MAoGCCqGSM49BAMCMBIxEDAOBgNVBAoM 318 * B0FjbWUgQ28wHhcNMTYxMjI1MTEzOTI3WhcNMjYxMjI1MTEzOTI3WjASMRAwDgYD 319 * VQQKDAdBY21lIENvMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdsjygVYjjaKB 320 * F4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazID/xy8JiYjtPKVE/Zqwbmivp2 321 * UwtH28a7NaNFMEMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYI 322 * KwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0cAMEQC 323 * IEzr3t/jejVE9oSnBp8c3P2p+lDLVRrB8zxLyjZvirUXAiAyQPaE9MNcL8/nRpuu 324 * 99I1enCSmWIAJ57IwuJ/n1d45Q== 325 * -----END CERTIFICATE----- 326 */ 327 static const char ECDSACertPEM[] = { 328 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 329 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 330 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x58, 0x7a, 0x43, 0x43, 331 0x41, 0x51, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 332 0x41, 0x4b, 0x36, 0x2f, 0x59, 0x76, 0x66, 0x2f, 0x61, 0x69, 0x6e, 0x36, 333 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 334 0x42, 0x41, 0x4d, 0x43, 0x4d, 0x42, 0x49, 0x78, 0x45, 0x44, 0x41, 0x4f, 335 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x42, 0x30, 0x46, 336 0x6a, 0x62, 0x57, 0x55, 0x67, 0x51, 0x32, 0x38, 0x77, 0x48, 0x68, 0x63, 337 0x4e, 0x4d, 0x54, 0x59, 0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45, 338 0x7a, 0x4f, 0x54, 0x49, 0x33, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x59, 339 0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45, 0x7a, 0x4f, 0x54, 0x49, 340 0x33, 0x57, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 341 0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x64, 0x42, 0x59, 0x32, 342 0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x46, 0x6b, 0x77, 0x45, 0x77, 343 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 344 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x44, 0x41, 0x51, 345 0x63, 0x44, 0x51, 0x67, 0x41, 0x45, 0x64, 0x73, 0x6a, 0x79, 0x67, 0x56, 346 0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42, 0x0a, 0x46, 0x34, 0x43, 0x4e, 0x45, 347 0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30, 0x31, 0x37, 0x70, 0x35, 0x2f, 348 0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f, 0x54, 0x48, 0x79, 0x39, 0x49, 349 0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44, 0x44, 0x61, 0x7a, 0x49, 0x44, 350 0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69, 0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56, 351 0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62, 0x6d, 0x69, 0x76, 0x70, 0x32, 0x0a, 352 0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61, 0x37, 0x4e, 0x61, 0x4e, 0x46, 353 0x4d, 0x45, 0x4d, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 354 0x42, 0x41, 0x49, 0x77, 0x41, 0x44, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56, 355 0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x42, 0x61, 0x41, 0x77, 356 0x45, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6c, 0x42, 0x41, 0x77, 0x77, 357 0x43, 0x67, 0x59, 0x49, 0x0a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55, 358 0x48, 0x41, 0x77, 0x45, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30, 359 0x52, 0x42, 0x41, 0x30, 0x77, 0x43, 0x34, 0x49, 0x4a, 0x62, 0x47, 0x39, 360 0x6a, 0x59, 0x57, 0x78, 0x6f, 0x62, 0x33, 0x4e, 0x30, 0x4d, 0x41, 0x6f, 361 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 362 0x43, 0x41, 0x30, 0x63, 0x41, 0x4d, 0x45, 0x51, 0x43, 0x0a, 0x49, 0x45, 363 0x7a, 0x72, 0x33, 0x74, 0x2f, 0x6a, 0x65, 0x6a, 0x56, 0x45, 0x39, 0x6f, 364 0x53, 0x6e, 0x42, 0x70, 0x38, 0x63, 0x33, 0x50, 0x32, 0x70, 0x2b, 0x6c, 365 0x44, 0x4c, 0x56, 0x52, 0x72, 0x42, 0x38, 0x7a, 0x78, 0x4c, 0x79, 0x6a, 366 0x5a, 0x76, 0x69, 0x72, 0x55, 0x58, 0x41, 0x69, 0x41, 0x79, 0x51, 0x50, 367 0x61, 0x45, 0x39, 0x4d, 0x4e, 0x63, 0x4c, 0x38, 0x2f, 0x6e, 0x52, 0x70, 368 0x75, 0x75, 0x0a, 0x39, 0x39, 0x49, 0x31, 0x65, 0x6e, 0x43, 0x53, 0x6d, 369 0x57, 0x49, 0x41, 0x4a, 0x35, 0x37, 0x49, 0x77, 0x75, 0x4a, 0x2f, 0x6e, 370 0x31, 0x64, 0x34, 0x35, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 371 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 372 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a 373 }; 374 #endif 375 376 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0) 377 /* 378 * -----BEGIN DSA PRIVATE KEY----- 379 * MIIBuwIBAAKBgQDdkFKzNABLOha7Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXP 380 * Wzf03ULKS5UKjA6WpR6EiZAhm+PdxusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM8 381 * 0TGcnw5ijwKmSw5yyHPDWdiHzoqEBlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEg 382 * QqWRf/1EIZZcgM65Qpd65YuxAoGBAKBauV/RuloFHoSy5iWXESDywiS380tN5974 383 * GukGwoYdZo5uSIH6ahpeNSef0MbHGAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+ 384 * QtQHOwvQHgLAynhI4i73c794czHaR+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmG 385 * POIMWNXXAoGAI6Ep5IE7yn3JzkXO9B6tC3bbDM+ZzuuInwZLbtZ8lim7Dsqabg4k 386 * 2YbE4R95Bnfwnjsyl80mq/DbQN5lAHBvjDrkC6ItojBGKI3+iIrqGUEJdxvl4ulj 387 * F0PmSD7zvIG8BfocKOel+EHH0YryExiW6krV1KW2ZRmJrqSFw6KCjV0CFFQFbPfU 388 * xy5PmKytJmXR8BmppkIO 389 * -----END DSA PRIVATE KEY----- 390 */ 391 static const char DSAPrivateKeyPEM[] = { 392 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x44, 393 0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 394 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 395 0x75, 0x77, 0x49, 0x42, 0x41, 0x41, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x64, 396 0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41, 0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37, 397 0x45, 0x71, 0x6a, 0x37, 0x30, 0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68, 398 0x74, 0x52, 0x36, 0x62, 0x78, 0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d, 399 0x53, 0x5a, 0x54, 0x59, 0x69, 0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50, 400 0x0a, 0x57, 0x7a, 0x66, 0x30, 0x33, 0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55, 401 0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70, 0x52, 0x36, 0x45, 0x69, 0x5a, 0x41, 402 0x68, 0x6d, 0x2b, 0x50, 0x64, 0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66, 403 0x41, 0x75, 0x52, 0x5a, 0x4c, 0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78, 404 0x6e, 0x31, 0x66, 0x33, 0x34, 0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51, 405 0x4e, 0x61, 0x45, 0x4d, 0x38, 0x0a, 0x30, 0x54, 0x47, 0x63, 0x6e, 0x77, 406 0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d, 0x53, 0x77, 0x35, 0x79, 0x79, 0x48, 407 0x50, 0x44, 0x57, 0x64, 0x69, 0x48, 0x7a, 0x6f, 0x71, 0x45, 0x42, 0x6c, 408 0x68, 0x41, 0x66, 0x38, 0x4e, 0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61, 409 0x78, 0x2f, 0x63, 0x6c, 0x73, 0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52, 410 0x4c, 0x41, 0x64, 0x77, 0x49, 0x56, 0x41, 0x49, 0x45, 0x67, 0x0a, 0x51, 411 0x71, 0x57, 0x52, 0x66, 0x2f, 0x31, 0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67, 412 0x4d, 0x36, 0x35, 0x51, 0x70, 0x64, 0x36, 0x35, 0x59, 0x75, 0x78, 0x41, 413 0x6f, 0x47, 0x42, 0x41, 0x4b, 0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75, 414 0x6c, 0x6f, 0x46, 0x48, 0x6f, 0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45, 415 0x53, 0x44, 0x79, 0x77, 0x69, 0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35, 416 0x39, 0x37, 0x34, 0x0a, 0x47, 0x75, 0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64, 417 0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49, 0x48, 0x36, 0x61, 0x68, 0x70, 0x65, 418 0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d, 0x62, 0x48, 0x47, 0x41, 0x7a, 0x72, 419 0x37, 0x5a, 0x56, 0x45, 0x6e, 0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77, 420 0x48, 0x31, 0x67, 0x52, 0x76, 0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62, 421 0x6d, 0x63, 0x76, 0x74, 0x64, 0x33, 0x72, 0x2b, 0x0a, 0x51, 0x74, 0x51, 422 0x48, 0x4f, 0x77, 0x76, 0x51, 0x48, 0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68, 423 0x49, 0x34, 0x69, 0x37, 0x33, 0x63, 0x37, 0x39, 0x34, 0x63, 0x7a, 0x48, 424 0x61, 0x52, 0x2b, 0x34, 0x33, 0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77, 425 0x44, 0x6e, 0x51, 0x64, 0x75, 0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f, 426 0x2f, 0x6a, 0x69, 0x69, 0x5a, 0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d, 427 0x47, 0x0a, 0x50, 0x4f, 0x49, 0x4d, 0x57, 0x4e, 0x58, 0x58, 0x41, 0x6f, 428 0x47, 0x41, 0x49, 0x36, 0x45, 0x70, 0x35, 0x49, 0x45, 0x37, 0x79, 0x6e, 429 0x33, 0x4a, 0x7a, 0x6b, 0x58, 0x4f, 0x39, 0x42, 0x36, 0x74, 0x43, 0x33, 430 0x62, 0x62, 0x44, 0x4d, 0x2b, 0x5a, 0x7a, 0x75, 0x75, 0x49, 0x6e, 0x77, 431 0x5a, 0x4c, 0x62, 0x74, 0x5a, 0x38, 0x6c, 0x69, 0x6d, 0x37, 0x44, 0x73, 432 0x71, 0x61, 0x62, 0x67, 0x34, 0x6b, 0x0a, 0x32, 0x59, 0x62, 0x45, 0x34, 433 0x52, 0x39, 0x35, 0x42, 0x6e, 0x66, 0x77, 0x6e, 0x6a, 0x73, 0x79, 0x6c, 434 0x38, 0x30, 0x6d, 0x71, 0x2f, 0x44, 0x62, 0x51, 0x4e, 0x35, 0x6c, 0x41, 435 0x48, 0x42, 0x76, 0x6a, 0x44, 0x72, 0x6b, 0x43, 0x36, 0x49, 0x74, 0x6f, 436 0x6a, 0x42, 0x47, 0x4b, 0x49, 0x33, 0x2b, 0x69, 0x49, 0x72, 0x71, 0x47, 437 0x55, 0x45, 0x4a, 0x64, 0x78, 0x76, 0x6c, 0x34, 0x75, 0x6c, 0x6a, 0x0a, 438 0x46, 0x30, 0x50, 0x6d, 0x53, 0x44, 0x37, 0x7a, 0x76, 0x49, 0x47, 0x38, 439 0x42, 0x66, 0x6f, 0x63, 0x4b, 0x4f, 0x65, 0x6c, 0x2b, 0x45, 0x48, 0x48, 440 0x30, 0x59, 0x72, 0x79, 0x45, 0x78, 0x69, 0x57, 0x36, 0x6b, 0x72, 0x56, 441 0x31, 0x4b, 0x57, 0x32, 0x5a, 0x52, 0x6d, 0x4a, 0x72, 0x71, 0x53, 0x46, 442 0x77, 0x36, 0x4b, 0x43, 0x6a, 0x56, 0x30, 0x43, 0x46, 0x46, 0x51, 0x46, 443 0x62, 0x50, 0x66, 0x55, 0x0a, 0x78, 0x79, 0x35, 0x50, 0x6d, 0x4b, 0x79, 444 0x74, 0x4a, 0x6d, 0x58, 0x52, 0x38, 0x42, 0x6d, 0x70, 0x70, 0x6b, 0x49, 445 0x4f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x44, 446 0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 447 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a 448 }; 449 450 /* 451 * -----BEGIN CERTIFICATE----- 452 * MIICqTCCAmegAwIBAgIJAILDGUk37fWGMAsGCWCGSAFlAwQDAjASMRAwDgYDVQQK 453 * DAdBY21lIENvMB4XDTE2MTIyNTEzMjUzNloXDTI2MTIyNTEzMjUzNlowEjEQMA4G 454 * A1UECgwHQWNtZSBDbzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDdkFKzNABLOha7 455 * Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXPWzf03ULKS5UKjA6WpR6EiZAhm+Pd 456 * xusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM80TGcnw5ijwKmSw5yyHPDWdiHzoqE 457 * BlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEgQqWRf/1EIZZcgM65Qpd65YuxAoGB 458 * AKBauV/RuloFHoSy5iWXESDywiS380tN5974GukGwoYdZo5uSIH6ahpeNSef0MbH 459 * GAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+QtQHOwvQHgLAynhI4i73c794czHa 460 * R+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmGPOIMWNXXA4GEAAKBgCOhKeSBO8p9 461 * yc5FzvQerQt22wzPmc7riJ8GS27WfJYpuw7Kmm4OJNmGxOEfeQZ38J47MpfNJqvw 462 * 20DeZQBwb4w65AuiLaIwRiiN/oiK6hlBCXcb5eLpYxdD5kg+87yBvAX6HCjnpfhB 463 * x9GK8hMYlupK1dSltmUZia6khcOigo1do0UwQzAJBgNVHRMEAjAAMAsGA1UdDwQE 464 * AwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAUBgNVHREEDTALgglsb2NhbGhvc3Qw 465 * CwYJYIZIAWUDBAMCAy8AMCwCFClxInXTRWNJEWdi5ilNr/fbM1bKAhQy4B7wtmfd 466 * I+zV6g3w9qBkNqStpA== 467 * -----END CERTIFICATE----- 468 */ 469 static const char DSACertPEM[] = { 470 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 471 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 472 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x71, 0x54, 0x43, 0x43, 473 0x41, 0x6d, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 474 0x41, 0x49, 0x4c, 0x44, 0x47, 0x55, 0x6b, 0x33, 0x37, 0x66, 0x57, 0x47, 475 0x4d, 0x41, 0x73, 0x47, 0x43, 0x57, 0x43, 0x47, 0x53, 0x41, 0x46, 0x6c, 476 0x41, 0x77, 0x51, 0x44, 0x41, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77, 477 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x64, 478 0x42, 0x59, 0x32, 0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x42, 0x34, 479 0x58, 0x44, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45, 480 0x7a, 0x4d, 0x6a, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x49, 481 0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45, 0x7a, 0x4d, 0x6a, 0x55, 482 0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x45, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 483 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x48, 0x51, 0x57, 484 0x4e, 0x74, 0x5a, 0x53, 0x42, 0x44, 0x62, 0x7a, 0x43, 0x43, 0x41, 0x62, 485 0x63, 0x77, 0x67, 0x67, 0x45, 0x73, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 486 0x6a, 0x4f, 0x4f, 0x41, 0x51, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x48, 0x77, 487 0x4b, 0x42, 0x67, 0x51, 0x44, 0x64, 0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41, 488 0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37, 0x0a, 0x45, 0x71, 0x6a, 0x37, 0x30, 489 0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68, 0x74, 0x52, 0x36, 0x62, 0x78, 490 0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d, 0x53, 0x5a, 0x54, 0x59, 0x69, 491 0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50, 0x57, 0x7a, 0x66, 0x30, 0x33, 492 0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55, 0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70, 493 0x52, 0x36, 0x45, 0x69, 0x5a, 0x41, 0x68, 0x6d, 0x2b, 0x50, 0x64, 0x0a, 494 0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66, 0x41, 0x75, 0x52, 0x5a, 0x4c, 495 0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78, 0x6e, 0x31, 0x66, 0x33, 0x34, 496 0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51, 0x4e, 0x61, 0x45, 0x4d, 0x38, 497 0x30, 0x54, 0x47, 0x63, 0x6e, 0x77, 0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d, 498 0x53, 0x77, 0x35, 0x79, 0x79, 0x48, 0x50, 0x44, 0x57, 0x64, 0x69, 0x48, 499 0x7a, 0x6f, 0x71, 0x45, 0x0a, 0x42, 0x6c, 0x68, 0x41, 0x66, 0x38, 0x4e, 500 0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61, 0x78, 0x2f, 0x63, 0x6c, 0x73, 501 0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52, 0x4c, 0x41, 0x64, 0x77, 0x49, 502 0x56, 0x41, 0x49, 0x45, 0x67, 0x51, 0x71, 0x57, 0x52, 0x66, 0x2f, 0x31, 503 0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67, 0x4d, 0x36, 0x35, 0x51, 0x70, 0x64, 504 0x36, 0x35, 0x59, 0x75, 0x78, 0x41, 0x6f, 0x47, 0x42, 0x0a, 0x41, 0x4b, 505 0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75, 0x6c, 0x6f, 0x46, 0x48, 0x6f, 506 0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45, 0x53, 0x44, 0x79, 0x77, 0x69, 507 0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35, 0x39, 0x37, 0x34, 0x47, 0x75, 508 0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64, 0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49, 509 0x48, 0x36, 0x61, 0x68, 0x70, 0x65, 0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d, 510 0x62, 0x48, 0x0a, 0x47, 0x41, 0x7a, 0x72, 0x37, 0x5a, 0x56, 0x45, 0x6e, 511 0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77, 0x48, 0x31, 0x67, 0x52, 0x76, 512 0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62, 0x6d, 0x63, 0x76, 0x74, 0x64, 513 0x33, 0x72, 0x2b, 0x51, 0x74, 0x51, 0x48, 0x4f, 0x77, 0x76, 0x51, 0x48, 514 0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68, 0x49, 0x34, 0x69, 0x37, 0x33, 0x63, 515 0x37, 0x39, 0x34, 0x63, 0x7a, 0x48, 0x61, 0x0a, 0x52, 0x2b, 0x34, 0x33, 516 0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77, 0x44, 0x6e, 0x51, 0x64, 0x75, 517 0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f, 0x2f, 0x6a, 0x69, 0x69, 0x5a, 518 0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d, 0x47, 0x50, 0x4f, 0x49, 0x4d, 519 0x57, 0x4e, 0x58, 0x58, 0x41, 0x34, 0x47, 0x45, 0x41, 0x41, 0x4b, 0x42, 520 0x67, 0x43, 0x4f, 0x68, 0x4b, 0x65, 0x53, 0x42, 0x4f, 0x38, 0x70, 0x39, 521 0x0a, 0x79, 0x63, 0x35, 0x46, 0x7a, 0x76, 0x51, 0x65, 0x72, 0x51, 0x74, 522 0x32, 0x32, 0x77, 0x7a, 0x50, 0x6d, 0x63, 0x37, 0x72, 0x69, 0x4a, 0x38, 523 0x47, 0x53, 0x32, 0x37, 0x57, 0x66, 0x4a, 0x59, 0x70, 0x75, 0x77, 0x37, 524 0x4b, 0x6d, 0x6d, 0x34, 0x4f, 0x4a, 0x4e, 0x6d, 0x47, 0x78, 0x4f, 0x45, 525 0x66, 0x65, 0x51, 0x5a, 0x33, 0x38, 0x4a, 0x34, 0x37, 0x4d, 0x70, 0x66, 526 0x4e, 0x4a, 0x71, 0x76, 0x77, 0x0a, 0x32, 0x30, 0x44, 0x65, 0x5a, 0x51, 527 0x42, 0x77, 0x62, 0x34, 0x77, 0x36, 0x35, 0x41, 0x75, 0x69, 0x4c, 0x61, 528 0x49, 0x77, 0x52, 0x69, 0x69, 0x4e, 0x2f, 0x6f, 0x69, 0x4b, 0x36, 0x68, 529 0x6c, 0x42, 0x43, 0x58, 0x63, 0x62, 0x35, 0x65, 0x4c, 0x70, 0x59, 0x78, 530 0x64, 0x44, 0x35, 0x6b, 0x67, 0x2b, 0x38, 0x37, 0x79, 0x42, 0x76, 0x41, 531 0x58, 0x36, 0x48, 0x43, 0x6a, 0x6e, 0x70, 0x66, 0x68, 0x42, 0x0a, 0x78, 532 0x39, 0x47, 0x4b, 0x38, 0x68, 0x4d, 0x59, 0x6c, 0x75, 0x70, 0x4b, 0x31, 533 0x64, 0x53, 0x6c, 0x74, 0x6d, 0x55, 0x5a, 0x69, 0x61, 0x36, 0x6b, 0x68, 534 0x63, 0x4f, 0x69, 0x67, 0x6f, 0x31, 0x64, 0x6f, 0x30, 0x55, 0x77, 0x51, 535 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x45, 0x41, 536 0x6a, 0x41, 0x41, 0x4d, 0x41, 0x73, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 537 0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x46, 0x6f, 0x44, 0x41, 0x54, 538 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x55, 0x45, 0x44, 0x44, 0x41, 0x4b, 539 0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x44, 540 0x41, 0x54, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45, 541 0x44, 0x54, 0x41, 0x4c, 0x67, 0x67, 0x6c, 0x73, 0x62, 0x32, 0x4e, 0x68, 542 0x62, 0x47, 0x68, 0x76, 0x63, 0x33, 0x51, 0x77, 0x0a, 0x43, 0x77, 0x59, 543 0x4a, 0x59, 0x49, 0x5a, 0x49, 0x41, 0x57, 0x55, 0x44, 0x42, 0x41, 0x4d, 544 0x43, 0x41, 0x79, 0x38, 0x41, 0x4d, 0x43, 0x77, 0x43, 0x46, 0x43, 0x6c, 545 0x78, 0x49, 0x6e, 0x58, 0x54, 0x52, 0x57, 0x4e, 0x4a, 0x45, 0x57, 0x64, 546 0x69, 0x35, 0x69, 0x6c, 0x4e, 0x72, 0x2f, 0x66, 0x62, 0x4d, 0x31, 0x62, 547 0x4b, 0x41, 0x68, 0x51, 0x79, 0x34, 0x42, 0x37, 0x77, 0x74, 0x6d, 0x66, 548 0x64, 0x0a, 0x49, 0x2b, 0x7a, 0x56, 0x36, 0x67, 0x33, 0x77, 0x39, 0x71, 549 0x42, 0x6b, 0x4e, 0x71, 0x53, 0x74, 0x70, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 550 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 551 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 552 0x0a 553 }; 554 #endif 555 556 /* unused, to avoid warning. */ 557 static int idx; 558 559 #define FUZZTIME 1485898104 560 561 #define TIME_IMPL(t) \ 562 { \ 563 if (t != NULL) \ 564 *t = FUZZTIME; \ 565 return FUZZTIME; \ 566 } 567 568 /* 569 * This might not work in all cases (and definitely not on Windows 570 * because of the way linkers are) and callees can still get the 571 * current time instead of the fixed time. This will just result 572 * in things not being fully reproducible and have a slightly 573 * different coverage. 574 */ 575 #if !defined(_WIN32) 576 time_t time(time_t *t) TIME_IMPL(t) 577 #endif 578 579 int FuzzerInitialize(int *argc, char ***argv) 580 { 581 STACK_OF(SSL_COMP) *comp_methods; 582 583 FuzzerSetRand(); 584 OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ASYNC, NULL); 585 OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL); 586 ERR_clear_error(); 587 CRYPTO_free_ex_index(0, -1); 588 idx = SSL_get_ex_data_X509_STORE_CTX_idx(); 589 comp_methods = SSL_COMP_get_compression_methods(); 590 if (comp_methods != NULL) 591 sk_SSL_COMP_sort(comp_methods); 592 593 return 1; 594 } 595 596 int FuzzerTestOneInput(const uint8_t *buf, size_t len) 597 { 598 SSL *server; 599 BIO *in; 600 BIO *out; 601 #if !defined(OPENSSL_NO_EC) \ 602 || (!defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)) 603 BIO *bio_buf; 604 #endif 605 SSL_CTX *ctx; 606 int ret; 607 #ifndef OPENSSL_NO_DEPRECATED_3_0 608 RSA *privkey; 609 #endif 610 const uint8_t *bufp; 611 #if !defined(OPENSSL_NO_DEPRECATED_3_0) 612 EVP_PKEY *pkey; 613 #endif 614 X509 *cert; 615 #ifndef OPENSSL_NO_DEPRECATED_3_0 616 #ifndef OPENSSL_NO_EC 617 EC_KEY *ecdsakey = NULL; 618 #endif 619 #endif 620 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0) 621 DSA *dsakey = NULL; 622 #endif 623 uint8_t opt; 624 625 if (len < 2) 626 return 0; 627 628 /* This only fuzzes the initial flow from the client so far. */ 629 ctx = SSL_CTX_new(SSLv23_method()); 630 631 ret = SSL_CTX_set_min_proto_version(ctx, 0); 632 OPENSSL_assert(ret == 1); 633 ret = SSL_CTX_set_cipher_list(ctx, "ALL:eNULL:@SECLEVEL=0"); 634 OPENSSL_assert(ret == 1); 635 636 #ifndef OPENSSL_NO_DEPRECATED_3_0 637 /* RSA */ 638 bufp = kRSAPrivateKeyDER; 639 privkey = d2i_RSAPrivateKey(NULL, &bufp, sizeof(kRSAPrivateKeyDER)); 640 OPENSSL_assert(privkey != NULL); 641 pkey = EVP_PKEY_new(); 642 EVP_PKEY_assign_RSA(pkey, privkey); 643 ret = SSL_CTX_use_PrivateKey(ctx, pkey); 644 OPENSSL_assert(ret == 1); 645 EVP_PKEY_free(pkey); 646 #endif 647 648 bufp = kCertificateDER; 649 cert = d2i_X509(NULL, &bufp, sizeof(kCertificateDER)); 650 OPENSSL_assert(cert != NULL); 651 ret = SSL_CTX_use_certificate(ctx, cert); 652 OPENSSL_assert(ret == 1); 653 X509_free(cert); 654 655 #ifndef OPENSSL_NO_EC 656 #ifndef OPENSSL_NO_DEPRECATED_3_0 657 /* ECDSA */ 658 bio_buf = BIO_new(BIO_s_mem()); 659 OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSAPrivateKeyPEM, sizeof(ECDSAPrivateKeyPEM)) == sizeof(ECDSAPrivateKeyPEM)); 660 ecdsakey = PEM_read_bio_ECPrivateKey(bio_buf, NULL, NULL, NULL); 661 ERR_print_errors_fp(stderr); 662 OPENSSL_assert(ecdsakey != NULL); 663 BIO_free(bio_buf); 664 pkey = EVP_PKEY_new(); 665 EVP_PKEY_assign_EC_KEY(pkey, ecdsakey); 666 ret = SSL_CTX_use_PrivateKey(ctx, pkey); 667 OPENSSL_assert(ret == 1); 668 EVP_PKEY_free(pkey); 669 #endif 670 bio_buf = BIO_new(BIO_s_mem()); 671 OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSACertPEM, sizeof(ECDSACertPEM)) == sizeof(ECDSACertPEM)); 672 cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL); 673 OPENSSL_assert(cert != NULL); 674 BIO_free(bio_buf); 675 ret = SSL_CTX_use_certificate(ctx, cert); 676 OPENSSL_assert(ret == 1); 677 X509_free(cert); 678 #endif 679 680 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0) 681 /* DSA */ 682 bio_buf = BIO_new(BIO_s_mem()); 683 OPENSSL_assert((size_t)BIO_write(bio_buf, DSAPrivateKeyPEM, sizeof(DSAPrivateKeyPEM)) == sizeof(DSAPrivateKeyPEM)); 684 dsakey = PEM_read_bio_DSAPrivateKey(bio_buf, NULL, NULL, NULL); 685 ERR_print_errors_fp(stderr); 686 OPENSSL_assert(dsakey != NULL); 687 BIO_free(bio_buf); 688 pkey = EVP_PKEY_new(); 689 EVP_PKEY_assign_DSA(pkey, dsakey); 690 ret = SSL_CTX_use_PrivateKey(ctx, pkey); 691 OPENSSL_assert(ret == 1); 692 EVP_PKEY_free(pkey); 693 694 bio_buf = BIO_new(BIO_s_mem()); 695 OPENSSL_assert((size_t)BIO_write(bio_buf, DSACertPEM, sizeof(DSACertPEM)) == sizeof(DSACertPEM)); 696 cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL); 697 OPENSSL_assert(cert != NULL); 698 BIO_free(bio_buf); 699 ret = SSL_CTX_use_certificate(ctx, cert); 700 OPENSSL_assert(ret == 1); 701 X509_free(cert); 702 #endif 703 704 server = SSL_new(ctx); 705 in = BIO_new(BIO_s_mem()); 706 out = BIO_new(BIO_s_mem()); 707 SSL_set_bio(server, in, out); 708 SSL_set_accept_state(server); 709 710 opt = (uint8_t)buf[len - 1]; 711 len--; 712 713 OPENSSL_assert((size_t)BIO_write(in, buf, len) == len); 714 715 if ((opt & 0x01) != 0) { 716 do { 717 char early_buf[16384]; 718 size_t early_len; 719 ret = SSL_read_early_data(server, early_buf, sizeof(early_buf), &early_len); 720 721 if (ret != SSL_READ_EARLY_DATA_SUCCESS) 722 break; 723 } while (1); 724 } 725 726 if (SSL_do_handshake(server) == 1) { 727 /* Keep reading application data until error or EOF. */ 728 uint8_t tmp[1024]; 729 for (;;) { 730 if (SSL_read(server, tmp, sizeof(tmp)) <= 0) { 731 break; 732 } 733 } 734 } 735 SSL_free(server); 736 ERR_clear_error(); 737 SSL_CTX_free(ctx); 738 739 return 0; 740 } 741 742 void FuzzerCleanup(void) 743 { 744 FuzzerClearRand(); 745 } 746