Home | History | Annotate | Line # | Download | only in fuzz
      1 /*
      2  * Copyright 2016-2024 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,
     30     0x82,
     31     0x02,
     32     0xff,
     33     0x30,
     34     0x82,
     35     0x01,
     36     0xe7,
     37     0xa0,
     38     0x03,
     39     0x02,
     40     0x01,
     41     0x02,
     42     0x02,
     43     0x11,
     44     0x00,
     45     0xb1,
     46     0x84,
     47     0xee,
     48     0x34,
     49     0x99,
     50     0x98,
     51     0x76,
     52     0xfb,
     53     0x6f,
     54     0xb2,
     55     0x15,
     56     0xc8,
     57     0x47,
     58     0x79,
     59     0x05,
     60     0x9b,
     61     0x30,
     62     0x0d,
     63     0x06,
     64     0x09,
     65     0x2a,
     66     0x86,
     67     0x48,
     68     0x86,
     69     0xf7,
     70     0x0d,
     71     0x01,
     72     0x01,
     73     0x0b,
     74     0x05,
     75     0x00,
     76     0x30,
     77     0x12,
     78     0x31,
     79     0x10,
     80     0x30,
     81     0x0e,
     82     0x06,
     83     0x03,
     84     0x55,
     85     0x04,
     86     0x0a,
     87     0x13,
     88     0x07,
     89     0x41,
     90     0x63,
     91     0x6d,
     92     0x65,
     93     0x20,
     94     0x43,
     95     0x6f,
     96     0x30,
     97     0x1e,
     98     0x17,
     99     0x0d,
    100     0x31,
    101     0x35,
    102     0x31,
    103     0x31,
    104     0x30,
    105     0x37,
    106     0x30,
    107     0x30,
    108     0x32,
    109     0x34,
    110     0x35,
    111     0x36,
    112     0x5a,
    113     0x17,
    114     0x0d,
    115     0x31,
    116     0x36,
    117     0x31,
    118     0x31,
    119     0x30,
    120     0x36,
    121     0x30,
    122     0x30,
    123     0x32,
    124     0x34,
    125     0x35,
    126     0x36,
    127     0x5a,
    128     0x30,
    129     0x12,
    130     0x31,
    131     0x10,
    132     0x30,
    133     0x0e,
    134     0x06,
    135     0x03,
    136     0x55,
    137     0x04,
    138     0x0a,
    139     0x13,
    140     0x07,
    141     0x41,
    142     0x63,
    143     0x6d,
    144     0x65,
    145     0x20,
    146     0x43,
    147     0x6f,
    148     0x30,
    149     0x82,
    150     0x01,
    151     0x22,
    152     0x30,
    153     0x0d,
    154     0x06,
    155     0x09,
    156     0x2a,
    157     0x86,
    158     0x48,
    159     0x86,
    160     0xf7,
    161     0x0d,
    162     0x01,
    163     0x01,
    164     0x01,
    165     0x05,
    166     0x00,
    167     0x03,
    168     0x82,
    169     0x01,
    170     0x0f,
    171     0x00,
    172     0x30,
    173     0x82,
    174     0x01,
    175     0x0a,
    176     0x02,
    177     0x82,
    178     0x01,
    179     0x01,
    180     0x00,
    181     0xce,
    182     0x47,
    183     0xcb,
    184     0x11,
    185     0xbb,
    186     0xd2,
    187     0x9d,
    188     0x8e,
    189     0x9e,
    190     0xd2,
    191     0x1e,
    192     0x14,
    193     0xaf,
    194     0xc7,
    195     0xea,
    196     0xb6,
    197     0xc9,
    198     0x38,
    199     0x2a,
    200     0x6f,
    201     0xb3,
    202     0x7e,
    203     0xfb,
    204     0xbc,
    205     0xfc,
    206     0x59,
    207     0x42,
    208     0xb9,
    209     0x56,
    210     0xf0,
    211     0x4c,
    212     0x3f,
    213     0xf7,
    214     0x31,
    215     0x84,
    216     0xbe,
    217     0xac,
    218     0x03,
    219     0x9e,
    220     0x71,
    221     0x91,
    222     0x85,
    223     0xd8,
    224     0x32,
    225     0xbd,
    226     0x00,
    227     0xea,
    228     0xac,
    229     0x65,
    230     0xf6,
    231     0x03,
    232     0xc8,
    233     0x0f,
    234     0x8b,
    235     0xfd,
    236     0x6e,
    237     0x58,
    238     0x88,
    239     0x04,
    240     0x41,
    241     0x92,
    242     0x74,
    243     0xa6,
    244     0x57,
    245     0x2e,
    246     0x8e,
    247     0x88,
    248     0xd5,
    249     0x3d,
    250     0xda,
    251     0x14,
    252     0x3e,
    253     0x63,
    254     0x88,
    255     0x22,
    256     0xe3,
    257     0x53,
    258     0xe9,
    259     0xba,
    260     0x39,
    261     0x09,
    262     0xac,
    263     0xfb,
    264     0xd0,
    265     0x4c,
    266     0xf2,
    267     0x3c,
    268     0x20,
    269     0xd6,
    270     0x97,
    271     0xe6,
    272     0xed,
    273     0xf1,
    274     0x62,
    275     0x1e,
    276     0xe5,
    277     0xc9,
    278     0x48,
    279     0xa0,
    280     0xca,
    281     0x2e,
    282     0x3c,
    283     0x14,
    284     0x5a,
    285     0x82,
    286     0xd4,
    287     0xed,
    288     0xb1,
    289     0xe3,
    290     0x43,
    291     0xc1,
    292     0x2a,
    293     0x59,
    294     0xa5,
    295     0xb9,
    296     0xc8,
    297     0x48,
    298     0xa7,
    299     0x39,
    300     0x23,
    301     0x74,
    302     0xa7,
    303     0x37,
    304     0xb0,
    305     0x6f,
    306     0xc3,
    307     0x64,
    308     0x99,
    309     0x6c,
    310     0xa2,
    311     0x82,
    312     0xc8,
    313     0xf6,
    314     0xdb,
    315     0x86,
    316     0x40,
    317     0xce,
    318     0xd1,
    319     0x85,
    320     0x9f,
    321     0xce,
    322     0x69,
    323     0xf4,
    324     0x15,
    325     0x2a,
    326     0x23,
    327     0xca,
    328     0xea,
    329     0xb7,
    330     0x7b,
    331     0xdf,
    332     0xfb,
    333     0x43,
    334     0x5f,
    335     0xff,
    336     0x7a,
    337     0x49,
    338     0x49,
    339     0x0e,
    340     0xe7,
    341     0x02,
    342     0x51,
    343     0x45,
    344     0x13,
    345     0xe8,
    346     0x90,
    347     0x64,
    348     0x21,
    349     0x0c,
    350     0x26,
    351     0x2b,
    352     0x5d,
    353     0xfc,
    354     0xe4,
    355     0xb5,
    356     0x86,
    357     0x89,
    358     0x43,
    359     0x22,
    360     0x4c,
    361     0xf3,
    362     0x3b,
    363     0xf3,
    364     0x09,
    365     0xc4,
    366     0xa4,
    367     0x10,
    368     0x80,
    369     0xf2,
    370     0x46,
    371     0xe2,
    372     0x46,
    373     0x8f,
    374     0x76,
    375     0x50,
    376     0xbf,
    377     0xaf,
    378     0x2b,
    379     0x90,
    380     0x1b,
    381     0x78,
    382     0xc7,
    383     0xcf,
    384     0xc1,
    385     0x77,
    386     0xd0,
    387     0xfb,
    388     0xa9,
    389     0xfb,
    390     0xc9,
    391     0x66,
    392     0x5a,
    393     0xc5,
    394     0x9b,
    395     0x31,
    396     0x41,
    397     0x67,
    398     0x01,
    399     0xbe,
    400     0x33,
    401     0x10,
    402     0xba,
    403     0x05,
    404     0x58,
    405     0xed,
    406     0x76,
    407     0x53,
    408     0xde,
    409     0x5d,
    410     0xc1,
    411     0xe8,
    412     0xbb,
    413     0x9f,
    414     0xf1,
    415     0xcd,
    416     0xfb,
    417     0xdf,
    418     0x64,
    419     0x7f,
    420     0xd7,
    421     0x18,
    422     0xab,
    423     0x0f,
    424     0x94,
    425     0x28,
    426     0x95,
    427     0x4a,
    428     0xcc,
    429     0x6a,
    430     0xa9,
    431     0x50,
    432     0xc7,
    433     0x05,
    434     0x47,
    435     0x10,
    436     0x41,
    437     0x02,
    438     0x03,
    439     0x01,
    440     0x00,
    441     0x01,
    442     0xa3,
    443     0x50,
    444     0x30,
    445     0x4e,
    446     0x30,
    447     0x0e,
    448     0x06,
    449     0x03,
    450     0x55,
    451     0x1d,
    452     0x0f,
    453     0x01,
    454     0x01,
    455     0xff,
    456     0x04,
    457     0x04,
    458     0x03,
    459     0x02,
    460     0x05,
    461     0xa0,
    462     0x30,
    463     0x13,
    464     0x06,
    465     0x03,
    466     0x55,
    467     0x1d,
    468     0x25,
    469     0x04,
    470     0x0c,
    471     0x30,
    472     0x0a,
    473     0x06,
    474     0x08,
    475     0x2b,
    476     0x06,
    477     0x01,
    478     0x05,
    479     0x05,
    480     0x07,
    481     0x03,
    482     0x01,
    483     0x30,
    484     0x0c,
    485     0x06,
    486     0x03,
    487     0x55,
    488     0x1d,
    489     0x13,
    490     0x01,
    491     0x01,
    492     0xff,
    493     0x04,
    494     0x02,
    495     0x30,
    496     0x00,
    497     0x30,
    498     0x19,
    499     0x06,
    500     0x03,
    501     0x55,
    502     0x1d,
    503     0x11,
    504     0x04,
    505     0x12,
    506     0x30,
    507     0x10,
    508     0x82,
    509     0x0e,
    510     0x66,
    511     0x75,
    512     0x7a,
    513     0x7a,
    514     0x2e,
    515     0x62,
    516     0x6f,
    517     0x72,
    518     0x69,
    519     0x6e,
    520     0x67,
    521     0x73,
    522     0x73,
    523     0x6c,
    524     0x30,
    525     0x0d,
    526     0x06,
    527     0x09,
    528     0x2a,
    529     0x86,
    530     0x48,
    531     0x86,
    532     0xf7,
    533     0x0d,
    534     0x01,
    535     0x01,
    536     0x0b,
    537     0x05,
    538     0x00,
    539     0x03,
    540     0x82,
    541     0x01,
    542     0x01,
    543     0x00,
    544     0x92,
    545     0xde,
    546     0xef,
    547     0x96,
    548     0x06,
    549     0x7b,
    550     0xff,
    551     0x71,
    552     0x7d,
    553     0x4e,
    554     0xa0,
    555     0x7d,
    556     0xae,
    557     0xb8,
    558     0x22,
    559     0xb4,
    560     0x2c,
    561     0xf7,
    562     0x96,
    563     0x9c,
    564     0x37,
    565     0x1d,
    566     0x8f,
    567     0xe7,
    568     0xd9,
    569     0x47,
    570     0xff,
    571     0x3f,
    572     0xe9,
    573     0x35,
    574     0x95,
    575     0x0e,
    576     0xdd,
    577     0xdc,
    578     0x7f,
    579     0xc8,
    580     0x8a,
    581     0x1e,
    582     0x36,
    583     0x1d,
    584     0x38,
    585     0x47,
    586     0xfc,
    587     0x76,
    588     0xd2,
    589     0x1f,
    590     0x98,
    591     0xa1,
    592     0x36,
    593     0xac,
    594     0xc8,
    595     0x70,
    596     0x38,
    597     0x0a,
    598     0x3d,
    599     0x51,
    600     0x8d,
    601     0x0f,
    602     0x03,
    603     0x1b,
    604     0xef,
    605     0x62,
    606     0xa1,
    607     0xcb,
    608     0x2b,
    609     0x4a,
    610     0x8c,
    611     0x12,
    612     0x2b,
    613     0x54,
    614     0x50,
    615     0x9a,
    616     0x6b,
    617     0xfe,
    618     0xaf,
    619     0xd9,
    620     0xf6,
    621     0xbf,
    622     0x58,
    623     0x11,
    624     0x58,
    625     0x5e,
    626     0xe5,
    627     0x86,
    628     0x1e,
    629     0x3b,
    630     0x6b,
    631     0x30,
    632     0x7e,
    633     0x72,
    634     0x89,
    635     0xe8,
    636     0x6b,
    637     0x7b,
    638     0xb7,
    639     0xaf,
    640     0xef,
    641     0x8b,
    642     0xa9,
    643     0x3e,
    644     0xb0,
    645     0xcd,
    646     0x0b,
    647     0xef,
    648     0xb0,
    649     0x0c,
    650     0x96,
    651     0x2b,
    652     0xc5,
    653     0x3b,
    654     0xd5,
    655     0xf1,
    656     0xc2,
    657     0xae,
    658     0x3a,
    659     0x60,
    660     0xd9,
    661     0x0f,
    662     0x75,
    663     0x37,
    664     0x55,
    665     0x4d,
    666     0x62,
    667     0xd2,
    668     0xed,
    669     0x96,
    670     0xac,
    671     0x30,
    672     0x6b,
    673     0xda,
    674     0xa1,
    675     0x48,
    676     0x17,
    677     0x96,
    678     0x23,
    679     0x85,
    680     0x9a,
    681     0x57,
    682     0x77,
    683     0xe9,
    684     0x22,
    685     0xa2,
    686     0x37,
    687     0x03,
    688     0xba,
    689     0x49,
    690     0x77,
    691     0x40,
    692     0x3b,
    693     0x76,
    694     0x4b,
    695     0xda,
    696     0xc1,
    697     0x04,
    698     0x57,
    699     0x55,
    700     0x34,
    701     0x22,
    702     0x83,
    703     0x45,
    704     0x29,
    705     0xab,
    706     0x2e,
    707     0x11,
    708     0xff,
    709     0x0d,
    710     0xab,
    711     0x55,
    712     0xb1,
    713     0xa7,
    714     0x58,
    715     0x59,
    716     0x05,
    717     0x25,
    718     0xf9,
    719     0x1e,
    720     0x3d,
    721     0xb7,
    722     0xac,
    723     0x04,
    724     0x39,
    725     0x2c,
    726     0xf9,
    727     0xaf,
    728     0xb8,
    729     0x68,
    730     0xfb,
    731     0x8e,
    732     0x35,
    733     0x71,
    734     0x32,
    735     0xff,
    736     0x70,
    737     0xe9,
    738     0x46,
    739     0x6d,
    740     0x5c,
    741     0x06,
    742     0x90,
    743     0x88,
    744     0x23,
    745     0x48,
    746     0x0c,
    747     0x50,
    748     0xeb,
    749     0x0a,
    750     0xa9,
    751     0xae,
    752     0xe8,
    753     0xfc,
    754     0xbe,
    755     0xa5,
    756     0x76,
    757     0x94,
    758     0xd7,
    759     0x64,
    760     0x22,
    761     0x38,
    762     0x98,
    763     0x17,
    764     0xa4,
    765     0x3a,
    766     0xa7,
    767     0x59,
    768     0x9f,
    769     0x1d,
    770     0x3b,
    771     0x75,
    772     0x90,
    773     0x1a,
    774     0x81,
    775     0xef,
    776     0x19,
    777     0xfb,
    778     0x2b,
    779     0xb7,
    780     0xa7,
    781     0x64,
    782     0x61,
    783     0x22,
    784     0xa4,
    785     0x6f,
    786     0x7b,
    787     0xfa,
    788     0x58,
    789     0xbb,
    790     0x8c,
    791     0x4e,
    792     0x77,
    793     0x67,
    794     0xd0,
    795     0x5d,
    796     0x58,
    797     0x76,
    798     0x8a,
    799     0xbb,
    800 };
    801 
    802 #ifndef OPENSSL_NO_DEPRECATED_3_0
    803 static const uint8_t kRSAPrivateKeyDER[] = {
    804     0x30,
    805     0x82,
    806     0x04,
    807     0xa5,
    808     0x02,
    809     0x01,
    810     0x00,
    811     0x02,
    812     0x82,
    813     0x01,
    814     0x01,
    815     0x00,
    816     0xce,
    817     0x47,
    818     0xcb,
    819     0x11,
    820     0xbb,
    821     0xd2,
    822     0x9d,
    823     0x8e,
    824     0x9e,
    825     0xd2,
    826     0x1e,
    827     0x14,
    828     0xaf,
    829     0xc7,
    830     0xea,
    831     0xb6,
    832     0xc9,
    833     0x38,
    834     0x2a,
    835     0x6f,
    836     0xb3,
    837     0x7e,
    838     0xfb,
    839     0xbc,
    840     0xfc,
    841     0x59,
    842     0x42,
    843     0xb9,
    844     0x56,
    845     0xf0,
    846     0x4c,
    847     0x3f,
    848     0xf7,
    849     0x31,
    850     0x84,
    851     0xbe,
    852     0xac,
    853     0x03,
    854     0x9e,
    855     0x71,
    856     0x91,
    857     0x85,
    858     0xd8,
    859     0x32,
    860     0xbd,
    861     0x00,
    862     0xea,
    863     0xac,
    864     0x65,
    865     0xf6,
    866     0x03,
    867     0xc8,
    868     0x0f,
    869     0x8b,
    870     0xfd,
    871     0x6e,
    872     0x58,
    873     0x88,
    874     0x04,
    875     0x41,
    876     0x92,
    877     0x74,
    878     0xa6,
    879     0x57,
    880     0x2e,
    881     0x8e,
    882     0x88,
    883     0xd5,
    884     0x3d,
    885     0xda,
    886     0x14,
    887     0x3e,
    888     0x63,
    889     0x88,
    890     0x22,
    891     0xe3,
    892     0x53,
    893     0xe9,
    894     0xba,
    895     0x39,
    896     0x09,
    897     0xac,
    898     0xfb,
    899     0xd0,
    900     0x4c,
    901     0xf2,
    902     0x3c,
    903     0x20,
    904     0xd6,
    905     0x97,
    906     0xe6,
    907     0xed,
    908     0xf1,
    909     0x62,
    910     0x1e,
    911     0xe5,
    912     0xc9,
    913     0x48,
    914     0xa0,
    915     0xca,
    916     0x2e,
    917     0x3c,
    918     0x14,
    919     0x5a,
    920     0x82,
    921     0xd4,
    922     0xed,
    923     0xb1,
    924     0xe3,
    925     0x43,
    926     0xc1,
    927     0x2a,
    928     0x59,
    929     0xa5,
    930     0xb9,
    931     0xc8,
    932     0x48,
    933     0xa7,
    934     0x39,
    935     0x23,
    936     0x74,
    937     0xa7,
    938     0x37,
    939     0xb0,
    940     0x6f,
    941     0xc3,
    942     0x64,
    943     0x99,
    944     0x6c,
    945     0xa2,
    946     0x82,
    947     0xc8,
    948     0xf6,
    949     0xdb,
    950     0x86,
    951     0x40,
    952     0xce,
    953     0xd1,
    954     0x85,
    955     0x9f,
    956     0xce,
    957     0x69,
    958     0xf4,
    959     0x15,
    960     0x2a,
    961     0x23,
    962     0xca,
    963     0xea,
    964     0xb7,
    965     0x7b,
    966     0xdf,
    967     0xfb,
    968     0x43,
    969     0x5f,
    970     0xff,
    971     0x7a,
    972     0x49,
    973     0x49,
    974     0x0e,
    975     0xe7,
    976     0x02,
    977     0x51,
    978     0x45,
    979     0x13,
    980     0xe8,
    981     0x90,
    982     0x64,
    983     0x21,
    984     0x0c,
    985     0x26,
    986     0x2b,
    987     0x5d,
    988     0xfc,
    989     0xe4,
    990     0xb5,
    991     0x86,
    992     0x89,
    993     0x43,
    994     0x22,
    995     0x4c,
    996     0xf3,
    997     0x3b,
    998     0xf3,
    999     0x09,
   1000     0xc4,
   1001     0xa4,
   1002     0x10,
   1003     0x80,
   1004     0xf2,
   1005     0x46,
   1006     0xe2,
   1007     0x46,
   1008     0x8f,
   1009     0x76,
   1010     0x50,
   1011     0xbf,
   1012     0xaf,
   1013     0x2b,
   1014     0x90,
   1015     0x1b,
   1016     0x78,
   1017     0xc7,
   1018     0xcf,
   1019     0xc1,
   1020     0x77,
   1021     0xd0,
   1022     0xfb,
   1023     0xa9,
   1024     0xfb,
   1025     0xc9,
   1026     0x66,
   1027     0x5a,
   1028     0xc5,
   1029     0x9b,
   1030     0x31,
   1031     0x41,
   1032     0x67,
   1033     0x01,
   1034     0xbe,
   1035     0x33,
   1036     0x10,
   1037     0xba,
   1038     0x05,
   1039     0x58,
   1040     0xed,
   1041     0x76,
   1042     0x53,
   1043     0xde,
   1044     0x5d,
   1045     0xc1,
   1046     0xe8,
   1047     0xbb,
   1048     0x9f,
   1049     0xf1,
   1050     0xcd,
   1051     0xfb,
   1052     0xdf,
   1053     0x64,
   1054     0x7f,
   1055     0xd7,
   1056     0x18,
   1057     0xab,
   1058     0x0f,
   1059     0x94,
   1060     0x28,
   1061     0x95,
   1062     0x4a,
   1063     0xcc,
   1064     0x6a,
   1065     0xa9,
   1066     0x50,
   1067     0xc7,
   1068     0x05,
   1069     0x47,
   1070     0x10,
   1071     0x41,
   1072     0x02,
   1073     0x03,
   1074     0x01,
   1075     0x00,
   1076     0x01,
   1077     0x02,
   1078     0x82,
   1079     0x01,
   1080     0x01,
   1081     0x00,
   1082     0xa8,
   1083     0x47,
   1084     0xb9,
   1085     0x4a,
   1086     0x06,
   1087     0x47,
   1088     0x93,
   1089     0x71,
   1090     0x3d,
   1091     0xef,
   1092     0x7b,
   1093     0xca,
   1094     0xb4,
   1095     0x7c,
   1096     0x0a,
   1097     0xe6,
   1098     0x82,
   1099     0xd0,
   1100     0xe7,
   1101     0x0d,
   1102     0xa9,
   1103     0x08,
   1104     0xf6,
   1105     0xa4,
   1106     0xfd,
   1107     0xd8,
   1108     0x73,
   1109     0xae,
   1110     0x6f,
   1111     0x56,
   1112     0x29,
   1113     0x5e,
   1114     0x25,
   1115     0x72,
   1116     0xa8,
   1117     0x30,
   1118     0x44,
   1119     0x73,
   1120     0xcf,
   1121     0x56,
   1122     0x26,
   1123     0xb9,
   1124     0x61,
   1125     0xde,
   1126     0x42,
   1127     0x81,
   1128     0xf4,
   1129     0xf0,
   1130     0x1f,
   1131     0x5d,
   1132     0xcb,
   1133     0x47,
   1134     0xf2,
   1135     0x26,
   1136     0xe9,
   1137     0xe0,
   1138     0x93,
   1139     0x28,
   1140     0xa3,
   1141     0x10,
   1142     0x3b,
   1143     0x42,
   1144     0x1e,
   1145     0x51,
   1146     0x11,
   1147     0x12,
   1148     0x06,
   1149     0x5e,
   1150     0xaf,
   1151     0xce,
   1152     0xb0,
   1153     0xa5,
   1154     0x14,
   1155     0xdd,
   1156     0x82,
   1157     0x58,
   1158     0xa1,
   1159     0xa4,
   1160     0x12,
   1161     0xdf,
   1162     0x65,
   1163     0x1d,
   1164     0x51,
   1165     0x70,
   1166     0x64,
   1167     0xd5,
   1168     0x58,
   1169     0x68,
   1170     0x11,
   1171     0xa8,
   1172     0x6a,
   1173     0x23,
   1174     0xc2,
   1175     0xbf,
   1176     0xa1,
   1177     0x25,
   1178     0x24,
   1179     0x47,
   1180     0xb3,
   1181     0xa4,
   1182     0x3c,
   1183     0x83,
   1184     0x96,
   1185     0xb7,
   1186     0x1f,
   1187     0xf4,
   1188     0x44,
   1189     0xd4,
   1190     0xd1,
   1191     0xe9,
   1192     0xfc,
   1193     0x33,
   1194     0x68,
   1195     0x5e,
   1196     0xe2,
   1197     0x68,
   1198     0x99,
   1199     0x9c,
   1200     0x91,
   1201     0xe8,
   1202     0x72,
   1203     0xc9,
   1204     0xd7,
   1205     0x8c,
   1206     0x80,
   1207     0x20,
   1208     0x8e,
   1209     0x77,
   1210     0x83,
   1211     0x4d,
   1212     0xe4,
   1213     0xab,
   1214     0xf9,
   1215     0x74,
   1216     0xa1,
   1217     0xdf,
   1218     0xd3,
   1219     0xc0,
   1220     0x0d,
   1221     0x5b,
   1222     0x05,
   1223     0x51,
   1224     0xc2,
   1225     0x6f,
   1226     0xb2,
   1227     0x91,
   1228     0x02,
   1229     0xec,
   1230     0xc0,
   1231     0x02,
   1232     0x1a,
   1233     0x5c,
   1234     0x91,
   1235     0x05,
   1236     0xf1,
   1237     0xe3,
   1238     0xfa,
   1239     0x65,
   1240     0xc2,
   1241     0xad,
   1242     0x24,
   1243     0xe6,
   1244     0xe5,
   1245     0x3c,
   1246     0xb6,
   1247     0x16,
   1248     0xf1,
   1249     0xa1,
   1250     0x67,
   1251     0x1a,
   1252     0x9d,
   1253     0x37,
   1254     0x56,
   1255     0xbf,
   1256     0x01,
   1257     0xd7,
   1258     0x3b,
   1259     0x35,
   1260     0x30,
   1261     0x57,
   1262     0x73,
   1263     0xf4,
   1264     0xf0,
   1265     0x5e,
   1266     0xa7,
   1267     0xe8,
   1268     0x0a,
   1269     0xc1,
   1270     0x94,
   1271     0x17,
   1272     0xcf,
   1273     0x0a,
   1274     0xbd,
   1275     0xf5,
   1276     0x31,
   1277     0xa7,
   1278     0x2d,
   1279     0xf7,
   1280     0xf5,
   1281     0xd9,
   1282     0x8c,
   1283     0xc2,
   1284     0x01,
   1285     0xbd,
   1286     0xda,
   1287     0x16,
   1288     0x8e,
   1289     0xb9,
   1290     0x30,
   1291     0x40,
   1292     0xa6,
   1293     0x6e,
   1294     0xbd,
   1295     0xcd,
   1296     0x4d,
   1297     0x84,
   1298     0x67,
   1299     0x4e,
   1300     0x0b,
   1301     0xce,
   1302     0xd5,
   1303     0xef,
   1304     0xf8,
   1305     0x08,
   1306     0x63,
   1307     0x02,
   1308     0xc6,
   1309     0xc7,
   1310     0xf7,
   1311     0x67,
   1312     0x92,
   1313     0xe2,
   1314     0x23,
   1315     0x9d,
   1316     0x27,
   1317     0x22,
   1318     0x1d,
   1319     0xc6,
   1320     0x67,
   1321     0x5e,
   1322     0x66,
   1323     0xbf,
   1324     0x03,
   1325     0xb8,
   1326     0xa9,
   1327     0x67,
   1328     0xd4,
   1329     0x39,
   1330     0xd8,
   1331     0x75,
   1332     0xfa,
   1333     0xe8,
   1334     0xed,
   1335     0x56,
   1336     0xb8,
   1337     0x81,
   1338     0x02,
   1339     0x81,
   1340     0x81,
   1341     0x00,
   1342     0xf7,
   1343     0x46,
   1344     0x68,
   1345     0xc6,
   1346     0x13,
   1347     0xf8,
   1348     0xba,
   1349     0x0f,
   1350     0x83,
   1351     0xdb,
   1352     0x05,
   1353     0xa8,
   1354     0x25,
   1355     0x00,
   1356     0x70,
   1357     0x9c,
   1358     0x9e,
   1359     0x8b,
   1360     0x12,
   1361     0x34,
   1362     0x0d,
   1363     0x96,
   1364     0xcf,
   1365     0x0d,
   1366     0x98,
   1367     0x9b,
   1368     0x8d,
   1369     0x9c,
   1370     0x96,
   1371     0x78,
   1372     0xd1,
   1373     0x3c,
   1374     0x01,
   1375     0x8c,
   1376     0xb9,
   1377     0x35,
   1378     0x5c,
   1379     0x20,
   1380     0x42,
   1381     0xb4,
   1382     0x38,
   1383     0xe3,
   1384     0xd6,
   1385     0x54,
   1386     0xe7,
   1387     0x55,
   1388     0xd6,
   1389     0x26,
   1390     0x8a,
   1391     0x0c,
   1392     0xf6,
   1393     0x1f,
   1394     0xe0,
   1395     0x04,
   1396     0xc1,
   1397     0x22,
   1398     0x42,
   1399     0x19,
   1400     0x61,
   1401     0xc4,
   1402     0x94,
   1403     0x7c,
   1404     0x07,
   1405     0x2e,
   1406     0x80,
   1407     0x52,
   1408     0xfe,
   1409     0x8d,
   1410     0xe6,
   1411     0x92,
   1412     0x3a,
   1413     0x91,
   1414     0xfe,
   1415     0x72,
   1416     0x99,
   1417     0xe1,
   1418     0x2a,
   1419     0x73,
   1420     0x76,
   1421     0xb1,
   1422     0x24,
   1423     0x20,
   1424     0x67,
   1425     0xde,
   1426     0x28,
   1427     0xcb,
   1428     0x0e,
   1429     0xe6,
   1430     0x52,
   1431     0xb5,
   1432     0xfa,
   1433     0xfb,
   1434     0x8b,
   1435     0x1e,
   1436     0x6a,
   1437     0x1d,
   1438     0x09,
   1439     0x26,
   1440     0xb9,
   1441     0xa7,
   1442     0x61,
   1443     0xba,
   1444     0xf8,
   1445     0x79,
   1446     0xd2,
   1447     0x66,
   1448     0x57,
   1449     0x28,
   1450     0xd7,
   1451     0x31,
   1452     0xb5,
   1453     0x0b,
   1454     0x27,
   1455     0x19,
   1456     0x1e,
   1457     0x6f,
   1458     0x46,
   1459     0xfc,
   1460     0x54,
   1461     0x95,
   1462     0xeb,
   1463     0x78,
   1464     0x01,
   1465     0xb6,
   1466     0xd9,
   1467     0x79,
   1468     0x5a,
   1469     0x4d,
   1470     0x02,
   1471     0x81,
   1472     0x81,
   1473     0x00,
   1474     0xd5,
   1475     0x8f,
   1476     0x16,
   1477     0x53,
   1478     0x2f,
   1479     0x57,
   1480     0x93,
   1481     0xbf,
   1482     0x09,
   1483     0x75,
   1484     0xbf,
   1485     0x63,
   1486     0x40,
   1487     0x3d,
   1488     0x27,
   1489     0xfd,
   1490     0x23,
   1491     0x21,
   1492     0xde,
   1493     0x9b,
   1494     0xe9,
   1495     0x73,
   1496     0x3f,
   1497     0x49,
   1498     0x02,
   1499     0xd2,
   1500     0x38,
   1501     0x96,
   1502     0xcf,
   1503     0xc3,
   1504     0xba,
   1505     0x92,
   1506     0x07,
   1507     0x87,
   1508     0x52,
   1509     0xa9,
   1510     0x35,
   1511     0xe3,
   1512     0x0c,
   1513     0xe4,
   1514     0x2f,
   1515     0x05,
   1516     0x7b,
   1517     0x37,
   1518     0xa5,
   1519     0x40,
   1520     0x9c,
   1521     0x3b,
   1522     0x94,
   1523     0xf7,
   1524     0xad,
   1525     0xa0,
   1526     0xee,
   1527     0x3a,
   1528     0xa8,
   1529     0xfb,
   1530     0x1f,
   1531     0x11,
   1532     0x1f,
   1533     0xd8,
   1534     0x9a,
   1535     0x80,
   1536     0x42,
   1537     0x3d,
   1538     0x7f,
   1539     0xa4,
   1540     0xb8,
   1541     0x9a,
   1542     0xaa,
   1543     0xea,
   1544     0x72,
   1545     0xc1,
   1546     0xe3,
   1547     0xed,
   1548     0x06,
   1549     0x60,
   1550     0x92,
   1551     0x37,
   1552     0xf9,
   1553     0xba,
   1554     0xfb,
   1555     0x9e,
   1556     0xed,
   1557     0x05,
   1558     0xa6,
   1559     0xd4,
   1560     0x72,
   1561     0x68,
   1562     0x4f,
   1563     0x63,
   1564     0xfe,
   1565     0xd6,
   1566     0x10,
   1567     0x0d,
   1568     0x4f,
   1569     0x0a,
   1570     0x93,
   1571     0xc6,
   1572     0xb9,
   1573     0xd7,
   1574     0xaf,
   1575     0xfd,
   1576     0xd9,
   1577     0x57,
   1578     0x7d,
   1579     0xcb,
   1580     0x75,
   1581     0xe8,
   1582     0x93,
   1583     0x2b,
   1584     0xae,
   1585     0x4f,
   1586     0xea,
   1587     0xd7,
   1588     0x30,
   1589     0x0b,
   1590     0x58,
   1591     0x44,
   1592     0x82,
   1593     0x0f,
   1594     0x84,
   1595     0x5d,
   1596     0x62,
   1597     0x11,
   1598     0x78,
   1599     0xea,
   1600     0x5f,
   1601     0xc5,
   1602     0x02,
   1603     0x81,
   1604     0x81,
   1605     0x00,
   1606     0x82,
   1607     0x0c,
   1608     0xc1,
   1609     0xe6,
   1610     0x0b,
   1611     0x72,
   1612     0xf1,
   1613     0x48,
   1614     0x5f,
   1615     0xac,
   1616     0xbd,
   1617     0x98,
   1618     0xe5,
   1619     0x7d,
   1620     0x09,
   1621     0xbd,
   1622     0x15,
   1623     0x95,
   1624     0x47,
   1625     0x09,
   1626     0xa1,
   1627     0x6c,
   1628     0x03,
   1629     0x91,
   1630     0xbf,
   1631     0x05,
   1632     0x70,
   1633     0xc1,
   1634     0x3e,
   1635     0x52,
   1636     0x64,
   1637     0x99,
   1638     0x0e,
   1639     0xa7,
   1640     0x98,
   1641     0x70,
   1642     0xfb,
   1643     0xf6,
   1644     0xeb,
   1645     0x9e,
   1646     0x25,
   1647     0x9d,
   1648     0x8e,
   1649     0x88,
   1650     0x30,
   1651     0xf2,
   1652     0xf0,
   1653     0x22,
   1654     0x6c,
   1655     0xd0,
   1656     0xcc,
   1657     0x51,
   1658     0x8f,
   1659     0x5c,
   1660     0x70,
   1661     0xc7,
   1662     0x37,
   1663     0xc4,
   1664     0x69,
   1665     0xab,
   1666     0x1d,
   1667     0xfc,
   1668     0xed,
   1669     0x3a,
   1670     0x03,
   1671     0xbb,
   1672     0xa2,
   1673     0xad,
   1674     0xb6,
   1675     0xea,
   1676     0x89,
   1677     0x6b,
   1678     0x67,
   1679     0x4b,
   1680     0x96,
   1681     0xaa,
   1682     0xd9,
   1683     0xcc,
   1684     0xc8,
   1685     0x4b,
   1686     0xfa,
   1687     0x18,
   1688     0x21,
   1689     0x08,
   1690     0xb2,
   1691     0xa3,
   1692     0xb9,
   1693     0x3e,
   1694     0x61,
   1695     0x99,
   1696     0xdc,
   1697     0x5a,
   1698     0x97,
   1699     0x9c,
   1700     0x73,
   1701     0x6a,
   1702     0xb9,
   1703     0xf9,
   1704     0x68,
   1705     0x03,
   1706     0x24,
   1707     0x5f,
   1708     0x55,
   1709     0x77,
   1710     0x9c,
   1711     0xb4,
   1712     0xbe,
   1713     0x7a,
   1714     0x78,
   1715     0x53,
   1716     0x68,
   1717     0x48,
   1718     0x69,
   1719     0x53,
   1720     0xc8,
   1721     0xb1,
   1722     0xf5,
   1723     0xbf,
   1724     0x98,
   1725     0x2d,
   1726     0x11,
   1727     0x1e,
   1728     0x98,
   1729     0xa8,
   1730     0x36,
   1731     0x50,
   1732     0xa0,
   1733     0xb1,
   1734     0x02,
   1735     0x81,
   1736     0x81,
   1737     0x00,
   1738     0x90,
   1739     0x88,
   1740     0x30,
   1741     0x71,
   1742     0xc7,
   1743     0xfe,
   1744     0x9b,
   1745     0x6d,
   1746     0x95,
   1747     0x37,
   1748     0x6d,
   1749     0x79,
   1750     0xfc,
   1751     0x85,
   1752     0xe7,
   1753     0x44,
   1754     0x78,
   1755     0xbc,
   1756     0x79,
   1757     0x6e,
   1758     0x47,
   1759     0x86,
   1760     0xc9,
   1761     0xf3,
   1762     0xdd,
   1763     0xc6,
   1764     0xec,
   1765     0xa9,
   1766     0x94,
   1767     0x9f,
   1768     0x40,
   1769     0xeb,
   1770     0x87,
   1771     0xd0,
   1772     0xdb,
   1773     0xee,
   1774     0xcd,
   1775     0x1b,
   1776     0x87,
   1777     0x23,
   1778     0xff,
   1779     0x76,
   1780     0xd4,
   1781     0x37,
   1782     0x8a,
   1783     0xcd,
   1784     0xb9,
   1785     0x6e,
   1786     0xd1,
   1787     0x98,
   1788     0xf6,
   1789     0x97,
   1790     0x8d,
   1791     0xe3,
   1792     0x81,
   1793     0x6d,
   1794     0xc3,
   1795     0x4e,
   1796     0xd1,
   1797     0xa0,
   1798     0xc4,
   1799     0x9f,
   1800     0xbd,
   1801     0x34,
   1802     0xe5,
   1803     0xe8,
   1804     0x53,
   1805     0x4f,
   1806     0xca,
   1807     0x10,
   1808     0xb5,
   1809     0xed,
   1810     0xe7,
   1811     0x16,
   1812     0x09,
   1813     0x54,
   1814     0xde,
   1815     0x60,
   1816     0xa7,
   1817     0xd1,
   1818     0x16,
   1819     0x6e,
   1820     0x2e,
   1821     0xb7,
   1822     0xbe,
   1823     0x7a,
   1824     0xd5,
   1825     0x9b,
   1826     0x26,
   1827     0xef,
   1828     0xe4,
   1829     0x0e,
   1830     0x77,
   1831     0xfa,
   1832     0xa9,
   1833     0xdd,
   1834     0xdc,
   1835     0xb9,
   1836     0x88,
   1837     0x19,
   1838     0x23,
   1839     0x70,
   1840     0xc7,
   1841     0xe1,
   1842     0x60,
   1843     0xaf,
   1844     0x8c,
   1845     0x73,
   1846     0x04,
   1847     0xf7,
   1848     0x71,
   1849     0x17,
   1850     0x81,
   1851     0x36,
   1852     0x75,
   1853     0xbb,
   1854     0x97,
   1855     0xd7,
   1856     0x75,
   1857     0xb6,
   1858     0x8e,
   1859     0xbc,
   1860     0xac,
   1861     0x9c,
   1862     0x6a,
   1863     0x9b,
   1864     0x24,
   1865     0x89,
   1866     0x02,
   1867     0x81,
   1868     0x80,
   1869     0x5a,
   1870     0x2b,
   1871     0xc7,
   1872     0x6b,
   1873     0x8c,
   1874     0x65,
   1875     0xdb,
   1876     0x04,
   1877     0x73,
   1878     0xab,
   1879     0x25,
   1880     0xe1,
   1881     0x5b,
   1882     0xbc,
   1883     0x3c,
   1884     0xcf,
   1885     0x5a,
   1886     0x3c,
   1887     0x04,
   1888     0xae,
   1889     0x97,
   1890     0x2e,
   1891     0xfd,
   1892     0xa4,
   1893     0x97,
   1894     0x1f,
   1895     0x05,
   1896     0x17,
   1897     0x27,
   1898     0xac,
   1899     0x7c,
   1900     0x30,
   1901     0x85,
   1902     0xb4,
   1903     0x82,
   1904     0x3f,
   1905     0x5b,
   1906     0xb7,
   1907     0x94,
   1908     0x3b,
   1909     0x7f,
   1910     0x6c,
   1911     0x0c,
   1912     0xc7,
   1913     0x16,
   1914     0xc6,
   1915     0xa0,
   1916     0xbd,
   1917     0x80,
   1918     0xb0,
   1919     0x81,
   1920     0xde,
   1921     0xa0,
   1922     0x23,
   1923     0xa6,
   1924     0xf6,
   1925     0x75,
   1926     0x33,
   1927     0x51,
   1928     0x35,
   1929     0xa2,
   1930     0x75,
   1931     0x55,
   1932     0x70,
   1933     0x4d,
   1934     0x42,
   1935     0xbb,
   1936     0xcf,
   1937     0x54,
   1938     0xe4,
   1939     0xdb,
   1940     0x2d,
   1941     0x88,
   1942     0xa0,
   1943     0x7a,
   1944     0xf2,
   1945     0x17,
   1946     0xa7,
   1947     0xdd,
   1948     0x13,
   1949     0x44,
   1950     0x9f,
   1951     0x5f,
   1952     0x6b,
   1953     0x2c,
   1954     0x42,
   1955     0x42,
   1956     0x8b,
   1957     0x13,
   1958     0x4d,
   1959     0xf9,
   1960     0x5b,
   1961     0xf8,
   1962     0x33,
   1963     0x42,
   1964     0xd9,
   1965     0x9e,
   1966     0x50,
   1967     0x1c,
   1968     0x7c,
   1969     0xbc,
   1970     0xfa,
   1971     0x62,
   1972     0x85,
   1973     0x0b,
   1974     0xcf,
   1975     0x99,
   1976     0xda,
   1977     0x9e,
   1978     0x04,
   1979     0x90,
   1980     0xb2,
   1981     0xc6,
   1982     0xb2,
   1983     0x0a,
   1984     0x2a,
   1985     0x7c,
   1986     0x6d,
   1987     0x6a,
   1988     0x40,
   1989     0xfc,
   1990     0xf5,
   1991     0x50,
   1992     0x98,
   1993     0x46,
   1994     0x89,
   1995     0x82,
   1996     0x40,
   1997 };
   1998 #endif
   1999 
   2000 #ifndef OPENSSL_NO_EC
   2001 #ifndef OPENSSL_NO_DEPRECATED_3_0
   2002 /*
   2003  *  -----BEGIN EC PRIVATE KEY-----
   2004  *  MHcCAQEEIJLyl7hJjpQL/RhP1x2zS79xdiPJQB683gWeqcqHPeZkoAoGCCqGSM49
   2005  *  AwEHoUQDQgAEdsjygVYjjaKBF4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazI
   2006  *  D/xy8JiYjtPKVE/Zqwbmivp2UwtH28a7NQ==
   2007  *  -----END EC PRIVATE KEY-----
   2008  */
   2009 static const char ECDSAPrivateKeyPEM[] = {
   2010     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45,
   2011     0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45,
   2012     0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x48, 0x63, 0x43, 0x41,
   2013     0x51, 0x45, 0x45, 0x49, 0x4a, 0x4c, 0x79, 0x6c, 0x37, 0x68, 0x4a, 0x6a,
   2014     0x70, 0x51, 0x4c, 0x2f, 0x52, 0x68, 0x50, 0x31, 0x78, 0x32, 0x7a, 0x53,
   2015     0x37, 0x39, 0x78, 0x64, 0x69, 0x50, 0x4a, 0x51, 0x42, 0x36, 0x38, 0x33,
   2016     0x67, 0x57, 0x65, 0x71, 0x63, 0x71, 0x48, 0x50, 0x65, 0x5a, 0x6b, 0x6f,
   2017     0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x0a,
   2018     0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45,
   2019     0x64, 0x73, 0x6a, 0x79, 0x67, 0x56, 0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42,
   2020     0x46, 0x34, 0x43, 0x4e, 0x45, 0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30,
   2021     0x31, 0x37, 0x70, 0x35, 0x2f, 0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f,
   2022     0x54, 0x48, 0x79, 0x39, 0x49, 0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44,
   2023     0x44, 0x61, 0x7a, 0x49, 0x0a, 0x44, 0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69,
   2024     0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56, 0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62,
   2025     0x6d, 0x69, 0x76, 0x70, 0x32, 0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61,
   2026     0x37, 0x4e, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45,
   2027     0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
   2028     0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
   2029 };
   2030 #endif
   2031 
   2032 /*
   2033  * -----BEGIN CERTIFICATE-----
   2034  *  MIIBXzCCAQagAwIBAgIJAK6/Yvf/ain6MAoGCCqGSM49BAMCMBIxEDAOBgNVBAoM
   2035  *  B0FjbWUgQ28wHhcNMTYxMjI1MTEzOTI3WhcNMjYxMjI1MTEzOTI3WjASMRAwDgYD
   2036  *  VQQKDAdBY21lIENvMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdsjygVYjjaKB
   2037  *  F4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazID/xy8JiYjtPKVE/Zqwbmivp2
   2038  *  UwtH28a7NaNFMEMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYI
   2039  *  KwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0cAMEQC
   2040  *  IEzr3t/jejVE9oSnBp8c3P2p+lDLVRrB8zxLyjZvirUXAiAyQPaE9MNcL8/nRpuu
   2041  *  99I1enCSmWIAJ57IwuJ/n1d45Q==
   2042  *  -----END CERTIFICATE-----
   2043  */
   2044 static const char ECDSACertPEM[] = {
   2045     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
   2046     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
   2047     0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x58, 0x7a, 0x43, 0x43,
   2048     0x41, 0x51, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
   2049     0x41, 0x4b, 0x36, 0x2f, 0x59, 0x76, 0x66, 0x2f, 0x61, 0x69, 0x6e, 0x36,
   2050     0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39,
   2051     0x42, 0x41, 0x4d, 0x43, 0x4d, 0x42, 0x49, 0x78, 0x45, 0x44, 0x41, 0x4f,
   2052     0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x42, 0x30, 0x46,
   2053     0x6a, 0x62, 0x57, 0x55, 0x67, 0x51, 0x32, 0x38, 0x77, 0x48, 0x68, 0x63,
   2054     0x4e, 0x4d, 0x54, 0x59, 0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45,
   2055     0x7a, 0x4f, 0x54, 0x49, 0x33, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x59,
   2056     0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45, 0x7a, 0x4f, 0x54, 0x49,
   2057     0x33, 0x57, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59,
   2058     0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x64, 0x42, 0x59, 0x32,
   2059     0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x46, 0x6b, 0x77, 0x45, 0x77,
   2060     0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51,
   2061     0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x44, 0x41, 0x51,
   2062     0x63, 0x44, 0x51, 0x67, 0x41, 0x45, 0x64, 0x73, 0x6a, 0x79, 0x67, 0x56,
   2063     0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42, 0x0a, 0x46, 0x34, 0x43, 0x4e, 0x45,
   2064     0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30, 0x31, 0x37, 0x70, 0x35, 0x2f,
   2065     0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f, 0x54, 0x48, 0x79, 0x39, 0x49,
   2066     0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44, 0x44, 0x61, 0x7a, 0x49, 0x44,
   2067     0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69, 0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56,
   2068     0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62, 0x6d, 0x69, 0x76, 0x70, 0x32, 0x0a,
   2069     0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61, 0x37, 0x4e, 0x61, 0x4e, 0x46,
   2070     0x4d, 0x45, 0x4d, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54,
   2071     0x42, 0x41, 0x49, 0x77, 0x41, 0x44, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56,
   2072     0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x42, 0x61, 0x41, 0x77,
   2073     0x45, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6c, 0x42, 0x41, 0x77, 0x77,
   2074     0x43, 0x67, 0x59, 0x49, 0x0a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55,
   2075     0x48, 0x41, 0x77, 0x45, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30,
   2076     0x52, 0x42, 0x41, 0x30, 0x77, 0x43, 0x34, 0x49, 0x4a, 0x62, 0x47, 0x39,
   2077     0x6a, 0x59, 0x57, 0x78, 0x6f, 0x62, 0x33, 0x4e, 0x30, 0x4d, 0x41, 0x6f,
   2078     0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d,
   2079     0x43, 0x41, 0x30, 0x63, 0x41, 0x4d, 0x45, 0x51, 0x43, 0x0a, 0x49, 0x45,
   2080     0x7a, 0x72, 0x33, 0x74, 0x2f, 0x6a, 0x65, 0x6a, 0x56, 0x45, 0x39, 0x6f,
   2081     0x53, 0x6e, 0x42, 0x70, 0x38, 0x63, 0x33, 0x50, 0x32, 0x70, 0x2b, 0x6c,
   2082     0x44, 0x4c, 0x56, 0x52, 0x72, 0x42, 0x38, 0x7a, 0x78, 0x4c, 0x79, 0x6a,
   2083     0x5a, 0x76, 0x69, 0x72, 0x55, 0x58, 0x41, 0x69, 0x41, 0x79, 0x51, 0x50,
   2084     0x61, 0x45, 0x39, 0x4d, 0x4e, 0x63, 0x4c, 0x38, 0x2f, 0x6e, 0x52, 0x70,
   2085     0x75, 0x75, 0x0a, 0x39, 0x39, 0x49, 0x31, 0x65, 0x6e, 0x43, 0x53, 0x6d,
   2086     0x57, 0x49, 0x41, 0x4a, 0x35, 0x37, 0x49, 0x77, 0x75, 0x4a, 0x2f, 0x6e,
   2087     0x31, 0x64, 0x34, 0x35, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d,
   2088     0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49,
   2089     0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
   2090 };
   2091 #endif
   2092 
   2093 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
   2094 /*
   2095  * -----BEGIN DSA PRIVATE KEY-----
   2096  * MIIBuwIBAAKBgQDdkFKzNABLOha7Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXP
   2097  * Wzf03ULKS5UKjA6WpR6EiZAhm+PdxusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM8
   2098  * 0TGcnw5ijwKmSw5yyHPDWdiHzoqEBlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEg
   2099  * QqWRf/1EIZZcgM65Qpd65YuxAoGBAKBauV/RuloFHoSy5iWXESDywiS380tN5974
   2100  * GukGwoYdZo5uSIH6ahpeNSef0MbHGAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+
   2101  * QtQHOwvQHgLAynhI4i73c794czHaR+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmG
   2102  * POIMWNXXAoGAI6Ep5IE7yn3JzkXO9B6tC3bbDM+ZzuuInwZLbtZ8lim7Dsqabg4k
   2103  * 2YbE4R95Bnfwnjsyl80mq/DbQN5lAHBvjDrkC6ItojBGKI3+iIrqGUEJdxvl4ulj
   2104  * F0PmSD7zvIG8BfocKOel+EHH0YryExiW6krV1KW2ZRmJrqSFw6KCjV0CFFQFbPfU
   2105  * xy5PmKytJmXR8BmppkIO
   2106  * -----END DSA PRIVATE KEY-----
   2107  */
   2108 static const char DSAPrivateKeyPEM[] = {
   2109     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x44,
   2110     0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
   2111     0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42,
   2112     0x75, 0x77, 0x49, 0x42, 0x41, 0x41, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x64,
   2113     0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41, 0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37,
   2114     0x45, 0x71, 0x6a, 0x37, 0x30, 0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68,
   2115     0x74, 0x52, 0x36, 0x62, 0x78, 0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d,
   2116     0x53, 0x5a, 0x54, 0x59, 0x69, 0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50,
   2117     0x0a, 0x57, 0x7a, 0x66, 0x30, 0x33, 0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55,
   2118     0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70, 0x52, 0x36, 0x45, 0x69, 0x5a, 0x41,
   2119     0x68, 0x6d, 0x2b, 0x50, 0x64, 0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66,
   2120     0x41, 0x75, 0x52, 0x5a, 0x4c, 0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78,
   2121     0x6e, 0x31, 0x66, 0x33, 0x34, 0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51,
   2122     0x4e, 0x61, 0x45, 0x4d, 0x38, 0x0a, 0x30, 0x54, 0x47, 0x63, 0x6e, 0x77,
   2123     0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d, 0x53, 0x77, 0x35, 0x79, 0x79, 0x48,
   2124     0x50, 0x44, 0x57, 0x64, 0x69, 0x48, 0x7a, 0x6f, 0x71, 0x45, 0x42, 0x6c,
   2125     0x68, 0x41, 0x66, 0x38, 0x4e, 0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61,
   2126     0x78, 0x2f, 0x63, 0x6c, 0x73, 0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52,
   2127     0x4c, 0x41, 0x64, 0x77, 0x49, 0x56, 0x41, 0x49, 0x45, 0x67, 0x0a, 0x51,
   2128     0x71, 0x57, 0x52, 0x66, 0x2f, 0x31, 0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67,
   2129     0x4d, 0x36, 0x35, 0x51, 0x70, 0x64, 0x36, 0x35, 0x59, 0x75, 0x78, 0x41,
   2130     0x6f, 0x47, 0x42, 0x41, 0x4b, 0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75,
   2131     0x6c, 0x6f, 0x46, 0x48, 0x6f, 0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45,
   2132     0x53, 0x44, 0x79, 0x77, 0x69, 0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35,
   2133     0x39, 0x37, 0x34, 0x0a, 0x47, 0x75, 0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64,
   2134     0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49, 0x48, 0x36, 0x61, 0x68, 0x70, 0x65,
   2135     0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d, 0x62, 0x48, 0x47, 0x41, 0x7a, 0x72,
   2136     0x37, 0x5a, 0x56, 0x45, 0x6e, 0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77,
   2137     0x48, 0x31, 0x67, 0x52, 0x76, 0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62,
   2138     0x6d, 0x63, 0x76, 0x74, 0x64, 0x33, 0x72, 0x2b, 0x0a, 0x51, 0x74, 0x51,
   2139     0x48, 0x4f, 0x77, 0x76, 0x51, 0x48, 0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68,
   2140     0x49, 0x34, 0x69, 0x37, 0x33, 0x63, 0x37, 0x39, 0x34, 0x63, 0x7a, 0x48,
   2141     0x61, 0x52, 0x2b, 0x34, 0x33, 0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77,
   2142     0x44, 0x6e, 0x51, 0x64, 0x75, 0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f,
   2143     0x2f, 0x6a, 0x69, 0x69, 0x5a, 0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d,
   2144     0x47, 0x0a, 0x50, 0x4f, 0x49, 0x4d, 0x57, 0x4e, 0x58, 0x58, 0x41, 0x6f,
   2145     0x47, 0x41, 0x49, 0x36, 0x45, 0x70, 0x35, 0x49, 0x45, 0x37, 0x79, 0x6e,
   2146     0x33, 0x4a, 0x7a, 0x6b, 0x58, 0x4f, 0x39, 0x42, 0x36, 0x74, 0x43, 0x33,
   2147     0x62, 0x62, 0x44, 0x4d, 0x2b, 0x5a, 0x7a, 0x75, 0x75, 0x49, 0x6e, 0x77,
   2148     0x5a, 0x4c, 0x62, 0x74, 0x5a, 0x38, 0x6c, 0x69, 0x6d, 0x37, 0x44, 0x73,
   2149     0x71, 0x61, 0x62, 0x67, 0x34, 0x6b, 0x0a, 0x32, 0x59, 0x62, 0x45, 0x34,
   2150     0x52, 0x39, 0x35, 0x42, 0x6e, 0x66, 0x77, 0x6e, 0x6a, 0x73, 0x79, 0x6c,
   2151     0x38, 0x30, 0x6d, 0x71, 0x2f, 0x44, 0x62, 0x51, 0x4e, 0x35, 0x6c, 0x41,
   2152     0x48, 0x42, 0x76, 0x6a, 0x44, 0x72, 0x6b, 0x43, 0x36, 0x49, 0x74, 0x6f,
   2153     0x6a, 0x42, 0x47, 0x4b, 0x49, 0x33, 0x2b, 0x69, 0x49, 0x72, 0x71, 0x47,
   2154     0x55, 0x45, 0x4a, 0x64, 0x78, 0x76, 0x6c, 0x34, 0x75, 0x6c, 0x6a, 0x0a,
   2155     0x46, 0x30, 0x50, 0x6d, 0x53, 0x44, 0x37, 0x7a, 0x76, 0x49, 0x47, 0x38,
   2156     0x42, 0x66, 0x6f, 0x63, 0x4b, 0x4f, 0x65, 0x6c, 0x2b, 0x45, 0x48, 0x48,
   2157     0x30, 0x59, 0x72, 0x79, 0x45, 0x78, 0x69, 0x57, 0x36, 0x6b, 0x72, 0x56,
   2158     0x31, 0x4b, 0x57, 0x32, 0x5a, 0x52, 0x6d, 0x4a, 0x72, 0x71, 0x53, 0x46,
   2159     0x77, 0x36, 0x4b, 0x43, 0x6a, 0x56, 0x30, 0x43, 0x46, 0x46, 0x51, 0x46,
   2160     0x62, 0x50, 0x66, 0x55, 0x0a, 0x78, 0x79, 0x35, 0x50, 0x6d, 0x4b, 0x79,
   2161     0x74, 0x4a, 0x6d, 0x58, 0x52, 0x38, 0x42, 0x6d, 0x70, 0x70, 0x6b, 0x49,
   2162     0x4f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x44,
   2163     0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
   2164     0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
   2165 };
   2166 
   2167 /*
   2168  * -----BEGIN CERTIFICATE-----
   2169  * MIICqTCCAmegAwIBAgIJAILDGUk37fWGMAsGCWCGSAFlAwQDAjASMRAwDgYDVQQK
   2170  * DAdBY21lIENvMB4XDTE2MTIyNTEzMjUzNloXDTI2MTIyNTEzMjUzNlowEjEQMA4G
   2171  * A1UECgwHQWNtZSBDbzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDdkFKzNABLOha7
   2172  * Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXPWzf03ULKS5UKjA6WpR6EiZAhm+Pd
   2173  * xusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM80TGcnw5ijwKmSw5yyHPDWdiHzoqE
   2174  * BlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEgQqWRf/1EIZZcgM65Qpd65YuxAoGB
   2175  * AKBauV/RuloFHoSy5iWXESDywiS380tN5974GukGwoYdZo5uSIH6ahpeNSef0MbH
   2176  * GAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+QtQHOwvQHgLAynhI4i73c794czHa
   2177  * R+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmGPOIMWNXXA4GEAAKBgCOhKeSBO8p9
   2178  * yc5FzvQerQt22wzPmc7riJ8GS27WfJYpuw7Kmm4OJNmGxOEfeQZ38J47MpfNJqvw
   2179  * 20DeZQBwb4w65AuiLaIwRiiN/oiK6hlBCXcb5eLpYxdD5kg+87yBvAX6HCjnpfhB
   2180  * x9GK8hMYlupK1dSltmUZia6khcOigo1do0UwQzAJBgNVHRMEAjAAMAsGA1UdDwQE
   2181  * AwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAUBgNVHREEDTALgglsb2NhbGhvc3Qw
   2182  * CwYJYIZIAWUDBAMCAy8AMCwCFClxInXTRWNJEWdi5ilNr/fbM1bKAhQy4B7wtmfd
   2183  * I+zV6g3w9qBkNqStpA==
   2184  * -----END CERTIFICATE-----
   2185  */
   2186 static const char DSACertPEM[] = {
   2187     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
   2188     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
   2189     0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x71, 0x54, 0x43, 0x43,
   2190     0x41, 0x6d, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
   2191     0x41, 0x49, 0x4c, 0x44, 0x47, 0x55, 0x6b, 0x33, 0x37, 0x66, 0x57, 0x47,
   2192     0x4d, 0x41, 0x73, 0x47, 0x43, 0x57, 0x43, 0x47, 0x53, 0x41, 0x46, 0x6c,
   2193     0x41, 0x77, 0x51, 0x44, 0x41, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77,
   2194     0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x64,
   2195     0x42, 0x59, 0x32, 0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x42, 0x34,
   2196     0x58, 0x44, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45,
   2197     0x7a, 0x4d, 0x6a, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x49,
   2198     0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45, 0x7a, 0x4d, 0x6a, 0x55,
   2199     0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x45, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34,
   2200     0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x48, 0x51, 0x57,
   2201     0x4e, 0x74, 0x5a, 0x53, 0x42, 0x44, 0x62, 0x7a, 0x43, 0x43, 0x41, 0x62,
   2202     0x63, 0x77, 0x67, 0x67, 0x45, 0x73, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b,
   2203     0x6a, 0x4f, 0x4f, 0x41, 0x51, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x48, 0x77,
   2204     0x4b, 0x42, 0x67, 0x51, 0x44, 0x64, 0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41,
   2205     0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37, 0x0a, 0x45, 0x71, 0x6a, 0x37, 0x30,
   2206     0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68, 0x74, 0x52, 0x36, 0x62, 0x78,
   2207     0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d, 0x53, 0x5a, 0x54, 0x59, 0x69,
   2208     0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50, 0x57, 0x7a, 0x66, 0x30, 0x33,
   2209     0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55, 0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70,
   2210     0x52, 0x36, 0x45, 0x69, 0x5a, 0x41, 0x68, 0x6d, 0x2b, 0x50, 0x64, 0x0a,
   2211     0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66, 0x41, 0x75, 0x52, 0x5a, 0x4c,
   2212     0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78, 0x6e, 0x31, 0x66, 0x33, 0x34,
   2213     0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51, 0x4e, 0x61, 0x45, 0x4d, 0x38,
   2214     0x30, 0x54, 0x47, 0x63, 0x6e, 0x77, 0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d,
   2215     0x53, 0x77, 0x35, 0x79, 0x79, 0x48, 0x50, 0x44, 0x57, 0x64, 0x69, 0x48,
   2216     0x7a, 0x6f, 0x71, 0x45, 0x0a, 0x42, 0x6c, 0x68, 0x41, 0x66, 0x38, 0x4e,
   2217     0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61, 0x78, 0x2f, 0x63, 0x6c, 0x73,
   2218     0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52, 0x4c, 0x41, 0x64, 0x77, 0x49,
   2219     0x56, 0x41, 0x49, 0x45, 0x67, 0x51, 0x71, 0x57, 0x52, 0x66, 0x2f, 0x31,
   2220     0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67, 0x4d, 0x36, 0x35, 0x51, 0x70, 0x64,
   2221     0x36, 0x35, 0x59, 0x75, 0x78, 0x41, 0x6f, 0x47, 0x42, 0x0a, 0x41, 0x4b,
   2222     0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75, 0x6c, 0x6f, 0x46, 0x48, 0x6f,
   2223     0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45, 0x53, 0x44, 0x79, 0x77, 0x69,
   2224     0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35, 0x39, 0x37, 0x34, 0x47, 0x75,
   2225     0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64, 0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49,
   2226     0x48, 0x36, 0x61, 0x68, 0x70, 0x65, 0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d,
   2227     0x62, 0x48, 0x0a, 0x47, 0x41, 0x7a, 0x72, 0x37, 0x5a, 0x56, 0x45, 0x6e,
   2228     0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77, 0x48, 0x31, 0x67, 0x52, 0x76,
   2229     0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62, 0x6d, 0x63, 0x76, 0x74, 0x64,
   2230     0x33, 0x72, 0x2b, 0x51, 0x74, 0x51, 0x48, 0x4f, 0x77, 0x76, 0x51, 0x48,
   2231     0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68, 0x49, 0x34, 0x69, 0x37, 0x33, 0x63,
   2232     0x37, 0x39, 0x34, 0x63, 0x7a, 0x48, 0x61, 0x0a, 0x52, 0x2b, 0x34, 0x33,
   2233     0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77, 0x44, 0x6e, 0x51, 0x64, 0x75,
   2234     0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f, 0x2f, 0x6a, 0x69, 0x69, 0x5a,
   2235     0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d, 0x47, 0x50, 0x4f, 0x49, 0x4d,
   2236     0x57, 0x4e, 0x58, 0x58, 0x41, 0x34, 0x47, 0x45, 0x41, 0x41, 0x4b, 0x42,
   2237     0x67, 0x43, 0x4f, 0x68, 0x4b, 0x65, 0x53, 0x42, 0x4f, 0x38, 0x70, 0x39,
   2238     0x0a, 0x79, 0x63, 0x35, 0x46, 0x7a, 0x76, 0x51, 0x65, 0x72, 0x51, 0x74,
   2239     0x32, 0x32, 0x77, 0x7a, 0x50, 0x6d, 0x63, 0x37, 0x72, 0x69, 0x4a, 0x38,
   2240     0x47, 0x53, 0x32, 0x37, 0x57, 0x66, 0x4a, 0x59, 0x70, 0x75, 0x77, 0x37,
   2241     0x4b, 0x6d, 0x6d, 0x34, 0x4f, 0x4a, 0x4e, 0x6d, 0x47, 0x78, 0x4f, 0x45,
   2242     0x66, 0x65, 0x51, 0x5a, 0x33, 0x38, 0x4a, 0x34, 0x37, 0x4d, 0x70, 0x66,
   2243     0x4e, 0x4a, 0x71, 0x76, 0x77, 0x0a, 0x32, 0x30, 0x44, 0x65, 0x5a, 0x51,
   2244     0x42, 0x77, 0x62, 0x34, 0x77, 0x36, 0x35, 0x41, 0x75, 0x69, 0x4c, 0x61,
   2245     0x49, 0x77, 0x52, 0x69, 0x69, 0x4e, 0x2f, 0x6f, 0x69, 0x4b, 0x36, 0x68,
   2246     0x6c, 0x42, 0x43, 0x58, 0x63, 0x62, 0x35, 0x65, 0x4c, 0x70, 0x59, 0x78,
   2247     0x64, 0x44, 0x35, 0x6b, 0x67, 0x2b, 0x38, 0x37, 0x79, 0x42, 0x76, 0x41,
   2248     0x58, 0x36, 0x48, 0x43, 0x6a, 0x6e, 0x70, 0x66, 0x68, 0x42, 0x0a, 0x78,
   2249     0x39, 0x47, 0x4b, 0x38, 0x68, 0x4d, 0x59, 0x6c, 0x75, 0x70, 0x4b, 0x31,
   2250     0x64, 0x53, 0x6c, 0x74, 0x6d, 0x55, 0x5a, 0x69, 0x61, 0x36, 0x6b, 0x68,
   2251     0x63, 0x4f, 0x69, 0x67, 0x6f, 0x31, 0x64, 0x6f, 0x30, 0x55, 0x77, 0x51,
   2252     0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x45, 0x41,
   2253     0x6a, 0x41, 0x41, 0x4d, 0x41, 0x73, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44,
   2254     0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x46, 0x6f, 0x44, 0x41, 0x54,
   2255     0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x55, 0x45, 0x44, 0x44, 0x41, 0x4b,
   2256     0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x44,
   2257     0x41, 0x54, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45,
   2258     0x44, 0x54, 0x41, 0x4c, 0x67, 0x67, 0x6c, 0x73, 0x62, 0x32, 0x4e, 0x68,
   2259     0x62, 0x47, 0x68, 0x76, 0x63, 0x33, 0x51, 0x77, 0x0a, 0x43, 0x77, 0x59,
   2260     0x4a, 0x59, 0x49, 0x5a, 0x49, 0x41, 0x57, 0x55, 0x44, 0x42, 0x41, 0x4d,
   2261     0x43, 0x41, 0x79, 0x38, 0x41, 0x4d, 0x43, 0x77, 0x43, 0x46, 0x43, 0x6c,
   2262     0x78, 0x49, 0x6e, 0x58, 0x54, 0x52, 0x57, 0x4e, 0x4a, 0x45, 0x57, 0x64,
   2263     0x69, 0x35, 0x69, 0x6c, 0x4e, 0x72, 0x2f, 0x66, 0x62, 0x4d, 0x31, 0x62,
   2264     0x4b, 0x41, 0x68, 0x51, 0x79, 0x34, 0x42, 0x37, 0x77, 0x74, 0x6d, 0x66,
   2265     0x64, 0x0a, 0x49, 0x2b, 0x7a, 0x56, 0x36, 0x67, 0x33, 0x77, 0x39, 0x71,
   2266     0x42, 0x6b, 0x4e, 0x71, 0x53, 0x74, 0x70, 0x41, 0x3d, 0x3d, 0x0a, 0x2d,
   2267     0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54,
   2268     0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
   2269     0x0a
   2270 };
   2271 #endif
   2272 
   2273 /* unused, to avoid warning. */
   2274 static int idx;
   2275 
   2276 #define FUZZTIME 1485898104
   2277 
   2278 #define TIME_IMPL(t)       \
   2279     {                      \
   2280         if (t != NULL)     \
   2281             *t = FUZZTIME; \
   2282         return FUZZTIME;   \
   2283     }
   2284 
   2285 /*
   2286  * This might not work in all cases (and definitely not on Windows
   2287  * because of the way linkers are) and callees can still get the
   2288  * current time instead of the fixed time. This will just result
   2289  * in things not being fully reproducible and have a slightly
   2290  * different coverage.
   2291  */
   2292 #if !defined(_WIN32)
   2293 time_t time(time_t *t) TIME_IMPL(t)
   2294 #endif
   2295 
   2296     int FuzzerInitialize(int *argc, char ***argv)
   2297 {
   2298     STACK_OF(SSL_COMP) *comp_methods;
   2299 
   2300     FuzzerSetRand();
   2301     OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ASYNC, NULL);
   2302     OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
   2303     ERR_clear_error();
   2304     CRYPTO_free_ex_index(0, -1);
   2305     idx = SSL_get_ex_data_X509_STORE_CTX_idx();
   2306     comp_methods = SSL_COMP_get_compression_methods();
   2307     if (comp_methods != NULL)
   2308         sk_SSL_COMP_sort(comp_methods);
   2309 
   2310     return 1;
   2311 }
   2312 
   2313 int FuzzerTestOneInput(const uint8_t *buf, size_t len)
   2314 {
   2315     SSL *server;
   2316     BIO *in;
   2317     BIO *out;
   2318 #if !defined(OPENSSL_NO_EC) \
   2319     || (!defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0))
   2320     BIO *bio_buf;
   2321 #endif
   2322     SSL_CTX *ctx;
   2323     int ret;
   2324 #ifndef OPENSSL_NO_DEPRECATED_3_0
   2325     RSA *privkey;
   2326 #endif
   2327     const uint8_t *bufp;
   2328 #if !defined(OPENSSL_NO_DEPRECATED_3_0)
   2329     EVP_PKEY *pkey;
   2330 #endif
   2331     X509 *cert;
   2332 #ifndef OPENSSL_NO_DEPRECATED_3_0
   2333 #ifndef OPENSSL_NO_EC
   2334     EC_KEY *ecdsakey = NULL;
   2335 #endif
   2336 #endif
   2337 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
   2338     DSA *dsakey = NULL;
   2339 #endif
   2340     uint8_t opt;
   2341 
   2342     if (len < 2)
   2343         return 0;
   2344 
   2345     /* This only fuzzes the initial flow from the client so far. */
   2346     ctx = SSL_CTX_new(SSLv23_method());
   2347 
   2348     ret = SSL_CTX_set_min_proto_version(ctx, 0);
   2349     OPENSSL_assert(ret == 1);
   2350     ret = SSL_CTX_set_cipher_list(ctx, "ALL:eNULL:@SECLEVEL=0");
   2351     OPENSSL_assert(ret == 1);
   2352 
   2353 #ifndef OPENSSL_NO_DEPRECATED_3_0
   2354     /* RSA */
   2355     bufp = kRSAPrivateKeyDER;
   2356     privkey = d2i_RSAPrivateKey(NULL, &bufp, sizeof(kRSAPrivateKeyDER));
   2357     OPENSSL_assert(privkey != NULL);
   2358     pkey = EVP_PKEY_new();
   2359     EVP_PKEY_assign_RSA(pkey, privkey);
   2360     ret = SSL_CTX_use_PrivateKey(ctx, pkey);
   2361     OPENSSL_assert(ret == 1);
   2362     EVP_PKEY_free(pkey);
   2363 #endif
   2364 
   2365     bufp = kCertificateDER;
   2366     cert = d2i_X509(NULL, &bufp, sizeof(kCertificateDER));
   2367     OPENSSL_assert(cert != NULL);
   2368     ret = SSL_CTX_use_certificate(ctx, cert);
   2369     OPENSSL_assert(ret == 1);
   2370     X509_free(cert);
   2371 
   2372 #ifndef OPENSSL_NO_EC
   2373 #ifndef OPENSSL_NO_DEPRECATED_3_0
   2374     /* ECDSA */
   2375     bio_buf = BIO_new(BIO_s_mem());
   2376     OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSAPrivateKeyPEM, sizeof(ECDSAPrivateKeyPEM)) == sizeof(ECDSAPrivateKeyPEM));
   2377     ecdsakey = PEM_read_bio_ECPrivateKey(bio_buf, NULL, NULL, NULL);
   2378     ERR_print_errors_fp(stderr);
   2379     OPENSSL_assert(ecdsakey != NULL);
   2380     BIO_free(bio_buf);
   2381     pkey = EVP_PKEY_new();
   2382     EVP_PKEY_assign_EC_KEY(pkey, ecdsakey);
   2383     ret = SSL_CTX_use_PrivateKey(ctx, pkey);
   2384     OPENSSL_assert(ret == 1);
   2385     EVP_PKEY_free(pkey);
   2386 #endif
   2387     bio_buf = BIO_new(BIO_s_mem());
   2388     OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSACertPEM, sizeof(ECDSACertPEM)) == sizeof(ECDSACertPEM));
   2389     cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
   2390     OPENSSL_assert(cert != NULL);
   2391     BIO_free(bio_buf);
   2392     ret = SSL_CTX_use_certificate(ctx, cert);
   2393     OPENSSL_assert(ret == 1);
   2394     X509_free(cert);
   2395 #endif
   2396 
   2397 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
   2398     /* DSA */
   2399     bio_buf = BIO_new(BIO_s_mem());
   2400     OPENSSL_assert((size_t)BIO_write(bio_buf, DSAPrivateKeyPEM, sizeof(DSAPrivateKeyPEM)) == sizeof(DSAPrivateKeyPEM));
   2401     dsakey = PEM_read_bio_DSAPrivateKey(bio_buf, NULL, NULL, NULL);
   2402     ERR_print_errors_fp(stderr);
   2403     OPENSSL_assert(dsakey != NULL);
   2404     BIO_free(bio_buf);
   2405     pkey = EVP_PKEY_new();
   2406     EVP_PKEY_assign_DSA(pkey, dsakey);
   2407     ret = SSL_CTX_use_PrivateKey(ctx, pkey);
   2408     OPENSSL_assert(ret == 1);
   2409     EVP_PKEY_free(pkey);
   2410 
   2411     bio_buf = BIO_new(BIO_s_mem());
   2412     OPENSSL_assert((size_t)BIO_write(bio_buf, DSACertPEM, sizeof(DSACertPEM)) == sizeof(DSACertPEM));
   2413     cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
   2414     OPENSSL_assert(cert != NULL);
   2415     BIO_free(bio_buf);
   2416     ret = SSL_CTX_use_certificate(ctx, cert);
   2417     OPENSSL_assert(ret == 1);
   2418     X509_free(cert);
   2419 #endif
   2420 
   2421     server = SSL_new(ctx);
   2422     in = BIO_new(BIO_s_mem());
   2423     out = BIO_new(BIO_s_mem());
   2424     SSL_set_bio(server, in, out);
   2425     SSL_set_accept_state(server);
   2426 
   2427     opt = (uint8_t)buf[len - 1];
   2428     len--;
   2429 
   2430     OPENSSL_assert((size_t)BIO_write(in, buf, len) == len);
   2431 
   2432     if ((opt & 0x01) != 0) {
   2433         do {
   2434             char early_buf[16384];
   2435             size_t early_len;
   2436             ret = SSL_read_early_data(server, early_buf, sizeof(early_buf), &early_len);
   2437 
   2438             if (ret != SSL_READ_EARLY_DATA_SUCCESS)
   2439                 break;
   2440         } while (1);
   2441     }
   2442 
   2443     if (SSL_do_handshake(server) == 1) {
   2444         /* Keep reading application data until error or EOF. */
   2445         uint8_t tmp[1024];
   2446         for (;;) {
   2447             if (SSL_read(server, tmp, sizeof(tmp)) <= 0) {
   2448                 break;
   2449             }
   2450         }
   2451     }
   2452     SSL_free(server);
   2453     ERR_clear_error();
   2454     SSL_CTX_free(ctx);
   2455 
   2456     return 0;
   2457 }
   2458 
   2459 void FuzzerCleanup(void)
   2460 {
   2461     FuzzerClearRand();
   2462 }
   2463