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