xref: /src/crypto/openssl/fuzz/dtlsserver.c (revision f25b8c9fb4f58cf61adb47d7570abe7caa6d385d)
1 /*
2  * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * https://www.openssl.org/source/license.html
8  * or in the file LICENSE in the source distribution.
9  */
10 
11 /* Shamelessly copied from BoringSSL and converted to C. */
12 
13 /* Test first part of SSL server handshake. */
14 
15 /* We need to use some deprecated APIs */
16 #define OPENSSL_SUPPRESS_DEPRECATED
17 
18 #include <time.h>
19 #include <openssl/rand.h>
20 #include <openssl/ssl.h>
21 #include <openssl/rsa.h>
22 #include <openssl/dsa.h>
23 #include <openssl/ec.h>
24 #include <openssl/dh.h>
25 #include <openssl/err.h>
26 #include "fuzzer.h"
27 
28 /*
29 -----BEGIN CERTIFICATE-----
30 MIIDozCCAougAwIBAgIUSKwQD1qRtS+lridawmaYK6cej2kwDQYJKoZIhvcNAQEL
31 BQAwYTELMAkGA1UEBhMCbm8xCzAJBgNVBAgMAm5vMQswCQYDVQQHDAJubzELMAkG
32 A1UECgwCbm8xCzAJBgNVBAsMAm5vMQswCQYDVQQDDAJubzERMA8GCSqGSIb3DQEJ
33 ARYCbm8wHhcNMjQwMjI4MTkzNzEwWhcNMjUwMjI3MTkzNzEwWjBhMQswCQYDVQQG
34 EwJubzELMAkGA1UECAwCbm8xCzAJBgNVBAcMAm5vMQswCQYDVQQKDAJubzELMAkG
35 A1UECwwCbm8xCzAJBgNVBAMMAm5vMREwDwYJKoZIhvcNAQkBFgJubzCCASIwDQYJ
36 KoZIhvcNAQEBBQADggEPADCCAQoCggEBALWZB9Mtas0V9Sya+UhEabwzs3Eol+/M
37 hwUFWIFrr8tVyYvg8Xs/KnC2VaEpnEltBNLaOADZGUuXzz5Ebccb2i18ghvMDX5o
38 OwAAidL3tv6lh8/Vuj8tpLA53SDR5VTQcxitipsccjacHDftTqDA7+94STT8QSHt
39 Wu5FmXPKvJLmPuKQJMbOJSGDJLvdT/0dyM9aU3xKw64iv7S3laERWyW4/OemMQXs
40 i+kbanpVNJVmqTtS+q/FyYvvr1NpX0Oc/A5H2HYQ6f6P3nvJ22IOXoIcNjI1FmKb
41 X3NJHetHXtyZKXcfpizljsNvbffsL6twxjjCR3JdUqP1xECeuoLBMzkCAwEAAaNT
42 MFEwHQYDVR0OBBYEFKZ2b9IJ3YWCYyMkROjtjF7CxsfaMB8GA1UdIwQYMBaAFKZ2
43 b9IJ3YWCYyMkROjtjF7CxsfaMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
44 BQADggEBAGJoHDTsAiuRtACTGiGz/oyNZfH/OUJaijUMaLbHd/JG2L6gtpACYY2b
45 AoLkIcCl38nsLYMLZ32Bbc5jnP/Qy3d2HKsTJ5It4qxDgtbtpU8e5MhEeJoeMHOC
46 fizbcWc7W7m2SLfpeQJWMgu2Da0HYEDS/xzLn7pxQgZpOrMQ7Ihi1jwXfKFqIIal
47 g6SijRGXh7onEAxEmKLkpVQRq633BYPV6odxtXDhxyJKyGjSJsQoKv9oCF2kAdAi
48 CvvatqRWRwgIeln1Sw9Ee6cTYZCG2U+/Uf+Ls7fjN8trb/Shmxo8do/npBnz8j+1
49 a2vbz3gpOsl87U0c01JCl9SZXDSO09w=
50 -----END CERTIFICATE-----
51  */
52 static const uint8_t RSACertificatePEM[] = {
53     0x2d,
54     0x2d,
55     0x2d,
56     0x2d,
57     0x2d,
58     0x42,
59     0x45,
60     0x47,
61     0x49,
62     0x4e,
63     0x20,
64     0x43,
65     0x45,
66     0x52,
67     0x54,
68     0x49,
69     0x46,
70     0x49,
71     0x43,
72     0x41,
73     0x54,
74     0x45,
75     0x2d,
76     0x2d,
77     0x2d,
78     0x2d,
79     0x2d,
80     0x0a,
81     0x4d,
82     0x49,
83     0x49,
84     0x44,
85     0x6f,
86     0x7a,
87     0x43,
88     0x43,
89     0x41,
90     0x6f,
91     0x75,
92     0x67,
93     0x41,
94     0x77,
95     0x49,
96     0x42,
97     0x41,
98     0x67,
99     0x49,
100     0x55,
101     0x53,
102     0x4b,
103     0x77,
104     0x51,
105     0x44,
106     0x31,
107     0x71,
108     0x52,
109     0x74,
110     0x53,
111     0x2b,
112     0x6c,
113     0x72,
114     0x69,
115     0x64,
116     0x61,
117     0x77,
118     0x6d,
119     0x61,
120     0x59,
121     0x4b,
122     0x36,
123     0x63,
124     0x65,
125     0x6a,
126     0x32,
127     0x6b,
128     0x77,
129     0x44,
130     0x51,
131     0x59,
132     0x4a,
133     0x4b,
134     0x6f,
135     0x5a,
136     0x49,
137     0x68,
138     0x76,
139     0x63,
140     0x4e,
141     0x41,
142     0x51,
143     0x45,
144     0x4c,
145     0x0a,
146     0x42,
147     0x51,
148     0x41,
149     0x77,
150     0x59,
151     0x54,
152     0x45,
153     0x4c,
154     0x4d,
155     0x41,
156     0x6b,
157     0x47,
158     0x41,
159     0x31,
160     0x55,
161     0x45,
162     0x42,
163     0x68,
164     0x4d,
165     0x43,
166     0x62,
167     0x6d,
168     0x38,
169     0x78,
170     0x43,
171     0x7a,
172     0x41,
173     0x4a,
174     0x42,
175     0x67,
176     0x4e,
177     0x56,
178     0x42,
179     0x41,
180     0x67,
181     0x4d,
182     0x41,
183     0x6d,
184     0x35,
185     0x76,
186     0x4d,
187     0x51,
188     0x73,
189     0x77,
190     0x43,
191     0x51,
192     0x59,
193     0x44,
194     0x56,
195     0x51,
196     0x51,
197     0x48,
198     0x44,
199     0x41,
200     0x4a,
201     0x75,
202     0x62,
203     0x7a,
204     0x45,
205     0x4c,
206     0x4d,
207     0x41,
208     0x6b,
209     0x47,
210     0x0a,
211     0x41,
212     0x31,
213     0x55,
214     0x45,
215     0x43,
216     0x67,
217     0x77,
218     0x43,
219     0x62,
220     0x6d,
221     0x38,
222     0x78,
223     0x43,
224     0x7a,
225     0x41,
226     0x4a,
227     0x42,
228     0x67,
229     0x4e,
230     0x56,
231     0x42,
232     0x41,
233     0x73,
234     0x4d,
235     0x41,
236     0x6d,
237     0x35,
238     0x76,
239     0x4d,
240     0x51,
241     0x73,
242     0x77,
243     0x43,
244     0x51,
245     0x59,
246     0x44,
247     0x56,
248     0x51,
249     0x51,
250     0x44,
251     0x44,
252     0x41,
253     0x4a,
254     0x75,
255     0x62,
256     0x7a,
257     0x45,
258     0x52,
259     0x4d,
260     0x41,
261     0x38,
262     0x47,
263     0x43,
264     0x53,
265     0x71,
266     0x47,
267     0x53,
268     0x49,
269     0x62,
270     0x33,
271     0x44,
272     0x51,
273     0x45,
274     0x4a,
275     0x0a,
276     0x41,
277     0x52,
278     0x59,
279     0x43,
280     0x62,
281     0x6d,
282     0x38,
283     0x77,
284     0x48,
285     0x68,
286     0x63,
287     0x4e,
288     0x4d,
289     0x6a,
290     0x51,
291     0x77,
292     0x4d,
293     0x6a,
294     0x49,
295     0x34,
296     0x4d,
297     0x54,
298     0x6b,
299     0x7a,
300     0x4e,
301     0x7a,
302     0x45,
303     0x77,
304     0x57,
305     0x68,
306     0x63,
307     0x4e,
308     0x4d,
309     0x6a,
310     0x55,
311     0x77,
312     0x4d,
313     0x6a,
314     0x49,
315     0x33,
316     0x4d,
317     0x54,
318     0x6b,
319     0x7a,
320     0x4e,
321     0x7a,
322     0x45,
323     0x77,
324     0x57,
325     0x6a,
326     0x42,
327     0x68,
328     0x4d,
329     0x51,
330     0x73,
331     0x77,
332     0x43,
333     0x51,
334     0x59,
335     0x44,
336     0x56,
337     0x51,
338     0x51,
339     0x47,
340     0x0a,
341     0x45,
342     0x77,
343     0x4a,
344     0x75,
345     0x62,
346     0x7a,
347     0x45,
348     0x4c,
349     0x4d,
350     0x41,
351     0x6b,
352     0x47,
353     0x41,
354     0x31,
355     0x55,
356     0x45,
357     0x43,
358     0x41,
359     0x77,
360     0x43,
361     0x62,
362     0x6d,
363     0x38,
364     0x78,
365     0x43,
366     0x7a,
367     0x41,
368     0x4a,
369     0x42,
370     0x67,
371     0x4e,
372     0x56,
373     0x42,
374     0x41,
375     0x63,
376     0x4d,
377     0x41,
378     0x6d,
379     0x35,
380     0x76,
381     0x4d,
382     0x51,
383     0x73,
384     0x77,
385     0x43,
386     0x51,
387     0x59,
388     0x44,
389     0x56,
390     0x51,
391     0x51,
392     0x4b,
393     0x44,
394     0x41,
395     0x4a,
396     0x75,
397     0x62,
398     0x7a,
399     0x45,
400     0x4c,
401     0x4d,
402     0x41,
403     0x6b,
404     0x47,
405     0x0a,
406     0x41,
407     0x31,
408     0x55,
409     0x45,
410     0x43,
411     0x77,
412     0x77,
413     0x43,
414     0x62,
415     0x6d,
416     0x38,
417     0x78,
418     0x43,
419     0x7a,
420     0x41,
421     0x4a,
422     0x42,
423     0x67,
424     0x4e,
425     0x56,
426     0x42,
427     0x41,
428     0x4d,
429     0x4d,
430     0x41,
431     0x6d,
432     0x35,
433     0x76,
434     0x4d,
435     0x52,
436     0x45,
437     0x77,
438     0x44,
439     0x77,
440     0x59,
441     0x4a,
442     0x4b,
443     0x6f,
444     0x5a,
445     0x49,
446     0x68,
447     0x76,
448     0x63,
449     0x4e,
450     0x41,
451     0x51,
452     0x6b,
453     0x42,
454     0x46,
455     0x67,
456     0x4a,
457     0x75,
458     0x62,
459     0x7a,
460     0x43,
461     0x43,
462     0x41,
463     0x53,
464     0x49,
465     0x77,
466     0x44,
467     0x51,
468     0x59,
469     0x4a,
470     0x0a,
471     0x4b,
472     0x6f,
473     0x5a,
474     0x49,
475     0x68,
476     0x76,
477     0x63,
478     0x4e,
479     0x41,
480     0x51,
481     0x45,
482     0x42,
483     0x42,
484     0x51,
485     0x41,
486     0x44,
487     0x67,
488     0x67,
489     0x45,
490     0x50,
491     0x41,
492     0x44,
493     0x43,
494     0x43,
495     0x41,
496     0x51,
497     0x6f,
498     0x43,
499     0x67,
500     0x67,
501     0x45,
502     0x42,
503     0x41,
504     0x4c,
505     0x57,
506     0x5a,
507     0x42,
508     0x39,
509     0x4d,
510     0x74,
511     0x61,
512     0x73,
513     0x30,
514     0x56,
515     0x39,
516     0x53,
517     0x79,
518     0x61,
519     0x2b,
520     0x55,
521     0x68,
522     0x45,
523     0x61,
524     0x62,
525     0x77,
526     0x7a,
527     0x73,
528     0x33,
529     0x45,
530     0x6f,
531     0x6c,
532     0x2b,
533     0x2f,
534     0x4d,
535     0x0a,
536     0x68,
537     0x77,
538     0x55,
539     0x46,
540     0x57,
541     0x49,
542     0x46,
543     0x72,
544     0x72,
545     0x38,
546     0x74,
547     0x56,
548     0x79,
549     0x59,
550     0x76,
551     0x67,
552     0x38,
553     0x58,
554     0x73,
555     0x2f,
556     0x4b,
557     0x6e,
558     0x43,
559     0x32,
560     0x56,
561     0x61,
562     0x45,
563     0x70,
564     0x6e,
565     0x45,
566     0x6c,
567     0x74,
568     0x42,
569     0x4e,
570     0x4c,
571     0x61,
572     0x4f,
573     0x41,
574     0x44,
575     0x5a,
576     0x47,
577     0x55,
578     0x75,
579     0x58,
580     0x7a,
581     0x7a,
582     0x35,
583     0x45,
584     0x62,
585     0x63,
586     0x63,
587     0x62,
588     0x32,
589     0x69,
590     0x31,
591     0x38,
592     0x67,
593     0x68,
594     0x76,
595     0x4d,
596     0x44,
597     0x58,
598     0x35,
599     0x6f,
600     0x0a,
601     0x4f,
602     0x77,
603     0x41,
604     0x41,
605     0x69,
606     0x64,
607     0x4c,
608     0x33,
609     0x74,
610     0x76,
611     0x36,
612     0x6c,
613     0x68,
614     0x38,
615     0x2f,
616     0x56,
617     0x75,
618     0x6a,
619     0x38,
620     0x74,
621     0x70,
622     0x4c,
623     0x41,
624     0x35,
625     0x33,
626     0x53,
627     0x44,
628     0x52,
629     0x35,
630     0x56,
631     0x54,
632     0x51,
633     0x63,
634     0x78,
635     0x69,
636     0x74,
637     0x69,
638     0x70,
639     0x73,
640     0x63,
641     0x63,
642     0x6a,
643     0x61,
644     0x63,
645     0x48,
646     0x44,
647     0x66,
648     0x74,
649     0x54,
650     0x71,
651     0x44,
652     0x41,
653     0x37,
654     0x2b,
655     0x39,
656     0x34,
657     0x53,
658     0x54,
659     0x54,
660     0x38,
661     0x51,
662     0x53,
663     0x48,
664     0x74,
665     0x0a,
666     0x57,
667     0x75,
668     0x35,
669     0x46,
670     0x6d,
671     0x58,
672     0x50,
673     0x4b,
674     0x76,
675     0x4a,
676     0x4c,
677     0x6d,
678     0x50,
679     0x75,
680     0x4b,
681     0x51,
682     0x4a,
683     0x4d,
684     0x62,
685     0x4f,
686     0x4a,
687     0x53,
688     0x47,
689     0x44,
690     0x4a,
691     0x4c,
692     0x76,
693     0x64,
694     0x54,
695     0x2f,
696     0x30,
697     0x64,
698     0x79,
699     0x4d,
700     0x39,
701     0x61,
702     0x55,
703     0x33,
704     0x78,
705     0x4b,
706     0x77,
707     0x36,
708     0x34,
709     0x69,
710     0x76,
711     0x37,
712     0x53,
713     0x33,
714     0x6c,
715     0x61,
716     0x45,
717     0x52,
718     0x57,
719     0x79,
720     0x57,
721     0x34,
722     0x2f,
723     0x4f,
724     0x65,
725     0x6d,
726     0x4d,
727     0x51,
728     0x58,
729     0x73,
730     0x0a,
731     0x69,
732     0x2b,
733     0x6b,
734     0x62,
735     0x61,
736     0x6e,
737     0x70,
738     0x56,
739     0x4e,
740     0x4a,
741     0x56,
742     0x6d,
743     0x71,
744     0x54,
745     0x74,
746     0x53,
747     0x2b,
748     0x71,
749     0x2f,
750     0x46,
751     0x79,
752     0x59,
753     0x76,
754     0x76,
755     0x72,
756     0x31,
757     0x4e,
758     0x70,
759     0x58,
760     0x30,
761     0x4f,
762     0x63,
763     0x2f,
764     0x41,
765     0x35,
766     0x48,
767     0x32,
768     0x48,
769     0x59,
770     0x51,
771     0x36,
772     0x66,
773     0x36,
774     0x50,
775     0x33,
776     0x6e,
777     0x76,
778     0x4a,
779     0x32,
780     0x32,
781     0x49,
782     0x4f,
783     0x58,
784     0x6f,
785     0x49,
786     0x63,
787     0x4e,
788     0x6a,
789     0x49,
790     0x31,
791     0x46,
792     0x6d,
793     0x4b,
794     0x62,
795     0x0a,
796     0x58,
797     0x33,
798     0x4e,
799     0x4a,
800     0x48,
801     0x65,
802     0x74,
803     0x48,
804     0x58,
805     0x74,
806     0x79,
807     0x5a,
808     0x4b,
809     0x58,
810     0x63,
811     0x66,
812     0x70,
813     0x69,
814     0x7a,
815     0x6c,
816     0x6a,
817     0x73,
818     0x4e,
819     0x76,
820     0x62,
821     0x66,
822     0x66,
823     0x73,
824     0x4c,
825     0x36,
826     0x74,
827     0x77,
828     0x78,
829     0x6a,
830     0x6a,
831     0x43,
832     0x52,
833     0x33,
834     0x4a,
835     0x64,
836     0x55,
837     0x71,
838     0x50,
839     0x31,
840     0x78,
841     0x45,
842     0x43,
843     0x65,
844     0x75,
845     0x6f,
846     0x4c,
847     0x42,
848     0x4d,
849     0x7a,
850     0x6b,
851     0x43,
852     0x41,
853     0x77,
854     0x45,
855     0x41,
856     0x41,
857     0x61,
858     0x4e,
859     0x54,
860     0x0a,
861     0x4d,
862     0x46,
863     0x45,
864     0x77,
865     0x48,
866     0x51,
867     0x59,
868     0x44,
869     0x56,
870     0x52,
871     0x30,
872     0x4f,
873     0x42,
874     0x42,
875     0x59,
876     0x45,
877     0x46,
878     0x4b,
879     0x5a,
880     0x32,
881     0x62,
882     0x39,
883     0x49,
884     0x4a,
885     0x33,
886     0x59,
887     0x57,
888     0x43,
889     0x59,
890     0x79,
891     0x4d,
892     0x6b,
893     0x52,
894     0x4f,
895     0x6a,
896     0x74,
897     0x6a,
898     0x46,
899     0x37,
900     0x43,
901     0x78,
902     0x73,
903     0x66,
904     0x61,
905     0x4d,
906     0x42,
907     0x38,
908     0x47,
909     0x41,
910     0x31,
911     0x55,
912     0x64,
913     0x49,
914     0x77,
915     0x51,
916     0x59,
917     0x4d,
918     0x42,
919     0x61,
920     0x41,
921     0x46,
922     0x4b,
923     0x5a,
924     0x32,
925     0x0a,
926     0x62,
927     0x39,
928     0x49,
929     0x4a,
930     0x33,
931     0x59,
932     0x57,
933     0x43,
934     0x59,
935     0x79,
936     0x4d,
937     0x6b,
938     0x52,
939     0x4f,
940     0x6a,
941     0x74,
942     0x6a,
943     0x46,
944     0x37,
945     0x43,
946     0x78,
947     0x73,
948     0x66,
949     0x61,
950     0x4d,
951     0x41,
952     0x38,
953     0x47,
954     0x41,
955     0x31,
956     0x55,
957     0x64,
958     0x45,
959     0x77,
960     0x45,
961     0x42,
962     0x2f,
963     0x77,
964     0x51,
965     0x46,
966     0x4d,
967     0x41,
968     0x4d,
969     0x42,
970     0x41,
971     0x66,
972     0x38,
973     0x77,
974     0x44,
975     0x51,
976     0x59,
977     0x4a,
978     0x4b,
979     0x6f,
980     0x5a,
981     0x49,
982     0x68,
983     0x76,
984     0x63,
985     0x4e,
986     0x41,
987     0x51,
988     0x45,
989     0x4c,
990     0x0a,
991     0x42,
992     0x51,
993     0x41,
994     0x44,
995     0x67,
996     0x67,
997     0x45,
998     0x42,
999     0x41,
1000     0x47,
1001     0x4a,
1002     0x6f,
1003     0x48,
1004     0x44,
1005     0x54,
1006     0x73,
1007     0x41,
1008     0x69,
1009     0x75,
1010     0x52,
1011     0x74,
1012     0x41,
1013     0x43,
1014     0x54,
1015     0x47,
1016     0x69,
1017     0x47,
1018     0x7a,
1019     0x2f,
1020     0x6f,
1021     0x79,
1022     0x4e,
1023     0x5a,
1024     0x66,
1025     0x48,
1026     0x2f,
1027     0x4f,
1028     0x55,
1029     0x4a,
1030     0x61,
1031     0x69,
1032     0x6a,
1033     0x55,
1034     0x4d,
1035     0x61,
1036     0x4c,
1037     0x62,
1038     0x48,
1039     0x64,
1040     0x2f,
1041     0x4a,
1042     0x47,
1043     0x32,
1044     0x4c,
1045     0x36,
1046     0x67,
1047     0x74,
1048     0x70,
1049     0x41,
1050     0x43,
1051     0x59,
1052     0x59,
1053     0x32,
1054     0x62,
1055     0x0a,
1056     0x41,
1057     0x6f,
1058     0x4c,
1059     0x6b,
1060     0x49,
1061     0x63,
1062     0x43,
1063     0x6c,
1064     0x33,
1065     0x38,
1066     0x6e,
1067     0x73,
1068     0x4c,
1069     0x59,
1070     0x4d,
1071     0x4c,
1072     0x5a,
1073     0x33,
1074     0x32,
1075     0x42,
1076     0x62,
1077     0x63,
1078     0x35,
1079     0x6a,
1080     0x6e,
1081     0x50,
1082     0x2f,
1083     0x51,
1084     0x79,
1085     0x33,
1086     0x64,
1087     0x32,
1088     0x48,
1089     0x4b,
1090     0x73,
1091     0x54,
1092     0x4a,
1093     0x35,
1094     0x49,
1095     0x74,
1096     0x34,
1097     0x71,
1098     0x78,
1099     0x44,
1100     0x67,
1101     0x74,
1102     0x62,
1103     0x74,
1104     0x70,
1105     0x55,
1106     0x38,
1107     0x65,
1108     0x35,
1109     0x4d,
1110     0x68,
1111     0x45,
1112     0x65,
1113     0x4a,
1114     0x6f,
1115     0x65,
1116     0x4d,
1117     0x48,
1118     0x4f,
1119     0x43,
1120     0x0a,
1121     0x66,
1122     0x69,
1123     0x7a,
1124     0x62,
1125     0x63,
1126     0x57,
1127     0x63,
1128     0x37,
1129     0x57,
1130     0x37,
1131     0x6d,
1132     0x32,
1133     0x53,
1134     0x4c,
1135     0x66,
1136     0x70,
1137     0x65,
1138     0x51,
1139     0x4a,
1140     0x57,
1141     0x4d,
1142     0x67,
1143     0x75,
1144     0x32,
1145     0x44,
1146     0x61,
1147     0x30,
1148     0x48,
1149     0x59,
1150     0x45,
1151     0x44,
1152     0x53,
1153     0x2f,
1154     0x78,
1155     0x7a,
1156     0x4c,
1157     0x6e,
1158     0x37,
1159     0x70,
1160     0x78,
1161     0x51,
1162     0x67,
1163     0x5a,
1164     0x70,
1165     0x4f,
1166     0x72,
1167     0x4d,
1168     0x51,
1169     0x37,
1170     0x49,
1171     0x68,
1172     0x69,
1173     0x31,
1174     0x6a,
1175     0x77,
1176     0x58,
1177     0x66,
1178     0x4b,
1179     0x46,
1180     0x71,
1181     0x49,
1182     0x49,
1183     0x61,
1184     0x6c,
1185     0x0a,
1186     0x67,
1187     0x36,
1188     0x53,
1189     0x69,
1190     0x6a,
1191     0x52,
1192     0x47,
1193     0x58,
1194     0x68,
1195     0x37,
1196     0x6f,
1197     0x6e,
1198     0x45,
1199     0x41,
1200     0x78,
1201     0x45,
1202     0x6d,
1203     0x4b,
1204     0x4c,
1205     0x6b,
1206     0x70,
1207     0x56,
1208     0x51,
1209     0x52,
1210     0x71,
1211     0x36,
1212     0x33,
1213     0x33,
1214     0x42,
1215     0x59,
1216     0x50,
1217     0x56,
1218     0x36,
1219     0x6f,
1220     0x64,
1221     0x78,
1222     0x74,
1223     0x58,
1224     0x44,
1225     0x68,
1226     0x78,
1227     0x79,
1228     0x4a,
1229     0x4b,
1230     0x79,
1231     0x47,
1232     0x6a,
1233     0x53,
1234     0x4a,
1235     0x73,
1236     0x51,
1237     0x6f,
1238     0x4b,
1239     0x76,
1240     0x39,
1241     0x6f,
1242     0x43,
1243     0x46,
1244     0x32,
1245     0x6b,
1246     0x41,
1247     0x64,
1248     0x41,
1249     0x69,
1250     0x0a,
1251     0x43,
1252     0x76,
1253     0x76,
1254     0x61,
1255     0x74,
1256     0x71,
1257     0x52,
1258     0x57,
1259     0x52,
1260     0x77,
1261     0x67,
1262     0x49,
1263     0x65,
1264     0x6c,
1265     0x6e,
1266     0x31,
1267     0x53,
1268     0x77,
1269     0x39,
1270     0x45,
1271     0x65,
1272     0x36,
1273     0x63,
1274     0x54,
1275     0x59,
1276     0x5a,
1277     0x43,
1278     0x47,
1279     0x32,
1280     0x55,
1281     0x2b,
1282     0x2f,
1283     0x55,
1284     0x66,
1285     0x2b,
1286     0x4c,
1287     0x73,
1288     0x37,
1289     0x66,
1290     0x6a,
1291     0x4e,
1292     0x38,
1293     0x74,
1294     0x72,
1295     0x62,
1296     0x2f,
1297     0x53,
1298     0x68,
1299     0x6d,
1300     0x78,
1301     0x6f,
1302     0x38,
1303     0x64,
1304     0x6f,
1305     0x2f,
1306     0x6e,
1307     0x70,
1308     0x42,
1309     0x6e,
1310     0x7a,
1311     0x38,
1312     0x6a,
1313     0x2b,
1314     0x31,
1315     0x0a,
1316     0x61,
1317     0x32,
1318     0x76,
1319     0x62,
1320     0x7a,
1321     0x33,
1322     0x67,
1323     0x70,
1324     0x4f,
1325     0x73,
1326     0x6c,
1327     0x38,
1328     0x37,
1329     0x55,
1330     0x30,
1331     0x63,
1332     0x30,
1333     0x31,
1334     0x4a,
1335     0x43,
1336     0x6c,
1337     0x39,
1338     0x53,
1339     0x5a,
1340     0x58,
1341     0x44,
1342     0x53,
1343     0x4f,
1344     0x30,
1345     0x39,
1346     0x77,
1347     0x3d,
1348     0x0a,
1349     0x2d,
1350     0x2d,
1351     0x2d,
1352     0x2d,
1353     0x2d,
1354     0x45,
1355     0x4e,
1356     0x44,
1357     0x20,
1358     0x43,
1359     0x45,
1360     0x52,
1361     0x54,
1362     0x49,
1363     0x46,
1364     0x49,
1365     0x43,
1366     0x41,
1367     0x54,
1368     0x45,
1369     0x2d,
1370     0x2d,
1371     0x2d,
1372     0x2d,
1373     0x2d,
1374     0x0a,
1375 };
1376 
1377 #ifndef OPENSSL_NO_DEPRECATED_3_0
1378 /*
1379 -----BEGIN PRIVATE KEY-----
1380 MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1mQfTLWrNFfUs
1381 mvlIRGm8M7NxKJfvzIcFBViBa6/LVcmL4PF7PypwtlWhKZxJbQTS2jgA2RlLl88+
1382 RG3HG9otfIIbzA1+aDsAAInS97b+pYfP1bo/LaSwOd0g0eVU0HMYrYqbHHI2nBw3
1383 7U6gwO/veEk0/EEh7VruRZlzyryS5j7ikCTGziUhgyS73U/9HcjPWlN8SsOuIr+0
1384 t5WhEVsluPznpjEF7IvpG2p6VTSVZqk7UvqvxcmL769TaV9DnPwOR9h2EOn+j957
1385 ydtiDl6CHDYyNRZim19zSR3rR17cmSl3H6Ys5Y7Db2337C+rcMY4wkdyXVKj9cRA
1386 nrqCwTM5AgMBAAECggEAFOD+XFJZeDDxGmrLBHsRKRlMpVMEfQan83TU4zRtZtR7
1387 MsDvIrt1drYQDFKLbInDRzbdv4M2fFF8+2zErmLOZ/JrxyRj3MfBGNP3BLGEcay4
1388 e7XYDxGBYN2WRgK7+k9pHEo/qGvR2eOC/w8ivirQq1jKGfRyzKLMlJ6d8Qk7OyxZ
1389 n0u3v2EJ9CWoNDgUH4exCil/Oe4h5WA59xT5NAkx4RUojsJiExWZpzT/VX1d21mN
1390 WMb5EO8eyi6FyZlAcb9MID0kMF6Q3hUv+jTw+X9yig+3B9bg2Z0I+IKHl9InShkC
1391 ndYn4ad0zd/ggMVkloomh4uaSqZxUi3ywtszZkRbzQKBgQD7Pvx1ErKm5lZDAS2b
1392 b4rltzqJRUEKyEqjqzPzgasOa0jWEq/fxuGc/bixg/EBaQ8yyTGYdIYyr7DKYYjC
1393 0AGVnBCh0+TFUDB1kfwkbef2b8yufQ/vJwcOJ+5kBXQZx8+L8U9iWKANXxkEeCX2
1394 iWPZPz52pTTYlf90PLzEW6QyDwKBgQC5CKyfUwx3Ba2iXtfIreyPqDobbybyTEYk
1395 ayA2oElSdejgVkWwJ+q77gwrnF5Pe9zbpUBoc7VJjrRhUojI7LOySyto3WYYoczX
1396 LprzPnj2yEVeV2lrTS6lKNpdraO8QZcSD7mUUmiNRZnoPK16Mm9qjkk29HnY7Msq
1397 pkiOg4huNwKBgQCkh2HBtOXjH/GbXVklcc0Ok4e0vvJSAknGlmWl7+M5xQ3kikY8
1398 D7xNF2XscY/QsaDvTAu7X4tGBAGM9oQdtyNietn1b5JfmByz0U7B+Gsv2ZS7K1DU
1399 9sTLA2E8hMm73DpQ1Ux8BbeCKiVy5M9PfDcz3BOmlJdfwhKQZvniyHRlBwKBgQCH
1400 /sAhOcDnmdzMgjjG3k4IJ/TNRRyy6SyEh9fdTmGVoePPPplpp2z3Qzbetsb6VGc3
1401 aHW2T5Tmw2QAQ9EVHCPW3zjAkjj/0avkW/S24yu09e1GMajhnJC0Axq7z2uQagTG
1402 2ZfkU81UR9uevTojnf4Vqw5UvcrwjNmmNyEM3c/gcQKBgHa2dT5svzM1jReiO3Vt
1403 dAUDztGKUE3clPV35L2xmJeJDXPOqCL3qoZ9A6hHmDw6gmg82gQDQeJbL/+jKkon
1404 e6atH/Dfr+M4nPft9Lt4fOAWOQ3tDsDuCkOMjSTn8cLMZLGcwT2H1H2vBocM+UTd
1405 hljAVnB9v6NMfcRERTx10SUc
1406 -----END PRIVATE KEY-----
1407  */
1408 static const uint8_t RSAPrivateKeyPEM[] = {
1409     0x2d,
1410     0x2d,
1411     0x2d,
1412     0x2d,
1413     0x2d,
1414     0x42,
1415     0x45,
1416     0x47,
1417     0x49,
1418     0x4e,
1419     0x20,
1420     0x50,
1421     0x52,
1422     0x49,
1423     0x56,
1424     0x41,
1425     0x54,
1426     0x45,
1427     0x20,
1428     0x4b,
1429     0x45,
1430     0x59,
1431     0x2d,
1432     0x2d,
1433     0x2d,
1434     0x2d,
1435     0x2d,
1436     0x0a,
1437     0x4d,
1438     0x49,
1439     0x49,
1440     0x45,
1441     0x76,
1442     0x67,
1443     0x49,
1444     0x42,
1445     0x41,
1446     0x44,
1447     0x41,
1448     0x4e,
1449     0x42,
1450     0x67,
1451     0x6b,
1452     0x71,
1453     0x68,
1454     0x6b,
1455     0x69,
1456     0x47,
1457     0x39,
1458     0x77,
1459     0x30,
1460     0x42,
1461     0x41,
1462     0x51,
1463     0x45,
1464     0x46,
1465     0x41,
1466     0x41,
1467     0x53,
1468     0x43,
1469     0x42,
1470     0x4b,
1471     0x67,
1472     0x77,
1473     0x67,
1474     0x67,
1475     0x53,
1476     0x6b,
1477     0x41,
1478     0x67,
1479     0x45,
1480     0x41,
1481     0x41,
1482     0x6f,
1483     0x49,
1484     0x42,
1485     0x41,
1486     0x51,
1487     0x43,
1488     0x31,
1489     0x6d,
1490     0x51,
1491     0x66,
1492     0x54,
1493     0x4c,
1494     0x57,
1495     0x72,
1496     0x4e,
1497     0x46,
1498     0x66,
1499     0x55,
1500     0x73,
1501     0x0a,
1502     0x6d,
1503     0x76,
1504     0x6c,
1505     0x49,
1506     0x52,
1507     0x47,
1508     0x6d,
1509     0x38,
1510     0x4d,
1511     0x37,
1512     0x4e,
1513     0x78,
1514     0x4b,
1515     0x4a,
1516     0x66,
1517     0x76,
1518     0x7a,
1519     0x49,
1520     0x63,
1521     0x46,
1522     0x42,
1523     0x56,
1524     0x69,
1525     0x42,
1526     0x61,
1527     0x36,
1528     0x2f,
1529     0x4c,
1530     0x56,
1531     0x63,
1532     0x6d,
1533     0x4c,
1534     0x34,
1535     0x50,
1536     0x46,
1537     0x37,
1538     0x50,
1539     0x79,
1540     0x70,
1541     0x77,
1542     0x74,
1543     0x6c,
1544     0x57,
1545     0x68,
1546     0x4b,
1547     0x5a,
1548     0x78,
1549     0x4a,
1550     0x62,
1551     0x51,
1552     0x54,
1553     0x53,
1554     0x32,
1555     0x6a,
1556     0x67,
1557     0x41,
1558     0x32,
1559     0x52,
1560     0x6c,
1561     0x4c,
1562     0x6c,
1563     0x38,
1564     0x38,
1565     0x2b,
1566     0x0a,
1567     0x52,
1568     0x47,
1569     0x33,
1570     0x48,
1571     0x47,
1572     0x39,
1573     0x6f,
1574     0x74,
1575     0x66,
1576     0x49,
1577     0x49,
1578     0x62,
1579     0x7a,
1580     0x41,
1581     0x31,
1582     0x2b,
1583     0x61,
1584     0x44,
1585     0x73,
1586     0x41,
1587     0x41,
1588     0x49,
1589     0x6e,
1590     0x53,
1591     0x39,
1592     0x37,
1593     0x62,
1594     0x2b,
1595     0x70,
1596     0x59,
1597     0x66,
1598     0x50,
1599     0x31,
1600     0x62,
1601     0x6f,
1602     0x2f,
1603     0x4c,
1604     0x61,
1605     0x53,
1606     0x77,
1607     0x4f,
1608     0x64,
1609     0x30,
1610     0x67,
1611     0x30,
1612     0x65,
1613     0x56,
1614     0x55,
1615     0x30,
1616     0x48,
1617     0x4d,
1618     0x59,
1619     0x72,
1620     0x59,
1621     0x71,
1622     0x62,
1623     0x48,
1624     0x48,
1625     0x49,
1626     0x32,
1627     0x6e,
1628     0x42,
1629     0x77,
1630     0x33,
1631     0x0a,
1632     0x37,
1633     0x55,
1634     0x36,
1635     0x67,
1636     0x77,
1637     0x4f,
1638     0x2f,
1639     0x76,
1640     0x65,
1641     0x45,
1642     0x6b,
1643     0x30,
1644     0x2f,
1645     0x45,
1646     0x45,
1647     0x68,
1648     0x37,
1649     0x56,
1650     0x72,
1651     0x75,
1652     0x52,
1653     0x5a,
1654     0x6c,
1655     0x7a,
1656     0x79,
1657     0x72,
1658     0x79,
1659     0x53,
1660     0x35,
1661     0x6a,
1662     0x37,
1663     0x69,
1664     0x6b,
1665     0x43,
1666     0x54,
1667     0x47,
1668     0x7a,
1669     0x69,
1670     0x55,
1671     0x68,
1672     0x67,
1673     0x79,
1674     0x53,
1675     0x37,
1676     0x33,
1677     0x55,
1678     0x2f,
1679     0x39,
1680     0x48,
1681     0x63,
1682     0x6a,
1683     0x50,
1684     0x57,
1685     0x6c,
1686     0x4e,
1687     0x38,
1688     0x53,
1689     0x73,
1690     0x4f,
1691     0x75,
1692     0x49,
1693     0x72,
1694     0x2b,
1695     0x30,
1696     0x0a,
1697     0x74,
1698     0x35,
1699     0x57,
1700     0x68,
1701     0x45,
1702     0x56,
1703     0x73,
1704     0x6c,
1705     0x75,
1706     0x50,
1707     0x7a,
1708     0x6e,
1709     0x70,
1710     0x6a,
1711     0x45,
1712     0x46,
1713     0x37,
1714     0x49,
1715     0x76,
1716     0x70,
1717     0x47,
1718     0x32,
1719     0x70,
1720     0x36,
1721     0x56,
1722     0x54,
1723     0x53,
1724     0x56,
1725     0x5a,
1726     0x71,
1727     0x6b,
1728     0x37,
1729     0x55,
1730     0x76,
1731     0x71,
1732     0x76,
1733     0x78,
1734     0x63,
1735     0x6d,
1736     0x4c,
1737     0x37,
1738     0x36,
1739     0x39,
1740     0x54,
1741     0x61,
1742     0x56,
1743     0x39,
1744     0x44,
1745     0x6e,
1746     0x50,
1747     0x77,
1748     0x4f,
1749     0x52,
1750     0x39,
1751     0x68,
1752     0x32,
1753     0x45,
1754     0x4f,
1755     0x6e,
1756     0x2b,
1757     0x6a,
1758     0x39,
1759     0x35,
1760     0x37,
1761     0x0a,
1762     0x79,
1763     0x64,
1764     0x74,
1765     0x69,
1766     0x44,
1767     0x6c,
1768     0x36,
1769     0x43,
1770     0x48,
1771     0x44,
1772     0x59,
1773     0x79,
1774     0x4e,
1775     0x52,
1776     0x5a,
1777     0x69,
1778     0x6d,
1779     0x31,
1780     0x39,
1781     0x7a,
1782     0x53,
1783     0x52,
1784     0x33,
1785     0x72,
1786     0x52,
1787     0x31,
1788     0x37,
1789     0x63,
1790     0x6d,
1791     0x53,
1792     0x6c,
1793     0x33,
1794     0x48,
1795     0x36,
1796     0x59,
1797     0x73,
1798     0x35,
1799     0x59,
1800     0x37,
1801     0x44,
1802     0x62,
1803     0x32,
1804     0x33,
1805     0x33,
1806     0x37,
1807     0x43,
1808     0x2b,
1809     0x72,
1810     0x63,
1811     0x4d,
1812     0x59,
1813     0x34,
1814     0x77,
1815     0x6b,
1816     0x64,
1817     0x79,
1818     0x58,
1819     0x56,
1820     0x4b,
1821     0x6a,
1822     0x39,
1823     0x63,
1824     0x52,
1825     0x41,
1826     0x0a,
1827     0x6e,
1828     0x72,
1829     0x71,
1830     0x43,
1831     0x77,
1832     0x54,
1833     0x4d,
1834     0x35,
1835     0x41,
1836     0x67,
1837     0x4d,
1838     0x42,
1839     0x41,
1840     0x41,
1841     0x45,
1842     0x43,
1843     0x67,
1844     0x67,
1845     0x45,
1846     0x41,
1847     0x46,
1848     0x4f,
1849     0x44,
1850     0x2b,
1851     0x58,
1852     0x46,
1853     0x4a,
1854     0x5a,
1855     0x65,
1856     0x44,
1857     0x44,
1858     0x78,
1859     0x47,
1860     0x6d,
1861     0x72,
1862     0x4c,
1863     0x42,
1864     0x48,
1865     0x73,
1866     0x52,
1867     0x4b,
1868     0x52,
1869     0x6c,
1870     0x4d,
1871     0x70,
1872     0x56,
1873     0x4d,
1874     0x45,
1875     0x66,
1876     0x51,
1877     0x61,
1878     0x6e,
1879     0x38,
1880     0x33,
1881     0x54,
1882     0x55,
1883     0x34,
1884     0x7a,
1885     0x52,
1886     0x74,
1887     0x5a,
1888     0x74,
1889     0x52,
1890     0x37,
1891     0x0a,
1892     0x4d,
1893     0x73,
1894     0x44,
1895     0x76,
1896     0x49,
1897     0x72,
1898     0x74,
1899     0x31,
1900     0x64,
1901     0x72,
1902     0x59,
1903     0x51,
1904     0x44,
1905     0x46,
1906     0x4b,
1907     0x4c,
1908     0x62,
1909     0x49,
1910     0x6e,
1911     0x44,
1912     0x52,
1913     0x7a,
1914     0x62,
1915     0x64,
1916     0x76,
1917     0x34,
1918     0x4d,
1919     0x32,
1920     0x66,
1921     0x46,
1922     0x46,
1923     0x38,
1924     0x2b,
1925     0x32,
1926     0x7a,
1927     0x45,
1928     0x72,
1929     0x6d,
1930     0x4c,
1931     0x4f,
1932     0x5a,
1933     0x2f,
1934     0x4a,
1935     0x72,
1936     0x78,
1937     0x79,
1938     0x52,
1939     0x6a,
1940     0x33,
1941     0x4d,
1942     0x66,
1943     0x42,
1944     0x47,
1945     0x4e,
1946     0x50,
1947     0x33,
1948     0x42,
1949     0x4c,
1950     0x47,
1951     0x45,
1952     0x63,
1953     0x61,
1954     0x79,
1955     0x34,
1956     0x0a,
1957     0x65,
1958     0x37,
1959     0x58,
1960     0x59,
1961     0x44,
1962     0x78,
1963     0x47,
1964     0x42,
1965     0x59,
1966     0x4e,
1967     0x32,
1968     0x57,
1969     0x52,
1970     0x67,
1971     0x4b,
1972     0x37,
1973     0x2b,
1974     0x6b,
1975     0x39,
1976     0x70,
1977     0x48,
1978     0x45,
1979     0x6f,
1980     0x2f,
1981     0x71,
1982     0x47,
1983     0x76,
1984     0x52,
1985     0x32,
1986     0x65,
1987     0x4f,
1988     0x43,
1989     0x2f,
1990     0x77,
1991     0x38,
1992     0x69,
1993     0x76,
1994     0x69,
1995     0x72,
1996     0x51,
1997     0x71,
1998     0x31,
1999     0x6a,
2000     0x4b,
2001     0x47,
2002     0x66,
2003     0x52,
2004     0x79,
2005     0x7a,
2006     0x4b,
2007     0x4c,
2008     0x4d,
2009     0x6c,
2010     0x4a,
2011     0x36,
2012     0x64,
2013     0x38,
2014     0x51,
2015     0x6b,
2016     0x37,
2017     0x4f,
2018     0x79,
2019     0x78,
2020     0x5a,
2021     0x0a,
2022     0x6e,
2023     0x30,
2024     0x75,
2025     0x33,
2026     0x76,
2027     0x32,
2028     0x45,
2029     0x4a,
2030     0x39,
2031     0x43,
2032     0x57,
2033     0x6f,
2034     0x4e,
2035     0x44,
2036     0x67,
2037     0x55,
2038     0x48,
2039     0x34,
2040     0x65,
2041     0x78,
2042     0x43,
2043     0x69,
2044     0x6c,
2045     0x2f,
2046     0x4f,
2047     0x65,
2048     0x34,
2049     0x68,
2050     0x35,
2051     0x57,
2052     0x41,
2053     0x35,
2054     0x39,
2055     0x78,
2056     0x54,
2057     0x35,
2058     0x4e,
2059     0x41,
2060     0x6b,
2061     0x78,
2062     0x34,
2063     0x52,
2064     0x55,
2065     0x6f,
2066     0x6a,
2067     0x73,
2068     0x4a,
2069     0x69,
2070     0x45,
2071     0x78,
2072     0x57,
2073     0x5a,
2074     0x70,
2075     0x7a,
2076     0x54,
2077     0x2f,
2078     0x56,
2079     0x58,
2080     0x31,
2081     0x64,
2082     0x32,
2083     0x31,
2084     0x6d,
2085     0x4e,
2086     0x0a,
2087     0x57,
2088     0x4d,
2089     0x62,
2090     0x35,
2091     0x45,
2092     0x4f,
2093     0x38,
2094     0x65,
2095     0x79,
2096     0x69,
2097     0x36,
2098     0x46,
2099     0x79,
2100     0x5a,
2101     0x6c,
2102     0x41,
2103     0x63,
2104     0x62,
2105     0x39,
2106     0x4d,
2107     0x49,
2108     0x44,
2109     0x30,
2110     0x6b,
2111     0x4d,
2112     0x46,
2113     0x36,
2114     0x51,
2115     0x33,
2116     0x68,
2117     0x55,
2118     0x76,
2119     0x2b,
2120     0x6a,
2121     0x54,
2122     0x77,
2123     0x2b,
2124     0x58,
2125     0x39,
2126     0x79,
2127     0x69,
2128     0x67,
2129     0x2b,
2130     0x33,
2131     0x42,
2132     0x39,
2133     0x62,
2134     0x67,
2135     0x32,
2136     0x5a,
2137     0x30,
2138     0x49,
2139     0x2b,
2140     0x49,
2141     0x4b,
2142     0x48,
2143     0x6c,
2144     0x39,
2145     0x49,
2146     0x6e,
2147     0x53,
2148     0x68,
2149     0x6b,
2150     0x43,
2151     0x0a,
2152     0x6e,
2153     0x64,
2154     0x59,
2155     0x6e,
2156     0x34,
2157     0x61,
2158     0x64,
2159     0x30,
2160     0x7a,
2161     0x64,
2162     0x2f,
2163     0x67,
2164     0x67,
2165     0x4d,
2166     0x56,
2167     0x6b,
2168     0x6c,
2169     0x6f,
2170     0x6f,
2171     0x6d,
2172     0x68,
2173     0x34,
2174     0x75,
2175     0x61,
2176     0x53,
2177     0x71,
2178     0x5a,
2179     0x78,
2180     0x55,
2181     0x69,
2182     0x33,
2183     0x79,
2184     0x77,
2185     0x74,
2186     0x73,
2187     0x7a,
2188     0x5a,
2189     0x6b,
2190     0x52,
2191     0x62,
2192     0x7a,
2193     0x51,
2194     0x4b,
2195     0x42,
2196     0x67,
2197     0x51,
2198     0x44,
2199     0x37,
2200     0x50,
2201     0x76,
2202     0x78,
2203     0x31,
2204     0x45,
2205     0x72,
2206     0x4b,
2207     0x6d,
2208     0x35,
2209     0x6c,
2210     0x5a,
2211     0x44,
2212     0x41,
2213     0x53,
2214     0x32,
2215     0x62,
2216     0x0a,
2217     0x62,
2218     0x34,
2219     0x72,
2220     0x6c,
2221     0x74,
2222     0x7a,
2223     0x71,
2224     0x4a,
2225     0x52,
2226     0x55,
2227     0x45,
2228     0x4b,
2229     0x79,
2230     0x45,
2231     0x71,
2232     0x6a,
2233     0x71,
2234     0x7a,
2235     0x50,
2236     0x7a,
2237     0x67,
2238     0x61,
2239     0x73,
2240     0x4f,
2241     0x61,
2242     0x30,
2243     0x6a,
2244     0x57,
2245     0x45,
2246     0x71,
2247     0x2f,
2248     0x66,
2249     0x78,
2250     0x75,
2251     0x47,
2252     0x63,
2253     0x2f,
2254     0x62,
2255     0x69,
2256     0x78,
2257     0x67,
2258     0x2f,
2259     0x45,
2260     0x42,
2261     0x61,
2262     0x51,
2263     0x38,
2264     0x79,
2265     0x79,
2266     0x54,
2267     0x47,
2268     0x59,
2269     0x64,
2270     0x49,
2271     0x59,
2272     0x79,
2273     0x72,
2274     0x37,
2275     0x44,
2276     0x4b,
2277     0x59,
2278     0x59,
2279     0x6a,
2280     0x43,
2281     0x0a,
2282     0x30,
2283     0x41,
2284     0x47,
2285     0x56,
2286     0x6e,
2287     0x42,
2288     0x43,
2289     0x68,
2290     0x30,
2291     0x2b,
2292     0x54,
2293     0x46,
2294     0x55,
2295     0x44,
2296     0x42,
2297     0x31,
2298     0x6b,
2299     0x66,
2300     0x77,
2301     0x6b,
2302     0x62,
2303     0x65,
2304     0x66,
2305     0x32,
2306     0x62,
2307     0x38,
2308     0x79,
2309     0x75,
2310     0x66,
2311     0x51,
2312     0x2f,
2313     0x76,
2314     0x4a,
2315     0x77,
2316     0x63,
2317     0x4f,
2318     0x4a,
2319     0x2b,
2320     0x35,
2321     0x6b,
2322     0x42,
2323     0x58,
2324     0x51,
2325     0x5a,
2326     0x78,
2327     0x38,
2328     0x2b,
2329     0x4c,
2330     0x38,
2331     0x55,
2332     0x39,
2333     0x69,
2334     0x57,
2335     0x4b,
2336     0x41,
2337     0x4e,
2338     0x58,
2339     0x78,
2340     0x6b,
2341     0x45,
2342     0x65,
2343     0x43,
2344     0x58,
2345     0x32,
2346     0x0a,
2347     0x69,
2348     0x57,
2349     0x50,
2350     0x5a,
2351     0x50,
2352     0x7a,
2353     0x35,
2354     0x32,
2355     0x70,
2356     0x54,
2357     0x54,
2358     0x59,
2359     0x6c,
2360     0x66,
2361     0x39,
2362     0x30,
2363     0x50,
2364     0x4c,
2365     0x7a,
2366     0x45,
2367     0x57,
2368     0x36,
2369     0x51,
2370     0x79,
2371     0x44,
2372     0x77,
2373     0x4b,
2374     0x42,
2375     0x67,
2376     0x51,
2377     0x43,
2378     0x35,
2379     0x43,
2380     0x4b,
2381     0x79,
2382     0x66,
2383     0x55,
2384     0x77,
2385     0x78,
2386     0x33,
2387     0x42,
2388     0x61,
2389     0x32,
2390     0x69,
2391     0x58,
2392     0x74,
2393     0x66,
2394     0x49,
2395     0x72,
2396     0x65,
2397     0x79,
2398     0x50,
2399     0x71,
2400     0x44,
2401     0x6f,
2402     0x62,
2403     0x62,
2404     0x79,
2405     0x62,
2406     0x79,
2407     0x54,
2408     0x45,
2409     0x59,
2410     0x6b,
2411     0x0a,
2412     0x61,
2413     0x79,
2414     0x41,
2415     0x32,
2416     0x6f,
2417     0x45,
2418     0x6c,
2419     0x53,
2420     0x64,
2421     0x65,
2422     0x6a,
2423     0x67,
2424     0x56,
2425     0x6b,
2426     0x57,
2427     0x77,
2428     0x4a,
2429     0x2b,
2430     0x71,
2431     0x37,
2432     0x37,
2433     0x67,
2434     0x77,
2435     0x72,
2436     0x6e,
2437     0x46,
2438     0x35,
2439     0x50,
2440     0x65,
2441     0x39,
2442     0x7a,
2443     0x62,
2444     0x70,
2445     0x55,
2446     0x42,
2447     0x6f,
2448     0x63,
2449     0x37,
2450     0x56,
2451     0x4a,
2452     0x6a,
2453     0x72,
2454     0x52,
2455     0x68,
2456     0x55,
2457     0x6f,
2458     0x6a,
2459     0x49,
2460     0x37,
2461     0x4c,
2462     0x4f,
2463     0x79,
2464     0x53,
2465     0x79,
2466     0x74,
2467     0x6f,
2468     0x33,
2469     0x57,
2470     0x59,
2471     0x59,
2472     0x6f,
2473     0x63,
2474     0x7a,
2475     0x58,
2476     0x0a,
2477     0x4c,
2478     0x70,
2479     0x72,
2480     0x7a,
2481     0x50,
2482     0x6e,
2483     0x6a,
2484     0x32,
2485     0x79,
2486     0x45,
2487     0x56,
2488     0x65,
2489     0x56,
2490     0x32,
2491     0x6c,
2492     0x72,
2493     0x54,
2494     0x53,
2495     0x36,
2496     0x6c,
2497     0x4b,
2498     0x4e,
2499     0x70,
2500     0x64,
2501     0x72,
2502     0x61,
2503     0x4f,
2504     0x38,
2505     0x51,
2506     0x5a,
2507     0x63,
2508     0x53,
2509     0x44,
2510     0x37,
2511     0x6d,
2512     0x55,
2513     0x55,
2514     0x6d,
2515     0x69,
2516     0x4e,
2517     0x52,
2518     0x5a,
2519     0x6e,
2520     0x6f,
2521     0x50,
2522     0x4b,
2523     0x31,
2524     0x36,
2525     0x4d,
2526     0x6d,
2527     0x39,
2528     0x71,
2529     0x6a,
2530     0x6b,
2531     0x6b,
2532     0x32,
2533     0x39,
2534     0x48,
2535     0x6e,
2536     0x59,
2537     0x37,
2538     0x4d,
2539     0x73,
2540     0x71,
2541     0x0a,
2542     0x70,
2543     0x6b,
2544     0x69,
2545     0x4f,
2546     0x67,
2547     0x34,
2548     0x68,
2549     0x75,
2550     0x4e,
2551     0x77,
2552     0x4b,
2553     0x42,
2554     0x67,
2555     0x51,
2556     0x43,
2557     0x6b,
2558     0x68,
2559     0x32,
2560     0x48,
2561     0x42,
2562     0x74,
2563     0x4f,
2564     0x58,
2565     0x6a,
2566     0x48,
2567     0x2f,
2568     0x47,
2569     0x62,
2570     0x58,
2571     0x56,
2572     0x6b,
2573     0x6c,
2574     0x63,
2575     0x63,
2576     0x30,
2577     0x4f,
2578     0x6b,
2579     0x34,
2580     0x65,
2581     0x30,
2582     0x76,
2583     0x76,
2584     0x4a,
2585     0x53,
2586     0x41,
2587     0x6b,
2588     0x6e,
2589     0x47,
2590     0x6c,
2591     0x6d,
2592     0x57,
2593     0x6c,
2594     0x37,
2595     0x2b,
2596     0x4d,
2597     0x35,
2598     0x78,
2599     0x51,
2600     0x33,
2601     0x6b,
2602     0x69,
2603     0x6b,
2604     0x59,
2605     0x38,
2606     0x0a,
2607     0x44,
2608     0x37,
2609     0x78,
2610     0x4e,
2611     0x46,
2612     0x32,
2613     0x58,
2614     0x73,
2615     0x63,
2616     0x59,
2617     0x2f,
2618     0x51,
2619     0x73,
2620     0x61,
2621     0x44,
2622     0x76,
2623     0x54,
2624     0x41,
2625     0x75,
2626     0x37,
2627     0x58,
2628     0x34,
2629     0x74,
2630     0x47,
2631     0x42,
2632     0x41,
2633     0x47,
2634     0x4d,
2635     0x39,
2636     0x6f,
2637     0x51,
2638     0x64,
2639     0x74,
2640     0x79,
2641     0x4e,
2642     0x69,
2643     0x65,
2644     0x74,
2645     0x6e,
2646     0x31,
2647     0x62,
2648     0x35,
2649     0x4a,
2650     0x66,
2651     0x6d,
2652     0x42,
2653     0x79,
2654     0x7a,
2655     0x30,
2656     0x55,
2657     0x37,
2658     0x42,
2659     0x2b,
2660     0x47,
2661     0x73,
2662     0x76,
2663     0x32,
2664     0x5a,
2665     0x53,
2666     0x37,
2667     0x4b,
2668     0x31,
2669     0x44,
2670     0x55,
2671     0x0a,
2672     0x39,
2673     0x73,
2674     0x54,
2675     0x4c,
2676     0x41,
2677     0x32,
2678     0x45,
2679     0x38,
2680     0x68,
2681     0x4d,
2682     0x6d,
2683     0x37,
2684     0x33,
2685     0x44,
2686     0x70,
2687     0x51,
2688     0x31,
2689     0x55,
2690     0x78,
2691     0x38,
2692     0x42,
2693     0x62,
2694     0x65,
2695     0x43,
2696     0x4b,
2697     0x69,
2698     0x56,
2699     0x79,
2700     0x35,
2701     0x4d,
2702     0x39,
2703     0x50,
2704     0x66,
2705     0x44,
2706     0x63,
2707     0x7a,
2708     0x33,
2709     0x42,
2710     0x4f,
2711     0x6d,
2712     0x6c,
2713     0x4a,
2714     0x64,
2715     0x66,
2716     0x77,
2717     0x68,
2718     0x4b,
2719     0x51,
2720     0x5a,
2721     0x76,
2722     0x6e,
2723     0x69,
2724     0x79,
2725     0x48,
2726     0x52,
2727     0x6c,
2728     0x42,
2729     0x77,
2730     0x4b,
2731     0x42,
2732     0x67,
2733     0x51,
2734     0x43,
2735     0x48,
2736     0x0a,
2737     0x2f,
2738     0x73,
2739     0x41,
2740     0x68,
2741     0x4f,
2742     0x63,
2743     0x44,
2744     0x6e,
2745     0x6d,
2746     0x64,
2747     0x7a,
2748     0x4d,
2749     0x67,
2750     0x6a,
2751     0x6a,
2752     0x47,
2753     0x33,
2754     0x6b,
2755     0x34,
2756     0x49,
2757     0x4a,
2758     0x2f,
2759     0x54,
2760     0x4e,
2761     0x52,
2762     0x52,
2763     0x79,
2764     0x79,
2765     0x36,
2766     0x53,
2767     0x79,
2768     0x45,
2769     0x68,
2770     0x39,
2771     0x66,
2772     0x64,
2773     0x54,
2774     0x6d,
2775     0x47,
2776     0x56,
2777     0x6f,
2778     0x65,
2779     0x50,
2780     0x50,
2781     0x50,
2782     0x70,
2783     0x6c,
2784     0x70,
2785     0x70,
2786     0x32,
2787     0x7a,
2788     0x33,
2789     0x51,
2790     0x7a,
2791     0x62,
2792     0x65,
2793     0x74,
2794     0x73,
2795     0x62,
2796     0x36,
2797     0x56,
2798     0x47,
2799     0x63,
2800     0x33,
2801     0x0a,
2802     0x61,
2803     0x48,
2804     0x57,
2805     0x32,
2806     0x54,
2807     0x35,
2808     0x54,
2809     0x6d,
2810     0x77,
2811     0x32,
2812     0x51,
2813     0x41,
2814     0x51,
2815     0x39,
2816     0x45,
2817     0x56,
2818     0x48,
2819     0x43,
2820     0x50,
2821     0x57,
2822     0x33,
2823     0x7a,
2824     0x6a,
2825     0x41,
2826     0x6b,
2827     0x6a,
2828     0x6a,
2829     0x2f,
2830     0x30,
2831     0x61,
2832     0x76,
2833     0x6b,
2834     0x57,
2835     0x2f,
2836     0x53,
2837     0x32,
2838     0x34,
2839     0x79,
2840     0x75,
2841     0x30,
2842     0x39,
2843     0x65,
2844     0x31,
2845     0x47,
2846     0x4d,
2847     0x61,
2848     0x6a,
2849     0x68,
2850     0x6e,
2851     0x4a,
2852     0x43,
2853     0x30,
2854     0x41,
2855     0x78,
2856     0x71,
2857     0x37,
2858     0x7a,
2859     0x32,
2860     0x75,
2861     0x51,
2862     0x61,
2863     0x67,
2864     0x54,
2865     0x47,
2866     0x0a,
2867     0x32,
2868     0x5a,
2869     0x66,
2870     0x6b,
2871     0x55,
2872     0x38,
2873     0x31,
2874     0x55,
2875     0x52,
2876     0x39,
2877     0x75,
2878     0x65,
2879     0x76,
2880     0x54,
2881     0x6f,
2882     0x6a,
2883     0x6e,
2884     0x66,
2885     0x34,
2886     0x56,
2887     0x71,
2888     0x77,
2889     0x35,
2890     0x55,
2891     0x76,
2892     0x63,
2893     0x72,
2894     0x77,
2895     0x6a,
2896     0x4e,
2897     0x6d,
2898     0x6d,
2899     0x4e,
2900     0x79,
2901     0x45,
2902     0x4d,
2903     0x33,
2904     0x63,
2905     0x2f,
2906     0x67,
2907     0x63,
2908     0x51,
2909     0x4b,
2910     0x42,
2911     0x67,
2912     0x48,
2913     0x61,
2914     0x32,
2915     0x64,
2916     0x54,
2917     0x35,
2918     0x73,
2919     0x76,
2920     0x7a,
2921     0x4d,
2922     0x31,
2923     0x6a,
2924     0x52,
2925     0x65,
2926     0x69,
2927     0x4f,
2928     0x33,
2929     0x56,
2930     0x74,
2931     0x0a,
2932     0x64,
2933     0x41,
2934     0x55,
2935     0x44,
2936     0x7a,
2937     0x74,
2938     0x47,
2939     0x4b,
2940     0x55,
2941     0x45,
2942     0x33,
2943     0x63,
2944     0x6c,
2945     0x50,
2946     0x56,
2947     0x33,
2948     0x35,
2949     0x4c,
2950     0x32,
2951     0x78,
2952     0x6d,
2953     0x4a,
2954     0x65,
2955     0x4a,
2956     0x44,
2957     0x58,
2958     0x50,
2959     0x4f,
2960     0x71,
2961     0x43,
2962     0x4c,
2963     0x33,
2964     0x71,
2965     0x6f,
2966     0x5a,
2967     0x39,
2968     0x41,
2969     0x36,
2970     0x68,
2971     0x48,
2972     0x6d,
2973     0x44,
2974     0x77,
2975     0x36,
2976     0x67,
2977     0x6d,
2978     0x67,
2979     0x38,
2980     0x32,
2981     0x67,
2982     0x51,
2983     0x44,
2984     0x51,
2985     0x65,
2986     0x4a,
2987     0x62,
2988     0x4c,
2989     0x2f,
2990     0x2b,
2991     0x6a,
2992     0x4b,
2993     0x6b,
2994     0x6f,
2995     0x6e,
2996     0x0a,
2997     0x65,
2998     0x36,
2999     0x61,
3000     0x74,
3001     0x48,
3002     0x2f,
3003     0x44,
3004     0x66,
3005     0x72,
3006     0x2b,
3007     0x4d,
3008     0x34,
3009     0x6e,
3010     0x50,
3011     0x66,
3012     0x74,
3013     0x39,
3014     0x4c,
3015     0x74,
3016     0x34,
3017     0x66,
3018     0x4f,
3019     0x41,
3020     0x57,
3021     0x4f,
3022     0x51,
3023     0x33,
3024     0x74,
3025     0x44,
3026     0x73,
3027     0x44,
3028     0x75,
3029     0x43,
3030     0x6b,
3031     0x4f,
3032     0x4d,
3033     0x6a,
3034     0x53,
3035     0x54,
3036     0x6e,
3037     0x38,
3038     0x63,
3039     0x4c,
3040     0x4d,
3041     0x5a,
3042     0x4c,
3043     0x47,
3044     0x63,
3045     0x77,
3046     0x54,
3047     0x32,
3048     0x48,
3049     0x31,
3050     0x48,
3051     0x32,
3052     0x76,
3053     0x42,
3054     0x6f,
3055     0x63,
3056     0x4d,
3057     0x2b,
3058     0x55,
3059     0x54,
3060     0x64,
3061     0x0a,
3062     0x68,
3063     0x6c,
3064     0x6a,
3065     0x41,
3066     0x56,
3067     0x6e,
3068     0x42,
3069     0x39,
3070     0x76,
3071     0x36,
3072     0x4e,
3073     0x4d,
3074     0x66,
3075     0x63,
3076     0x52,
3077     0x45,
3078     0x52,
3079     0x54,
3080     0x78,
3081     0x31,
3082     0x30,
3083     0x53,
3084     0x55,
3085     0x63,
3086     0x0a,
3087     0x2d,
3088     0x2d,
3089     0x2d,
3090     0x2d,
3091     0x2d,
3092     0x45,
3093     0x4e,
3094     0x44,
3095     0x20,
3096     0x50,
3097     0x52,
3098     0x49,
3099     0x56,
3100     0x41,
3101     0x54,
3102     0x45,
3103     0x20,
3104     0x4b,
3105     0x45,
3106     0x59,
3107     0x2d,
3108     0x2d,
3109     0x2d,
3110     0x2d,
3111     0x2d,
3112     0x0a,
3113 };
3114 #endif
3115 
3116 #ifndef OPENSSL_NO_EC
3117 #ifndef OPENSSL_NO_DEPRECATED_3_0
3118 /*
3119 -----BEGIN EC PRIVATE KEY-----
3120 MHcCAQEEIJLyl7hJjpQL/RhP1x2zS79xdiPJQB683gWeqcqHPeZkoAoGCCqGSM49
3121 AwEHoUQDQgAEdsjygVYjjaKBF4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazI
3122 D/xy8JiYjtPKVE/Zqwbmivp2UwtH28a7NQ==
3123 -----END EC PRIVATE KEY-----
3124  */
3125 static const char ECDSAPrivateKeyPEM[] = {
3126     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45,
3127     0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45,
3128     0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x48, 0x63, 0x43, 0x41,
3129     0x51, 0x45, 0x45, 0x49, 0x4a, 0x4c, 0x79, 0x6c, 0x37, 0x68, 0x4a, 0x6a,
3130     0x70, 0x51, 0x4c, 0x2f, 0x52, 0x68, 0x50, 0x31, 0x78, 0x32, 0x7a, 0x53,
3131     0x37, 0x39, 0x78, 0x64, 0x69, 0x50, 0x4a, 0x51, 0x42, 0x36, 0x38, 0x33,
3132     0x67, 0x57, 0x65, 0x71, 0x63, 0x71, 0x48, 0x50, 0x65, 0x5a, 0x6b, 0x6f,
3133     0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x0a,
3134     0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45,
3135     0x64, 0x73, 0x6a, 0x79, 0x67, 0x56, 0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42,
3136     0x46, 0x34, 0x43, 0x4e, 0x45, 0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30,
3137     0x31, 0x37, 0x70, 0x35, 0x2f, 0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f,
3138     0x54, 0x48, 0x79, 0x39, 0x49, 0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44,
3139     0x44, 0x61, 0x7a, 0x49, 0x0a, 0x44, 0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69,
3140     0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56, 0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62,
3141     0x6d, 0x69, 0x76, 0x70, 0x32, 0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61,
3142     0x37, 0x4e, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45,
3143     0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
3144     0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
3145 };
3146 #endif
3147 
3148 /*
3149 -----BEGIN CERTIFICATE-----
3150 MIIBXzCCAQagAwIBAgIJAK6/Yvf/ain6MAoGCCqGSM49BAMCMBIxEDAOBgNVBAoM
3151 B0FjbWUgQ28wHhcNMTYxMjI1MTEzOTI3WhcNMjYxMjI1MTEzOTI3WjASMRAwDgYD
3152 VQQKDAdBY21lIENvMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdsjygVYjjaKB
3153 F4CNECVllNf017p5/MxNSWDoTHy9I2GeDwEDDazID/xy8JiYjtPKVE/Zqwbmivp2
3154 UwtH28a7NaNFMEMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYI
3155 KwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MAoGCCqGSM49BAMCA0cAMEQC
3156 IEzr3t/jejVE9oSnBp8c3P2p+lDLVRrB8zxLyjZvirUXAiAyQPaE9MNcL8/nRpuu
3157 99I1enCSmWIAJ57IwuJ/n1d45Q==
3158 -----END CERTIFICATE-----
3159  */
3160 static const char ECDSACertPEM[] = {
3161     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
3162     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
3163     0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x58, 0x7a, 0x43, 0x43,
3164     0x41, 0x51, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
3165     0x41, 0x4b, 0x36, 0x2f, 0x59, 0x76, 0x66, 0x2f, 0x61, 0x69, 0x6e, 0x36,
3166     0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39,
3167     0x42, 0x41, 0x4d, 0x43, 0x4d, 0x42, 0x49, 0x78, 0x45, 0x44, 0x41, 0x4f,
3168     0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x42, 0x30, 0x46,
3169     0x6a, 0x62, 0x57, 0x55, 0x67, 0x51, 0x32, 0x38, 0x77, 0x48, 0x68, 0x63,
3170     0x4e, 0x4d, 0x54, 0x59, 0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45,
3171     0x7a, 0x4f, 0x54, 0x49, 0x33, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x59,
3172     0x78, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x45, 0x7a, 0x4f, 0x54, 0x49,
3173     0x33, 0x57, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59,
3174     0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x64, 0x42, 0x59, 0x32,
3175     0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x46, 0x6b, 0x77, 0x45, 0x77,
3176     0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51,
3177     0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x44, 0x41, 0x51,
3178     0x63, 0x44, 0x51, 0x67, 0x41, 0x45, 0x64, 0x73, 0x6a, 0x79, 0x67, 0x56,
3179     0x59, 0x6a, 0x6a, 0x61, 0x4b, 0x42, 0x0a, 0x46, 0x34, 0x43, 0x4e, 0x45,
3180     0x43, 0x56, 0x6c, 0x6c, 0x4e, 0x66, 0x30, 0x31, 0x37, 0x70, 0x35, 0x2f,
3181     0x4d, 0x78, 0x4e, 0x53, 0x57, 0x44, 0x6f, 0x54, 0x48, 0x79, 0x39, 0x49,
3182     0x32, 0x47, 0x65, 0x44, 0x77, 0x45, 0x44, 0x44, 0x61, 0x7a, 0x49, 0x44,
3183     0x2f, 0x78, 0x79, 0x38, 0x4a, 0x69, 0x59, 0x6a, 0x74, 0x50, 0x4b, 0x56,
3184     0x45, 0x2f, 0x5a, 0x71, 0x77, 0x62, 0x6d, 0x69, 0x76, 0x70, 0x32, 0x0a,
3185     0x55, 0x77, 0x74, 0x48, 0x32, 0x38, 0x61, 0x37, 0x4e, 0x61, 0x4e, 0x46,
3186     0x4d, 0x45, 0x4d, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54,
3187     0x42, 0x41, 0x49, 0x77, 0x41, 0x44, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56,
3188     0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x42, 0x61, 0x41, 0x77,
3189     0x45, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6c, 0x42, 0x41, 0x77, 0x77,
3190     0x43, 0x67, 0x59, 0x49, 0x0a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55,
3191     0x48, 0x41, 0x77, 0x45, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30,
3192     0x52, 0x42, 0x41, 0x30, 0x77, 0x43, 0x34, 0x49, 0x4a, 0x62, 0x47, 0x39,
3193     0x6a, 0x59, 0x57, 0x78, 0x6f, 0x62, 0x33, 0x4e, 0x30, 0x4d, 0x41, 0x6f,
3194     0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d,
3195     0x43, 0x41, 0x30, 0x63, 0x41, 0x4d, 0x45, 0x51, 0x43, 0x0a, 0x49, 0x45,
3196     0x7a, 0x72, 0x33, 0x74, 0x2f, 0x6a, 0x65, 0x6a, 0x56, 0x45, 0x39, 0x6f,
3197     0x53, 0x6e, 0x42, 0x70, 0x38, 0x63, 0x33, 0x50, 0x32, 0x70, 0x2b, 0x6c,
3198     0x44, 0x4c, 0x56, 0x52, 0x72, 0x42, 0x38, 0x7a, 0x78, 0x4c, 0x79, 0x6a,
3199     0x5a, 0x76, 0x69, 0x72, 0x55, 0x58, 0x41, 0x69, 0x41, 0x79, 0x51, 0x50,
3200     0x61, 0x45, 0x39, 0x4d, 0x4e, 0x63, 0x4c, 0x38, 0x2f, 0x6e, 0x52, 0x70,
3201     0x75, 0x75, 0x0a, 0x39, 0x39, 0x49, 0x31, 0x65, 0x6e, 0x43, 0x53, 0x6d,
3202     0x57, 0x49, 0x41, 0x4a, 0x35, 0x37, 0x49, 0x77, 0x75, 0x4a, 0x2f, 0x6e,
3203     0x31, 0x64, 0x34, 0x35, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d,
3204     0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49,
3205     0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
3206 };
3207 #endif
3208 
3209 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
3210 /*
3211 -----BEGIN DSA PRIVATE KEY-----
3212 MIIBuwIBAAKBgQDdkFKzNABLOha7Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXP
3213 Wzf03ULKS5UKjA6WpR6EiZAhm+PdxusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM8
3214 0TGcnw5ijwKmSw5yyHPDWdiHzoqEBlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEg
3215 QqWRf/1EIZZcgM65Qpd65YuxAoGBAKBauV/RuloFHoSy5iWXESDywiS380tN5974
3216 GukGwoYdZo5uSIH6ahpeNSef0MbHGAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+
3217 QtQHOwvQHgLAynhI4i73c794czHaR+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmG
3218 POIMWNXXAoGAI6Ep5IE7yn3JzkXO9B6tC3bbDM+ZzuuInwZLbtZ8lim7Dsqabg4k
3219 2YbE4R95Bnfwnjsyl80mq/DbQN5lAHBvjDrkC6ItojBGKI3+iIrqGUEJdxvl4ulj
3220 F0PmSD7zvIG8BfocKOel+EHH0YryExiW6krV1KW2ZRmJrqSFw6KCjV0CFFQFbPfU
3221 xy5PmKytJmXR8BmppkIO
3222 -----END DSA PRIVATE KEY-----
3223  */
3224 static const char DSAPrivateKeyPEM[] = {
3225     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x44,
3226     0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
3227     0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42,
3228     0x75, 0x77, 0x49, 0x42, 0x41, 0x41, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x64,
3229     0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41, 0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37,
3230     0x45, 0x71, 0x6a, 0x37, 0x30, 0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68,
3231     0x74, 0x52, 0x36, 0x62, 0x78, 0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d,
3232     0x53, 0x5a, 0x54, 0x59, 0x69, 0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50,
3233     0x0a, 0x57, 0x7a, 0x66, 0x30, 0x33, 0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55,
3234     0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70, 0x52, 0x36, 0x45, 0x69, 0x5a, 0x41,
3235     0x68, 0x6d, 0x2b, 0x50, 0x64, 0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66,
3236     0x41, 0x75, 0x52, 0x5a, 0x4c, 0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78,
3237     0x6e, 0x31, 0x66, 0x33, 0x34, 0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51,
3238     0x4e, 0x61, 0x45, 0x4d, 0x38, 0x0a, 0x30, 0x54, 0x47, 0x63, 0x6e, 0x77,
3239     0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d, 0x53, 0x77, 0x35, 0x79, 0x79, 0x48,
3240     0x50, 0x44, 0x57, 0x64, 0x69, 0x48, 0x7a, 0x6f, 0x71, 0x45, 0x42, 0x6c,
3241     0x68, 0x41, 0x66, 0x38, 0x4e, 0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61,
3242     0x78, 0x2f, 0x63, 0x6c, 0x73, 0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52,
3243     0x4c, 0x41, 0x64, 0x77, 0x49, 0x56, 0x41, 0x49, 0x45, 0x67, 0x0a, 0x51,
3244     0x71, 0x57, 0x52, 0x66, 0x2f, 0x31, 0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67,
3245     0x4d, 0x36, 0x35, 0x51, 0x70, 0x64, 0x36, 0x35, 0x59, 0x75, 0x78, 0x41,
3246     0x6f, 0x47, 0x42, 0x41, 0x4b, 0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75,
3247     0x6c, 0x6f, 0x46, 0x48, 0x6f, 0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45,
3248     0x53, 0x44, 0x79, 0x77, 0x69, 0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35,
3249     0x39, 0x37, 0x34, 0x0a, 0x47, 0x75, 0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64,
3250     0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49, 0x48, 0x36, 0x61, 0x68, 0x70, 0x65,
3251     0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d, 0x62, 0x48, 0x47, 0x41, 0x7a, 0x72,
3252     0x37, 0x5a, 0x56, 0x45, 0x6e, 0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77,
3253     0x48, 0x31, 0x67, 0x52, 0x76, 0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62,
3254     0x6d, 0x63, 0x76, 0x74, 0x64, 0x33, 0x72, 0x2b, 0x0a, 0x51, 0x74, 0x51,
3255     0x48, 0x4f, 0x77, 0x76, 0x51, 0x48, 0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68,
3256     0x49, 0x34, 0x69, 0x37, 0x33, 0x63, 0x37, 0x39, 0x34, 0x63, 0x7a, 0x48,
3257     0x61, 0x52, 0x2b, 0x34, 0x33, 0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77,
3258     0x44, 0x6e, 0x51, 0x64, 0x75, 0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f,
3259     0x2f, 0x6a, 0x69, 0x69, 0x5a, 0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d,
3260     0x47, 0x0a, 0x50, 0x4f, 0x49, 0x4d, 0x57, 0x4e, 0x58, 0x58, 0x41, 0x6f,
3261     0x47, 0x41, 0x49, 0x36, 0x45, 0x70, 0x35, 0x49, 0x45, 0x37, 0x79, 0x6e,
3262     0x33, 0x4a, 0x7a, 0x6b, 0x58, 0x4f, 0x39, 0x42, 0x36, 0x74, 0x43, 0x33,
3263     0x62, 0x62, 0x44, 0x4d, 0x2b, 0x5a, 0x7a, 0x75, 0x75, 0x49, 0x6e, 0x77,
3264     0x5a, 0x4c, 0x62, 0x74, 0x5a, 0x38, 0x6c, 0x69, 0x6d, 0x37, 0x44, 0x73,
3265     0x71, 0x61, 0x62, 0x67, 0x34, 0x6b, 0x0a, 0x32, 0x59, 0x62, 0x45, 0x34,
3266     0x52, 0x39, 0x35, 0x42, 0x6e, 0x66, 0x77, 0x6e, 0x6a, 0x73, 0x79, 0x6c,
3267     0x38, 0x30, 0x6d, 0x71, 0x2f, 0x44, 0x62, 0x51, 0x4e, 0x35, 0x6c, 0x41,
3268     0x48, 0x42, 0x76, 0x6a, 0x44, 0x72, 0x6b, 0x43, 0x36, 0x49, 0x74, 0x6f,
3269     0x6a, 0x42, 0x47, 0x4b, 0x49, 0x33, 0x2b, 0x69, 0x49, 0x72, 0x71, 0x47,
3270     0x55, 0x45, 0x4a, 0x64, 0x78, 0x76, 0x6c, 0x34, 0x75, 0x6c, 0x6a, 0x0a,
3271     0x46, 0x30, 0x50, 0x6d, 0x53, 0x44, 0x37, 0x7a, 0x76, 0x49, 0x47, 0x38,
3272     0x42, 0x66, 0x6f, 0x63, 0x4b, 0x4f, 0x65, 0x6c, 0x2b, 0x45, 0x48, 0x48,
3273     0x30, 0x59, 0x72, 0x79, 0x45, 0x78, 0x69, 0x57, 0x36, 0x6b, 0x72, 0x56,
3274     0x31, 0x4b, 0x57, 0x32, 0x5a, 0x52, 0x6d, 0x4a, 0x72, 0x71, 0x53, 0x46,
3275     0x77, 0x36, 0x4b, 0x43, 0x6a, 0x56, 0x30, 0x43, 0x46, 0x46, 0x51, 0x46,
3276     0x62, 0x50, 0x66, 0x55, 0x0a, 0x78, 0x79, 0x35, 0x50, 0x6d, 0x4b, 0x79,
3277     0x74, 0x4a, 0x6d, 0x58, 0x52, 0x38, 0x42, 0x6d, 0x70, 0x70, 0x6b, 0x49,
3278     0x4f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x44,
3279     0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
3280     0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a
3281 };
3282 
3283 /*
3284 -----BEGIN CERTIFICATE-----
3285 MIICqTCCAmegAwIBAgIJAILDGUk37fWGMAsGCWCGSAFlAwQDAjASMRAwDgYDVQQK
3286 DAdBY21lIENvMB4XDTE2MTIyNTEzMjUzNloXDTI2MTIyNTEzMjUzNlowEjEQMA4G
3287 A1UECgwHQWNtZSBDbzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDdkFKzNABLOha7
3288 Eqj7004+p5fhtR6bxpujToMmSZTYi8igVVXPWzf03ULKS5UKjA6WpR6EiZAhm+Pd
3289 xusZ5xfAuRZLdKy0bgxn1f348Rwh+EQNaEM80TGcnw5ijwKmSw5yyHPDWdiHzoqE
3290 BlhAf8Nl22YTXax/clsc/pu/RRLAdwIVAIEgQqWRf/1EIZZcgM65Qpd65YuxAoGB
3291 AKBauV/RuloFHoSy5iWXESDywiS380tN5974GukGwoYdZo5uSIH6ahpeNSef0MbH
3292 GAzr7ZVEnhCQfRAwH1gRvSHoq/Rbmcvtd3r+QtQHOwvQHgLAynhI4i73c794czHa
3293 R+439bmcaSwDnQduRM85Mho/jiiZzAVPxBmGPOIMWNXXA4GEAAKBgCOhKeSBO8p9
3294 yc5FzvQerQt22wzPmc7riJ8GS27WfJYpuw7Kmm4OJNmGxOEfeQZ38J47MpfNJqvw
3295 20DeZQBwb4w65AuiLaIwRiiN/oiK6hlBCXcb5eLpYxdD5kg+87yBvAX6HCjnpfhB
3296 x9GK8hMYlupK1dSltmUZia6khcOigo1do0UwQzAJBgNVHRMEAjAAMAsGA1UdDwQE
3297 AwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAUBgNVHREEDTALgglsb2NhbGhvc3Qw
3298 CwYJYIZIAWUDBAMCAy8AMCwCFClxInXTRWNJEWdi5ilNr/fbM1bKAhQy4B7wtmfd
3299 I+zV6g3w9qBkNqStpA==
3300 -----END CERTIFICATE-----
3301  */
3302 static const char DSACertPEM[] = {
3303     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
3304     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
3305     0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x71, 0x54, 0x43, 0x43,
3306     0x41, 0x6d, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a,
3307     0x41, 0x49, 0x4c, 0x44, 0x47, 0x55, 0x6b, 0x33, 0x37, 0x66, 0x57, 0x47,
3308     0x4d, 0x41, 0x73, 0x47, 0x43, 0x57, 0x43, 0x47, 0x53, 0x41, 0x46, 0x6c,
3309     0x41, 0x77, 0x51, 0x44, 0x41, 0x6a, 0x41, 0x53, 0x4d, 0x52, 0x41, 0x77,
3310     0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x64,
3311     0x42, 0x59, 0x32, 0x31, 0x6c, 0x49, 0x45, 0x4e, 0x76, 0x4d, 0x42, 0x34,
3312     0x58, 0x44, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45,
3313     0x7a, 0x4d, 0x6a, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x49,
3314     0x32, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x54, 0x45, 0x7a, 0x4d, 0x6a, 0x55,
3315     0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x45, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34,
3316     0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x48, 0x51, 0x57,
3317     0x4e, 0x74, 0x5a, 0x53, 0x42, 0x44, 0x62, 0x7a, 0x43, 0x43, 0x41, 0x62,
3318     0x63, 0x77, 0x67, 0x67, 0x45, 0x73, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b,
3319     0x6a, 0x4f, 0x4f, 0x41, 0x51, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x48, 0x77,
3320     0x4b, 0x42, 0x67, 0x51, 0x44, 0x64, 0x6b, 0x46, 0x4b, 0x7a, 0x4e, 0x41,
3321     0x42, 0x4c, 0x4f, 0x68, 0x61, 0x37, 0x0a, 0x45, 0x71, 0x6a, 0x37, 0x30,
3322     0x30, 0x34, 0x2b, 0x70, 0x35, 0x66, 0x68, 0x74, 0x52, 0x36, 0x62, 0x78,
3323     0x70, 0x75, 0x6a, 0x54, 0x6f, 0x4d, 0x6d, 0x53, 0x5a, 0x54, 0x59, 0x69,
3324     0x38, 0x69, 0x67, 0x56, 0x56, 0x58, 0x50, 0x57, 0x7a, 0x66, 0x30, 0x33,
3325     0x55, 0x4c, 0x4b, 0x53, 0x35, 0x55, 0x4b, 0x6a, 0x41, 0x36, 0x57, 0x70,
3326     0x52, 0x36, 0x45, 0x69, 0x5a, 0x41, 0x68, 0x6d, 0x2b, 0x50, 0x64, 0x0a,
3327     0x78, 0x75, 0x73, 0x5a, 0x35, 0x78, 0x66, 0x41, 0x75, 0x52, 0x5a, 0x4c,
3328     0x64, 0x4b, 0x79, 0x30, 0x62, 0x67, 0x78, 0x6e, 0x31, 0x66, 0x33, 0x34,
3329     0x38, 0x52, 0x77, 0x68, 0x2b, 0x45, 0x51, 0x4e, 0x61, 0x45, 0x4d, 0x38,
3330     0x30, 0x54, 0x47, 0x63, 0x6e, 0x77, 0x35, 0x69, 0x6a, 0x77, 0x4b, 0x6d,
3331     0x53, 0x77, 0x35, 0x79, 0x79, 0x48, 0x50, 0x44, 0x57, 0x64, 0x69, 0x48,
3332     0x7a, 0x6f, 0x71, 0x45, 0x0a, 0x42, 0x6c, 0x68, 0x41, 0x66, 0x38, 0x4e,
3333     0x6c, 0x32, 0x32, 0x59, 0x54, 0x58, 0x61, 0x78, 0x2f, 0x63, 0x6c, 0x73,
3334     0x63, 0x2f, 0x70, 0x75, 0x2f, 0x52, 0x52, 0x4c, 0x41, 0x64, 0x77, 0x49,
3335     0x56, 0x41, 0x49, 0x45, 0x67, 0x51, 0x71, 0x57, 0x52, 0x66, 0x2f, 0x31,
3336     0x45, 0x49, 0x5a, 0x5a, 0x63, 0x67, 0x4d, 0x36, 0x35, 0x51, 0x70, 0x64,
3337     0x36, 0x35, 0x59, 0x75, 0x78, 0x41, 0x6f, 0x47, 0x42, 0x0a, 0x41, 0x4b,
3338     0x42, 0x61, 0x75, 0x56, 0x2f, 0x52, 0x75, 0x6c, 0x6f, 0x46, 0x48, 0x6f,
3339     0x53, 0x79, 0x35, 0x69, 0x57, 0x58, 0x45, 0x53, 0x44, 0x79, 0x77, 0x69,
3340     0x53, 0x33, 0x38, 0x30, 0x74, 0x4e, 0x35, 0x39, 0x37, 0x34, 0x47, 0x75,
3341     0x6b, 0x47, 0x77, 0x6f, 0x59, 0x64, 0x5a, 0x6f, 0x35, 0x75, 0x53, 0x49,
3342     0x48, 0x36, 0x61, 0x68, 0x70, 0x65, 0x4e, 0x53, 0x65, 0x66, 0x30, 0x4d,
3343     0x62, 0x48, 0x0a, 0x47, 0x41, 0x7a, 0x72, 0x37, 0x5a, 0x56, 0x45, 0x6e,
3344     0x68, 0x43, 0x51, 0x66, 0x52, 0x41, 0x77, 0x48, 0x31, 0x67, 0x52, 0x76,
3345     0x53, 0x48, 0x6f, 0x71, 0x2f, 0x52, 0x62, 0x6d, 0x63, 0x76, 0x74, 0x64,
3346     0x33, 0x72, 0x2b, 0x51, 0x74, 0x51, 0x48, 0x4f, 0x77, 0x76, 0x51, 0x48,
3347     0x67, 0x4c, 0x41, 0x79, 0x6e, 0x68, 0x49, 0x34, 0x69, 0x37, 0x33, 0x63,
3348     0x37, 0x39, 0x34, 0x63, 0x7a, 0x48, 0x61, 0x0a, 0x52, 0x2b, 0x34, 0x33,
3349     0x39, 0x62, 0x6d, 0x63, 0x61, 0x53, 0x77, 0x44, 0x6e, 0x51, 0x64, 0x75,
3350     0x52, 0x4d, 0x38, 0x35, 0x4d, 0x68, 0x6f, 0x2f, 0x6a, 0x69, 0x69, 0x5a,
3351     0x7a, 0x41, 0x56, 0x50, 0x78, 0x42, 0x6d, 0x47, 0x50, 0x4f, 0x49, 0x4d,
3352     0x57, 0x4e, 0x58, 0x58, 0x41, 0x34, 0x47, 0x45, 0x41, 0x41, 0x4b, 0x42,
3353     0x67, 0x43, 0x4f, 0x68, 0x4b, 0x65, 0x53, 0x42, 0x4f, 0x38, 0x70, 0x39,
3354     0x0a, 0x79, 0x63, 0x35, 0x46, 0x7a, 0x76, 0x51, 0x65, 0x72, 0x51, 0x74,
3355     0x32, 0x32, 0x77, 0x7a, 0x50, 0x6d, 0x63, 0x37, 0x72, 0x69, 0x4a, 0x38,
3356     0x47, 0x53, 0x32, 0x37, 0x57, 0x66, 0x4a, 0x59, 0x70, 0x75, 0x77, 0x37,
3357     0x4b, 0x6d, 0x6d, 0x34, 0x4f, 0x4a, 0x4e, 0x6d, 0x47, 0x78, 0x4f, 0x45,
3358     0x66, 0x65, 0x51, 0x5a, 0x33, 0x38, 0x4a, 0x34, 0x37, 0x4d, 0x70, 0x66,
3359     0x4e, 0x4a, 0x71, 0x76, 0x77, 0x0a, 0x32, 0x30, 0x44, 0x65, 0x5a, 0x51,
3360     0x42, 0x77, 0x62, 0x34, 0x77, 0x36, 0x35, 0x41, 0x75, 0x69, 0x4c, 0x61,
3361     0x49, 0x77, 0x52, 0x69, 0x69, 0x4e, 0x2f, 0x6f, 0x69, 0x4b, 0x36, 0x68,
3362     0x6c, 0x42, 0x43, 0x58, 0x63, 0x62, 0x35, 0x65, 0x4c, 0x70, 0x59, 0x78,
3363     0x64, 0x44, 0x35, 0x6b, 0x67, 0x2b, 0x38, 0x37, 0x79, 0x42, 0x76, 0x41,
3364     0x58, 0x36, 0x48, 0x43, 0x6a, 0x6e, 0x70, 0x66, 0x68, 0x42, 0x0a, 0x78,
3365     0x39, 0x47, 0x4b, 0x38, 0x68, 0x4d, 0x59, 0x6c, 0x75, 0x70, 0x4b, 0x31,
3366     0x64, 0x53, 0x6c, 0x74, 0x6d, 0x55, 0x5a, 0x69, 0x61, 0x36, 0x6b, 0x68,
3367     0x63, 0x4f, 0x69, 0x67, 0x6f, 0x31, 0x64, 0x6f, 0x30, 0x55, 0x77, 0x51,
3368     0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x45, 0x41,
3369     0x6a, 0x41, 0x41, 0x4d, 0x41, 0x73, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44,
3370     0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x46, 0x6f, 0x44, 0x41, 0x54,
3371     0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x55, 0x45, 0x44, 0x44, 0x41, 0x4b,
3372     0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x44,
3373     0x41, 0x54, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45,
3374     0x44, 0x54, 0x41, 0x4c, 0x67, 0x67, 0x6c, 0x73, 0x62, 0x32, 0x4e, 0x68,
3375     0x62, 0x47, 0x68, 0x76, 0x63, 0x33, 0x51, 0x77, 0x0a, 0x43, 0x77, 0x59,
3376     0x4a, 0x59, 0x49, 0x5a, 0x49, 0x41, 0x57, 0x55, 0x44, 0x42, 0x41, 0x4d,
3377     0x43, 0x41, 0x79, 0x38, 0x41, 0x4d, 0x43, 0x77, 0x43, 0x46, 0x43, 0x6c,
3378     0x78, 0x49, 0x6e, 0x58, 0x54, 0x52, 0x57, 0x4e, 0x4a, 0x45, 0x57, 0x64,
3379     0x69, 0x35, 0x69, 0x6c, 0x4e, 0x72, 0x2f, 0x66, 0x62, 0x4d, 0x31, 0x62,
3380     0x4b, 0x41, 0x68, 0x51, 0x79, 0x34, 0x42, 0x37, 0x77, 0x74, 0x6d, 0x66,
3381     0x64, 0x0a, 0x49, 0x2b, 0x7a, 0x56, 0x36, 0x67, 0x33, 0x77, 0x39, 0x71,
3382     0x42, 0x6b, 0x4e, 0x71, 0x53, 0x74, 0x70, 0x41, 0x3d, 0x3d, 0x0a, 0x2d,
3383     0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54,
3384     0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
3385     0x0a
3386 };
3387 #endif
3388 
3389 /* unused, to avoid warning. */
3390 static int idx;
3391 
3392 #define FUZZTIME 1485898104
3393 
3394 #define TIME_IMPL(t)       \
3395     {                      \
3396         if (t != NULL)     \
3397             *t = FUZZTIME; \
3398         return FUZZTIME;   \
3399     }
3400 
3401 /*
3402  * This might not work in all cases (and definitely not on Windows
3403  * because of the way linkers are) and callees can still get the
3404  * current time instead of the fixed time. This will just result
3405  * in things not being fully reproducible and have a slightly
3406  * different coverage.
3407  */
3408 #if !defined(_WIN32)
time(time_t * t)3409 time_t time(time_t *t) TIME_IMPL(t)
3410 #endif
3411 
3412     int FuzzerInitialize(int *argc, char ***argv)
3413 {
3414     STACK_OF(SSL_COMP) *comp_methods;
3415 
3416     FuzzerSetRand();
3417     OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS | OPENSSL_INIT_ASYNC, NULL);
3418     OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
3419     ERR_clear_error();
3420     CRYPTO_free_ex_index(0, -1);
3421     idx = SSL_get_ex_data_X509_STORE_CTX_idx();
3422     comp_methods = SSL_COMP_get_compression_methods();
3423     if (comp_methods != NULL)
3424         sk_SSL_COMP_sort(comp_methods);
3425 
3426     return 1;
3427 }
3428 
FuzzerTestOneInput(const uint8_t * buf,size_t len)3429 int FuzzerTestOneInput(const uint8_t *buf, size_t len)
3430 {
3431     SSL *server;
3432     BIO *in;
3433     BIO *out;
3434     BIO *bio_buf;
3435     SSL_CTX *ctx;
3436     int ret;
3437 #ifndef OPENSSL_NO_DEPRECATED_3_0
3438     RSA *privkey;
3439 #endif
3440 #if !defined(OPENSSL_NO_DEPRECATED_3_0)
3441     EVP_PKEY *pkey;
3442 #endif
3443     X509 *cert;
3444 #ifndef OPENSSL_NO_DEPRECATED_3_0
3445 #ifndef OPENSSL_NO_EC
3446     EC_KEY *ecdsakey = NULL;
3447 #endif
3448 #endif
3449 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
3450     DSA *dsakey = NULL;
3451 #endif
3452 
3453     if (len < 2)
3454         return 0;
3455 
3456     /* This only fuzzes the initial flow from the client so far. */
3457     ctx = SSL_CTX_new(DTLS_server_method());
3458 
3459     ret = SSL_CTX_set_min_proto_version(ctx, 0);
3460     OPENSSL_assert(ret == 1);
3461     ret = SSL_CTX_set_cipher_list(ctx, "ALL:eNULL:@SECLEVEL=0");
3462     OPENSSL_assert(ret == 1);
3463 
3464 #ifndef OPENSSL_NO_DEPRECATED_3_0
3465     /* RSA */
3466     bio_buf = BIO_new(BIO_s_mem());
3467     OPENSSL_assert((size_t)BIO_write(bio_buf, RSAPrivateKeyPEM, sizeof(RSAPrivateKeyPEM)) == sizeof(RSAPrivateKeyPEM));
3468     privkey = PEM_read_bio_RSAPrivateKey(bio_buf, NULL, NULL, NULL);
3469     ERR_print_errors_fp(stderr);
3470     OPENSSL_assert(privkey != NULL);
3471     BIO_free(bio_buf);
3472     pkey = EVP_PKEY_new();
3473     EVP_PKEY_assign_RSA(pkey, privkey);
3474     ret = SSL_CTX_use_PrivateKey(ctx, pkey);
3475     OPENSSL_assert(ret == 1);
3476     EVP_PKEY_free(pkey);
3477 #endif
3478 
3479     bio_buf = BIO_new(BIO_s_mem());
3480     OPENSSL_assert((size_t)BIO_write(bio_buf, RSACertificatePEM, sizeof(RSACertificatePEM)) == sizeof(RSACertificatePEM));
3481     cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
3482     BIO_free(bio_buf);
3483     OPENSSL_assert(cert != NULL);
3484     ret = SSL_CTX_use_certificate(ctx, cert);
3485     OPENSSL_assert(ret == 1);
3486     X509_free(cert);
3487 
3488 #ifndef OPENSSL_NO_EC
3489 #ifndef OPENSSL_NO_DEPRECATED_3_0
3490     /* ECDSA */
3491     bio_buf = BIO_new(BIO_s_mem());
3492     OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSAPrivateKeyPEM, sizeof(ECDSAPrivateKeyPEM)) == sizeof(ECDSAPrivateKeyPEM));
3493     ecdsakey = PEM_read_bio_ECPrivateKey(bio_buf, NULL, NULL, NULL);
3494     ERR_print_errors_fp(stderr);
3495     OPENSSL_assert(ecdsakey != NULL);
3496     BIO_free(bio_buf);
3497     pkey = EVP_PKEY_new();
3498     EVP_PKEY_assign_EC_KEY(pkey, ecdsakey);
3499     ret = SSL_CTX_use_PrivateKey(ctx, pkey);
3500     OPENSSL_assert(ret == 1);
3501     EVP_PKEY_free(pkey);
3502 #endif
3503     bio_buf = BIO_new(BIO_s_mem());
3504     OPENSSL_assert((size_t)BIO_write(bio_buf, ECDSACertPEM, sizeof(ECDSACertPEM)) == sizeof(ECDSACertPEM));
3505     cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
3506     OPENSSL_assert(cert != NULL);
3507     BIO_free(bio_buf);
3508     ret = SSL_CTX_use_certificate(ctx, cert);
3509     OPENSSL_assert(ret == 1);
3510     X509_free(cert);
3511 #endif
3512 
3513 #if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
3514     /* DSA */
3515     bio_buf = BIO_new(BIO_s_mem());
3516     OPENSSL_assert((size_t)BIO_write(bio_buf, DSAPrivateKeyPEM, sizeof(DSAPrivateKeyPEM)) == sizeof(DSAPrivateKeyPEM));
3517     dsakey = PEM_read_bio_DSAPrivateKey(bio_buf, NULL, NULL, NULL);
3518     ERR_print_errors_fp(stderr);
3519     OPENSSL_assert(dsakey != NULL);
3520     BIO_free(bio_buf);
3521     pkey = EVP_PKEY_new();
3522     EVP_PKEY_assign_DSA(pkey, dsakey);
3523     ret = SSL_CTX_use_PrivateKey(ctx, pkey);
3524     OPENSSL_assert(ret == 1);
3525     EVP_PKEY_free(pkey);
3526 
3527     bio_buf = BIO_new(BIO_s_mem());
3528     OPENSSL_assert((size_t)BIO_write(bio_buf, DSACertPEM, sizeof(DSACertPEM)) == sizeof(DSACertPEM));
3529     cert = PEM_read_bio_X509(bio_buf, NULL, NULL, NULL);
3530     OPENSSL_assert(cert != NULL);
3531     BIO_free(bio_buf);
3532     ret = SSL_CTX_use_certificate(ctx, cert);
3533     OPENSSL_assert(ret == 1);
3534     X509_free(cert);
3535 #endif
3536 
3537     server = SSL_new(ctx);
3538     in = BIO_new(BIO_s_mem());
3539     out = BIO_new(BIO_s_mem());
3540     SSL_set_bio(server, in, out);
3541     SSL_set_accept_state(server);
3542 
3543     OPENSSL_assert((size_t)BIO_write(in, buf, len) == len);
3544 
3545     if (SSL_do_handshake(server) == 1) {
3546         /* Keep reading application data until error or EOF. */
3547         uint8_t tmp[1024];
3548         for (;;) {
3549             if (SSL_read(server, tmp, sizeof(tmp)) <= 0) {
3550                 break;
3551             }
3552         }
3553     }
3554     SSL_free(server);
3555     ERR_clear_error();
3556     SSL_CTX_free(ctx);
3557 
3558     return 0;
3559 }
3560 
FuzzerCleanup(void)3561 void FuzzerCleanup(void)
3562 {
3563     FuzzerClearRand();
3564 }
3565