ReactOS 0.4.16-dev-1948-gd260c1d
chain.c
Go to the documentation of this file.
1/*
2 * crypt32 certificate chain functions tests
3 *
4 * Copyright 2006 Juan Lang
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#include <stdio.h>
22#include <stdarg.h>
23
24#include <windef.h>
25#include <winbase.h>
26#include <winerror.h>
27#include <wincrypt.h>
28#include <wininet.h>
29
30#include "wine/test.h"
31
32static const BYTE selfSignedCert[] = {
33 0x30, 0x82, 0x01, 0x1f, 0x30, 0x81, 0xce, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02,
34 0x10, 0xeb, 0x0d, 0x57, 0x2a, 0x9c, 0x09, 0xba, 0xa4, 0x4a, 0xb7, 0x25, 0x49,
35 0xd9, 0x3e, 0xb5, 0x73, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d,
36 0x05, 0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03,
37 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30,
38 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x30, 0x36, 0x32, 0x39, 0x30, 0x35, 0x30, 0x30,
39 0x34, 0x36, 0x5a, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x36, 0x32, 0x39, 0x31, 0x31,
40 0x30, 0x30, 0x34, 0x36, 0x5a, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
41 0x55, 0x04, 0x03, 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e,
42 0x67, 0x00, 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
43 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, 0x30, 0x48, 0x02, 0x41,
44 0x00, 0xe2, 0x54, 0x3a, 0xa7, 0x83, 0xb1, 0x27, 0x14, 0x3e, 0x59, 0xbb, 0xb4,
45 0x53, 0xe6, 0x1f, 0xe7, 0x5d, 0xf1, 0x21, 0x68, 0xad, 0x85, 0x53, 0xdb, 0x6b,
46 0x1e, 0xeb, 0x65, 0x97, 0x03, 0x86, 0x60, 0xde, 0xf3, 0x6c, 0x38, 0x75, 0xe0,
47 0x4c, 0x61, 0xbb, 0xbc, 0x62, 0x17, 0xa9, 0xcd, 0x79, 0x3f, 0x21, 0x4e, 0x96,
48 0xcb, 0x0e, 0xdc, 0x61, 0x94, 0x30, 0x18, 0x10, 0x6b, 0xd0, 0x1c, 0x10, 0x79,
49 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02,
50 0x1d, 0x05, 0x00, 0x03, 0x41, 0x00, 0x25, 0x90, 0x53, 0x34, 0xd9, 0x56, 0x41,
51 0x5e, 0xdb, 0x7e, 0x01, 0x36, 0xec, 0x27, 0x61, 0x5e, 0xb7, 0x4d, 0x90, 0x66,
52 0xa2, 0xe1, 0x9d, 0x58, 0x76, 0xd4, 0x9c, 0xba, 0x2c, 0x84, 0xc6, 0x83, 0x7a,
53 0x22, 0x0d, 0x03, 0x69, 0x32, 0x1a, 0x6d, 0xcb, 0x0c, 0x15, 0xb3, 0x6b, 0xc7,
54 0x0a, 0x8c, 0xb4, 0x5c, 0x34, 0x78, 0xe0, 0x3c, 0x9c, 0xe9, 0xf3, 0x30, 0x9f,
55 0xa8, 0x76, 0x57, 0x92, 0x36 };
56
57#define IS_INTOID(x) (((ULONG_PTR)(x) >> 16) == 0)
58
60{
72
74{
75 BOOL ret;
78 HCERTCHAINENGINE engine;
79 HCERTSTORE store;
80
81 /* Crash
82 ret = CertCreateCertificateChainEngine(NULL, NULL);
83 ret = CertCreateCertificateChainEngine(NULL, &engine);
84 ret = CertCreateCertificateChainEngine(pConfig, NULL);
85 */
86 ret = CertCreateCertificateChainEngine(pConfig, &engine);
88 "Expected E_INVALIDARG, got %08lx\n", GetLastError());
89 /* Crashes
90 config.cbSize = sizeof(config);
91 ret = CertCreateCertificateChainEngine(pConfig, NULL);
92 */
93 config.cbSize = sizeof(config);
94 ret = CertCreateCertificateChainEngine(pConfig, &engine);
95 ok(ret, "CertCreateCertificateChainEngine failed: %08lx\n", GetLastError());
97 config.dwFlags = 0xff000000;
98 ret = CertCreateCertificateChainEngine(pConfig, &engine);
99 ok(ret, "CertCreateCertificateChainEngine failed: %08lx\n", GetLastError());
101
102 /* Creating a cert with no root certs at all is allowed.. */
105 config.hRestrictedRoot = store;
106 ret = CertCreateCertificateChainEngine(pConfig, &engine);
107 ok(ret, "CertCreateCertificateChainEngine failed: %08lx\n", GetLastError());
109
110 /* but creating one with a restricted root with a cert that isn't a member
111 * of the Root store isn't allowed.
112 */
115 ret = CertCreateCertificateChainEngine(pConfig, &engine);
116 /* ERROR_FILE_NOT_FOUND used in Windows 10 */
117 ok(!ret && ((GetLastError() == CRYPT_E_NOT_FOUND) ||
119 "Expected CRYPT_E_NOT_FOUND or ERROR_FILE_NOT_FOUND, got %08lx\n", GetLastError());
120
121 CertCloseStore(store, 0);
122}
123
124static const BYTE bigCert[] = { 0x30, 0x7a, 0x02, 0x01, 0x01, 0x30, 0x02, 0x06,
125 0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
126 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x22,
127 0x18, 0x0f, 0x31, 0x36, 0x30, 0x31, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30,
128 0x30, 0x30, 0x30, 0x5a, 0x18, 0x0f, 0x31, 0x36, 0x30, 0x31, 0x30, 0x31, 0x30,
129 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x15, 0x31, 0x13, 0x30,
130 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20,
131 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x07, 0x30, 0x02, 0x06, 0x00, 0x03, 0x01,
132 0x00, 0xa3, 0x16, 0x30, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
133 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01 };
134static const BYTE geotrust_global_ca[]={
1350x30,0x82,0x03,0x54,0x30,0x82,0x02,0x3c,0xa0,0x03,0x02,0x01,0x02,0x02,0x03,
1360x02,0x34,0x56,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
1370x05,0x05,0x00,0x30,0x42,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,
1380x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0a,0x13,0x0d,0x47,
1390x65,0x6f,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6e,0x63,0x2e,0x31,0x1b,0x30,
1400x19,0x06,0x03,0x55,0x04,0x03,0x13,0x12,0x47,0x65,0x6f,0x54,0x72,0x75,0x73,
1410x74,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x43,0x41,0x30,0x1e,0x17,0x0d,
1420x30,0x32,0x30,0x35,0x32,0x31,0x30,0x34,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,
1430x32,0x32,0x30,0x35,0x32,0x31,0x30,0x34,0x30,0x30,0x30,0x30,0x5a,0x30,0x42,
1440x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16,
1450x30,0x14,0x06,0x03,0x55,0x04,0x0a,0x13,0x0d,0x47,0x65,0x6f,0x54,0x72,0x75,
1460x73,0x74,0x20,0x49,0x6e,0x63,0x2e,0x31,0x1b,0x30,0x19,0x06,0x03,0x55,0x04,
1470x03,0x13,0x12,0x47,0x65,0x6f,0x54,0x72,0x75,0x73,0x74,0x20,0x47,0x6c,0x6f,
1480x62,0x61,0x6c,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,
1490x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,
1500x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xda,0xcc,0x18,0x63,0x30,0xfd,
1510xf4,0x17,0x23,0x1a,0x56,0x7e,0x5b,0xdf,0x3c,0x6c,0x38,0xe4,0x71,0xb7,0x78,
1520x91,0xd4,0xbc,0xa1,0xd8,0x4c,0xf8,0xa8,0x43,0xb6,0x03,0xe9,0x4d,0x21,0x07,
1530x08,0x88,0xda,0x58,0x2f,0x66,0x39,0x29,0xbd,0x05,0x78,0x8b,0x9d,0x38,0xe8,
1540x05,0xb7,0x6a,0x7e,0x71,0xa4,0xe6,0xc4,0x60,0xa6,0xb0,0xef,0x80,0xe4,0x89,
1550x28,0x0f,0x9e,0x25,0xd6,0xed,0x83,0xf3,0xad,0xa6,0x91,0xc7,0x98,0xc9,0x42,
1560x18,0x35,0x14,0x9d,0xad,0x98,0x46,0x92,0x2e,0x4f,0xca,0xf1,0x87,0x43,0xc1,
1570x16,0x95,0x57,0x2d,0x50,0xef,0x89,0x2d,0x80,0x7a,0x57,0xad,0xf2,0xee,0x5f,
1580x6b,0xd2,0x00,0x8d,0xb9,0x14,0xf8,0x14,0x15,0x35,0xd9,0xc0,0x46,0xa3,0x7b,
1590x72,0xc8,0x91,0xbf,0xc9,0x55,0x2b,0xcd,0xd0,0x97,0x3e,0x9c,0x26,0x64,0xcc,
1600xdf,0xce,0x83,0x19,0x71,0xca,0x4e,0xe6,0xd4,0xd5,0x7b,0xa9,0x19,0xcd,0x55,
1610xde,0xc8,0xec,0xd2,0x5e,0x38,0x53,0xe5,0x5c,0x4f,0x8c,0x2d,0xfe,0x50,0x23,
1620x36,0xfc,0x66,0xe6,0xcb,0x8e,0xa4,0x39,0x19,0x00,0xb7,0x95,0x02,0x39,0x91,
1630x0b,0x0e,0xfe,0x38,0x2e,0xd1,0x1d,0x05,0x9a,0xf6,0x4d,0x3e,0x6f,0x0f,0x07,
1640x1d,0xaf,0x2c,0x1e,0x8f,0x60,0x39,0xe2,0xfa,0x36,0x53,0x13,0x39,0xd4,0x5e,
1650x26,0x2b,0xdb,0x3d,0xa8,0x14,0xbd,0x32,0xeb,0x18,0x03,0x28,0x52,0x04,0x71,
1660xe5,0xab,0x33,0x3d,0xe1,0x38,0xbb,0x07,0x36,0x84,0x62,0x9c,0x79,0xea,0x16,
1670x30,0xf4,0x5f,0xc0,0x2b,0xe8,0x71,0x6b,0xe4,0xf9,0x02,0x03,0x01,0x00,0x01,
1680xa3,0x53,0x30,0x51,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,
1690x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,
1700x04,0x14,0xc0,0x7a,0x98,0x68,0x8d,0x89,0xfb,0xab,0x05,0x64,0x0c,0x11,0x7d,
1710xaa,0x7d,0x65,0xb8,0xca,0xcc,0x4e,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,
1720x18,0x30,0x16,0x80,0x14,0xc0,0x7a,0x98,0x68,0x8d,0x89,0xfb,0xab,0x05,0x64,
1730x0c,0x11,0x7d,0xaa,0x7d,0x65,0xb8,0xca,0xcc,0x4e,0x30,0x0d,0x06,0x09,0x2a,
1740x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,
1750x35,0xe3,0x29,0x6a,0xe5,0x2f,0x5d,0x54,0x8e,0x29,0x50,0x94,0x9f,0x99,0x1a,
1760x14,0xe4,0x8f,0x78,0x2a,0x62,0x94,0xa2,0x27,0x67,0x9e,0xd0,0xcf,0x1a,0x5e,
1770x47,0xe9,0xc1,0xb2,0xa4,0xcf,0xdd,0x41,0x1a,0x05,0x4e,0x9b,0x4b,0xee,0x4a,
1780x6f,0x55,0x52,0xb3,0x24,0xa1,0x37,0x0a,0xeb,0x64,0x76,0x2a,0x2e,0x2c,0xf3,
1790xfd,0x3b,0x75,0x90,0xbf,0xfa,0x71,0xd8,0xc7,0x3d,0x37,0xd2,0xb5,0x05,0x95,
1800x62,0xb9,0xa6,0xde,0x89,0x3d,0x36,0x7b,0x38,0x77,0x48,0x97,0xac,0xa6,0x20,
1810x8f,0x2e,0xa6,0xc9,0x0c,0xc2,0xb2,0x99,0x45,0x00,0xc7,0xce,0x11,0x51,0x22,
1820x22,0xe0,0xa5,0xea,0xb6,0x15,0x48,0x09,0x64,0xea,0x5e,0x4f,0x74,0xf7,0x05,
1830x3e,0xc7,0x8a,0x52,0x0c,0xdb,0x15,0xb4,0xbd,0x6d,0x9b,0xe5,0xc6,0xb1,0x54,
1840x68,0xa9,0xe3,0x69,0x90,0xb6,0x9a,0xa5,0x0f,0xb8,0xb9,0x3f,0x20,0x7d,0xae,
1850x4a,0xb5,0xb8,0x9c,0xe4,0x1d,0xb6,0xab,0xe6,0x94,0xa5,0xc1,0xc7,0x83,0xad,
1860xdb,0xf5,0x27,0x87,0x0e,0x04,0x6c,0xd5,0xff,0xdd,0xa0,0x5d,0xed,0x87,0x52,
1870xb7,0x2b,0x15,0x02,0xae,0x39,0xa6,0x6a,0x74,0xe9,0xda,0xc4,0xe7,0xbc,0x4d,
1880x34,0x1e,0xa9,0x5c,0x4d,0x33,0x5f,0x92,0x09,0x2f,0x88,0x66,0x5d,0x77,0x97,
1890xc7,0x1d,0x76,0x13,0xa9,0xd5,0xe5,0xf1,0x16,0x09,0x11,0x35,0xd5,0xac,0xdb,
1900x24,0x71,0x70,0x2c,0x98,0x56,0x0b,0xd9,0x17,0xb4,0xd1,0xe3,0x51,0x2b,0x5e,
1910x75,0xe8,0xd5,0xd0,0xdc,0x4f,0x34,0xed,0xc2,0x05,0x66,0x80,0xa1,0xcb,0xe6,
1920x33
193};
194/* Google Internet Authority G2 */
1960x30,0x82,0x03,0xf0,0x30,0x82,0x02,0xd8,0xa0,0x03,0x02,0x01,0x02,0x02,0x03,
1970x02,0x3a,0x92,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
1980x0b,0x05,0x00,0x30,0x42,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,
1990x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0a,0x13,0x0d,0x47,
2000x65,0x6f,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6e,0x63,0x2e,0x31,0x1b,0x30,
2010x19,0x06,0x03,0x55,0x04,0x03,0x13,0x12,0x47,0x65,0x6f,0x54,0x72,0x75,0x73,
2020x74,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x43,0x41,0x30,0x1e,0x17,0x0d,
2030x31,0x35,0x30,0x34,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,
2040x31,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x49,
2050x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,
2060x30,0x11,0x06,0x03,0x55,0x04,0x0a,0x13,0x0a,0x47,0x6f,0x6f,0x67,0x6c,0x65,
2070x20,0x49,0x6e,0x63,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,
2080x47,0x6f,0x6f,0x67,0x6c,0x65,0x20,0x49,0x6e,0x74,0x65,0x72,0x6e,0x65,0x74,
2090x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x47,0x32,0x30,0x82,
2100x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,
2110x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,
2120x00,0x9c,0x2a,0x04,0x77,0x5c,0xd8,0x50,0x91,0x3a,0x06,0xa3,0x82,0xe0,0xd8,
2130x50,0x48,0xbc,0x89,0x3f,0xf1,0x19,0x70,0x1a,0x88,0x46,0x7e,0xe0,0x8f,0xc5,
2140xf1,0x89,0xce,0x21,0xee,0x5a,0xfe,0x61,0x0d,0xb7,0x32,0x44,0x89,0xa0,0x74,
2150x0b,0x53,0x4f,0x55,0xa4,0xce,0x82,0x62,0x95,0xee,0xeb,0x59,0x5f,0xc6,0xe1,
2160x05,0x80,0x12,0xc4,0x5e,0x94,0x3f,0xbc,0x5b,0x48,0x38,0xf4,0x53,0xf7,0x24,
2170xe6,0xfb,0x91,0xe9,0x15,0xc4,0xcf,0xf4,0x53,0x0d,0xf4,0x4a,0xfc,0x9f,0x54,
2180xde,0x7d,0xbe,0xa0,0x6b,0x6f,0x87,0xc0,0xd0,0x50,0x1f,0x28,0x30,0x03,0x40,
2190xda,0x08,0x73,0x51,0x6c,0x7f,0xff,0x3a,0x3c,0xa7,0x37,0x06,0x8e,0xbd,0x4b,
2200x11,0x04,0xeb,0x7d,0x24,0xde,0xe6,0xf9,0xfc,0x31,0x71,0xfb,0x94,0xd5,0x60,
2210xf3,0x2e,0x4a,0xaf,0x42,0xd2,0xcb,0xea,0xc4,0x6a,0x1a,0xb2,0xcc,0x53,0xdd,
2220x15,0x4b,0x8b,0x1f,0xc8,0x19,0x61,0x1f,0xcd,0x9d,0xa8,0x3e,0x63,0x2b,0x84,
2230x35,0x69,0x65,0x84,0xc8,0x19,0xc5,0x46,0x22,0xf8,0x53,0x95,0xbe,0xe3,0x80,
2240x4a,0x10,0xc6,0x2a,0xec,0xba,0x97,0x20,0x11,0xc7,0x39,0x99,0x10,0x04,0xa0,
2250xf0,0x61,0x7a,0x95,0x25,0x8c,0x4e,0x52,0x75,0xe2,0xb6,0xed,0x08,0xca,0x14,
2260xfc,0xce,0x22,0x6a,0xb3,0x4e,0xcf,0x46,0x03,0x97,0x97,0x03,0x7e,0xc0,0xb1,
2270xde,0x7b,0xaf,0x45,0x33,0xcf,0xba,0x3e,0x71,0xb7,0xde,0xf4,0x25,0x25,0xc2,
2280x0d,0x35,0x89,0x9d,0x9d,0xfb,0x0e,0x11,0x79,0x89,0x1e,0x37,0xc5,0xaf,0x8e,
2290x72,0x69,0x02,0x03,0x01,0x00,0x01,0xa3,0x81,0xe7,0x30,0x81,0xe4,0x30,0x1f,
2300x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xc0,0x7a,0x98,0x68,
2310x8d,0x89,0xfb,0xab,0x05,0x64,0x0c,0x11,0x7d,0xaa,0x7d,0x65,0xb8,0xca,0xcc,
2320x4e,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x4a,0xdd,0x06,
2330x16,0x1b,0xbc,0xf6,0x68,0xb5,0x76,0xf5,0x81,0xb6,0xbb,0x62,0x1a,0xba,0x5a,
2340x81,0x2f,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,
2350x02,0x01,0x06,0x30,0x2e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,
2360x04,0x22,0x30,0x20,0x30,0x1e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,
2370x01,0x86,0x12,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x67,0x2e,0x73,0x79,0x6d,
2380x63,0x64,0x2e,0x63,0x6f,0x6d,0x30,0x12,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,
2390xff,0x04,0x08,0x30,0x06,0x01,0x01,0xff,0x02,0x01,0x00,0x30,0x35,0x06,0x03,
2400x55,0x1d,0x1f,0x04,0x2e,0x30,0x2c,0x30,0x2a,0xa0,0x28,0xa0,0x26,0x86,0x24,
2410x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x67,0x2e,0x73,0x79,0x6d,0x63,0x62,0x2e,
2420x63,0x6f,0x6d,0x2f,0x63,0x72,0x6c,0x73,0x2f,0x67,0x74,0x67,0x6c,0x6f,0x62,
2430x61,0x6c,0x2e,0x63,0x72,0x6c,0x30,0x17,0x06,0x03,0x55,0x1d,0x20,0x04,0x10,
2440x30,0x0e,0x30,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0xd6,0x79,0x02,0x05,
2450x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,
2460x00,0x03,0x82,0x01,0x01,0x00,0x08,0x4e,0x04,0xa7,0x80,0x7f,0x10,0x16,0x43,
2470x5e,0x02,0xad,0xd7,0x42,0x80,0xf4,0xb0,0x8e,0xd2,0xae,0xb3,0xeb,0x11,0x7d,
2480x90,0x84,0x18,0x7d,0xe7,0x90,0x15,0xfb,0x49,0x7f,0xa8,0x99,0x05,0x91,0xbb,
2490x7a,0xc9,0xd6,0x3c,0x37,0x18,0x09,0x9a,0xb6,0xc7,0x92,0x20,0x07,0x35,0x33,
2500x09,0xe4,0x28,0x63,0x72,0x0d,0xb4,0xe0,0x32,0x9c,0x87,0x98,0xc4,0x1b,0x76,
2510x89,0x67,0xc1,0x50,0x58,0xb0,0x13,0xaa,0x13,0x1a,0x1b,0x32,0xa5,0xbe,0xea,
2520x11,0x95,0x4c,0x48,0x63,0x49,0xe9,0x99,0x5d,0x20,0x37,0xcc,0xfe,0x2a,0x69,
2530x51,0x16,0x95,0x4b,0xa9,0xde,0x49,0x82,0xc0,0x10,0x70,0xf4,0x2c,0xf3,0xec,
2540xbc,0x24,0x24,0xd0,0x4e,0xac,0xa5,0xd9,0x5e,0x1e,0x6d,0x92,0xc1,0xa7,0xac,
2550x48,0x35,0x81,0xf9,0xe5,0xe4,0x9c,0x65,0x69,0xcd,0x87,0xa4,0x41,0x50,0x3f,
2560x2e,0x57,0xa5,0x91,0x51,0x12,0x58,0x0e,0x8c,0x09,0xa1,0xac,0x7a,0xa4,0x12,
2570xa5,0x27,0xf3,0x9a,0x10,0x97,0x7d,0x55,0x03,0x06,0xf7,0x66,0x58,0x5f,0x5f,
2580x64,0xe1,0xab,0x5d,0x6d,0xa5,0x39,0x48,0x75,0x98,0x4c,0x29,0x5a,0x3a,0x8d,
2590xd3,0x2b,0xca,0x9c,0x55,0x04,0xbf,0xf4,0xe6,0x14,0xd5,0x80,0xac,0x26,0xed,
2600x17,0x89,0xa6,0x93,0x6c,0x5c,0xa4,0xcc,0xb8,0xf0,0x66,0x8e,0x64,0xe3,0x7d,
2610x9a,0xe2,0x00,0xb3,0x49,0xc7,0xe4,0x0a,0xaa,0xdd,0x5b,0x83,0xc7,0x70,0x90,
2620x46,0x4e,0xbe,0xd0,0xdb,0x59,0x96,0x6c,0x2e,0xf5,0x16,0x36,0xde,0x71,0xcc,
2630x01,0xc2,0x12,0xc1,0x21,0xc6,0x16
264};
265/* *.google.com cert */
266static const BYTE google_com[]={
2670x30,0x82,0x07,0x2f,0x30,0x82,0x06,0x17,0xa0,0x03,0x02,0x01,0x02,0x02,0x08,
2680x73,0x73,0x50,0xab,0x51,0x66,0x4b,0x73,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
2690x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x49,0x31,0x0b,0x30,0x09,0x06,
2700x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,
2710x04,0x0a,0x13,0x0a,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x20,0x49,0x6e,0x63,0x31,
2720x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x47,0x6f,0x6f,0x67,0x6c,
2730x65,0x20,0x49,0x6e,0x74,0x65,0x72,0x6e,0x65,0x74,0x20,0x41,0x75,0x74,0x68,
2740x6f,0x72,0x69,0x74,0x79,0x20,0x47,0x32,0x30,0x1e,0x17,0x0d,0x31,0x36,0x31,
2750x31,0x31,0x30,0x31,0x35,0x34,0x35,0x35,0x33,0x5a,0x17,0x0d,0x31,0x37,0x30,
2760x32,0x30,0x32,0x31,0x35,0x33,0x31,0x30,0x30,0x5a,0x30,0x66,0x31,0x0b,0x30,
2770x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,
2780x03,0x55,0x04,0x08,0x0c,0x0a,0x43,0x61,0x6c,0x69,0x66,0x6f,0x72,0x6e,0x69,
2790x61,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x07,0x0c,0x0d,0x4d,0x6f,0x75,
2800x6e,0x74,0x61,0x69,0x6e,0x20,0x56,0x69,0x65,0x77,0x31,0x13,0x30,0x11,0x06,
2810x03,0x55,0x04,0x0a,0x0c,0x0a,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x20,0x49,0x6e,
2820x63,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,0x03,0x0c,0x0c,0x2a,0x2e,0x67,
2830x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x30,0x59,0x30,0x13,0x06,0x07,
2840x2a,0x86,0x48,0xce,0x3d,0x02,0x01,0x06,0x08,0x2a,0x86,0x48,0xce,0x3d,0x03,
2850x01,0x07,0x03,0x42,0x00,0x04,0xe6,0xec,0xdc,0xce,0x7e,0x73,0xe8,0x34,0x4f,
2860x1a,0xe1,0x29,0xf6,0x6d,0xe1,0xd4,0x63,0xc6,0x5f,0xcd,0xa7,0x0e,0x91,0xe3,
2870x6a,0x41,0xf6,0x64,0x30,0xfb,0x01,0xec,0x98,0xa2,0xb9,0xfe,0x63,0xef,0x07,
2880xec,0x09,0x50,0x99,0x0e,0x91,0xf9,0xca,0x56,0x16,0xdb,0x1c,0x10,0xe8,0x51,
2890x84,0xc7,0xb0,0x62,0x05,0x52,0x09,0xfc,0xce,0x1c,0xa3,0x82,0x04,0xc7,0x30,
2900x82,0x04,0xc3,0x30,0x1d,0x06,0x03,0x55,0x1d,0x25,0x04,0x16,0x30,0x14,0x06,
2910x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,
2920x05,0x07,0x03,0x02,0x30,0x82,0x03,0x86,0x06,0x03,0x55,0x1d,0x11,0x04,0x82,
2930x03,0x7d,0x30,0x82,0x03,0x79,0x82,0x0c,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,
2940x65,0x2e,0x63,0x6f,0x6d,0x82,0x0d,0x2a,0x2e,0x61,0x6e,0x64,0x72,0x6f,0x69,
2950x64,0x2e,0x63,0x6f,0x6d,0x82,0x16,0x2a,0x2e,0x61,0x70,0x70,0x65,0x6e,0x67,
2960x69,0x6e,0x65,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x82,
2970x12,0x2a,0x2e,0x63,0x6c,0x6f,0x75,0x64,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,
2980x2e,0x63,0x6f,0x6d,0x82,0x16,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2d,
2990x61,0x6e,0x61,0x6c,0x79,0x74,0x69,0x63,0x73,0x2e,0x63,0x6f,0x6d,0x82,0x0b,
3000x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x61,0x82,0x0b,0x2a,0x2e,
3010x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6c,0x82,0x0e,0x2a,0x2e,0x67,0x6f,
3020x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x2e,0x69,0x6e,0x82,0x0e,0x2a,0x2e,0x67,
3030x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x2e,0x6a,0x70,0x82,0x0e,0x2a,0x2e,
3040x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x2e,0x75,0x6b,0x82,0x0f,0x2a,
3050x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2e,0x61,0x72,0x82,
3060x0f,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2e,0x61,
3070x75,0x82,0x0f,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,
3080x2e,0x62,0x72,0x82,0x0f,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,
3090x6f,0x6d,0x2e,0x63,0x6f,0x82,0x0f,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,
3100x2e,0x63,0x6f,0x6d,0x2e,0x6d,0x78,0x82,0x0f,0x2a,0x2e,0x67,0x6f,0x6f,0x67,
3110x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2e,0x74,0x72,0x82,0x0f,0x2a,0x2e,0x67,0x6f,
3120x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2e,0x76,0x6e,0x82,0x0b,0x2a,0x2e,
3130x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x64,0x65,0x82,0x0b,0x2a,0x2e,0x67,0x6f,
3140x6f,0x67,0x6c,0x65,0x2e,0x65,0x73,0x82,0x0b,0x2a,0x2e,0x67,0x6f,0x6f,0x67,
3150x6c,0x65,0x2e,0x66,0x72,0x82,0x0b,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,
3160x2e,0x68,0x75,0x82,0x0b,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x69,
3170x74,0x82,0x0b,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x6e,0x6c,0x82,
3180x0b,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x70,0x6c,0x82,0x0b,0x2a,
3190x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x70,0x74,0x82,0x12,0x2a,0x2e,0x67,
3200x6f,0x6f,0x67,0x6c,0x65,0x61,0x64,0x61,0x70,0x69,0x73,0x2e,0x63,0x6f,0x6d,
3210x82,0x0f,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x61,0x70,0x69,0x73,0x2e,
3220x63,0x6e,0x82,0x14,0x2a,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x63,0x6f,0x6d,
3230x6d,0x65,0x72,0x63,0x65,0x2e,0x63,0x6f,0x6d,0x82,0x11,0x2a,0x2e,0x67,0x6f,
3240x6f,0x67,0x6c,0x65,0x76,0x69,0x64,0x65,0x6f,0x2e,0x63,0x6f,0x6d,0x82,0x0c,
3250x2a,0x2e,0x67,0x73,0x74,0x61,0x74,0x69,0x63,0x2e,0x63,0x6e,0x82,0x0d,0x2a,
3260x2e,0x67,0x73,0x74,0x61,0x74,0x69,0x63,0x2e,0x63,0x6f,0x6d,0x82,0x0a,0x2a,
3270x2e,0x67,0x76,0x74,0x31,0x2e,0x63,0x6f,0x6d,0x82,0x0a,0x2a,0x2e,0x67,0x76,
3280x74,0x32,0x2e,0x63,0x6f,0x6d,0x82,0x14,0x2a,0x2e,0x6d,0x65,0x74,0x72,0x69,
3290x63,0x2e,0x67,0x73,0x74,0x61,0x74,0x69,0x63,0x2e,0x63,0x6f,0x6d,0x82,0x0c,
3300x2a,0x2e,0x75,0x72,0x63,0x68,0x69,0x6e,0x2e,0x63,0x6f,0x6d,0x82,0x10,0x2a,
3310x2e,0x75,0x72,0x6c,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,
3320x82,0x16,0x2a,0x2e,0x79,0x6f,0x75,0x74,0x75,0x62,0x65,0x2d,0x6e,0x6f,0x63,
3330x6f,0x6f,0x6b,0x69,0x65,0x2e,0x63,0x6f,0x6d,0x82,0x0d,0x2a,0x2e,0x79,0x6f,
3340x75,0x74,0x75,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x82,0x16,0x2a,0x2e,0x79,0x6f,
3350x75,0x74,0x75,0x62,0x65,0x65,0x64,0x75,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,
3360x63,0x6f,0x6d,0x82,0x0b,0x2a,0x2e,0x79,0x74,0x69,0x6d,0x67,0x2e,0x63,0x6f,
3370x6d,0x82,0x1a,0x61,0x6e,0x64,0x72,0x6f,0x69,0x64,0x2e,0x63,0x6c,0x69,0x65,
3380x6e,0x74,0x73,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x82,
3390x0b,0x61,0x6e,0x64,0x72,0x6f,0x69,0x64,0x2e,0x63,0x6f,0x6d,0x82,0x1b,0x64,
3400x65,0x76,0x65,0x6c,0x6f,0x70,0x65,0x72,0x2e,0x61,0x6e,0x64,0x72,0x6f,0x69,
3410x64,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6e,0x82,0x04,0x67,0x2e,
3420x63,0x6f,0x82,0x06,0x67,0x6f,0x6f,0x2e,0x67,0x6c,0x82,0x14,0x67,0x6f,0x6f,
3430x67,0x6c,0x65,0x2d,0x61,0x6e,0x61,0x6c,0x79,0x74,0x69,0x63,0x73,0x2e,0x63,
3440x6f,0x6d,0x82,0x0a,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x82,
3450x12,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x72,0x63,0x65,
3460x2e,0x63,0x6f,0x6d,0x82,0x19,0x70,0x6f,0x6c,0x69,0x63,0x79,0x2e,0x6d,0x74,
3470x61,0x2d,0x73,0x74,0x73,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,
3480x6d,0x82,0x0a,0x75,0x72,0x63,0x68,0x69,0x6e,0x2e,0x63,0x6f,0x6d,0x82,0x0a,
3490x77,0x77,0x77,0x2e,0x67,0x6f,0x6f,0x2e,0x67,0x6c,0x82,0x08,0x79,0x6f,0x75,
3500x74,0x75,0x2e,0x62,0x65,0x82,0x0b,0x79,0x6f,0x75,0x74,0x75,0x62,0x65,0x2e,
3510x63,0x6f,0x6d,0x82,0x14,0x79,0x6f,0x75,0x74,0x75,0x62,0x65,0x65,0x64,0x75,
3520x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x63,0x6f,0x6d,0x30,0x0b,0x06,0x03,0x55,
3530x1d,0x0f,0x04,0x04,0x03,0x02,0x07,0x80,0x30,0x68,0x06,0x08,0x2b,0x06,0x01,
3540x05,0x05,0x07,0x01,0x01,0x04,0x5c,0x30,0x5a,0x30,0x2b,0x06,0x08,0x2b,0x06,
3550x01,0x05,0x05,0x07,0x30,0x02,0x86,0x1f,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,
3560x70,0x6b,0x69,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2f,
3570x47,0x49,0x41,0x47,0x32,0x2e,0x63,0x72,0x74,0x30,0x2b,0x06,0x08,0x2b,0x06,
3580x01,0x05,0x05,0x07,0x30,0x01,0x86,0x1f,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,
3590x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x31,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,
3600x2e,0x63,0x6f,0x6d,0x2f,0x6f,0x63,0x73,0x70,0x30,0x1d,0x06,0x03,0x55,0x1d,
3610x0e,0x04,0x16,0x04,0x14,0xe8,0xf5,0x4a,0xed,0x91,0xb9,0xc8,0x2d,0x5d,0xfb,
3620x47,0x65,0x53,0x1b,0x47,0x6f,0xe6,0xe9,0x63,0xa3,0x30,0x0c,0x06,0x03,0x55,
3630x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x1f,0x06,0x03,0x55,0x1d,
3640x23,0x04,0x18,0x30,0x16,0x80,0x14,0x4a,0xdd,0x06,0x16,0x1b,0xbc,0xf6,0x68,
3650xb5,0x76,0xf5,0x81,0xb6,0xbb,0x62,0x1a,0xba,0x5a,0x81,0x2f,0x30,0x21,0x06,
3660x03,0x55,0x1d,0x20,0x04,0x1a,0x30,0x18,0x30,0x0c,0x06,0x0a,0x2b,0x06,0x01,
3670x04,0x01,0xd6,0x79,0x02,0x05,0x01,0x30,0x08,0x06,0x06,0x67,0x81,0x0c,0x01,
3680x02,0x02,0x30,0x30,0x06,0x03,0x55,0x1d,0x1f,0x04,0x29,0x30,0x27,0x30,0x25,
3690xa0,0x23,0xa0,0x21,0x86,0x1f,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x70,0x6b,
3700x69,0x2e,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x47,0x49,
3710x41,0x47,0x32,0x2e,0x63,0x72,0x6c,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
3720xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x0c,0x58,0x93,
3730x06,0x54,0x42,0x57,0x48,0xe4,0xfa,0x57,0xf0,0x5b,0x96,0x94,0xfc,0xf3,0x3d,
3740xe3,0xba,0x73,0x71,0xe9,0xe7,0x56,0x3d,0x21,0x70,0x82,0x4d,0x59,0x7e,0x85,
3750xbd,0x87,0x36,0xb6,0x43,0x4a,0xe7,0x6f,0x0a,0x95,0xbf,0xde,0x35,0x1c,0x60,
3760xbf,0xd1,0x60,0x41,0x98,0x6d,0xe9,0xea,0xcc,0xa1,0x85,0x91,0x94,0x7e,0x71,
3770xa3,0x40,0x40,0x5a,0xbb,0x7d,0x49,0xfd,0x39,0xf9,0xf1,0xe5,0x2f,0xee,0xcf,
3780xcf,0x65,0xca,0xc1,0xb4,0xf1,0xb5,0xae,0xf3,0x6b,0x53,0x7d,0x8d,0x2b,0x60,
3790x1c,0x2a,0xb3,0xa5,0xe0,0x55,0x11,0x8d,0x13,0xd8,0x91,0x5a,0xb0,0xcc,0x91,
3800xa8,0xbc,0x2b,0x6b,0x63,0xff,0x14,0xfe,0x00,0x16,0x07,0xfb,0xef,0xae,0xd5,
3810xa8,0x13,0x0e,0x59,0xdc,0x68,0x96,0xd5,0x63,0xea,0xf7,0x56,0x0e,0x38,0x5a,
3820x57,0xc8,0x5e,0x52,0x95,0xe3,0xab,0x0a,0x33,0xc8,0x61,0xb2,0xdf,0xdb,0x77,
3830xea,0x49,0x90,0x3d,0xa8,0xd1,0x56,0x40,0x16,0xa5,0x14,0x5d,0xc3,0xc6,0x09,
3840xc2,0xd1,0x03,0xac,0x2e,0x02,0xab,0x88,0x59,0xb2,0x18,0x2b,0xf9,0xfb,0xf5,
3850xfc,0x64,0x7c,0x73,0x1c,0xa0,0x05,0xaf,0xc8,0x2f,0x4d,0xb0,0x1b,0x20,0x40,
3860xe2,0x8b,0x17,0xb1,0x5b,0x71,0xd0,0x4b,0x5d,0xa4,0x07,0x7b,0xd9,0xbf,0x39,
3870x72,0x4e,0x35,0x8f,0xf2,0x13,0x6d,0xb9,0x6b,0x5d,0x02,0x55,0x85,0x4a,0x78,
3880xfc,0x76,0x0e,0x65,0xf4,0xd6,0xe0,0x29,0x6e,0x04,0x57,0x22,0x03,0x8e,0x6b,
3890x59,0x4f,0x43,0x6a,0x5b,0x36,0xaa,0xa5,0x68,0xb4,0x1a,0x60,0x88
390};
391/* *.winehq.org cert */
392static const BYTE winehq_org[] = {
393 0x30, 0x82, 0x05, 0xb5, 0x30, 0x82, 0x04, 0x9d, 0xa0, 0x03, 0x02, 0x01,
394 0x02, 0x02, 0x11, 0x00, 0xc9, 0xce, 0x10, 0xbc, 0x5e, 0xcf, 0xf2, 0xfd,
395 0xa6, 0x37, 0xb8, 0x51, 0xf1, 0xe4, 0xb9, 0x30, 0x30, 0x0d, 0x06, 0x09,
396 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
397 0x7a, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
398 0x55, 0x53, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
399 0x02, 0x56, 0x41, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
400 0x13, 0x07, 0x48, 0x65, 0x72, 0x6e, 0x64, 0x6f, 0x6e, 0x31, 0x21, 0x30,
401 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x4e, 0x65, 0x74, 0x77,
402 0x6f, 0x72, 0x6b, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e,
403 0x73, 0x20, 0x4c, 0x2e, 0x4c, 0x2e, 0x43, 0x2e, 0x31, 0x29, 0x30, 0x27,
404 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
405 0x72, 0x6b, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73,
406 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43,
407 0x41, 0x20, 0x32, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33, 0x30,
408 0x36, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
409 0x30, 0x36, 0x30, 0x37, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
410 0x81, 0xc8, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
411 0x02, 0x55, 0x53, 0x31, 0x0e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x04, 0x11,
412 0x13, 0x05, 0x35, 0x35, 0x31, 0x31, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06,
413 0x03, 0x55, 0x04, 0x08, 0x13, 0x02, 0x4d, 0x4e, 0x31, 0x13, 0x30, 0x11,
414 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x61, 0x69, 0x6e, 0x74,
415 0x20, 0x50, 0x61, 0x75, 0x6c, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,
416 0x04, 0x09, 0x13, 0x07, 0x53, 0x74, 0x65, 0x20, 0x31, 0x32, 0x30, 0x31,
417 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x09, 0x13, 0x0f, 0x37, 0x30,
418 0x30, 0x20, 0x52, 0x61, 0x79, 0x6d, 0x6f, 0x6e, 0x64, 0x20, 0x41, 0x76,
419 0x65, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
420 0x43, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x61, 0x76, 0x65, 0x72, 0x73, 0x31,
421 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x02, 0x49, 0x54,
422 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x18, 0x53,
423 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x53,
424 0x53, 0x4c, 0x20, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x31,
425 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0c, 0x2a, 0x2e,
426 0x77, 0x69, 0x6e, 0x65, 0x68, 0x71, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x82,
427 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
428 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82,
429 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc2, 0x91, 0x35, 0xc7, 0x67,
430 0x32, 0xf1, 0x66, 0x12, 0x38, 0x79, 0xdb, 0x02, 0x11, 0x95, 0x89, 0x1b,
431 0x4a, 0x6a, 0x63, 0x45, 0x35, 0x58, 0x1b, 0x57, 0x8d, 0xec, 0x19, 0x88,
432 0xf5, 0xa3, 0x9e, 0x6b, 0xdb, 0x07, 0xfb, 0x6e, 0x29, 0xe9, 0xa9, 0x14,
433 0x07, 0x8c, 0x3a, 0xc1, 0xd7, 0x88, 0xcc, 0xe4, 0x55, 0x79, 0x6e, 0x97,
434 0xe9, 0x93, 0x88, 0x9a, 0x89, 0xf9, 0x31, 0x0f, 0x91, 0x61, 0xc2, 0x9c,
435 0xae, 0x59, 0x25, 0x93, 0x9a, 0xc8, 0xf9, 0x28, 0x7a, 0x0f, 0x0f, 0x89,
436 0x9a, 0xda, 0x46, 0xbe, 0xb2, 0xdc, 0x90, 0x5b, 0xd8, 0x87, 0xda, 0xda,
437 0xce, 0x70, 0x70, 0x95, 0x43, 0x51, 0xa0, 0x21, 0x22, 0x54, 0xab, 0xa7,
438 0x09, 0xe1, 0x81, 0x09, 0x8c, 0x00, 0x15, 0x30, 0x5a, 0xa7, 0x61, 0x77,
439 0xba, 0x48, 0x91, 0xc6, 0x94, 0x90, 0xdd, 0x1a, 0xf4, 0x3f, 0xa6, 0x8a,
440 0xb4, 0x2f, 0x98, 0x16, 0x0d, 0x96, 0x9f, 0x0c, 0x96, 0x01, 0x15, 0xbc,
441 0x74, 0x7e, 0x5c, 0x4e, 0xe3, 0x95, 0xae, 0x00, 0xf5, 0x5b, 0x88, 0x0f,
442 0xef, 0x7c, 0x1f, 0xab, 0x22, 0xfe, 0x95, 0x42, 0x1a, 0xbd, 0xee, 0x23,
443 0xca, 0x5b, 0x7f, 0x4a, 0xb0, 0xbe, 0x15, 0x65, 0xe2, 0xce, 0x02, 0xc4,
444 0xf6, 0xb8, 0xf3, 0xd6, 0x7e, 0x75, 0x5e, 0x63, 0x47, 0x5d, 0xc1, 0xca,
445 0xc3, 0xc4, 0x4a, 0xf5, 0x4d, 0x66, 0x34, 0x03, 0xf8, 0xf4, 0x54, 0x7d,
446 0x6b, 0x54, 0x2f, 0x17, 0x7c, 0x39, 0x13, 0x78, 0x09, 0x9e, 0xd0, 0x9c,
447 0x51, 0x02, 0x11, 0x9d, 0xa7, 0x53, 0x60, 0xdd, 0x62, 0x2b, 0xee, 0xb0,
448 0xd1, 0xf2, 0x1a, 0x5c, 0xdc, 0xa7, 0x58, 0xc2, 0xfa, 0x29, 0xcf, 0xf3,
449 0xc9, 0xe9, 0xae, 0xe8, 0x70, 0x60, 0x99, 0xc7, 0x30, 0xdd, 0x1c, 0xda,
450 0x32, 0xc0, 0x45, 0xa5, 0x48, 0xc5, 0x22, 0x29, 0x0c, 0x74, 0x25, 0x02,
451 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xe5, 0x30, 0x82, 0x01, 0xe1,
452 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
453 0x14, 0x20, 0x33, 0xcd, 0xb7, 0x61, 0xf6, 0xa5, 0x86, 0x4f, 0xdc, 0xc9,
454 0xd7, 0x73, 0x6a, 0xbc, 0x0a, 0x51, 0x65, 0x98, 0xec, 0x30, 0x1d, 0x06,
455 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xff, 0x4c, 0x0f, 0x46,
456 0xb8, 0x3c, 0x5b, 0x72, 0xe4, 0x10, 0x96, 0xbb, 0xa7, 0xbc, 0x91, 0xa2,
457 0x63, 0xf6, 0x81, 0x0a, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
458 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x05, 0xa0, 0x30, 0x0c, 0x06, 0x03,
459 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d,
460 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b,
461 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01,
462 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x75, 0x06, 0x03, 0x55, 0x1d, 0x20,
463 0x04, 0x6e, 0x30, 0x6c, 0x30, 0x60, 0x06, 0x0c, 0x2b, 0x06, 0x01, 0x04,
464 0x01, 0x86, 0x0e, 0x01, 0x02, 0x01, 0x03, 0x01, 0x30, 0x50, 0x30, 0x4e,
465 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x42,
466 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e,
467 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69,
468 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x65, 0x67, 0x61,
469 0x6c, 0x2f, 0x53, 0x53, 0x4c, 0x2d, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d,
470 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2d, 0x63,
471 0x70, 0x73, 0x2e, 0x6a, 0x73, 0x70, 0x30, 0x08, 0x06, 0x06, 0x67, 0x81,
472 0x0c, 0x01, 0x02, 0x02, 0x30, 0x49, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
473 0x42, 0x30, 0x40, 0x30, 0x3e, 0xa0, 0x3c, 0xa0, 0x3a, 0x86, 0x38, 0x68,
474 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x6e, 0x65,
475 0x74, 0x73, 0x6f, 0x6c, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
476 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6f, 0x6c, 0x75, 0x74,
477 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x56, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
478 0x43, 0x41, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x7b, 0x06, 0x08, 0x2b,
479 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x6f, 0x30, 0x6d, 0x30,
480 0x44, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86,
481 0x38, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e,
482 0x6e, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f,
483 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6f, 0x6c,
484 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x56, 0x53, 0x65, 0x72, 0x76,
485 0x65, 0x72, 0x43, 0x41, 0x32, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x25, 0x06,
486 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68,
487 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x6e,
488 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d,
489 0x30, 0x23, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x1c, 0x30, 0x1a, 0x82,
490 0x0c, 0x2a, 0x2e, 0x77, 0x69, 0x6e, 0x65, 0x68, 0x71, 0x2e, 0x6f, 0x72,
491 0x67, 0x82, 0x0a, 0x77, 0x69, 0x6e, 0x65, 0x68, 0x71, 0x2e, 0x6f, 0x72,
492 0x67, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
493 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x58, 0x90, 0xa4,
494 0x5b, 0x56, 0x5f, 0xf6, 0xab, 0x28, 0x6b, 0xc8, 0x17, 0xe6, 0x48, 0x51,
495 0x38, 0x51, 0xea, 0xc2, 0x16, 0x07, 0x88, 0x32, 0xa0, 0x75, 0x17, 0xef,
496 0xc3, 0xc3, 0x19, 0xce, 0xfb, 0xc9, 0x98, 0x2c, 0x1f, 0x16, 0x94, 0x41,
497 0xa0, 0x46, 0xc5, 0x0d, 0x7e, 0x90, 0x40, 0x24, 0xd2, 0xb1, 0xf4, 0xc8,
498 0x51, 0x43, 0x21, 0x54, 0xdb, 0xed, 0x47, 0x21, 0x97, 0x37, 0x11, 0xc9,
499 0x22, 0xe5, 0xcc, 0xe1, 0x64, 0x5e, 0x3a, 0xd0, 0xbf, 0x95, 0x4a, 0xe9,
500 0x3a, 0x32, 0x05, 0xca, 0x9d, 0xb4, 0x8c, 0x7e, 0xce, 0x31, 0x54, 0xb0,
501 0x5f, 0xf5, 0xcf, 0xef, 0x59, 0x71, 0x7b, 0x5d, 0xaf, 0xc0, 0x76, 0xe2,
502 0xdb, 0x89, 0x03, 0x25, 0x94, 0xc4, 0x55, 0xd4, 0xf8, 0xac, 0xe1, 0xbb,
503 0x12, 0xc1, 0x24, 0x97, 0xd0, 0xfb, 0x17, 0x64, 0xae, 0x80, 0xc9, 0x3b,
504 0xff, 0x16, 0x20, 0xfd, 0x65, 0x0c, 0x34, 0xdf, 0x7b, 0x11, 0xf6, 0x37,
505 0xcb, 0x5c, 0xec, 0x98, 0xef, 0xab, 0xd3, 0x60, 0xaf, 0x6e, 0x1b, 0x0d,
506 0x1b, 0xfd, 0xc1, 0x43, 0xf0, 0x8d, 0xb5, 0x44, 0xdf, 0xcc, 0xc3, 0xe7,
507 0x6e, 0xb6, 0x51, 0x9e, 0x8b, 0x77, 0x5c, 0x1a, 0x8b, 0xbd, 0xb4, 0xa4,
508 0x28, 0xf8, 0x01, 0x41, 0xc5, 0xa1, 0xc0, 0x64, 0x0a, 0xe0, 0x6f, 0x32,
509 0x30, 0x2c, 0x06, 0x2a, 0xc4, 0x76, 0x0b, 0x95, 0x8b, 0xbf, 0x14, 0x59,
510 0x16, 0xb3, 0xd1, 0xee, 0xc9, 0xef, 0x71, 0xd5, 0x5a, 0x26, 0xb4, 0xb0,
511 0xba, 0x86, 0x1f, 0x41, 0x13, 0xd8, 0xff, 0x96, 0x51, 0x7b, 0x2e, 0x8f,
512 0x85, 0x21, 0x60, 0xcd, 0x8f, 0x47, 0xe2, 0x48, 0x44, 0x07, 0x38, 0x29,
513 0xdd, 0x0a, 0x3a, 0x01, 0xd8, 0x2c, 0x37, 0x8d, 0xc3, 0x0e, 0x68, 0xc5,
514 0xd4, 0x24, 0x86, 0x2b, 0x05, 0x8f, 0xf5, 0x08, 0xd7, 0x46, 0x73, 0x59,
515 0xb2
516};
517/* Battle.Net's cert */
518static const BYTE battlenet[] = {
5190x30,0x82,0x03,0xd8,0x30,0x82,0x02,0xc0,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
5200x1e,0x4c,0xc1,0xf1,0xac,0xbd,0xf3,0xf5,0x96,0x05,0xbd,0x5f,0xbb,0x3f,0x75,
5210x6b,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
5220x00,0x30,0x3c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,
5230x53,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,0x0a,0x13,0x0c,0x54,0x68,0x61,
5240x77,0x74,0x65,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x31,0x16,0x30,0x14,0x06,0x03,
5250x55,0x04,0x03,0x13,0x0d,0x54,0x68,0x61,0x77,0x74,0x65,0x20,0x53,0x53,0x4c,
5260x20,0x43,0x41,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,0x38,0x32,0x36,0x30,0x30,
5270x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x31,0x32,0x30,0x39,0x32,0x34,0x32,0x33,
5280x35,0x39,0x35,0x39,0x5a,0x30,0x71,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,
5290x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x0c,
5300x0a,0x43,0x61,0x6c,0x69,0x66,0x6f,0x72,0x6e,0x69,0x61,0x31,0x0f,0x30,0x0d,
5310x06,0x03,0x55,0x04,0x07,0x0c,0x06,0x49,0x72,0x76,0x69,0x6e,0x65,0x31,0x25,
5320x30,0x23,0x06,0x03,0x55,0x04,0x0a,0x0c,0x1c,0x42,0x6c,0x69,0x7a,0x7a,0x61,
5330x72,0x64,0x20,0x45,0x6e,0x74,0x65,0x72,0x74,0x61,0x69,0x6e,0x6d,0x65,0x6e,
5340x74,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,
5350x03,0x0c,0x0c,0x2a,0x2e,0x62,0x61,0x74,0x74,0x6c,0x65,0x2e,0x6e,0x65,0x74,
5360x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
5370x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,
5380x01,0x01,0x00,0xa8,0x27,0x24,0x42,0x24,0xc8,0xe4,0x4e,0xfa,0x12,0x53,0x78,
5390x14,0xa9,0xec,0x20,0x2d,0x79,0x07,0x55,0x36,0xad,0x04,0x8b,0xbc,0xd9,0x3b,
5400xcc,0x3e,0xae,0xa0,0x3b,0xa1,0x79,0xf9,0x03,0x20,0x3e,0xa6,0x6a,0xeb,0x8c,
5410xb1,0x45,0xcb,0x00,0x43,0x76,0x35,0x1b,0x3d,0xc9,0x4b,0xa9,0xc0,0xb6,0x32,
5420x88,0xaa,0x4c,0x2c,0x53,0xf8,0xc4,0xcf,0xee,0xee,0xef,0x28,0xdf,0x44,0xfa,
5430xa9,0x26,0xf6,0x99,0x7b,0xa4,0x7f,0xe8,0x5c,0x7f,0x59,0x51,0xe1,0x2c,0x57,
5440x2f,0x8f,0xb3,0xad,0x7b,0x88,0x50,0xbc,0x76,0xfe,0x03,0xbd,0xfd,0x11,0x5d,
5450x6e,0xbc,0x13,0x5b,0xd9,0x2e,0x38,0xc7,0x56,0x89,0x93,0x08,0xa2,0x24,0xbd,
5460x1d,0x48,0xd9,0x48,0xce,0x6e,0x12,0x4f,0x10,0x60,0x94,0x54,0xb7,0x6b,0x51,
5470xd0,0xdf,0x04,0xa8,0x16,0x39,0xcb,0xa5,0xd9,0xe7,0xb5,0xa9,0x02,0xfa,0xd3,
5480xca,0x52,0xe7,0xc8,0x45,0xf8,0x4d,0xbb,0x70,0x1a,0xfd,0xb3,0x7d,0x9c,0x77,
5490x8b,0x34,0xbe,0xd2,0xad,0xe7,0x17,0xb0,0x55,0xfa,0x1b,0x3e,0x51,0xcf,0x37,
5500xbd,0x29,0x94,0x9f,0x56,0x28,0xd1,0x9d,0xe5,0x56,0xce,0x78,0x61,0x6e,0x8b,
5510xae,0x95,0x44,0x3c,0xc8,0x54,0x48,0x78,0x1e,0x4c,0x72,0xff,0x0e,0xb9,0x14,
5520x78,0xdc,0x7c,0x2e,0x50,0x05,0xd9,0xd0,0xa5,0x97,0xf7,0xb9,0x45,0x3f,0x7e,
5530xdc,0xc6,0x4e,0x64,0x93,0x82,0xb7,0x97,0xcf,0xb1,0x7a,0x04,0xc1,0x1d,0x70,
5540xf8,0x6b,0x43,0xc4,0xd0,0xa7,0x03,0x4e,0xc9,0x14,0x90,0x4f,0x05,0xb5,0x11,
5550x36,0xc0,0xc2,0xbb,0x02,0x03,0x01,0x00,0x01,0xa3,0x81,0xa0,0x30,0x81,0x9d,
5560x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,
5570x3a,0x06,0x03,0x55,0x1d,0x1f,0x04,0x33,0x30,0x31,0x30,0x2f,0xa0,0x2d,0xa0,
5580x2b,0x86,0x29,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x76,0x72,0x2d,0x6f,
5590x76,0x2d,0x63,0x72,0x6c,0x2e,0x74,0x68,0x61,0x77,0x74,0x65,0x2e,0x63,0x6f,
5600x6d,0x2f,0x54,0x68,0x61,0x77,0x74,0x65,0x4f,0x56,0x2e,0x63,0x72,0x6c,0x30,
5610x1d,0x06,0x03,0x55,0x1d,0x25,0x04,0x16,0x30,0x14,0x06,0x08,0x2b,0x06,0x01,
5620x05,0x05,0x07,0x03,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x02,
5630x30,0x32,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x26,0x30,
5640x24,0x30,0x22,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x01,0x86,0x16,
5650x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6f,0x63,0x73,0x70,0x2e,0x74,0x68,0x61,
5660x77,0x74,0x65,0x2e,0x63,0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
5670xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x5c,0x44,0xe2,
5680x2f,0x50,0x41,0xc8,0x54,0x0a,0xdd,0x2a,0xa2,0xa7,0x62,0x2d,0xc9,0xe8,0xa8,
5690xf7,0x53,0x14,0xe1,0x88,0x89,0x81,0x22,0x1b,0x82,0xb5,0xa1,0x75,0xcc,0x91,
5700x76,0x30,0x71,0xae,0x56,0x68,0xa9,0x75,0x65,0x7f,0xd8,0xc7,0xae,0x3b,0x68,
5710x66,0xd6,0x2d,0x92,0xb7,0x9b,0x28,0x59,0x98,0x89,0x29,0xf9,0x69,0xff,0xff,
5720xfa,0x4f,0x04,0x6b,0x96,0x78,0x1d,0xfe,0x67,0x78,0x33,0xd3,0xd5,0x91,0xee,
5730xa7,0x36,0xcd,0x86,0x4c,0xc6,0x08,0xf4,0x12,0x4b,0x2b,0xd2,0x95,0x6a,0x87,
5740xcd,0xe6,0x2d,0xf3,0xe0,0x8d,0x0c,0x77,0x9d,0xa0,0x2e,0xdc,0xf2,0xc1,0x06,
5750xc5,0xb0,0xd5,0xa0,0x00,0xe5,0x0e,0x53,0xad,0x04,0xc4,0xf6,0x6e,0x6b,0x7e,
5760x04,0xc2,0xea,0xaa,0xdf,0xe1,0x26,0x4a,0x14,0x33,0x03,0x77,0x15,0x5b,0x3e,
5770x41,0x22,0x5d,0xb7,0xaf,0x65,0x2f,0x46,0xbc,0x24,0xd7,0x30,0xe6,0x82,0x7d,
5780x2a,0x3b,0x81,0x04,0xa7,0xd5,0x0b,0x61,0x57,0xe0,0x91,0x04,0x6c,0xc6,0x08,
5790xbc,0xc0,0x1b,0x26,0x7f,0x69,0x22,0x69,0xd3,0x41,0x4c,0x9d,0x61,0xe0,0xfe,
5800x2b,0xd8,0x2e,0xe9,0x2d,0x72,0x30,0x68,0x81,0xa1,0x37,0x06,0xb5,0xdc,0xd3,
5810x48,0x65,0x16,0x74,0xfb,0x3c,0xb2,0x70,0xef,0x3d,0xee,0x63,0xea,0x62,0xf5,
5820xd2,0xc7,0x48,0x6a,0xb8,0x53,0xcb,0xbe,0x9a,0xeb,0xc1,0x77,0xfb,0x9b,0xec,
5830xb8,0x06,0x04,0xaa,0x23,0x2c,0x6d,0x17,0x9e,0xb9,0x6e,0xc9,0xa4,0xde,0x7e,
5840x61,0xc4,0xa7,0x45,0x68,0xf6,0x2a,0x57,0xaa,0xad,0xca,0x84,0x03 };
585static const BYTE thawte_primary_ca[] = {
5860x30,0x82,0x04,0x20,0x30,0x82,0x03,0x08,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
5870x34,0x4e,0xd5,0x57,0x20,0xd5,0xed,0xec,0x49,0xf4,0x2f,0xce,0x37,0xdb,0x2b,
5880x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
5890x00,0x30,0x81,0xa9,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,
5900x55,0x53,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,0x0a,0x13,0x0c,0x74,0x68,
5910x61,0x77,0x74,0x65,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x31,0x28,0x30,0x26,0x06,
5920x03,0x55,0x04,0x0b,0x13,0x1f,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,
5930x74,0x69,0x6f,0x6e,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x73,0x20,0x44,
5940x69,0x76,0x69,0x73,0x69,0x6f,0x6e,0x31,0x38,0x30,0x36,0x06,0x03,0x55,0x04,
5950x0b,0x13,0x2f,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x74,0x68,0x61,
5960x77,0x74,0x65,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x20,0x2d,0x20,0x46,0x6f,0x72,
5970x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x69,0x7a,0x65,0x64,0x20,0x75,0x73,0x65,
5980x20,0x6f,0x6e,0x6c,0x79,0x31,0x1f,0x30,0x1d,0x06,0x03,0x55,0x04,0x03,0x13,
5990x16,0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6d,0x61,0x72,0x79,
6000x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x41,0x30,0x1e,0x17,0x0d,0x30,0x36,0x31,
6010x31,0x31,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x33,0x36,0x30,
6020x37,0x31,0x36,0x32,0x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x81,0xa9,0x31,0x0b,
6030x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15,0x30,0x13,
6040x06,0x03,0x55,0x04,0x0a,0x13,0x0c,0x74,0x68,0x61,0x77,0x74,0x65,0x2c,0x20,
6050x49,0x6e,0x63,0x2e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x0b,0x13,0x1f,
6060x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x53,
6070x65,0x72,0x76,0x69,0x63,0x65,0x73,0x20,0x44,0x69,0x76,0x69,0x73,0x69,0x6f,
6080x6e,0x31,0x38,0x30,0x36,0x06,0x03,0x55,0x04,0x0b,0x13,0x2f,0x28,0x63,0x29,
6090x20,0x32,0x30,0x30,0x36,0x20,0x74,0x68,0x61,0x77,0x74,0x65,0x2c,0x20,0x49,
6100x6e,0x63,0x2e,0x20,0x2d,0x20,0x46,0x6f,0x72,0x20,0x61,0x75,0x74,0x68,0x6f,
6110x72,0x69,0x7a,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x31,
6120x1f,0x30,0x1d,0x06,0x03,0x55,0x04,0x03,0x13,0x16,0x74,0x68,0x61,0x77,0x74,
6130x65,0x20,0x50,0x72,0x69,0x6d,0x61,0x72,0x79,0x20,0x52,0x6f,0x6f,0x74,0x20,
6140x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,
6150x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,
6160x02,0x82,0x01,0x01,0x00,0xac,0xa0,0xf0,0xfb,0x80,0x59,0xd4,0x9c,0xc7,0xa4,
6170xcf,0x9d,0xa1,0x59,0x73,0x09,0x10,0x45,0x0c,0x0d,0x2c,0x6e,0x68,0xf1,0x6c,
6180x5b,0x48,0x68,0x49,0x59,0x37,0xfc,0x0b,0x33,0x19,0xc2,0x77,0x7f,0xcc,0x10,
6190x2d,0x95,0x34,0x1c,0xe6,0xeb,0x4d,0x09,0xa7,0x1c,0xd2,0xb8,0xc9,0x97,0x36,
6200x02,0xb7,0x89,0xd4,0x24,0x5f,0x06,0xc0,0xcc,0x44,0x94,0x94,0x8d,0x02,0x62,
6210x6f,0xeb,0x5a,0xdd,0x11,0x8d,0x28,0x9a,0x5c,0x84,0x90,0x10,0x7a,0x0d,0xbd,
6220x74,0x66,0x2f,0x6a,0x38,0xa0,0xe2,0xd5,0x54,0x44,0xeb,0x1d,0x07,0x9f,0x07,
6230xba,0x6f,0xee,0xe9,0xfd,0x4e,0x0b,0x29,0xf5,0x3e,0x84,0xa0,0x01,0xf1,0x9c,
6240xab,0xf8,0x1c,0x7e,0x89,0xa4,0xe8,0xa1,0xd8,0x71,0x65,0x0d,0xa3,0x51,0x7b,
6250xee,0xbc,0xd2,0x22,0x60,0x0d,0xb9,0x5b,0x9d,0xdf,0xba,0xfc,0x51,0x5b,0x0b,
6260xaf,0x98,0xb2,0xe9,0x2e,0xe9,0x04,0xe8,0x62,0x87,0xde,0x2b,0xc8,0xd7,0x4e,
6270xc1,0x4c,0x64,0x1e,0xdd,0xcf,0x87,0x58,0xba,0x4a,0x4f,0xca,0x68,0x07,0x1d,
6280x1c,0x9d,0x4a,0xc6,0xd5,0x2f,0x91,0xcc,0x7c,0x71,0x72,0x1c,0xc5,0xc0,0x67,
6290xeb,0x32,0xfd,0xc9,0x92,0x5c,0x94,0xda,0x85,0xc0,0x9b,0xbf,0x53,0x7d,0x2b,
6300x09,0xf4,0x8c,0x9d,0x91,0x1f,0x97,0x6a,0x52,0xcb,0xde,0x09,0x36,0xa4,0x77,
6310xd8,0x7b,0x87,0x50,0x44,0xd5,0x3e,0x6e,0x29,0x69,0xfb,0x39,0x49,0x26,0x1e,
6320x09,0xa5,0x80,0x7b,0x40,0x2d,0xeb,0xe8,0x27,0x85,0xc9,0xfe,0x61,0xfd,0x7e,
6330xe6,0x7c,0x97,0x1d,0xd5,0x9d,0x02,0x03,0x01,0x00,0x01,0xa3,0x42,0x30,0x40,
6340x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,
6350x01,0xff,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,
6360x02,0x01,0x06,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x7b,
6370x5b,0x45,0xcf,0xaf,0xce,0xcb,0x7a,0xfd,0x31,0x92,0x1a,0x6a,0xb6,0xf3,0x46,
6380xeb,0x57,0x48,0x50,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
6390x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x79,0x11,0xc0,0x4b,0xb3,0x91,
6400xb6,0xfc,0xf0,0xe9,0x67,0xd4,0x0d,0x6e,0x45,0xbe,0x55,0xe8,0x93,0xd2,0xce,
6410x03,0x3f,0xed,0xda,0x25,0xb0,0x1d,0x57,0xcb,0x1e,0x3a,0x76,0xa0,0x4c,0xec,
6420x50,0x76,0xe8,0x64,0x72,0x0c,0xa4,0xa9,0xf1,0xb8,0x8b,0xd6,0xd6,0x87,0x84,
6430xbb,0x32,0xe5,0x41,0x11,0xc0,0x77,0xd9,0xb3,0x60,0x9d,0xeb,0x1b,0xd5,0xd1,
6440x6e,0x44,0x44,0xa9,0xa6,0x01,0xec,0x55,0x62,0x1d,0x77,0xb8,0x5c,0x8e,0x48,
6450x49,0x7c,0x9c,0x3b,0x57,0x11,0xac,0xad,0x73,0x37,0x8e,0x2f,0x78,0x5c,0x90,
6460x68,0x47,0xd9,0x60,0x60,0xe6,0xfc,0x07,0x3d,0x22,0x20,0x17,0xc4,0xf7,0x16,
6470xe9,0xc4,0xd8,0x72,0xf9,0xc8,0x73,0x7c,0xdf,0x16,0x2f,0x15,0xa9,0x3e,0xfd,
6480x6a,0x27,0xb6,0xa1,0xeb,0x5a,0xba,0x98,0x1f,0xd5,0xe3,0x4d,0x64,0x0a,0x9d,
6490x13,0xc8,0x61,0xba,0xf5,0x39,0x1c,0x87,0xba,0xb8,0xbd,0x7b,0x22,0x7f,0xf6,
6500xfe,0xac,0x40,0x79,0xe5,0xac,0x10,0x6f,0x3d,0x8f,0x1b,0x79,0x76,0x8b,0xc4,
6510x37,0xb3,0x21,0x18,0x84,0xe5,0x36,0x00,0xeb,0x63,0x20,0x99,0xb9,0xe9,0xfe,
6520x33,0x04,0xbb,0x41,0xc8,0xc1,0x02,0xf9,0x44,0x63,0x20,0x9e,0x81,0xce,0x42,
6530xd3,0xd6,0x3f,0x2c,0x76,0xd3,0x63,0x9c,0x59,0xdd,0x8f,0xa6,0xe1,0x0e,0xa0,
6540x2e,0x41,0xf7,0x2e,0x95,0x47,0xcf,0xbc,0xfd,0x33,0xf3,0xf6,0x0b,0x61,0x7e,
6550x7e,0x91,0x2b,0x81,0x47,0xc2,0x27,0x30,0xee,0xa7,0x10,0x5d,0x37,0x8f,0x5c,
6560x39,0x2b,0xe4,0x04,0xf0,0x7b,0x8d,0x56,0x8c,0x68 };
657static const BYTE thawte_ssl_ca[] = {
6580x30,0x82,0x04,0x6c,0x30,0x82,0x03,0x54,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
6590x4d,0x5f,0x2c,0x34,0x08,0xb2,0x4c,0x20,0xcd,0x6d,0x50,0x7e,0x24,0x4d,0xc9,
6600xec,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
6610x00,0x30,0x81,0xa9,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,
6620x55,0x53,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,0x0a,0x13,0x0c,0x74,0x68,
6630x61,0x77,0x74,0x65,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x31,0x28,0x30,0x26,0x06,
6640x03,0x55,0x04,0x0b,0x13,0x1f,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,
6650x74,0x69,0x6f,0x6e,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x73,0x20,0x44,
6660x69,0x76,0x69,0x73,0x69,0x6f,0x6e,0x31,0x38,0x30,0x36,0x06,0x03,0x55,0x04,
6670x0b,0x13,0x2f,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x74,0x68,0x61,
6680x77,0x74,0x65,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x20,0x2d,0x20,0x46,0x6f,0x72,
6690x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x69,0x7a,0x65,0x64,0x20,0x75,0x73,0x65,
6700x20,0x6f,0x6e,0x6c,0x79,0x31,0x1f,0x30,0x1d,0x06,0x03,0x55,0x04,0x03,0x13,
6710x16,0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6d,0x61,0x72,0x79,
6720x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x41,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,
6730x32,0x30,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x32,0x30,0x30,
6740x32,0x30,0x37,0x32,0x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x3c,0x31,0x0b,0x30,
6750x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15,0x30,0x13,0x06,
6760x03,0x55,0x04,0x0a,0x13,0x0c,0x54,0x68,0x61,0x77,0x74,0x65,0x2c,0x20,0x49,
6770x6e,0x63,0x2e,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x03,0x13,0x0d,0x54,
6780x68,0x61,0x77,0x74,0x65,0x20,0x53,0x53,0x4c,0x20,0x43,0x41,0x30,0x82,0x01,
6790x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
6800x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,
6810x99,0xe4,0x85,0x5b,0x76,0x49,0x7d,0x2f,0x05,0xd8,0xc5,0xac,0xc8,0xc8,0xa9,
6820xd3,0xdc,0x98,0xe6,0xd7,0x34,0xa6,0x2f,0x0c,0xf2,0x22,0x26,0xd8,0xa3,0xc9,
6830x14,0x4c,0x8f,0x05,0xa4,0x45,0xe8,0x14,0x0c,0x58,0x90,0x05,0x1a,0xb7,0xc5,
6840xc1,0x06,0xa5,0x80,0xaf,0xbb,0x1d,0x49,0x6b,0x52,0x34,0x88,0xc3,0x59,0xe7,
6850xef,0x6b,0xc4,0x27,0x41,0x8c,0x2b,0x66,0x1d,0xd0,0xe0,0xa3,0x97,0x98,0x19,
6860x34,0x4b,0x41,0xd5,0x98,0xd5,0xc7,0x05,0xad,0xa2,0xe4,0xd7,0xed,0x0c,0xad,
6870x4f,0xc1,0xb5,0xb0,0x21,0xfd,0x3e,0x50,0x53,0xb2,0xc4,0x90,0xd0,0xd4,0x30,
6880x67,0x6c,0x9a,0xf1,0x0e,0x74,0xc4,0xc2,0xdc,0x8a,0xe8,0x97,0xff,0xc9,0x92,
6890xae,0x01,0x8a,0x56,0x0a,0x98,0x32,0xb0,0x00,0x23,0xec,0x90,0x1a,0x60,0xc3,
6900xed,0xbb,0x3a,0xcb,0x0f,0x63,0x9f,0x0d,0x44,0xc9,0x52,0xe1,0x25,0x96,0xbf,
6910xed,0x50,0x95,0x89,0x7f,0x56,0x14,0xb1,0xb7,0x61,0x1d,0x1c,0x07,0x8c,0x3a,
6920x2c,0xf7,0xff,0x80,0xde,0x39,0x45,0xd5,0xaf,0x1a,0xd1,0x78,0xd8,0xc7,0x71,
6930x6a,0xa3,0x19,0xa7,0x32,0x50,0x21,0xe9,0xf2,0x0e,0xa1,0xc6,0x13,0x03,0x44,
6940x48,0xd1,0x66,0xa8,0x52,0x57,0xd7,0x11,0xb4,0x93,0x8b,0xe5,0x99,0x9f,0x5d,
6950xe7,0x78,0x51,0xe5,0x4d,0xf6,0xb7,0x59,0xb4,0x76,0xb5,0x09,0x37,0x4d,0x06,
6960x38,0x13,0x7a,0x1c,0x08,0x98,0x5c,0xc4,0x48,0x4a,0xcb,0x52,0xa0,0xa9,0xf8,
6970xb1,0x9d,0x8e,0x7b,0x79,0xb0,0x20,0x2f,0x3c,0x96,0xa8,0x11,0x62,0x47,0xbb,
6980x11,0x02,0x03,0x01,0x00,0x01,0xa3,0x81,0xfb,0x30,0x81,0xf8,0x30,0x32,0x06,
6990x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x26,0x30,0x24,0x30,0x22,
7000x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x01,0x86,0x16,0x68,0x74,0x74,
7010x70,0x3a,0x2f,0x2f,0x6f,0x63,0x73,0x70,0x2e,0x74,0x68,0x61,0x77,0x74,0x65,
7020x2e,0x63,0x6f,0x6d,0x30,0x12,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,
7030x08,0x30,0x06,0x01,0x01,0xff,0x02,0x01,0x00,0x30,0x34,0x06,0x03,0x55,0x1d,
7040x1f,0x04,0x2d,0x30,0x2b,0x30,0x29,0xa0,0x27,0xa0,0x25,0x86,0x23,0x68,0x74,
7050x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x74,0x68,0x61,0x77,0x74,0x65,
7060x2e,0x63,0x6f,0x6d,0x2f,0x54,0x68,0x61,0x77,0x74,0x65,0x50,0x43,0x41,0x2e,
7070x63,0x72,0x6c,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,
7080x03,0x02,0x01,0x06,0x30,0x28,0x06,0x03,0x55,0x1d,0x11,0x04,0x21,0x30,0x1f,
7090xa4,0x1d,0x30,0x1b,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x03,0x13,0x10,
7100x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6e,0x4d,0x50,0x4b,0x49,0x2d,0x32,0x2d,
7110x39,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0xa7,0xa2,0x83,
7120xbb,0x34,0x45,0x40,0x3d,0xfc,0xd5,0x30,0x4f,0x12,0xb9,0x3e,0xa1,0x01,0x9f,
7130xf6,0xdb,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,
7140x7b,0x5b,0x45,0xcf,0xaf,0xce,0xcb,0x7a,0xfd,0x31,0x92,0x1a,0x6a,0xb6,0xf3,
7150x46,0xeb,0x57,0x48,0x50,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
7160x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x80,0x22,0x80,0xe0,0x6c,
7170xc8,0x95,0x16,0xd7,0x57,0x26,0x87,0xf3,0x72,0x34,0xdb,0xc6,0x72,0x56,0x27,
7180x3e,0xd3,0x96,0xf6,0x2e,0x25,0x91,0xa5,0x3e,0x33,0x97,0xa7,0x4b,0xe5,0x2f,
7190xfb,0x25,0x7d,0x2f,0x07,0x61,0xfa,0x6f,0x83,0x74,0x4c,0x4c,0x53,0x72,0x20,
7200xa4,0x7a,0xcf,0x51,0x51,0x56,0x81,0x88,0xb0,0x6d,0x1f,0x36,0x2c,0xc8,0x2b,
7210xb1,0x88,0x99,0xc1,0xfe,0x44,0xab,0x48,0x51,0x7c,0xd8,0xf2,0x44,0x64,0x2a,
7220xd8,0x71,0xa7,0xfb,0x1a,0x2f,0xf9,0x19,0x8d,0x34,0xb2,0x23,0xbf,0xc4,0x4c,
7230x55,0x1d,0x8e,0x44,0xe8,0xaa,0x5d,0x9a,0xdd,0x9f,0xfd,0x03,0xc7,0xba,0x24,
7240x43,0x8d,0x2d,0x47,0x44,0xdb,0xf6,0xd8,0x98,0xc8,0xb2,0xf9,0xda,0xef,0xed,
7250x29,0x5c,0x69,0x12,0xfa,0xd1,0x23,0x96,0x0f,0xbf,0x9c,0x0d,0xf2,0x79,0x45,
7260x53,0x37,0x9a,0x56,0x2f,0xe8,0x57,0x10,0x70,0xf6,0xee,0x89,0x0c,0x49,0x89,
7270x9a,0xc1,0x23,0xf5,0xc2,0x2a,0xcc,0x41,0xcf,0x22,0xab,0x65,0x6e,0xb7,0x94,
7280x82,0x6d,0x2f,0x40,0x5f,0x58,0xde,0xeb,0x95,0x2b,0xa6,0x72,0x68,0x52,0x19,
7290x91,0x2a,0xae,0x75,0x9d,0x4e,0x92,0xe6,0xca,0xde,0x54,0xea,0x18,0xab,0x25,
7300x3c,0xe6,0x64,0xa6,0x79,0x1f,0x26,0x7d,0x61,0xed,0x7d,0xd2,0xe5,0x71,0x55,
7310xd8,0x93,0x17,0x7c,0x14,0x38,0x30,0x3c,0xdf,0x86,0xe3,0x4c,0xad,0x49,0xe3,
7320x97,0x59,0xce,0x1b,0x9b,0x2b,0xce,0xdc,0x65,0xd4,0x0b,0x28,0x6b,0x4e,0x84,
7330x46,0x51,0x44,0xf7,0x33,0x08,0x2d,0x58,0x97,0x21,0xae };
734/* global_sign_root -> global_sign_ca -> openssl_org:
735 * "*.openssl.org"'s certificate
736 */
737static const BYTE global_sign_root[] = {
7380x30,0x82,0x04,0x6e,0x30,0x82,0x03,0x56,0xa0,0x03,0x02,0x01,0x02,0x02,0x0b,0x04,
7390x00,0x00,0x00,0x00,0x01,0x12,0x56,0xad,0x62,0x04,0x30,0x0d,0x06,0x09,0x2a,0x86,
7400x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x30,0x57,0x31,0x0b,0x30,0x09,0x06,
7410x03,0x55,0x04,0x06,0x13,0x02,0x42,0x45,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,
7420x0a,0x13,0x10,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,0x20,0x6e,0x76,
7430x2d,0x73,0x61,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x0b,0x13,0x07,0x52,0x6f,
7440x6f,0x74,0x20,0x43,0x41,0x31,0x1b,0x30,0x19,0x06,0x03,0x55,0x04,0x03,0x13,0x12,
7450x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,0x20,0x52,0x6f,0x6f,0x74,0x20,
7460x43,0x41,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x34,0x31,0x30,0x30,0x30,
7470x30,0x30,0x5a,0x17,0x0d,0x31,0x34,0x30,0x31,0x32,0x37,0x31,0x31,0x30,0x30,0x30,
7480x30,0x5a,0x30,0x71,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x42,
7490x45,0x31,0x1d,0x30,0x1b,0x06,0x03,0x55,0x04,0x0b,0x13,0x14,0x44,0x6f,0x6d,0x61,
7500x69,0x6e,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x43,0x41,
7510x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x0a,0x13,0x10,0x47,0x6c,0x6f,0x62,0x61,
7520x6c,0x53,0x69,0x67,0x6e,0x20,0x6e,0x76,0x2d,0x73,0x61,0x31,0x28,0x30,0x26,0x06,
7530x03,0x55,0x04,0x03,0x13,0x1f,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,
7540x20,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,
7550x6f,0x6e,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
7560x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,
7570x0a,0x02,0x82,0x01,0x01,0x00,0xb4,0x9f,0x49,0xe6,0xb3,0x9f,0x01,0x55,0x36,0xd0,
7580x36,0x95,0x6c,0xcb,0x16,0x5a,0x6c,0x72,0xb5,0xe2,0x9d,0xe2,0xfa,0x39,0xe9,0x0a,
7590xdc,0x73,0x5c,0xa0,0x3b,0x76,0x6d,0x05,0x28,0x93,0x0d,0xa5,0x42,0xf3,0xe8,0xcb,
7600xee,0xd3,0x33,0x1a,0x13,0x27,0x0a,0xdf,0x5c,0xd1,0x54,0x62,0x6a,0x9a,0x17,0x36,
7610xd6,0x3c,0x58,0x87,0x1e,0xb2,0x66,0x1f,0x55,0x69,0x2b,0x89,0x56,0x47,0xb4,0xc2,
7620x50,0x0c,0xe5,0x5d,0xc1,0xfd,0x29,0x1b,0x66,0x73,0x43,0xf4,0x6f,0xd1,0x14,0x4f,
7630x2a,0x6d,0x48,0x52,0x3a,0xf5,0xe4,0x90,0x3f,0xde,0xb2,0xf4,0x10,0xd5,0xf9,0xfa,
7640xac,0x96,0x0d,0x10,0x32,0x23,0xd2,0xd3,0x51,0xa7,0x95,0x85,0x50,0xfa,0x0f,0x29,
7650x9d,0xa7,0x88,0x4e,0x0d,0x31,0x9b,0x44,0x41,0x8e,0x41,0x2f,0x6e,0x9a,0x1a,0xb4,
7660xb6,0xa5,0x59,0xf1,0x49,0x59,0x09,0x7e,0x7e,0x49,0xd3,0x69,0x33,0x4b,0x00,0x92,
7670xc5,0x1b,0x42,0x20,0x69,0xf8,0x64,0xdf,0xd8,0xa7,0x44,0xd1,0x90,0x5e,0xfd,0x39,
7680xad,0x6b,0x7d,0xfe,0xd5,0x8b,0xa4,0x01,0x64,0xf6,0xa7,0xb4,0x20,0x84,0xcc,0x05,
7690x2f,0x27,0xee,0x1e,0xd5,0x24,0x96,0xae,0x84,0x43,0xa4,0x3e,0x43,0xf3,0x3b,0x99,
7700xd7,0xf9,0xf2,0xde,0x3d,0x19,0xed,0xd0,0x65,0xf1,0x49,0xca,0x48,0xd2,0x38,0x7d,
7710xc6,0x48,0xd7,0x72,0x61,0xb8,0xc6,0xc2,0x67,0x0a,0xd8,0x65,0x5a,0xfd,0x5b,0xf3,
7720xc5,0xfd,0xbe,0x8c,0x69,0xcf,0x99,0x20,0xb6,0xea,0xec,0x39,0x80,0xe9,0x66,0xa8,
7730xee,0x3d,0x9d,0x46,0x7b,0x87,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x1f,0x30,
7740x82,0x01,0x1b,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,
7750x02,0x01,0x06,0x30,0x12,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x08,0x30,
7760x06,0x01,0x01,0xff,0x02,0x01,0x00,0x30,0x4b,0x06,0x03,0x55,0x1d,0x20,0x04,0x44,
7770x30,0x42,0x30,0x40,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0xa0,0x32,0x01,0x0a,0x30,
7780x33,0x30,0x31,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x25,0x68,
7790x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,
7800x73,0x69,0x67,0x6e,0x2e,0x6e,0x65,0x74,0x2f,0x72,0x65,0x70,0x6f,0x73,0x69,0x74,
7810x6f,0x72,0x79,0x2f,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x36,
7820x12,0x4e,0x9e,0x71,0xc4,0x26,0x41,0xf1,0xfa,0xf1,0x29,0x4c,0xbf,0x17,0xa4,0x53,
7830x28,0xb6,0xeb,0x30,0x33,0x06,0x03,0x55,0x1d,0x1f,0x04,0x2c,0x30,0x2a,0x30,0x28,
7840xa0,0x26,0xa0,0x24,0x86,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,
7850x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x73,0x69,0x67,0x6e,0x2e,0x6e,0x65,0x74,0x2f,
7860x72,0x6f,0x6f,0x74,0x2e,0x63,0x72,0x6c,0x30,0x11,0x06,0x09,0x60,0x86,0x48,0x01,
7870x86,0xf8,0x42,0x01,0x01,0x04,0x04,0x03,0x02,0x02,0x04,0x30,0x20,0x06,0x03,0x55,
7880x1d,0x25,0x04,0x19,0x30,0x17,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x0a,
7890x03,0x03,0x06,0x09,0x60,0x86,0x48,0x01,0x86,0xf8,0x42,0x04,0x01,0x30,0x1f,0x06,
7900x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x60,0x7b,0x66,0x1a,0x45,0x0d,
7910x97,0xca,0x89,0x50,0x2f,0x7d,0x04,0xcd,0x34,0xa8,0xff,0xfc,0xfd,0x4b,0x30,0x0d,
7920x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,
7930x01,0x00,0xc3,0x25,0x79,0x4a,0xfa,0xcd,0x26,0x6f,0x40,0x6a,0xb8,0x94,0x1b,0xe6,
7940xa0,0xe1,0x6b,0xd2,0x31,0x9a,0x3f,0x89,0xfb,0xc5,0x0a,0x22,0x75,0x7a,0xfd,0xbb,
7950x40,0x34,0x9c,0xbc,0x9e,0x85,0x49,0x59,0x7a,0x95,0xcc,0x0d,0x2d,0x44,0x0b,0xc7,
7960xcb,0x15,0x10,0x1e,0xd2,0xdc,0xe3,0x78,0xea,0x5f,0xf5,0x35,0x51,0xa6,0xc8,0x3f,
7970x39,0x90,0x15,0x9e,0x5f,0x15,0xc9,0xb7,0x8f,0x5d,0x6b,0x63,0x99,0x68,0xe1,0x6e,
7980x5c,0xfc,0x9d,0x37,0x33,0x0a,0xae,0x87,0x70,0x4a,0xa2,0xe3,0xab,0x26,0x7d,0x73,
7990x07,0xe4,0xf7,0x0a,0xaa,0x75,0x8f,0xa6,0xee,0x9b,0x04,0xd1,0x05,0x43,0x74,0x1a,
8000xba,0xd4,0xc2,0x9d,0x7f,0xb7,0xa0,0x6c,0xed,0x16,0x9a,0x67,0x40,0x56,0xab,0x83,
8010x9f,0x4c,0x9c,0xeb,0x28,0x34,0x1f,0x8d,0xe6,0x5a,0x0f,0x69,0x40,0xd9,0xa9,0x9e,
8020x6a,0xf9,0x89,0x7f,0xd0,0xf8,0x8c,0xb3,0x48,0x2e,0x0b,0x4f,0xf1,0xf9,0xcf,0xf5,
8030x0e,0x11,0x02,0x0c,0x89,0x16,0x73,0x53,0x5d,0x2c,0xd3,0xef,0xde,0x5f,0x0b,0x25,
8040xba,0xd5,0x4e,0x8f,0x85,0x90,0x3f,0x88,0x93,0x79,0xa5,0x20,0xac,0xff,0xb0,0x8a,
8050xcb,0xcb,0xa5,0x55,0x78,0x83,0x39,0x41,0x32,0xaa,0x5d,0x25,0x93,0xa7,0xea,0xee,
8060x18,0x72,0xb5,0xe2,0x1d,0x7f,0x08,0x74,0x11,0xb6,0x01,0x27,0x4e,0x96,0xcf,0xa8,
8070xf0,0x2a,0xf9,0x52,0xac,0x24,0x1a,0x19,0x9e,0x9f,0x6c,0x52,0x7c,0x8b,0x3a,0xa6,
8080x54,0xde,0xc1,0xc7,0x21,0x7d,0x3a,0xd3,0xbc,0x1a,0xa8,0x6d,0xf2,0xbf,0xdf,0x76,
8090xca,0x03
810};
811static const BYTE global_sign_ca[] = {
8120x30,0x82,0x04,0x6e,0x30,0x82,0x03,0x56,0xa0,0x03,0x02,0x01,0x02,0x02,0x0b,0x04,
8130x00,0x00,0x00,0x00,0x01,0x12,0x56,0xad,0x62,0x04,0x30,0x0d,0x06,0x09,0x2a,0x86,
8140x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x30,0x57,0x31,0x0b,0x30,0x09,0x06,
8150x03,0x55,0x04,0x06,0x13,0x02,0x42,0x45,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,
8160x0a,0x13,0x10,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,0x20,0x6e,0x76,
8170x2d,0x73,0x61,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x0b,0x13,0x07,0x52,0x6f,
8180x6f,0x74,0x20,0x43,0x41,0x31,0x1b,0x30,0x19,0x06,0x03,0x55,0x04,0x03,0x13,0x12,
8190x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,0x20,0x52,0x6f,0x6f,0x74,0x20,
8200x43,0x41,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x34,0x31,0x30,0x30,0x30,
8210x30,0x30,0x5a,0x17,0x0d,0x31,0x34,0x30,0x31,0x32,0x37,0x31,0x31,0x30,0x30,0x30,
8220x30,0x5a,0x30,0x71,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x42,
8230x45,0x31,0x1d,0x30,0x1b,0x06,0x03,0x55,0x04,0x0b,0x13,0x14,0x44,0x6f,0x6d,0x61,
8240x69,0x6e,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x43,0x41,
8250x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x0a,0x13,0x10,0x47,0x6c,0x6f,0x62,0x61,
8260x6c,0x53,0x69,0x67,0x6e,0x20,0x6e,0x76,0x2d,0x73,0x61,0x31,0x28,0x30,0x26,0x06,
8270x03,0x55,0x04,0x03,0x13,0x1f,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,
8280x20,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,
8290x6f,0x6e,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
8300x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,
8310x0a,0x02,0x82,0x01,0x01,0x00,0xb4,0x9f,0x49,0xe6,0xb3,0x9f,0x01,0x55,0x36,0xd0,
8320x36,0x95,0x6c,0xcb,0x16,0x5a,0x6c,0x72,0xb5,0xe2,0x9d,0xe2,0xfa,0x39,0xe9,0x0a,
8330xdc,0x73,0x5c,0xa0,0x3b,0x76,0x6d,0x05,0x28,0x93,0x0d,0xa5,0x42,0xf3,0xe8,0xcb,
8340xee,0xd3,0x33,0x1a,0x13,0x27,0x0a,0xdf,0x5c,0xd1,0x54,0x62,0x6a,0x9a,0x17,0x36,
8350xd6,0x3c,0x58,0x87,0x1e,0xb2,0x66,0x1f,0x55,0x69,0x2b,0x89,0x56,0x47,0xb4,0xc2,
8360x50,0x0c,0xe5,0x5d,0xc1,0xfd,0x29,0x1b,0x66,0x73,0x43,0xf4,0x6f,0xd1,0x14,0x4f,
8370x2a,0x6d,0x48,0x52,0x3a,0xf5,0xe4,0x90,0x3f,0xde,0xb2,0xf4,0x10,0xd5,0xf9,0xfa,
8380xac,0x96,0x0d,0x10,0x32,0x23,0xd2,0xd3,0x51,0xa7,0x95,0x85,0x50,0xfa,0x0f,0x29,
8390x9d,0xa7,0x88,0x4e,0x0d,0x31,0x9b,0x44,0x41,0x8e,0x41,0x2f,0x6e,0x9a,0x1a,0xb4,
8400xb6,0xa5,0x59,0xf1,0x49,0x59,0x09,0x7e,0x7e,0x49,0xd3,0x69,0x33,0x4b,0x00,0x92,
8410xc5,0x1b,0x42,0x20,0x69,0xf8,0x64,0xdf,0xd8,0xa7,0x44,0xd1,0x90,0x5e,0xfd,0x39,
8420xad,0x6b,0x7d,0xfe,0xd5,0x8b,0xa4,0x01,0x64,0xf6,0xa7,0xb4,0x20,0x84,0xcc,0x05,
8430x2f,0x27,0xee,0x1e,0xd5,0x24,0x96,0xae,0x84,0x43,0xa4,0x3e,0x43,0xf3,0x3b,0x99,
8440xd7,0xf9,0xf2,0xde,0x3d,0x19,0xed,0xd0,0x65,0xf1,0x49,0xca,0x48,0xd2,0x38,0x7d,
8450xc6,0x48,0xd7,0x72,0x61,0xb8,0xc6,0xc2,0x67,0x0a,0xd8,0x65,0x5a,0xfd,0x5b,0xf3,
8460xc5,0xfd,0xbe,0x8c,0x69,0xcf,0x99,0x20,0xb6,0xea,0xec,0x39,0x80,0xe9,0x66,0xa8,
8470xee,0x3d,0x9d,0x46,0x7b,0x87,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x1f,0x30,
8480x82,0x01,0x1b,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,
8490x02,0x01,0x06,0x30,0x12,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x08,0x30,
8500x06,0x01,0x01,0xff,0x02,0x01,0x00,0x30,0x4b,0x06,0x03,0x55,0x1d,0x20,0x04,0x44,
8510x30,0x42,0x30,0x40,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0xa0,0x32,0x01,0x0a,0x30,
8520x33,0x30,0x31,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x25,0x68,
8530x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,
8540x73,0x69,0x67,0x6e,0x2e,0x6e,0x65,0x74,0x2f,0x72,0x65,0x70,0x6f,0x73,0x69,0x74,
8550x6f,0x72,0x79,0x2f,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x36,
8560x12,0x4e,0x9e,0x71,0xc4,0x26,0x41,0xf1,0xfa,0xf1,0x29,0x4c,0xbf,0x17,0xa4,0x53,
8570x28,0xb6,0xeb,0x30,0x33,0x06,0x03,0x55,0x1d,0x1f,0x04,0x2c,0x30,0x2a,0x30,0x28,
8580xa0,0x26,0xa0,0x24,0x86,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,
8590x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x73,0x69,0x67,0x6e,0x2e,0x6e,0x65,0x74,0x2f,
8600x72,0x6f,0x6f,0x74,0x2e,0x63,0x72,0x6c,0x30,0x11,0x06,0x09,0x60,0x86,0x48,0x01,
8610x86,0xf8,0x42,0x01,0x01,0x04,0x04,0x03,0x02,0x02,0x04,0x30,0x20,0x06,0x03,0x55,
8620x1d,0x25,0x04,0x19,0x30,0x17,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x0a,
8630x03,0x03,0x06,0x09,0x60,0x86,0x48,0x01,0x86,0xf8,0x42,0x04,0x01,0x30,0x1f,0x06,
8640x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x60,0x7b,0x66,0x1a,0x45,0x0d,
8650x97,0xca,0x89,0x50,0x2f,0x7d,0x04,0xcd,0x34,0xa8,0xff,0xfc,0xfd,0x4b,0x30,0x0d,
8660x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,
8670x01,0x00,0xc3,0x25,0x79,0x4a,0xfa,0xcd,0x26,0x6f,0x40,0x6a,0xb8,0x94,0x1b,0xe6,
8680xa0,0xe1,0x6b,0xd2,0x31,0x9a,0x3f,0x89,0xfb,0xc5,0x0a,0x22,0x75,0x7a,0xfd,0xbb,
8690x40,0x34,0x9c,0xbc,0x9e,0x85,0x49,0x59,0x7a,0x95,0xcc,0x0d,0x2d,0x44,0x0b,0xc7,
8700xcb,0x15,0x10,0x1e,0xd2,0xdc,0xe3,0x78,0xea,0x5f,0xf5,0x35,0x51,0xa6,0xc8,0x3f,
8710x39,0x90,0x15,0x9e,0x5f,0x15,0xc9,0xb7,0x8f,0x5d,0x6b,0x63,0x99,0x68,0xe1,0x6e,
8720x5c,0xfc,0x9d,0x37,0x33,0x0a,0xae,0x87,0x70,0x4a,0xa2,0xe3,0xab,0x26,0x7d,0x73,
8730x07,0xe4,0xf7,0x0a,0xaa,0x75,0x8f,0xa6,0xee,0x9b,0x04,0xd1,0x05,0x43,0x74,0x1a,
8740xba,0xd4,0xc2,0x9d,0x7f,0xb7,0xa0,0x6c,0xed,0x16,0x9a,0x67,0x40,0x56,0xab,0x83,
8750x9f,0x4c,0x9c,0xeb,0x28,0x34,0x1f,0x8d,0xe6,0x5a,0x0f,0x69,0x40,0xd9,0xa9,0x9e,
8760x6a,0xf9,0x89,0x7f,0xd0,0xf8,0x8c,0xb3,0x48,0x2e,0x0b,0x4f,0xf1,0xf9,0xcf,0xf5,
8770x0e,0x11,0x02,0x0c,0x89,0x16,0x73,0x53,0x5d,0x2c,0xd3,0xef,0xde,0x5f,0x0b,0x25,
8780xba,0xd5,0x4e,0x8f,0x85,0x90,0x3f,0x88,0x93,0x79,0xa5,0x20,0xac,0xff,0xb0,0x8a,
8790xcb,0xcb,0xa5,0x55,0x78,0x83,0x39,0x41,0x32,0xaa,0x5d,0x25,0x93,0xa7,0xea,0xee,
8800x18,0x72,0xb5,0xe2,0x1d,0x7f,0x08,0x74,0x11,0xb6,0x01,0x27,0x4e,0x96,0xcf,0xa8,
8810xf0,0x2a,0xf9,0x52,0xac,0x24,0x1a,0x19,0x9e,0x9f,0x6c,0x52,0x7c,0x8b,0x3a,0xa6,
8820x54,0xde,0xc1,0xc7,0x21,0x7d,0x3a,0xd3,0xbc,0x1a,0xa8,0x6d,0xf2,0xbf,0xdf,0x76,
8830xca,0x03
884};
885static const BYTE openssl_org[] = {
8860x30,0x82,0x04,0xc8,0x30,0x82,0x03,0xb0,0xa0,0x03,0x02,0x01,0x02,0x02,0x0b,0x01,
8870x00,0x00,0x00,0x00,0x01,0x1c,0x57,0x8e,0x3a,0xeb,0x30,0x0d,0x06,0x09,0x2a,0x86,
8880x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x30,0x71,0x31,0x0b,0x30,0x09,0x06,
8890x03,0x55,0x04,0x06,0x13,0x02,0x42,0x45,0x31,0x1d,0x30,0x1b,0x06,0x03,0x55,0x04,
8900x0b,0x13,0x14,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,
8910x74,0x69,0x6f,0x6e,0x20,0x43,0x41,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x0a,
8920x13,0x10,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x69,0x67,0x6e,0x20,0x6e,0x76,0x2d,
8930x73,0x61,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x47,0x6c,0x6f,
8940x62,0x61,0x6c,0x53,0x69,0x67,0x6e,0x20,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x56,
8950x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x43,0x41,0x30,0x1e,0x17,0x0d,
8960x30,0x38,0x30,0x39,0x31,0x32,0x31,0x37,0x31,0x34,0x31,0x31,0x5a,0x17,0x0d,0x31,
8970x31,0x30,0x39,0x31,0x33,0x31,0x37,0x31,0x34,0x30,0x36,0x5a,0x30,0x60,0x31,0x0b,
8980x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x47,0x42,0x31,0x21,0x30,0x1f,0x06,
8990x03,0x55,0x04,0x0b,0x13,0x18,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x43,0x6f,0x6e,
9000x74,0x72,0x6f,0x6c,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x64,0x31,0x16,
9010x30,0x14,0x06,0x03,0x55,0x04,0x0a,0x14,0x0d,0x2a,0x2e,0x6f,0x70,0x65,0x6e,0x73,
9020x73,0x6c,0x2e,0x6f,0x72,0x67,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x03,0x14,
9030x0d,0x2a,0x2e,0x6f,0x70,0x65,0x6e,0x73,0x73,0x6c,0x2e,0x6f,0x72,0x67,0x30,0x82,
9040x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
9050x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xb9,
9060x23,0x4e,0x1d,0xb5,0xef,0x87,0xb2,0xce,0x43,0x75,0x6a,0xc3,0x11,0x1c,0xd2,0xf7,
9070x32,0xf3,0xf7,0x92,0x9b,0xed,0xe6,0x86,0xc3,0xb7,0x93,0x93,0x5e,0x7d,0x32,0x6a,
9080x2b,0x03,0xb7,0x2a,0xc8,0x80,0x98,0x91,0x41,0x40,0x08,0xac,0xde,0xa6,0x7a,0x7c,
9090x4f,0x44,0x8b,0x9c,0xd8,0xd3,0x87,0x71,0xf2,0x4e,0x3e,0x54,0xd7,0xa4,0x11,0x81,
9100xb7,0x71,0x68,0x87,0xc1,0xc9,0xaf,0x2a,0xfa,0xb2,0x74,0xa3,0x70,0xa1,0x4d,0x19,
9110x06,0x8d,0x1c,0x95,0x04,0x14,0x9c,0x8f,0x1f,0xf0,0x98,0xc1,0xc0,0x70,0xfa,0xb1,
9120x10,0x1d,0x77,0xda,0x80,0x14,0x53,0xa5,0x5c,0xbe,0x05,0x9a,0x43,0xf4,0x54,0xf3,
9130x70,0xf4,0x71,0x39,0xea,0x50,0x9c,0xe6,0xa8,0xd0,0x78,0xa6,0x30,0x1e,0x6d,0x4d,
9140x22,0x10,0xdd,0x15,0x2d,0x50,0x00,0x5d,0xd9,0xc9,0xd2,0xa6,0xb9,0xdb,0x7f,0xad,
9150xd8,0xeb,0xef,0x65,0x1f,0xce,0xbb,0x8d,0x4e,0x51,0x95,0x84,0x6e,0x95,0x16,0xef,
9160x0b,0xf0,0x7b,0xff,0x2d,0x6c,0x1b,0x81,0x6c,0xca,0xe0,0x25,0x3d,0x2a,0x5c,0x6f,
9170xad,0xce,0x4b,0x5c,0x46,0x7c,0xb1,0xa9,0xf4,0xea,0x72,0x02,0xa1,0xcc,0x87,0x63,
9180x85,0x19,0x52,0x01,0x23,0x04,0x8e,0x2a,0xb4,0x94,0xde,0x6d,0x69,0x13,0x65,0x0b,
9190x70,0x5f,0x92,0x1a,0x44,0x68,0x41,0xcd,0x80,0xef,0xc9,0xe9,0x83,0xd8,0x1e,0x95,
9200x86,0xc7,0x1a,0x51,0xaf,0x3d,0xaa,0xca,0x97,0x19,0xe0,0xb4,0x69,0x87,0x75,0xe1,
9210x09,0x9a,0x53,0xcd,0xf5,0x43,0xcf,0x2b,0x1d,0xe7,0x81,0x20,0x1e,0x97,0x25,0x02,
9220x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x70,0x30,0x82,0x01,0x6c,0x30,0x1f,0x06,0x03,
9230x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x36,0x12,0x4e,0x9e,0x71,0xc4,0x26,
9240x41,0xf1,0xfa,0xf1,0x29,0x4c,0xbf,0x17,0xa4,0x53,0x28,0xb6,0xeb,0x30,0x49,0x06,
9250x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x3d,0x30,0x3b,0x30,0x39,0x06,
9260x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x2d,0x68,0x74,0x74,0x70,0x3a,
9270x2f,0x2f,0x73,0x65,0x63,0x75,0x72,0x65,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x73,
9280x69,0x67,0x6e,0x2e,0x6e,0x65,0x74,0x2f,0x63,0x61,0x63,0x65,0x72,0x74,0x2f,0x64,
9290x76,0x68,0x65,0x31,0x2e,0x63,0x72,0x74,0x30,0x39,0x06,0x03,0x55,0x1d,0x1f,0x04,
9300x32,0x30,0x30,0x30,0x2e,0xa0,0x2c,0xa0,0x2a,0x86,0x28,0x68,0x74,0x74,0x70,0x3a,
9310x2f,0x2f,0x63,0x72,0x6c,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x73,0x69,0x67,0x6e,
9320x2e,0x6e,0x65,0x74,0x2f,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x56,0x61,0x6c,0x31,0x2e,
9330x63,0x72,0x6c,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0xec,0x81,
9340x7d,0x47,0xa8,0xc0,0x19,0xa7,0xbc,0x6b,0x52,0x5e,0xb6,0x90,0xfb,0x17,0xae,0x7f,
9350x41,0x8f,0x30,0x09,0x06,0x03,0x55,0x1d,0x13,0x04,0x02,0x30,0x00,0x30,0x0e,0x06,
9360x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,0x02,0x04,0xf0,0x30,0x29,0x06,
9370x03,0x55,0x1d,0x25,0x04,0x22,0x30,0x20,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,
9380x03,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x02,0x06,0x0a,0x2b,0x06,
9390x01,0x04,0x01,0x82,0x37,0x0a,0x03,0x03,0x30,0x4b,0x06,0x03,0x55,0x1d,0x20,0x04,
9400x44,0x30,0x42,0x30,0x40,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0xa0,0x32,0x01,0x0a,
9410x30,0x33,0x30,0x31,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x25,
9420x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x67,0x6c,0x6f,0x62,0x61,
9430x6c,0x73,0x69,0x67,0x6e,0x2e,0x6e,0x65,0x74,0x2f,0x72,0x65,0x70,0x6f,0x73,0x69,
9440x74,0x6f,0x72,0x79,0x2f,0x30,0x11,0x06,0x09,0x60,0x86,0x48,0x01,0x86,0xf8,0x42,
9450x01,0x01,0x04,0x04,0x03,0x02,0x06,0xc0,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
9460xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x2b,0x22,0xdd,0xa3,
9470x1a,0xf9,0x12,0xee,0x77,0xbf,0x34,0xdd,0xbf,0x57,0x98,0x72,0xb3,0x05,0x8d,0x49,
9480xa4,0x5d,0x55,0xec,0x08,0xf4,0x70,0xb9,0x83,0xaf,0x57,0xb2,0x0f,0x54,0x12,0xc5,
9490xf4,0x0e,0x6e,0xd9,0xe4,0xd4,0x7c,0x6a,0x11,0x4a,0xd7,0xc3,0x46,0x42,0x7e,0x13,
9500x4c,0x39,0x1b,0xe3,0x53,0xb1,0x8b,0x8a,0xd7,0xa2,0x74,0xcb,0x18,0x0a,0x40,0x50,
9510xbe,0xbe,0x86,0x81,0xa9,0x8e,0x23,0x0b,0xa0,0x38,0x02,0x1c,0x55,0x57,0xfd,0xf7,
9520x98,0x43,0x7f,0x6e,0xe9,0x26,0xc5,0x64,0x7d,0x8a,0x42,0xfb,0x67,0xbd,0x93,0x39,
9530x75,0x49,0xcd,0x26,0x20,0x71,0xb4,0x65,0xca,0x04,0x15,0xfb,0x1a,0xcb,0x80,0x2e,
9540x20,0x43,0x81,0x3e,0x58,0x7f,0x3f,0x2c,0x93,0x92,0x06,0x96,0x69,0xb0,0x49,0x4c,
9550xd1,0xa8,0x53,0x9b,0x41,0x55,0x13,0x75,0xc3,0x51,0xe8,0x16,0x3d,0x3e,0x6f,0xbd,
9560xb7,0x0c,0x49,0x48,0x64,0x97,0xb4,0x14,0x89,0x57,0x62,0x75,0x32,0x31,0xda,0x94,
9570x82,0xf8,0xb3,0xc6,0x02,0x20,0x5e,0x0e,0x00,0x87,0x9c,0x0f,0x34,0x65,0xda,0xf2,
9580x47,0x78,0x18,0xf5,0xd5,0xea,0xf3,0x93,0x4e,0x60,0xd6,0x6b,0x7a,0xe8,0x88,0xd7,
9590x69,0x41,0xaa,0x10,0x56,0xd7,0x16,0x14,0xde,0xc9,0x1c,0xb6,0xb6,0x10,0xab,0x6b,
9600x97,0xbd,0x6a,0xa9,0xb7,0x67,0xd7,0x96,0xeb,0x52,0x12,0x9e,0x9a,0x69,0xaf,0x38,
9610x53,0x4d,0x99,0xd8,0x84,0xea,0x54,0xba,0x89,0x67,0xff,0x40,0x66,0x0d,0x53,0x99,
9620xb6,0x65,0xba,0xf3,0x8a,0x01,0x3d,0xd0,0xf1,0x21,0x5f,0xdd
963};
964
965/* USERTrust -> InCommon RSA CA -> cs.stanford.edu
966 * cs.stanford.edu's chain, also valid for www.cs.stanford.edu
967 */
968static const BYTE usertrust_ca[] = {
9690x30,0x82,0x05,0xde,0x30,0x82,0x03,0xc6,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,0x01,
9700xfd,0x6d,0x30,0xfc,0xa3,0xca,0x51,0xa8,0x1b,0xbc,0x64,0x0e,0x35,0x03,0x2d,0x30,
9710x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0c,0x05,0x00,0x30,0x81,
9720x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,
9730x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x4e,0x65,0x77,0x20,0x4a,0x65,0x72,
9740x73,0x65,0x79,0x31,0x14,0x30,0x12,0x06,0x03,0x55,0x04,0x07,0x13,0x0b,0x4a,0x65,
9750x72,0x73,0x65,0x79,0x20,0x43,0x69,0x74,0x79,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,
9760x04,0x0a,0x13,0x15,0x54,0x68,0x65,0x20,0x55,0x53,0x45,0x52,0x54,0x52,0x55,0x53,
9770x54,0x20,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x31,0x2e,0x30,0x2c,0x06,0x03,0x55,
9780x04,0x03,0x13,0x25,0x55,0x53,0x45,0x52,0x54,0x72,0x75,0x73,0x74,0x20,0x52,0x53,
9790x41,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,
9800x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,
9810x32,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x33,0x38,0x30,0x31,
9820x31,0x38,0x32,0x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,
9830x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,
9840x04,0x08,0x13,0x0a,0x4e,0x65,0x77,0x20,0x4a,0x65,0x72,0x73,0x65,0x79,0x31,0x14,
9850x30,0x12,0x06,0x03,0x55,0x04,0x07,0x13,0x0b,0x4a,0x65,0x72,0x73,0x65,0x79,0x20,
9860x43,0x69,0x74,0x79,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x54,
9870x68,0x65,0x20,0x55,0x53,0x45,0x52,0x54,0x52,0x55,0x53,0x54,0x20,0x4e,0x65,0x74,
9880x77,0x6f,0x72,0x6b,0x31,0x2e,0x30,0x2c,0x06,0x03,0x55,0x04,0x03,0x13,0x25,0x55,
9890x53,0x45,0x52,0x54,0x72,0x75,0x73,0x74,0x20,0x52,0x53,0x41,0x20,0x43,0x65,0x72,
9900x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x41,0x75,0x74,0x68,0x6f,
9910x72,0x69,0x74,0x79,0x30,0x82,0x02,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
9920xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,
9930x02,0x82,0x02,0x01,0x00,0x80,0x12,0x65,0x17,0x36,0x0e,0xc3,0xdb,0x08,0xb3,0xd0,
9940xac,0x57,0x0d,0x76,0xed,0xcd,0x27,0xd3,0x4c,0xad,0x50,0x83,0x61,0xe2,0xaa,0x20,
9950x4d,0x09,0x2d,0x64,0x09,0xdc,0xce,0x89,0x9f,0xcc,0x3d,0xa9,0xec,0xf6,0xcf,0xc1,
9960xdc,0xf1,0xd3,0xb1,0xd6,0x7b,0x37,0x28,0x11,0x2b,0x47,0xda,0x39,0xc6,0xbc,0x3a,
9970x19,0xb4,0x5f,0xa6,0xbd,0x7d,0x9d,0xa3,0x63,0x42,0xb6,0x76,0xf2,0xa9,0x3b,0x2b,
9980x91,0xf8,0xe2,0x6f,0xd0,0xec,0x16,0x20,0x90,0x09,0x3e,0xe2,0xe8,0x74,0xc9,0x18,
9990xb4,0x91,0xd4,0x62,0x64,0xdb,0x7f,0xa3,0x06,0xf1,0x88,0x18,0x6a,0x90,0x22,0x3c,
10000xbc,0xfe,0x13,0xf0,0x87,0x14,0x7b,0xf6,0xe4,0x1f,0x8e,0xd4,0xe4,0x51,0xc6,0x11,
10010x67,0x46,0x08,0x51,0xcb,0x86,0x14,0x54,0x3f,0xbc,0x33,0xfe,0x7e,0x6c,0x9c,0xff,
10020x16,0x9d,0x18,0xbd,0x51,0x8e,0x35,0xa6,0xa7,0x66,0xc8,0x72,0x67,0xdb,0x21,0x66,
10030xb1,0xd4,0x9b,0x78,0x03,0xc0,0x50,0x3a,0xe8,0xcc,0xf0,0xdc,0xbc,0x9e,0x4c,0xfe,
10040xaf,0x05,0x96,0x35,0x1f,0x57,0x5a,0xb7,0xff,0xce,0xf9,0x3d,0xb7,0x2c,0xb6,0xf6,
10050x54,0xdd,0xc8,0xe7,0x12,0x3a,0x4d,0xae,0x4c,0x8a,0xb7,0x5c,0x9a,0xb4,0xb7,0x20,
10060x3d,0xca,0x7f,0x22,0x34,0xae,0x7e,0x3b,0x68,0x66,0x01,0x44,0xe7,0x01,0x4e,0x46,
10070x53,0x9b,0x33,0x60,0xf7,0x94,0xbe,0x53,0x37,0x90,0x73,0x43,0xf3,0x32,0xc3,0x53,
10080xef,0xdb,0xaa,0xfe,0x74,0x4e,0x69,0xc7,0x6b,0x8c,0x60,0x93,0xde,0xc4,0xc7,0x0c,
10090xdf,0xe1,0x32,0xae,0xcc,0x93,0x3b,0x51,0x78,0x95,0x67,0x8b,0xee,0x3d,0x56,0xfe,
10100x0c,0xd0,0x69,0x0f,0x1b,0x0f,0xf3,0x25,0x26,0x6b,0x33,0x6d,0xf7,0x6e,0x47,0xfa,
10110x73,0x43,0xe5,0x7e,0x0e,0xa5,0x66,0xb1,0x29,0x7c,0x32,0x84,0x63,0x55,0x89,0xc4,
10120x0d,0xc1,0x93,0x54,0x30,0x19,0x13,0xac,0xd3,0x7d,0x37,0xa7,0xeb,0x5d,0x3a,0x6c,
10130x35,0x5c,0xdb,0x41,0xd7,0x12,0xda,0xa9,0x49,0x0b,0xdf,0xd8,0x80,0x8a,0x09,0x93,
10140x62,0x8e,0xb5,0x66,0xcf,0x25,0x88,0xcd,0x84,0xb8,0xb1,0x3f,0xa4,0x39,0x0f,0xd9,
10150x02,0x9e,0xeb,0x12,0x4c,0x95,0x7c,0xf3,0x6b,0x05,0xa9,0x5e,0x16,0x83,0xcc,0xb8,
10160x67,0xe2,0xe8,0x13,0x9d,0xcc,0x5b,0x82,0xd3,0x4c,0xb3,0xed,0x5b,0xff,0xde,0xe5,
10170x73,0xac,0x23,0x3b,0x2d,0x00,0xbf,0x35,0x55,0x74,0x09,0x49,0xd8,0x49,0x58,0x1a,
10180x7f,0x92,0x36,0xe6,0x51,0x92,0x0e,0xf3,0x26,0x7d,0x1c,0x4d,0x17,0xbc,0xc9,0xec,
10190x43,0x26,0xd0,0xbf,0x41,0x5f,0x40,0xa9,0x44,0x44,0xf4,0x99,0xe7,0x57,0x87,0x9e,
10200x50,0x1f,0x57,0x54,0xa8,0x3e,0xfd,0x74,0x63,0x2f,0xb1,0x50,0x65,0x09,0xe6,0x58,
10210x42,0x2e,0x43,0x1a,0x4c,0xb4,0xf0,0x25,0x47,0x59,0xfa,0x04,0x1e,0x93,0xd4,0x26,
10220x46,0x4a,0x50,0x81,0xb2,0xde,0xbe,0x78,0xb7,0xfc,0x67,0x15,0xe1,0xc9,0x57,0x84,
10230x1e,0x0f,0x63,0xd6,0xe9,0x62,0xba,0xd6,0x5f,0x55,0x2e,0xea,0x5c,0xc6,0x28,0x08,
10240x04,0x25,0x39,0xb8,0x0e,0x2b,0xa9,0xf2,0x4c,0x97,0x1c,0x07,0x3f,0x0d,0x52,0xf5,
10250xed,0xef,0x2f,0x82,0x0f,0x02,0x03,0x01,0x00,0x01,0xa3,0x42,0x30,0x40,0x30,0x1d,
10260x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x53,0x79,0xbf,0x5a,0xaa,0x2b,0x4a,
10270xcf,0x54,0x80,0xe1,0xd8,0x9b,0xc0,0x9d,0xf2,0xb2,0x03,0x66,0xcb,0x30,0x0e,0x06,
10280x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,0x02,0x01,0x06,0x30,0x0f,0x06,
10290x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0d,
10300x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0c,0x05,0x00,0x03,0x82,0x02,
10310x01,0x00,0x5c,0xd4,0x7c,0x0d,0xcf,0xf7,0x01,0x7d,0x41,0x99,0x65,0x0c,0x73,0xc5,
10320x52,0x9f,0xcb,0xf8,0xcf,0x99,0x06,0x7f,0x1b,0xda,0x43,0x15,0x9f,0x9e,0x02,0x55,
10330x57,0x96,0x14,0xf1,0x52,0x3c,0x27,0x87,0x94,0x28,0xed,0x1f,0x3a,0x01,0x37,0xa2,
10340x76,0xfc,0x53,0x50,0xc0,0x84,0x9b,0xc6,0x6b,0x4e,0xba,0x8c,0x21,0x4f,0xa2,0x8e,
10350x55,0x62,0x91,0xf3,0x69,0x15,0xd8,0xbc,0x88,0xe3,0xc4,0xaa,0x0b,0xfd,0xef,0xa8,
10360xe9,0x4b,0x55,0x2a,0x06,0x20,0x6d,0x55,0x78,0x29,0x19,0xee,0x5f,0x30,0x5c,0x4b,
10370x24,0x11,0x55,0xff,0x24,0x9a,0x6e,0x5e,0x2a,0x2b,0xee,0x0b,0x4d,0x9f,0x7f,0xf7,
10380x01,0x38,0x94,0x14,0x95,0x43,0x07,0x09,0xfb,0x60,0xa9,0xee,0x1c,0xab,0x12,0x8c,
10390xa0,0x9a,0x5e,0xa7,0x98,0x6a,0x59,0x6d,0x8b,0x3f,0x08,0xfb,0xc8,0xd1,0x45,0xaf,
10400x18,0x15,0x64,0x90,0x12,0x0f,0x73,0x28,0x2e,0xc5,0xe2,0x24,0x4e,0xfc,0x58,0xec,
10410xf0,0xf4,0x45,0xfe,0x22,0xb3,0xeb,0x2f,0x8e,0xd2,0xd9,0x45,0x61,0x05,0xc1,0x97,
10420x6f,0xa8,0x76,0x72,0x8f,0x8b,0x8c,0x36,0xaf,0xbf,0x0d,0x05,0xce,0x71,0x8d,0xe6,
10430xa6,0x6f,0x1f,0x6c,0xa6,0x71,0x62,0xc5,0xd8,0xd0,0x83,0x72,0x0c,0xf1,0x67,0x11,
10440x89,0x0c,0x9c,0x13,0x4c,0x72,0x34,0xdf,0xbc,0xd5,0x71,0xdf,0xaa,0x71,0xdd,0xe1,
10450xb9,0x6c,0x8c,0x3c,0x12,0x5d,0x65,0xda,0xbd,0x57,0x12,0xb6,0x43,0x6b,0xff,0xe5,
10460xde,0x4d,0x66,0x11,0x51,0xcf,0x99,0xae,0xec,0x17,0xb6,0xe8,0x71,0x91,0x8c,0xde,
10470x49,0xfe,0xdd,0x35,0x71,0xa2,0x15,0x27,0x94,0x1c,0xcf,0x61,0xe3,0x26,0xbb,0x6f,
10480xa3,0x67,0x25,0x21,0x5d,0xe6,0xdd,0x1d,0x0b,0x2e,0x68,0x1b,0x3b,0x82,0xaf,0xec,
10490x83,0x67,0x85,0xd4,0x98,0x51,0x74,0xb1,0xb9,0x99,0x80,0x89,0xff,0x7f,0x78,0x19,
10500x5c,0x79,0x4a,0x60,0x2e,0x92,0x40,0xae,0x4c,0x37,0x2a,0x2c,0xc9,0xc7,0x62,0xc8,
10510x0e,0x5d,0xf7,0x36,0x5b,0xca,0xe0,0x25,0x25,0x01,0xb4,0xdd,0x1a,0x07,0x9c,0x77,
10520x00,0x3f,0xd0,0xdc,0xd5,0xec,0x3d,0xd4,0xfa,0xbb,0x3f,0xcc,0x85,0xd6,0x6f,0x7f,
10530xa9,0x2d,0xdf,0xb9,0x02,0xf7,0xf5,0x97,0x9a,0xb5,0x35,0xda,0xc3,0x67,0xb0,0x87,
10540x4a,0xa9,0x28,0x9e,0x23,0x8e,0xff,0x5c,0x27,0x6b,0xe1,0xb0,0x4f,0xf3,0x07,0xee,
10550x00,0x2e,0xd4,0x59,0x87,0xcb,0x52,0x41,0x95,0xea,0xf4,0x47,0xd7,0xee,0x64,0x41,
10560x55,0x7c,0x8d,0x59,0x02,0x95,0xdd,0x62,0x9d,0xc2,0xb9,0xee,0x5a,0x28,0x74,0x84,
10570xa5,0x9b,0xb7,0x90,0xc7,0x0c,0x07,0xdf,0xf5,0x89,0x36,0x74,0x32,0xd6,0x28,0xc1,
10580xb0,0xb0,0x0b,0xe0,0x9c,0x4c,0xc3,0x1c,0xd6,0xfc,0xe3,0x69,0xb5,0x47,0x46,0x81,
10590x2f,0xa2,0x82,0xab,0xd3,0x63,0x44,0x70,0xc4,0x8d,0xff,0x2d,0x33,0xba,0xad,0x8f,
10600x7b,0xb5,0x70,0x88,0xae,0x3e,0x19,0xcf,0x40,0x28,0xd8,0xfc,0xc8,0x90,0xbb,0x5d,
10610x99,0x22,0xf5,0x52,0xe6,0x58,0xc5,0x1f,0x88,0x31,0x43,0xee,0x88,0x1d,0xd7,0xc6,
10620x8e,0x3c,0x43,0x6a,0x1d,0xa7,0x18,0xde,0x7d,0x3d,0x16,0xf1,0x62,0xf9,0xca,0x90,
10630xa8,0xfd
1064};
1065static const BYTE incommon_rsa_ca[] = {
10660x30,0x82,0x05,0xf9,0x30,0x82,0x03,0xe1,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,0x47,
10670x20,0xd0,0xfa,0x85,0x46,0x1a,0x7e,0x17,0xa1,0x64,0x02,0x91,0x84,0x63,0x74,0x30,
10680x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0c,0x05,0x00,0x30,0x81,
10690x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,
10700x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x4e,0x65,0x77,0x20,0x4a,0x65,0x72,
10710x73,0x65,0x79,0x31,0x14,0x30,0x12,0x06,0x03,0x55,0x04,0x07,0x13,0x0b,0x4a,0x65,
10720x72,0x73,0x65,0x79,0x20,0x43,0x69,0x74,0x79,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,
10730x04,0x0a,0x13,0x15,0x54,0x68,0x65,0x20,0x55,0x53,0x45,0x52,0x54,0x52,0x55,0x53,
10740x54,0x20,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x31,0x2e,0x30,0x2c,0x06,0x03,0x55,
10750x04,0x03,0x13,0x25,0x55,0x53,0x45,0x52,0x54,0x72,0x75,0x73,0x74,0x20,0x52,0x53,
10760x41,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,
10770x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x30,0x1e,0x17,0x0d,0x31,0x34,0x31,
10780x30,0x30,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x32,0x34,0x31,0x30,
10790x30,0x35,0x32,0x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x76,0x31,0x0b,0x30,0x09,0x06,
10800x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,
10810x08,0x13,0x02,0x4d,0x49,0x31,0x12,0x30,0x10,0x06,0x03,0x55,0x04,0x07,0x13,0x09,
10820x41,0x6e,0x6e,0x20,0x41,0x72,0x62,0x6f,0x72,0x31,0x12,0x30,0x10,0x06,0x03,0x55,
10830x04,0x0a,0x13,0x09,0x49,0x6e,0x74,0x65,0x72,0x6e,0x65,0x74,0x32,0x31,0x11,0x30,
10840x0f,0x06,0x03,0x55,0x04,0x0b,0x13,0x08,0x49,0x6e,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,
10850x31,0x1f,0x30,0x1d,0x06,0x03,0x55,0x04,0x03,0x13,0x16,0x49,0x6e,0x43,0x6f,0x6d,
10860x6d,0x6f,0x6e,0x20,0x52,0x53,0x41,0x20,0x53,0x65,0x72,0x76,0x65,0x72,0x20,0x43,
10870x41,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
10880x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,
10890x01,0x00,0x9c,0x1b,0xf1,0xbb,0x2f,0x7f,0x63,0x18,0x15,0x51,0x51,0x54,0x0f,0x9e,
10900xc5,0x4e,0x4d,0x10,0x58,0xfa,0x30,0x9b,0x17,0x29,0x90,0xe6,0x33,0x0c,0xac,0x13,
10910x53,0x7c,0x54,0x91,0xb4,0xea,0xd8,0x6e,0x9b,0x89,0x6d,0xbb,0x33,0x3e,0x8f,0xd2,
10920x0d,0xa6,0xe9,0xf9,0xba,0xe9,0x0d,0x0c,0x1a,0x9e,0xb2,0x8e,0xc9,0x70,0x2e,0xef,
10930x1e,0x05,0x7d,0x95,0xeb,0x2d,0x8d,0xa2,0xa9,0x4d,0xb3,0x9c,0xe7,0xf3,0x19,0x36,
10940xbb,0xa7,0xf1,0x7c,0xe6,0x08,0x1e,0x61,0x27,0x44,0x7a,0x96,0xf4,0xa8,0x34,0xdb,
10950xe2,0x42,0xc8,0xa5,0xdb,0x37,0xd5,0xb5,0xe7,0xe4,0x42,0x72,0x3f,0xb4,0x13,0xcf,
10960x8b,0x07,0x24,0x45,0x1e,0x8c,0x91,0x83,0x46,0xb9,0x09,0xa6,0xfc,0x18,0xa3,0x06,
10970x02,0xec,0x34,0x8d,0x32,0x66,0x95,0x27,0xea,0xe1,0x97,0xe8,0xdb,0x35,0xa3,0x2b,
10980x56,0xeb,0x57,0xe8,0xf0,0x10,0x59,0xdf,0x6d,0x70,0x0c,0x66,0x6a,0xd0,0x64,0xe5,
10990xa8,0xa3,0x98,0x31,0xad,0x1d,0x62,0xd5,0xfa,0x92,0xe3,0x9a,0x43,0xcd,0x2d,0x35,
11000xfb,0xd9,0x9e,0x33,0x5b,0x45,0x7d,0xc4,0x86,0x28,0x2c,0x66,0x12,0xc8,0xdb,0x0f,
11010x19,0x30,0x0d,0x3f,0xe9,0xf0,0xea,0x4a,0x5e,0x40,0x07,0xc7,0xf6,0x20,0x7a,0x53,
11020x78,0x81,0x64,0x7a,0x7e,0x45,0x6a,0x16,0x6f,0xf4,0x93,0x58,0xc9,0x62,0xfb,0x29,
11030x27,0x7d,0xa1,0x7f,0x21,0xce,0xe7,0x4f,0x47,0xd6,0x8a,0x56,0xe0,0xe3,0x66,0xf8,
11040xec,0xdd,0x89,0xdc,0x26,0x8c,0x19,0x68,0x3b,0x8d,0x8b,0xe2,0xfb,0x47,0x23,0x0b,
11050x7f,0x37,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x6e,0x30,0x82,0x01,0x6a,0x30,
11060x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x53,0x79,0xbf,0x5a,
11070xaa,0x2b,0x4a,0xcf,0x54,0x80,0xe1,0xd8,0x9b,0xc0,0x9d,0xf2,0xb2,0x03,0x66,0xcb,
11080x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x1e,0x05,0xa3,0x77,0x8f,
11090x6c,0x96,0xe2,0x5b,0x87,0x4b,0xa6,0xb4,0x86,0xac,0x71,0x00,0x0c,0xe7,0x38,0x30,
11100x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,0x02,0x01,0x86,0x30,
11110x12,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x08,0x30,0x06,0x01,0x01,0xff,
11120x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x25,0x04,0x16,0x30,0x14,0x06,0x08,
11130x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,
11140x03,0x02,0x30,0x1b,0x06,0x03,0x55,0x1d,0x20,0x04,0x14,0x30,0x12,0x30,0x06,0x06,
11150x04,0x55,0x1d,0x20,0x00,0x30,0x08,0x06,0x06,0x67,0x81,0x0c,0x01,0x02,0x02,0x30,
11160x50,0x06,0x03,0x55,0x1d,0x1f,0x04,0x49,0x30,0x47,0x30,0x45,0xa0,0x43,0xa0,0x41,
11170x86,0x3f,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x75,0x73,0x65,
11180x72,0x74,0x72,0x75,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x55,0x53,0x45,0x52,0x54,
11190x72,0x75,0x73,0x74,0x52,0x53,0x41,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,
11200x74,0x69,0x6f,0x6e,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x2e,0x63,0x72,
11210x6c,0x30,0x76,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x6a,0x30,
11220x68,0x30,0x3f,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x33,0x68,
11230x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x74,0x2e,0x75,0x73,0x65,0x72,0x74,0x72,
11240x75,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x55,0x53,0x45,0x52,0x54,0x72,0x75,0x73,
11250x74,0x52,0x53,0x41,0x41,0x64,0x64,0x54,0x72,0x75,0x73,0x74,0x43,0x41,0x2e,0x63,
11260x72,0x74,0x30,0x25,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x01,0x86,0x19,
11270x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6f,0x63,0x73,0x70,0x2e,0x75,0x73,0x65,0x72,
11280x74,0x72,0x75,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
11290x86,0xf7,0x0d,0x01,0x01,0x0c,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x2d,0x11,0x06,
11300x38,0xd6,0xdb,0xd7,0x58,0x68,0xaf,0xaa,0x38,0x67,0x17,0x8d,0xe2,0x13,0xd7,0xa3,
11310x14,0x24,0xd9,0x06,0x13,0xeb,0xeb,0x91,0x2f,0xdf,0x4f,0x67,0x2d,0xc8,0xd3,0x14,
11320xd7,0x56,0x65,0x52,0x9e,0x6e,0x1f,0x98,0x08,0x8e,0x9a,0x48,0x1b,0xc1,0x8b,0x59,
11330x9a,0xa3,0x57,0x9b,0xdb,0x86,0xf8,0x59,0x40,0xfc,0x19,0xb0,0x75,0x11,0x2a,0xc2,
11340x12,0x36,0xba,0x8e,0x72,0x8a,0x06,0x4e,0x27,0xb7,0x8d,0x58,0x14,0xd1,0x6f,0xb4,
11350xf9,0x68,0xfc,0x98,0xdd,0xa4,0x9c,0x25,0x40,0x36,0xde,0xbd,0x17,0x66,0x2b,0x03,
11360x7f,0x78,0x81,0xb1,0x80,0x74,0x9e,0x5f,0x3a,0xb4,0x26,0x2f,0x6a,0x48,0x84,0x36,
11370x34,0x8e,0xa7,0x28,0xef,0x87,0xf3,0x61,0xe7,0xdb,0x67,0xf5,0x52,0xdb,0xd7,0xd1,
11380xe6,0x30,0x71,0xbb,0x8b,0xa3,0xd4,0xff,0xb9,0x64,0x89,0x9e,0x9b,0x81,0x9b,0x8f,
11390x57,0xb8,0x64,0x4c,0xd5,0x06,0x19,0x8e,0xe7,0x91,0x85,0x7c,0x18,0xd1,0x89,0xd8,
11400xf6,0xea,0x1d,0x68,0x14,0x11,0xd9,0xee,0x17,0x83,0x1f,0x50,0x63,0xcf,0x0e,0xf6,
11410x86,0x2a,0x6e,0xe3,0xb1,0xa4,0xc9,0xfa,0xf6,0x34,0x4c,0x77,0x2a,0x80,0x86,0x30,
11420xb0,0xa3,0xdc,0x1b,0x71,0xec,0x04,0xa7,0xe4,0x98,0xbc,0x16,0x85,0x3e,0x84,0x26,
11430xb3,0xc0,0xe5,0x35,0x55,0x7e,0x79,0x98,0xa3,0xd4,0xd4,0x8d,0xb6,0xe7,0x42,0xe8,
11440x44,0x20,0x12,0x37,0x5f,0x09,0xc9,0xfb,0x03,0xe4,0xf5,0x65,0x74,0x96,0xed,0xca,
11450xb9,0xb3,0xf6,0x09,0xff,0x4c,0xa6,0xd1,0x5d,0x3a,0xfc,0xd1,0x4d,0xaa,0xe4,0x98,
11460x72,0xbe,0x38,0x4b,0x7f,0x89,0x4e,0x26,0x8f,0xd4,0xcc,0xbe,0x56,0x09,0x71,0x03,
11470x4a,0x6c,0xa3,0xe2,0x35,0x86,0xdd,0x1e,0xd9,0xf1,0x31,0x03,0xf7,0x13,0x4d,0x0b,
11480x11,0x81,0x31,0x79,0xcc,0x7a,0xd7,0xbe,0xdc,0xfb,0xf3,0x76,0x1b,0x2c,0xbd,0xb3,
11490x91,0x0f,0x00,0x59,0x07,0x2a,0x20,0x43,0xdc,0x4b,0xd8,0xb5,0x19,0x14,0x8f,0xe2,
11500x7a,0x84,0x29,0xd1,0x43,0x3f,0x2f,0xcc,0xdf,0x3f,0x9d,0xbb,0xbd,0x68,0xc4,0xce,
11510xe0,0xcd,0xe7,0x1c,0x31,0x32,0x78,0x62,0xfa,0xf0,0x93,0xa2,0x1e,0xc9,0xd7,0x9f,
11520x68,0xe5,0xa8,0x76,0xf6,0x63,0xfe,0x68,0x99,0xef,0xba,0x36,0xd7,0x12,0x71,0x9a,
11530x9e,0xb3,0x71,0x1f,0x3b,0xbe,0x00,0x63,0x9e,0x3d,0x5f,0x21,0xc2,0xb1,0x86,0x1b,
11540xb8,0x4e,0x21,0xc3,0xc3,0x43,0x09,0x2e,0x63,0x0c,0xcd,0xff,0x14,0xf6,0xf6,0x22,
11550xe9,0xfd,0xca,0x9f,0xf5,0x98,0x44,0xb6,0x41,0x9c,0x41,0xc2,0x08,0x98,0x7d,0xdb,
11560xa0,0x9f,0x22,0x7e,0xc0,0xa7,0x49,0xbb,0xb4,0x18,0x1f,0x4b,0xd3,0xa6,0x2a,0x87,
11570xb9,0x5c,0xca,0xf2,0x83,0x4c,0x40,0x03,0xb2,0x52,0x1a,0x79,0x21,0x08,0x37,0x18,
11580x4e,0xd9,0x8d,0x5f,0x99,0xc6,0x05,0x5f,0xf1,0x6a,0xae,0xba,0x75,0x5a,0x78,0x47,
11590x3a,0x3a,0x65,0x5e,0xe5,0xc4,0xd0,0xe3,0xda,0xd2,0xeb,0x5a,0x28,0x2d,0xb9,0x02,
11600x99,0x60,0xa2,0x6f,0x3c,0x2f,0x66,0x7c,0x98,0x45,0x9c,0xc9,0xfa,0x01,0xef,0x32,
11610x8e,0x7c,0x3e,0xf9,0xf4,0x03,0x7b,0x24,0xa6,0x56,0x09,0x8c,0x24
1162};
1163static const BYTE cs_stanford_edu[] = {
11640x30,0x82,0x05,0xa5,0x30,0x82,0x04,0x8d,0xa0,0x03,0x02,0x01,0x02,0x02,0x11,0x00,
11650xf1,0x06,0x35,0xc6,0xee,0x01,0x95,0x98,0x11,0xab,0x60,0x00,0x75,0x72,0x30,0xb3,
11660x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,
11670x76,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x0b,
11680x30,0x09,0x06,0x03,0x55,0x04,0x08,0x13,0x02,0x4d,0x49,0x31,0x12,0x30,0x10,0x06,
11690x03,0x55,0x04,0x07,0x13,0x09,0x41,0x6e,0x6e,0x20,0x41,0x72,0x62,0x6f,0x72,0x31,
11700x12,0x30,0x10,0x06,0x03,0x55,0x04,0x0a,0x13,0x09,0x49,0x6e,0x74,0x65,0x72,0x6e,
11710x65,0x74,0x32,0x31,0x11,0x30,0x0f,0x06,0x03,0x55,0x04,0x0b,0x13,0x08,0x49,0x6e,
11720x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x31,0x1f,0x30,0x1d,0x06,0x03,0x55,0x04,0x03,0x13,
11730x16,0x49,0x6e,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x20,0x52,0x53,0x41,0x20,0x53,0x65,
11740x72,0x76,0x65,0x72,0x20,0x43,0x41,0x30,0x1e,0x17,0x0d,0x31,0x36,0x31,0x30,0x32,
11750x31,0x30,0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x31,0x39,0x31,0x30,0x32,0x31,
11760x32,0x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x81,0xb4,0x31,0x0b,0x30,0x09,0x06,0x03,
11770x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x11,
11780x13,0x05,0x39,0x34,0x33,0x30,0x35,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x08,
11790x13,0x02,0x43,0x41,0x31,0x11,0x30,0x0f,0x06,0x03,0x55,0x04,0x07,0x13,0x08,0x53,
11800x74,0x61,0x6e,0x66,0x6f,0x72,0x64,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x09,
11810x13,0x0e,0x34,0x35,0x30,0x20,0x53,0x65,0x72,0x72,0x61,0x20,0x4d,0x61,0x6c,0x6c,
11820x31,0x1c,0x30,0x1a,0x06,0x03,0x55,0x04,0x0a,0x13,0x13,0x53,0x74,0x61,0x6e,0x66,
11830x6f,0x72,0x64,0x20,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x69,0x74,0x79,0x31,0x24,
11840x30,0x22,0x06,0x03,0x55,0x04,0x0b,0x13,0x1b,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,
11850x72,0x20,0x53,0x63,0x69,0x65,0x6e,0x63,0x65,0x20,0x44,0x65,0x70,0x61,0x72,0x74,
11860x6d,0x65,0x6e,0x74,0x31,0x18,0x30,0x16,0x06,0x03,0x55,0x04,0x03,0x13,0x0f,0x63,
11870x73,0x2e,0x73,0x74,0x61,0x6e,0x66,0x6f,0x72,0x64,0x2e,0x65,0x64,0x75,0x30,0x82,
11880x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
11890x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xb5,
11900x8c,0x69,0x22,0xf1,0xd4,0x39,0x0a,0x45,0x7b,0x5f,0x1e,0x15,0x00,0xae,0x9a,0x0f,
11910x79,0x5c,0x08,0xea,0x52,0x0e,0x74,0x6d,0xcf,0x0b,0x1a,0x92,0x88,0x57,0xe4,0x8c,
11920x9e,0xbc,0xc6,0xd9,0x29,0x8f,0xe1,0x5f,0x52,0x11,0x59,0xf8,0x12,0x78,0xfa,0xdf,
11930xac,0xe6,0xdf,0xfb,0x3f,0x10,0xf3,0x93,0x23,0xdd,0xea,0x6c,0x0b,0xf6,0xda,0x99,
11940xbc,0x15,0x51,0xf9,0x8d,0x03,0x9e,0x79,0x28,0xf9,0x44,0x5d,0x06,0xac,0x95,0x61,
11950xc6,0x81,0xe4,0x6e,0x49,0x1a,0x8f,0xe9,0xea,0x1c,0x7d,0x05,0x53,0x20,0xfc,0xea,
11960x14,0xc4,0x2f,0x11,0x57,0x86,0x3a,0x53,0xc1,0x17,0x6b,0xb1,0xe6,0x77,0x4c,0x21,
11970x0d,0xe0,0x68,0x6c,0xac,0xc9,0xcb,0xe9,0xc2,0x5a,0x91,0xcb,0x51,0x1a,0xb8,0x53,
11980x13,0x75,0x13,0xef,0xfd,0x50,0x0b,0xd7,0x84,0xb0,0xb8,0x29,0x2c,0x64,0x00,0xd9,
11990x11,0xe5,0xef,0x9d,0x9d,0xb3,0xae,0x5f,0xa2,0x78,0x24,0x18,0xc3,0x68,0x13,0x86,
12000x0d,0x86,0xf8,0x2d,0xfe,0x47,0xba,0xae,0xe8,0xc2,0x6c,0xf3,0x80,0xc9,0x96,0x33,
12010xc2,0x08,0xa3,0x01,0xc9,0x70,0x04,0x25,0x2a,0x32,0x0e,0xd5,0x84,0xe3,0x91,0x57,
12020xb3,0x9c,0xbf,0x9f,0x37,0x71,0xbb,0x0a,0x21,0x22,0x09,0x01,0xfc,0x10,0x75,0x14,
12030x0c,0x53,0x3f,0xbe,0x6d,0x1f,0x96,0x4d,0xb5,0x3c,0xcd,0x2f,0xd9,0x9d,0xe7,0xb8,
12040x52,0x8b,0xac,0x24,0x8a,0x95,0xf4,0xd3,0x44,0xc3,0xe0,0x9f,0x85,0x86,0x3f,0x2e,
12050xf0,0xbe,0x73,0x8e,0x82,0x01,0x46,0x59,0x8d,0xd7,0x90,0x64,0x4a,0x2d,0x4d,0x02,
12060x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xed,0x30,0x82,0x01,0xe9,0x30,0x1f,0x06,0x03,
12070x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x1e,0x05,0xa3,0x77,0x8f,0x6c,0x96,
12080xe2,0x5b,0x87,0x4b,0xa6,0xb4,0x86,0xac,0x71,0x00,0x0c,0xe7,0x38,0x30,0x1d,0x06,
12090x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x48,0xf2,0x68,0xbb,0xd9,0xab,0xe3,0x04,
12100xba,0x2f,0x9d,0x7d,0x94,0xca,0xcf,0x77,0xd7,0xb1,0x0b,0x23,0x30,0x0e,0x06,0x03,
12110x55,0x1d,0x0f,0x01,0x01,0xff,0x04,0x04,0x03,0x02,0x05,0xa0,0x30,0x0c,0x06,0x03,
12120x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,
12130x25,0x04,0x16,0x30,0x14,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x01,0x06,
12140x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x02,0x30,0x67,0x06,0x03,0x55,0x1d,0x20,
12150x04,0x60,0x30,0x5e,0x30,0x52,0x06,0x0c,0x2b,0x06,0x01,0x04,0x01,0xae,0x23,0x01,
12160x04,0x03,0x01,0x01,0x30,0x42,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,
12170x02,0x01,0x16,0x34,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,
12180x69,0x6e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x2e,0x6f,0x72,0x67,0x2f,0x63,0x65,0x72,
12190x74,0x2f,0x72,0x65,0x70,0x6f,0x73,0x69,0x74,0x6f,0x72,0x79,0x2f,0x63,0x70,0x73,
12200x5f,0x73,0x73,0x6c,0x2e,0x70,0x64,0x66,0x30,0x08,0x06,0x06,0x67,0x81,0x0c,0x01,
12210x02,0x02,0x30,0x44,0x06,0x03,0x55,0x1d,0x1f,0x04,0x3d,0x30,0x3b,0x30,0x39,0xa0,
12220x37,0xa0,0x35,0x86,0x33,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,
12230x69,0x6e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x2d,0x72,0x73,0x61,0x2e,0x6f,0x72,0x67,
12240x2f,0x49,0x6e,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x52,0x53,0x41,0x53,0x65,0x72,0x76,
12250x65,0x72,0x43,0x41,0x2e,0x63,0x72,0x6c,0x30,0x75,0x06,0x08,0x2b,0x06,0x01,0x05,
12260x05,0x07,0x01,0x01,0x04,0x69,0x30,0x67,0x30,0x3e,0x06,0x08,0x2b,0x06,0x01,0x05,
12270x05,0x07,0x30,0x02,0x86,0x32,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x74,
12280x2e,0x75,0x73,0x65,0x72,0x74,0x72,0x75,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x49,
12290x6e,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x52,0x53,0x41,0x53,0x65,0x72,0x76,0x65,0x72,
12300x43,0x41,0x5f,0x32,0x2e,0x63,0x72,0x74,0x30,0x25,0x06,0x08,0x2b,0x06,0x01,0x05,
12310x05,0x07,0x30,0x01,0x86,0x19,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6f,0x63,0x73,
12320x70,0x2e,0x75,0x73,0x65,0x72,0x74,0x72,0x75,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x30,
12330x44,0x06,0x03,0x55,0x1d,0x11,0x04,0x3d,0x30,0x3b,0x82,0x0f,0x63,0x73,0x2e,0x73,
12340x74,0x61,0x6e,0x66,0x6f,0x72,0x64,0x2e,0x65,0x64,0x75,0x82,0x13,0x77,0x77,0x77,
12350x2d,0x63,0x73,0x2e,0x73,0x74,0x61,0x6e,0x66,0x6f,0x72,0x64,0x2e,0x65,0x64,0x75,
12360x82,0x13,0x77,0x77,0x77,0x2e,0x63,0x73,0x2e,0x73,0x74,0x61,0x6e,0x66,0x6f,0x72,
12370x64,0x2e,0x65,0x64,0x75,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
12380x01,0x0b,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x7e,0xad,0x31,0x04,0x9a,0xe0,0xc2,
12390x42,0x8a,0x3b,0x5a,0x8a,0x5f,0xe9,0x50,0x33,0xd7,0xf9,0x18,0xd3,0x96,0x05,0x15,
12400xe5,0xcf,0x61,0x99,0x0d,0x97,0xda,0xf4,0xdd,0x6e,0x45,0xfb,0xe4,0x0e,0x4d,0x23,
12410xcd,0xe1,0xe0,0x46,0x8f,0x96,0x35,0xa7,0x04,0xe5,0x78,0xfe,0x78,0xed,0xf9,0x33,
12420xeb,0xde,0x0b,0x9f,0xf4,0x79,0xba,0x2a,0x04,0xea,0xdb,0x63,0xd4,0x8c,0x82,0x12,
12430x0e,0xdd,0xf1,0xa5,0xa4,0x36,0x86,0x43,0x75,0x1f,0x2e,0x84,0xcd,0xbf,0x7a,0x80,
12440x9f,0x96,0x89,0x58,0x69,0xe1,0x31,0x17,0xb1,0x16,0x34,0x53,0xb6,0xf0,0x31,0xfd,
12450xc1,0x1e,0x9e,0x40,0x9f,0xa7,0x56,0x26,0xb0,0xa4,0x15,0x19,0x70,0x1c,0xb3,0x47,
12460x2b,0x8e,0x90,0x43,0x37,0xd7,0xb5,0xba,0x54,0xe5,0xa4,0xda,0x69,0xae,0xb8,0x73,
12470x35,0x47,0x01,0xac,0xd9,0x21,0xff,0x18,0x88,0x0b,0xda,0x4a,0xff,0x26,0x2f,0xef,
12480x15,0xcd,0x6f,0x79,0xf3,0xcb,0x0a,0xaf,0x11,0x3b,0x7e,0xc0,0x11,0xbb,0xeb,0x13,
12490xe7,0xb2,0x28,0x62,0x92,0x90,0x63,0x50,0xf2,0x6f,0x93,0x92,0x67,0xc0,0xde,0x22,
12500x3f,0x6e,0x25,0x00,0x60,0x42,0xfe,0x29,0x8d,0x7b,0x5c,0xc1,0xa9,0x09,0xb4,0xc6,
12510x18,0x56,0x5b,0xb6,0xd0,0xd2,0xdd,0x1b,0x51,0xcb,0x97,0xe7,0x20,0x94,0x97,0xb1,
12520x40,0xff,0x05,0xec,0x10,0xd6,0xa3,0x4d,0xc8,0x32,0x99,0xf0,0xab,0x51,0xda,0x5b,
12530x12,0x70,0x63,0x8a,0x5b,0x63,0x6d,0xc8,0x31,0x76,0x70,0xe3,0x02,0x18,0x4e,0x0e,
12540x9c,0xea,0xab,0x78,0xfa,0x07,0x48,0x59,0xc6
1255};
1256
1257/* chain0_0 -> chain0_1:
1258 * A simple, valid chain
1259 */
1260static const BYTE chain0_0[] = {
12610x30,0x82,0x01,0xc2,0x30,0x82,0x01,0x2d,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
12620x73,0x87,0xdb,0x32,0x3a,0x6c,0x89,0x74,0x0f,0xda,0x07,0xd4,0x6a,0x2c,0x81,
12630x59,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
12640x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
12650x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
12660x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
12670x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
12680x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
12690x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
12700x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
12710x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
12720x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
12730x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
12740xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
12750x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
12760x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
12770xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
12780x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
12790x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
12800xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
12810x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
12820x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x82,0xcd,0x5c,0x0a,
12830x9d,0x0d,0x3f,0xd1,0xd8,0x74,0xfc,0x52,0x65,0x11,0x76,0x10,0x62,0xb0,0x9a,
12840xc5,0x54,0x66,0xae,0xfa,0xd5,0x66,0x36,0xcb,0x1e,0xe7,0xad,0xb9,0xfa,0x2e,
12850xbb,0xb9,0x0b,0x4b,0xbf,0xe7,0x26,0x75,0x2c,0xae,0x2d,0x14,0x84,0x92,0xae,
12860x56,0xdf,0x55,0x56,0xf3,0xa6,0xc5,0x21,0xa8,0x5e,0xce,0x7a,0x9d,0xff,0x7f,
12870x10,0xd9,0xc3,0x05,0x52,0x86,0xdc,0x9b,0x46,0xe7,0x69,0xfb,0x1e,0xf0,0x68,
12880x7d,0x34,0xd7,0xf3,0x56,0xe3,0x0a,0xf3,0xe4,0xdc,0x0f,0xd6,0x4d,0xa8,0xc5,
12890xb5,0x5b,0xbf,0x0b,0x5d,0xe7,0x76,0xa1,0x56,0xc1,0xa7,0x55,0xa0,0x88,0x7f,
12900x57,0x8e,0x64,0xda,0x6f,0xaa,0x9c,0xca,0x47,0xf3,0x37,0x08,0x4b,0x9a,0xdc,
12910xbc,0x65,0x4d,0x9a };
1292static const BYTE chain0_1[] = {
12930x30,0x82,0x01,0x98,0x30,0x82,0x01,0x01,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
12940x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
12950x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
12960x65,0x72,0x74,0x31,0x30,0x22,0x18,0x0f,0x31,0x36,0x30,0x31,0x31,0x31,0x32,
12970x32,0x31,0x38,0x35,0x32,0x30,0x37,0x5a,0x18,0x0f,0x31,0x36,0x32,0x38,0x30,
12980x38,0x32,0x36,0x30,0x35,0x32,0x30,0x35,0x37,0x5a,0x30,0x10,0x31,0x0e,0x30,
12990x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,
13000x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
13010x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,
13020xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,
13030xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,
13040xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,
13050x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,
13060x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,
13070xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,
13080xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,
13090x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,
13100xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,
13110x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x3c,
13120x90,0x45,0x5b,0x81,0x25,0x9d,0x7a,0x10,0x9f,0x15,0x25,0x03,0x52,0x78,0x09,
13130x6f,0x62,0x66,0x78,0x01,0x69,0x6a,0x7f,0x19,0x02,0x18,0xd8,0xc0,0x89,0x2f,
13140x0f,0x47,0xa7,0x17,0xc2,0xd7,0xe2,0x81,0x7e,0xea,0x54,0xd4,0xe6,0xcc,0x8f,
13150x88,0x1a,0xee,0x28,0x42,0x6c,0x77,0xf5,0xec,0x8c,0x05,0xa5,0x7f,0xee,0x2e,
13160x0b,0xbc,0xde,0xb0,0x71,0x2c,0x83,0x32,0xcb,0x49,0x00,0x46,0x03,0x95,0x58,
13170x6c,0x57,0x0c,0x5a,0x69,0x3c,0xfa,0xbf,0x46,0x7a,0x4d,0xd0,0x23,0x77,0x23,
13180xac,0x1d,0x33,0xb7,0x87,0xb4,0xc6,0x6b,0x52,0xa1,0xed,0x9a,0xb8,0x8e,0x1a,
13190xcb,0xc3,0xd3,0x50,0xe0,0x0d,0x12,0x5d,0x0e,0x84,0x52,0xa5,0x12,0x76,0x6b,
13200xbf,0xb8,0xbe,0x51,0xc0,0xa6,0xae };
1321/* chain0_0 -> chain1_1:
1322 * A chain whose signature is bad
1323 */
1324static const BYTE chain1_1[] = {
13250x30,0x82,0x01,0x98,0x30,0x82,0x01,0x01,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
13260x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
13270x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
13280x65,0x72,0x74,0x31,0x30,0x22,0x18,0x0f,0x31,0x36,0x30,0x31,0x31,0x31,0x32,
13290x32,0x31,0x38,0x35,0x32,0x30,0x37,0x5a,0x18,0x0f,0x31,0x36,0x32,0x38,0x30,
13300x38,0x32,0x36,0x30,0x35,0x32,0x30,0x35,0x37,0x5a,0x30,0x10,0x31,0x0e,0x30,
13310x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,
13320x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
13330x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xad,0x7e,0xca,
13340xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,0x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,
13350x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,0x9e,0x07,0x78,0x08,0x11,0x12,0x2d,
13360x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,0x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,
13370x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,0xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,
13380x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,0x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,
13390x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,0x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,
13400x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,0xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,
13410x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,0x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,
13420x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,
13430x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0xad,
13440x16,0xaa,0x77,0xab,0xd5,0x1a,0x6c,0x90,0x5d,0x4e,0x61,0x49,0x89,0x6e,0x9f,
13450x03,0x7b,0x4a,0x49,0xb1,0x46,0x75,0xf3,0x69,0xeb,0x96,0x13,0x3c,0x35,0xb5,
13460x37,0x3b,0xc2,0x84,0x5c,0xe5,0x7c,0x46,0xf6,0x6b,0xc7,0x4e,0x72,0x91,0xf4,
13470xde,0xc5,0x66,0x0f,0x2d,0x39,0xc6,0x9e,0x8e,0x25,0x4d,0x3f,0x7b,0x45,0xe1,
13480xc6,0x1a,0x7e,0x28,0x83,0xf8,0x87,0x30,0x4e,0xa5,0xfd,0x32,0x7a,0xed,0x53,
13490x10,0x3b,0x14,0xe5,0xf1,0x32,0x77,0xf1,0x29,0x72,0x98,0x2b,0xa3,0x17,0xd6,
13500x8c,0x65,0xaa,0x3b,0x6d,0xab,0xb3,0xbe,0xfa,0x72,0x38,0xf7,0xd0,0xb6,0x0f,
13510x5c,0x0d,0xec,0x17,0x43,0x2a,0xfd,0xc1,0x01,0x43,0x98,0xd3,0x1b,0x84,0x3e,
13520x32,0xcf,0xda,0x1d,0xc2,0xc9,0x61 };
1353/* chain2_0 -> chain0_1:
1354 * A chain whose time nesting is invalid.
1355 */
1356static const BYTE chain2_0[] = {
13570x30,0x82,0x01,0xc2,0x30,0x82,0x01,0x2d,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
13580x11,0x58,0x73,0x34,0x62,0x2b,0xa5,0xa5,0x54,0x4a,0x14,0x48,0x3c,0x90,0x4e,
13590x86,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
13600x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
13610x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x36,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
13620x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x36,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
13630x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
13640x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
13650x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
13660x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
13670x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
13680x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
13690x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
13700xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
13710x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
13720x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
13730xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
13740x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
13750x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
13760xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
13770x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
13780x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x88,0x44,0x83,0xfc,
13790x38,0xa4,0x6e,0x53,0x24,0x8f,0xac,0xcf,0xc0,0xb9,0xaa,0xdc,0x5f,0x30,0xf3,
13800xc3,0x5c,0xd5,0x10,0x4e,0xb7,0x30,0x24,0x80,0xb3,0x5e,0xcb,0x6a,0xec,0x88,
13810xa6,0x02,0xbd,0x37,0x97,0xcc,0x60,0x04,0x03,0xdd,0xfa,0xb0,0x4e,0xd6,0x00,
13820x22,0x41,0xaa,0x2b,0x3c,0x3e,0x1f,0xcd,0xe3,0xf0,0x88,0x84,0x1c,0x00,0xc4,
13830x97,0x69,0x3d,0x40,0x6d,0x33,0x8c,0xb7,0xb4,0x41,0xf3,0x28,0x00,0xa8,0xa1,
13840x81,0x76,0x50,0x69,0xb2,0x2c,0xc4,0x56,0xab,0x2b,0x4a,0x77,0x41,0x3e,0x6c,
13850x78,0x0b,0xf9,0x6c,0x86,0x84,0x1a,0x5a,0x0e,0x8c,0x12,0x59,0xbd,0x74,0xf3,
13860xb9,0x91,0xa1,0x70,0x91,0xf3,0xe8,0x8d,0x78,0x42,0xc3,0x4f,0xfa,0xef,0xe7,
13870xca,0x09,0x5c,0x18 };
1388/* chain3_0 -> chain0_1:
1389 * A chain whose root cannot be a CA.
1390 */
1391static const BYTE chain3_0[] = {
13920x30,0x82,0x01,0xad,0x30,0x82,0x01,0x1a,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
13930x63,0x73,0xee,0x45,0x59,0x76,0x1a,0x9e,0x47,0xf1,0xfb,0xf0,0x42,0x44,0x26,
13940xeb,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
13950x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
13960x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
13970x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
13980x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
13990x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
14000x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
14010x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
14020x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
14030x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
14040x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
14050xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
14060x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
14070x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
14080xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
14090x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
14100x00,0x01,0xa3,0x10,0x30,0x0e,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,
14110xff,0x04,0x02,0x30,0x00,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,
14120x00,0x03,0x81,0x81,0x00,0x53,0xb7,0xa9,0x90,0xe0,0x88,0x36,0xc0,0x2d,0xb1,
14130xa3,0x97,0xff,0x16,0x62,0x29,0xa2,0xfd,0x92,0x90,0xb7,0x8d,0xd9,0xdf,0x57,
14140x94,0x5a,0xce,0x36,0x5c,0x95,0x24,0xab,0x4f,0x63,0x55,0xa7,0xea,0x8b,0xaf,
14150xd9,0x41,0x6a,0x2f,0xd8,0x9e,0x1c,0x2d,0xc0,0x11,0x52,0x09,0x4b,0x31,0x1f,
14160x5e,0x8f,0x4b,0xbf,0x20,0x73,0x2d,0x04,0x11,0x56,0x6d,0xb1,0xbe,0xb4,0x5d,
14170x70,0x6b,0xb2,0xd0,0xd3,0xf5,0x5d,0x60,0x08,0x65,0x2c,0xe3,0x78,0x5a,0x05,
14180x36,0xe1,0xf1,0x67,0x3a,0x25,0xf3,0x47,0x83,0xce,0x4f,0xb0,0x74,0x7a,0x35,
14190xa0,0x7f,0x70,0x64,0x8a,0x14,0x66,0x03,0xf6,0xae,0xdf,0x1b,0xf5,0x80,0x87,
14200x06,0x39,0x76,0x70,0x7b,0xd2,0x83,0xe9,0xce,0x1f,0xf8,0x66,0xc1 };
1421/* chain4_0 -> chain4_1 -> chain4_2:
1422 * A chain whose path length constraint is violated.
1423 */
1424static const BYTE chain4_0[] = {
14250x30,0x82,0x01,0xc5,0x30,0x82,0x01,0x30,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
14260x01,0xcd,0x67,0x9e,0xec,0xae,0x1e,0x69,0x16,0x3f,0x92,0x8a,0xed,0x6d,0x57,
14270xac,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
14280x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
14290x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
14300x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
14310x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
14320x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
14330x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
14340x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
14350x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
14360x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
14370x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
14380xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
14390x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
14400x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
14410xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
14420x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
14430x00,0x01,0xa3,0x26,0x30,0x24,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
14440xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x12,0x06,0x03,0x55,0x1d,0x13,0x01,
14450x01,0xff,0x04,0x08,0x30,0x06,0x01,0x01,0xff,0x02,0x01,0x00,0x30,0x0b,0x06,
14460x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x70,
14470x60,0x8d,0x5f,0x29,0x8e,0x6b,0x48,0x79,0xaa,0xd1,0x7a,0xbb,0x6c,0x7c,0x54,
14480x11,0x55,0x08,0xb9,0x2e,0x5e,0x53,0xd6,0x9b,0xb9,0xe4,0xc8,0x0e,0x48,0xe7,
14490x20,0x9e,0xbd,0x7c,0x55,0xb8,0xf1,0x69,0x0c,0x08,0xd6,0x32,0x32,0xd9,0x05,
14500x81,0x8a,0x33,0x4c,0x57,0x20,0xae,0xe8,0xde,0x61,0x63,0x85,0xc8,0xe1,0x1d,
14510xef,0x4b,0xa4,0x42,0x4e,0x0a,0x25,0x48,0x2b,0xc2,0x06,0x79,0x90,0x45,0x90,
14520x94,0x3d,0xb0,0x36,0xe6,0x60,0xe6,0xd2,0x1a,0x11,0x01,0x4b,0xaf,0x23,0x4d,
14530x62,0x6b,0xdc,0x3a,0xae,0x61,0x93,0xce,0x7b,0xae,0x21,0xfe,0x42,0xd8,0x86,
14540x36,0x19,0x00,0x18,0x13,0x4d,0xf9,0xd1,0x94,0xa2,0xb7,0xbd,0xb0,0x5c,0x9b,
14550x5c,0x03,0xf5,0x86,0x85,0x07,0x1c };
1456static const BYTE chain4_1[] = {
14570x30,0x82,0x01,0xb3,0x30,0x82,0x01,0x1e,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
14580x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
14590x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
14600x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
14610x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
14620x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
14630x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
14640x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
14650x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
14660x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
14670x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
14680xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
14690x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
14700x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
14710x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
14720x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
14730x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
14740x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
14750xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
14760x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
14770x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x26,0x56,0x31,0x53,
14780x65,0xe3,0xd8,0x59,0xc8,0x6f,0xa3,0x5b,0x8a,0x11,0x53,0xde,0x8d,0x6f,0x6d,
14790x8c,0xe1,0x79,0x25,0xb2,0xbf,0xc6,0x3b,0xa1,0x8b,0x6b,0xcd,0x99,0xcf,0x0c,
14800x6f,0xaa,0xbc,0xd0,0x3d,0xb2,0xf8,0x1c,0x6f,0xb0,0x84,0x7b,0xb1,0x88,0xec,
14810xd6,0x77,0xbe,0xb1,0x0b,0x8c,0x18,0x85,0xb7,0x38,0x81,0x12,0xc9,0xc7,0x4a,
14820xf6,0x83,0xc4,0xd9,0xae,0xb6,0x1d,0xbb,0xd2,0x08,0x01,0x4a,0xe1,0xdc,0x8f,
14830x67,0xa9,0xed,0xe2,0x3f,0x96,0xf6,0x72,0x7e,0x4a,0x63,0x46,0xc4,0x82,0x89,
14840x0a,0x81,0xc8,0x3a,0x9c,0xe7,0x23,0x5f,0x8d,0xd9,0x6c,0xb2,0x5d,0x9a,0x40,
14850x04,0x04,0xd5,0x4a,0x29,0x57,0xbd,0x18,0xd8,0xca,0x1f,0xf7,0xf8,0x23,0x07,
14860x4b,0x03,0xa3,0xd9 };
1487static const BYTE chain4_2[] = {
14880x30,0x82,0x01,0x98,0x30,0x82,0x01,0x01,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
14890x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
14900x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
14910x65,0x72,0x74,0x32,0x30,0x22,0x18,0x0f,0x31,0x36,0x30,0x31,0x31,0x31,0x32,
14920x32,0x31,0x38,0x35,0x32,0x30,0x37,0x5a,0x18,0x0f,0x31,0x36,0x32,0x38,0x30,
14930x38,0x32,0x36,0x30,0x35,0x32,0x30,0x35,0x37,0x5a,0x30,0x10,0x31,0x0e,0x30,
14940x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,
14950x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
14960x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xc3,0x31,0x35,
14970xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,0xf6,0x8f,0xf9,0x05,0x73,0x1d,
14980xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,0x77,0xa0,0x42,0x80,0xf4,0x79,
14990xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,0x8a,0x80,0xed,0x07,0xfc,0x64,
15000x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,0xd9,0x79,0xea,0xdd,0x10,0xe8,
15010x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,0xd1,0xc9,0x77,0x14,0x30,0x85,
15020x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,0xa7,0xd5,0xb8,0x44,0xb5,0x20,
15030xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,0xaf,0x37,0xd1,0x39,0x0c,0x0d,
15040xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,0x65,0x2d,0x08,0x24,0x51,0x1d,
15050xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,
15060x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0xaa,
15070x0e,0x17,0x8d,0x5b,0xca,0x11,0xda,0x5a,0xb5,0xd4,0xe8,0x63,0xce,0xa5,0x67,
15080x11,0x2f,0xf8,0xb8,0x9f,0x89,0x46,0x7d,0x20,0x94,0x5f,0x0d,0x02,0x7e,0x5e,
15090x8c,0x33,0xfc,0x24,0x56,0x08,0xe6,0xf1,0x4d,0x29,0xd5,0xef,0x03,0xe3,0x9a,
15100xc6,0xcd,0x6e,0xe3,0xe6,0x45,0xaa,0xce,0x5a,0x2f,0x37,0x6c,0x07,0xd2,0x28,
15110x63,0x8e,0x55,0x8a,0xad,0xe3,0x8a,0x58,0x3d,0x24,0x09,0x1e,0x9a,0x7d,0x5f,
15120x05,0xc4,0x51,0x18,0x17,0x46,0x33,0x4d,0x72,0x05,0xc2,0x02,0xb6,0x05,0x22,
15130x23,0xcc,0xf9,0x1f,0x87,0x6c,0x4a,0x3d,0x6f,0xdb,0x59,0xf6,0x79,0x81,0x02,
15140x45,0x9f,0xc8,0xc3,0xf0,0x90,0x82,0xaf,0x58,0x80,0x18,0xea,0x73,0x50,0x29,
15150x71,0x8d,0xc1,0x9e,0x53,0x19,0x5a };
1516/* chain5_0 -> chain5_1:
1517 * A chain whose name constraints aren't met.
1518 */
1519static const BYTE chain5_0[] = {
15200x30,0x82,0x01,0xe0,0x30,0x82,0x01,0x4b,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
15210xed,0xb8,0x3b,0xf2,0x95,0xe6,0x8e,0xdf,0x75,0x6a,0x22,0xbc,0xca,0x51,0xb6,
15220x83,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
15230x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
15240x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
15250x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
15260x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
15270x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
15280x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
15290x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
15300x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
15310x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
15320x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
15330xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
15340x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
15350x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
15360xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
15370x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
15380x00,0x01,0xa3,0x41,0x30,0x3f,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
15390xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
15400x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1c,0x06,0x03,0x55,0x1d,
15410x1e,0x01,0x01,0xff,0x04,0x12,0x30,0x10,0xa0,0x0e,0x30,0x0c,0x82,0x0a,0x77,
15420x69,0x6e,0x65,0x68,0x71,0x2e,0x6f,0x72,0x67,0x30,0x0b,0x06,0x09,0x2a,0x86,
15430x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x7f,0x98,0xd1,0x58,
15440x70,0x36,0x2c,0x08,0x63,0x2c,0xf9,0xe0,0x16,0xda,0x59,0xd9,0x1b,0xa5,0xba,
15450xe0,0xec,0xd9,0x0a,0x1b,0x78,0xd0,0xea,0x49,0xc7,0x01,0x06,0x78,0xe5,0xb3,
15460x81,0x5a,0x53,0x3d,0x9b,0x0d,0xaf,0xc8,0x04,0x57,0x15,0xee,0xfd,0x05,0x80,
15470x72,0x8a,0x54,0x51,0x6a,0x15,0xdc,0xbf,0xfc,0xe3,0x04,0xe4,0x6f,0x20,0xb2,
15480xfd,0xa6,0x32,0x4c,0xbc,0x1b,0x60,0xf7,0xc3,0x9c,0x5f,0x17,0x94,0xc7,0xdf,
15490x9f,0xae,0xdb,0x72,0x8a,0x98,0x28,0x9d,0x26,0x1f,0x14,0x76,0xb1,0x8e,0x26,
15500xf6,0x97,0x96,0x57,0x14,0x9e,0x44,0x13,0xef,0x85,0xc1,0x6f,0x38,0xda,0xf2,
15510x3a,0xf6,0xad,0x0b,0x35,0xcf,0xea,0xb0,0x5a,0x9c,0x36,0x80,0x45,0x1f,0x88,
15520x2f,0xff,0xb4,0xb5 };
1553static const BYTE chain5_1[] = {
15540x30,0x82,0x01,0xb2,0x30,0x82,0x01,0x1b,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
15550x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
15560x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
15570x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,
15580x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,
15590x33,0x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
15600x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
15610x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
15620x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
15630x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
15640xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
15650x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
15660x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
15670x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
15680x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
15690x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
15700xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
15710xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x1c,0x30,0x1a,0x30,0x18,0x06,0x03,0x55,
15720x1d,0x07,0x01,0x01,0xff,0x04,0x0e,0x30,0x0c,0x82,0x0a,0x77,0x69,0x6e,0x65,
15730x68,0x71,0x2e,0x63,0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,
15740x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x08,0x08,0xf5,0x1c,0xca,
15750x3b,0x5a,0xd7,0x45,0xac,0x29,0x5c,0x10,0x9d,0xb0,0x4a,0xdb,0x36,0x0b,0x39,
15760x14,0x87,0x3d,0x06,0xe8,0x0d,0x54,0xa7,0xb9,0x50,0x14,0x29,0x05,0xd2,0x75,
15770xe4,0x88,0xd8,0x8e,0x7e,0xab,0x61,0xba,0x3c,0xb2,0x4f,0x8f,0xfd,0x00,0x6b,
15780x94,0x69,0xf0,0x13,0x40,0x7d,0x4e,0x7c,0xac,0xf0,0x1b,0x07,0x2c,0x96,0x46,
15790xf6,0x38,0x38,0xc6,0x65,0x2c,0x02,0x28,0x62,0x6f,0x7d,0xf9,0x4d,0xff,0xb1,
15800x38,0x0e,0xce,0x89,0x0e,0xdd,0x22,0x51,0xd2,0x6b,0x0e,0x80,0x3c,0xa6,0x0c,
15810xe7,0x8b,0x3b,0x2a,0x2f,0x46,0xed,0xda,0x96,0x1a,0xc1,0x5c,0xfe,0xe0,0xef,
15820xdb,0xe0,0x11,0xc4,0x56,0x12,0xe2,0x4b,0x84,0xde,0xaf,0x7f,0x3c,0x9f,0xcb,
15830xb6,0xac,0x92 };
1584/* chain0_0 -> chain4_1:
1585 * A chain whose end certificate is a CA.
1586 */
1587/* chain0_0 -> chain 7_1:
1588 * A chain whose end cert has a bad critical extension.
1589 */
1590static const BYTE chain7_1[] = {
15910x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
15920x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
15930x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
15940x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,
15950x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
15960x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
15970x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
15980x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
15990x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,
16000x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,
16010xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,
16020x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,
16030xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,
16040x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,
16050x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,
16060xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,
16070x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,
16080x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
16090x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x9f,0x69,0xfd,0x26,0xd5,0x4b,
16100xe0,0xab,0x12,0x21,0xb9,0xfc,0xf7,0xe0,0x0c,0x09,0x94,0xad,0x27,0xd7,0x9d,
16110xa3,0xcc,0x46,0x2a,0x25,0x9a,0x24,0xa7,0x31,0x58,0x78,0xf5,0xfc,0x30,0xe1,
16120x6d,0xfd,0x59,0xab,0xbe,0x69,0xa0,0xea,0xe3,0x7d,0x7a,0x7b,0xe5,0x85,0xeb,
16130x86,0x6a,0x84,0x3c,0x96,0x01,0x1a,0x70,0xa7,0xb8,0xcb,0xf2,0x11,0xe7,0x52,
16140x9c,0x58,0x2d,0xac,0x63,0xce,0x72,0x4b,0xad,0x62,0xa8,0x1d,0x75,0x96,0xe2,
16150x27,0xf5,0x6f,0xba,0x91,0xf8,0xf1,0xb0,0xbf,0x90,0x24,0x6d,0xba,0x5d,0xd7,
16160x39,0x63,0x3b,0x7c,0x04,0x5d,0x89,0x9d,0x1c,0xf2,0xf7,0xcc,0xdf,0x6e,0x8a,
16170x43,0xa9,0xdd,0x86,0x05,0xa2,0xf3,0x22,0x2d,0x1e,0x70,0xa1,0x59,0xd7,0xa5,
16180x94,0x7d };
1619/* chain8_0 -> chain8_1 -> chain8_2:
1620 * A chain whose root cert validity time doesn't overlap the end cert's
1621 * validity time.
1622 */
1623static const BYTE chain8_0[] = {
16240x30,0x82,0x01,0xc2,0x30,0x82,0x01,0x2d,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
16250x76,0x09,0xeb,0xc1,0x06,0x61,0x69,0x50,0x0e,0x0c,0xaf,0xc9,0x0a,0x6b,0x93,
16260x50,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
16270x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
16280x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
16290x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x30,0x36,0x30,0x31,0x30,0x30,0x30,
16300x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
16310x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
16320x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
16330x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
16340x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
16350x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
16360x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
16370xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
16380x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
16390x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
16400xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
16410x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
16420x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
16430xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
16440x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
16450x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x87,0x74,0x4a,0xb7,
16460xbe,0xd4,0x21,0xa5,0x5f,0x51,0xd6,0xea,0x89,0x4c,0x68,0x16,0x38,0x09,0x49,
16470xf5,0xef,0xac,0x0c,0x59,0x27,0xa3,0x0f,0x8f,0xb9,0x21,0x35,0x91,0xef,0x15,
16480x91,0xe2,0xac,0xf2,0xad,0xfe,0x05,0x9a,0x9f,0x24,0x81,0x75,0x69,0x57,0x51,
16490xe3,0x2f,0x29,0xad,0x55,0x8b,0xc7,0x25,0xbe,0xcd,0x38,0xa7,0xff,0xdb,0xb0,
16500x85,0x4e,0x8d,0x56,0x5a,0x79,0xf7,0x7a,0xfb,0x64,0x3d,0x4e,0x04,0x34,0xf7,
16510x2f,0x7f,0xe3,0x21,0xee,0x8d,0xd3,0xb0,0x26,0x7d,0xb8,0xc3,0xb6,0x0f,0xe2,
16520x3f,0xb6,0x8a,0x53,0x27,0xc0,0xe1,0xfb,0xd8,0xea,0xfe,0xed,0x80,0x51,0xb6,
16530x46,0x59,0x65,0x6c,0x34,0x01,0xcc,0x2e,0x50,0xc7,0x4e,0x37,0x83,0x54,0x3f,
16540x7b,0xa2,0x1d,0x3a };
1655static const BYTE chain8_1[] = {
16560x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
16570x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
16580x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
16590x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,
16600x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,
16610x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
16620x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
16630x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
16640x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,
16650x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,
16660xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,
16670x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,
16680xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,
16690x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,
16700x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,
16710xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,
16720x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,
16730x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
16740x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x22,0xf1,0x66,0x00,0x79,0xd2,
16750xe6,0xb2,0xb2,0xf7,0x2f,0x98,0x92,0x7d,0x73,0xc3,0x6c,0x5c,0x77,0x20,0xe3,
16760xbf,0x3e,0xe0,0xb3,0x5c,0x68,0xb4,0x9b,0x3a,0x41,0xae,0x94,0xa0,0x80,0x3a,
16770xfe,0x5d,0x7a,0x56,0x87,0x85,0x44,0x45,0xcf,0xa6,0xd3,0x10,0xe7,0x73,0x41,
16780xf2,0x7f,0x88,0x85,0x91,0x8e,0xe6,0xec,0xe2,0xce,0x08,0xbc,0xa5,0x76,0xe5,
16790x4d,0x1d,0xb7,0x70,0x31,0xdd,0xc9,0x9a,0x15,0x32,0x11,0x5a,0x4e,0x62,0xc8,
16800xd1,0xf8,0xec,0x46,0x39,0x5b,0xe7,0x67,0x1f,0x58,0xe8,0xa1,0xa0,0x5b,0xf7,
16810x8a,0x6d,0x5f,0x91,0x18,0xd4,0x90,0x85,0xff,0x30,0xc7,0xca,0x9c,0xc6,0x92,
16820xb0,0xca,0x16,0xc4,0xa4,0xc0,0xd6,0xe8,0xff,0x15,0x19,0xd1,0x30,0x61,0xf3,
16830xef,0x9f };
1684static const BYTE chain8_2[] = {
16850x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
16860x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
16870x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
16880x72,0x74,0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x39,0x30,0x31,0x30,0x30,
16890x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
16900x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
16910x03,0x13,0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
16920x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
16930x30,0x81,0x89,0x02,0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,
16940xc6,0x32,0xe9,0xb1,0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,
16950x9c,0x7f,0x11,0x7e,0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,
16960x8f,0x0c,0xd0,0xeb,0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,
16970x9b,0xde,0x42,0x63,0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,
16980x39,0x23,0x87,0xca,0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,
16990xb7,0x7c,0x55,0xcb,0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,
17000xd5,0xad,0x0f,0x87,0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,
17010xf9,0x2a,0xb1,0x60,0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,
17020x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
17030x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x33,0x95,0x73,0x7c,0x7c,0xb0,
17040xbb,0x2b,0xe0,0xc4,0x12,0xf0,0x26,0x85,0x97,0x0c,0x81,0xde,0xc5,0x52,0x04,
17050xcb,0xee,0x11,0x9a,0x2e,0xa2,0xc4,0x76,0xd5,0x57,0xd1,0x2f,0x2d,0x6f,0x42,
17060xbf,0x23,0x85,0x59,0x5c,0x96,0x8d,0xef,0xbc,0xb6,0xf5,0xd3,0x66,0x99,0x54,
17070x95,0x09,0x28,0x0b,0x4f,0x05,0x5f,0x61,0x20,0xa8,0x0d,0x46,0x9a,0xab,0x29,
17080x97,0x6b,0xa3,0xcd,0xd7,0x5a,0xda,0xaa,0x8e,0xad,0x5a,0x66,0x58,0xf6,0x63,
17090x76,0x10,0xdc,0xb0,0xee,0x3f,0x82,0x6d,0x29,0xb9,0xcb,0x99,0x15,0xbb,0xb9,
17100x74,0x73,0x00,0x14,0x74,0x79,0xad,0x89,0x73,0xaa,0xa2,0x0e,0x52,0xe8,0x28,
17110x69,0xe6,0x8c,0x1e,0xce,0x3a,0x6d,0x85,0x33,0x1e,0x21,0xa3,0x42,0x61,0x3a,
17120xeb,0x25 };
1713/* chain9_0 -> chain7_1:
1714 * A cyclic chain.
1715 */
1716static const BYTE chain9_0[] = {
17170x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
17180x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
17190x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
17200x72,0x74,0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,
17210x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
17220x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
17230x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
17240x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
17250x30,0x81,0x89,0x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,
17260xca,0x50,0x82,0x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,
17270xc5,0xc3,0x34,0x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,
17280x03,0x7a,0xe7,0x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,
17290xc1,0x33,0x91,0xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,
17300x1b,0x99,0xc5,0x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,
17310x49,0xba,0xcd,0x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,
17320x72,0xb6,0x1c,0xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,
17330x1f,0x2f,0x35,0x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,
17340x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
17350x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x2c,0xf5,0x25,0xaa,0xb4,0x63,
17360x5a,0x5d,0xae,0x7b,0x42,0x79,0xbc,0x41,0x2f,0x8a,0x2a,0x70,0x9f,0x8e,0xb2,
17370x14,0x1b,0x6f,0xb2,0xf3,0x3e,0xab,0x06,0x9c,0xa8,0x92,0x43,0xc4,0x57,0x63,
17380xa4,0xee,0x83,0x04,0xab,0xa5,0x2c,0xd9,0x90,0xed,0xc9,0x4d,0xa8,0x7b,0xca,
17390x3b,0x5f,0xdf,0x46,0xe1,0x3b,0x7f,0x72,0xb7,0x92,0x82,0xe6,0x05,0xc3,0x64,
17400x38,0xfb,0x86,0x13,0xeb,0x19,0xb6,0x16,0x82,0x63,0x84,0x13,0x04,0x38,0x51,
17410x4c,0x89,0x12,0xf1,0x13,0x46,0x75,0x4e,0x99,0x46,0xcb,0xc6,0x76,0x9f,0x97,
17420x9c,0xda,0x63,0x01,0x6a,0x71,0x68,0xc4,0x21,0x67,0xa6,0x51,0x19,0x5e,0xc7,
17430x8c,0x8d,0x63,0x5c,0xbe,0x04,0x8f,0xad,0xea,0xa5,0xcd,0xc3,0xd6,0x6b,0xc7,
17440xb5,0x56 };
1745/* chain0_0 -+
1746 * +-> chain7_1
1747 * chain10_1 -+
1748 * A chain with two issuers, only one of whose dates is valid.
1749 */
1750static const BYTE chain10_1[] = {
17510x30,0x82,0x01,0x9b,0x30,0x82,0x01,0x08,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
17520xbf,0x99,0x4f,0x14,0x03,0x77,0x44,0xb8,0x49,0x02,0x70,0xa1,0xb8,0x9c,0xa7,
17530x24,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
17540x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
17550x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
17560x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
17570x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
17580x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
17590x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
17600x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
17610x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
17620x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
17630x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
17640xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
17650x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
17660x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
17670xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
17680x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
17690x00,0x01,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x03,0x81,
17700x81,0x00,0xa8,0xec,0x8c,0x34,0xe7,0x2c,0xdf,0x75,0x87,0xc4,0xf7,0xda,0x71,
17710x72,0x29,0xb2,0x48,0xa8,0x2a,0xec,0x7b,0x7d,0x19,0xb9,0x5f,0x1d,0xd9,0x91,
17720x2b,0xc4,0x28,0x7e,0xd6,0xb5,0x91,0x69,0xa5,0x8a,0x1a,0x1f,0x97,0x98,0x46,
17730x9d,0xdf,0x12,0xf6,0x45,0x62,0xad,0x60,0xb6,0xba,0xb0,0xfd,0xf5,0x9f,0xc6,
17740x98,0x05,0x4f,0x4d,0x48,0xdc,0xee,0x69,0xbe,0xb8,0xc4,0xc4,0xd7,0x1b,0xb1,
17750x1f,0x64,0xd6,0x45,0xa7,0xdb,0xb3,0x87,0x63,0x0f,0x54,0xe1,0x3a,0x6b,0x57,
17760x36,0xd7,0x68,0x65,0xcf,0xda,0x57,0x8d,0xcd,0x84,0x75,0x47,0x26,0x2c,0xef,
17770x1e,0x8f,0xc7,0x3b,0xee,0x5d,0x03,0xa6,0xdf,0x3a,0x20,0xb2,0xcc,0xc9,0x09,
17780x2c,0xfe,0x2b,0x79,0xb0,0xca,0x2c,0x9a,0x81,0x6b };
1779/* chain0_0 -+
1780 * +-> chain7_1
1781 * chain11_1 -+
1782 * A chain with two issuers, only one of whose public keys matches the
1783 * signature.
1784 */
1785static const BYTE chain11_1[] = {
17860x30,0x82,0x01,0x9b,0x30,0x82,0x01,0x08,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
17870x72,0x41,0xa2,0x53,0xd2,0x33,0x0b,0xac,0x4a,0x30,0xfe,0x0a,0xe0,0x2e,0xd4,
17880x03,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
17890x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
17900x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
17910x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
17920x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
17930x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
17940x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
17950x02,0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,
17960xb1,0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,
17970x7e,0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,
17980xeb,0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,
17990x63,0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,
18000xca,0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,
18010xcb,0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,
18020x87,0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,
18030x60,0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,
18040x00,0x01,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x03,0x81,
18050x81,0x00,0x51,0x17,0xfb,0x2a,0x69,0x31,0x36,0xa7,0x37,0x2c,0x1f,0x38,0xee,
18060xe3,0xf1,0xae,0x63,0x61,0xac,0x63,0x13,0xc2,0x3b,0x29,0xca,0xb1,0x8e,0x27,
18070x41,0xfa,0xb3,0x7d,0x42,0xbe,0xf0,0x9c,0xe0,0xc7,0x69,0xba,0x80,0xf4,0x87,
18080x7c,0x6f,0x77,0x70,0x6b,0x77,0x7d,0x5c,0x58,0x95,0x07,0xbd,0xac,0xe2,0x5d,
18090x65,0x12,0xb0,0xae,0xf4,0x01,0x14,0x01,0xba,0xf9,0xa0,0x32,0x10,0xea,0x09,
18100x12,0xcf,0xf1,0xbc,0x37,0xc9,0x42,0xc3,0x8c,0x9e,0xa2,0xc3,0x5e,0x2e,0x56,
18110xe9,0xa7,0xd8,0x1c,0x1c,0x8c,0x1c,0x2f,0xd8,0xfb,0x67,0x44,0xd4,0xa3,0x79,
18120x6d,0x53,0x17,0x56,0x3c,0x3e,0xd0,0x67,0x36,0x0c,0x8b,0x77,0xab,0x40,0xc7,
18130x27,0xd9,0x44,0x69,0x13,0xeb,0x09,0xec,0x06,0xe2 };
1814/* chain12_0 -> chain7_1:
1815 * A chain whose root has an invalid signature.
1816 */
1817static const BYTE chain12_0[] = {
18180x30,0x82,0x01,0xc2,0x30,0x82,0x01,0x2d,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
18190x73,0x87,0xdb,0x32,0x3a,0x6c,0x89,0x74,0x0f,0xda,0x07,0xd4,0x6a,0x2c,0x81,
18200x59,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
18210x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
18220x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
18230x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
18240x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
18250x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
18260x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
18270x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
18280x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
18290x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
18300x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
18310xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
18320x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
18330x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
18340xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
18350x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
18360x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
18370xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
18380x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
18390x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x82,0xcd,0x5c,0x0a,
18400x9d,0x0d,0x3f,0xd1,0xd8,0x74,0xfc,0x52,0x65,0x11,0x76,0x10,0x62,0xb0,0x9a,
18410xc5,0x54,0x66,0xae,0xfa,0xd5,0x66,0x36,0xcb,0x1e,0xe7,0xad,0xb9,0xfa,0x2e,
18420xbb,0xb9,0x0b,0x4b,0xbf,0xe7,0x26,0x75,0x2c,0xae,0x2d,0x14,0x84,0x92,0xae,
18430x56,0xdf,0x55,0x56,0xf3,0xa6,0xc5,0x21,0xa8,0x5e,0xce,0x7a,0x9d,0xff,0x7f,
18440x10,0xd9,0xc3,0x05,0x52,0x86,0xdc,0x9b,0x46,0xe7,0x69,0xfb,0x1e,0xf0,0x68,
18450x7d,0x34,0xd7,0xf3,0x56,0xe3,0x0a,0xf3,0xe4,0xdc,0x0f,0xd6,0x4d,0xa8,0xc5,
18460xb5,0x5b,0xbf,0x0b,0x5d,0xe7,0x76,0xa1,0x56,0xc1,0xa7,0x55,0xa0,0x88,0x7f,
18470x57,0x8e,0x64,0xda,0x6f,0xaa,0x9c,0xca,0x47,0xf3,0x37,0x08,0x4b,0x9a,0xdc,
18480xbc,0x65,0x4d,0xff };
1849/* chain0_0 -> chain13_1:
1850 * A chain whose time validity nesting is invalid.
1851 */
1852static const BYTE chain13_1[] = {
18530x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
18540x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
18550x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
18560x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x36,0x30,0x31,0x30,0x31,0x30,0x30,
18570x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
18580x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
18590x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
18600x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
18610x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,
18620x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,
18630xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,
18640x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,
18650xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,
18660x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,
18670x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,
18680xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,
18690x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,
18700x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
18710x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x85,0xc9,0xc5,0x08,0x0b,0xb1,
18720xff,0x58,0x8f,0xee,0x66,0x5f,0xa3,0x77,0x63,0x9f,0xd1,0x53,0x03,0xdc,0xf6,
18730x59,0x08,0x02,0x1f,0xdc,0x52,0x5a,0x52,0x38,0xa4,0x0b,0x83,0x12,0x19,0xd6,
18740xb5,0xb8,0x81,0x17,0xcd,0x10,0x5d,0x96,0x16,0x9d,0x51,0x5b,0xf9,0x31,0x3e,
18750x36,0xac,0x30,0xd5,0xd6,0xa0,0x30,0x5c,0x9c,0xcb,0xe1,0x02,0xfd,0x73,0xc3,
18760xa1,0x58,0xfe,0x12,0xb0,0xa6,0xbd,0x11,0x86,0xdb,0x20,0x17,0x29,0x1e,0x09,
18770x63,0x4d,0x28,0xe4,0x55,0x2d,0xa1,0x78,0xde,0x28,0x0b,0x1b,0x35,0x40,0x4c,
18780xf1,0xb0,0x6e,0x82,0x34,0x2b,0x7f,0x3b,0x2e,0x27,0x6b,0xf7,0xde,0x73,0x9a,
18790x98,0xac,0x79,0x33,0x1a,0xdd,0x03,0x95,0x60,0x8a,0x08,0xba,0xcb,0x8a,0xbf,
18800xea,0xe3 };
1881/* chain14_0 -> chain14_1:
1882 * A chain whose root is allowed to sign certificates.
1883 */
1884static const BYTE chain14_0[] = {
18850x30,0x82,0x01,0xc2,0x30,0x82,0x01,0x2d,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
18860xe0,0x3a,0xae,0xb4,0x23,0x65,0x59,0x5c,0x05,0x85,0x76,0x8b,0x8e,0x7f,0xa4,
18870x12,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
18880x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
18890x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
18900x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
18910x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
18920x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
18930x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
18940x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
18950x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
18960x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
18970x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
18980xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
18990x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
19000x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
19010xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
19020x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
19030x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
19040xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
19050x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
19060x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x10,0xb9,0x5c,0x13,
19070x7f,0xe9,0xf3,0x45,0xfb,0x40,0xa2,0x2b,0xe6,0x99,0x5e,0x74,0x9a,0x0b,0x15,
19080xa0,0x16,0xf2,0xff,0x6e,0xfa,0x92,0x78,0x4f,0x05,0x02,0xbd,0x70,0x4f,0x28,
19090x6f,0x43,0xc7,0xaa,0xaf,0xb6,0xd1,0x60,0x77,0xc6,0x8a,0x58,0x85,0xf0,0xac,
19100x04,0x90,0x4a,0x06,0xf0,0x17,0x88,0x12,0x90,0x22,0x65,0x98,0xb1,0x67,0x93,
19110x8a,0xe6,0x2d,0x54,0x79,0x99,0xd3,0x8c,0xe7,0x86,0xf4,0xec,0x08,0xae,0x18,
19120xa3,0xa9,0x23,0x7b,0x4f,0x8d,0xde,0xe6,0xf9,0x11,0x92,0xcf,0xe0,0x45,0xc3,
19130x42,0x72,0x43,0x64,0x07,0x8b,0x7f,0x28,0x11,0x0a,0xea,0xf2,0xbd,0x24,0x1b,
19140x93,0x5c,0x6f,0xed,0x67,0xae,0xee,0x7e,0x40,0x88,0x8b,0x28,0x2c,0xe7,0xee,
19150xec,0x34,0xe0,0x7b };
1916static const BYTE chain14_1[] = {
19170x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
19180x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
19190x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
19200x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,
19210x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
19220x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
19230x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
19240x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
19250x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,0x48,
19260x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,0x20,
19270x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,0xb8,
19280xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,0x3c,
19290x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,0x8e,
19300x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,0x28,
19310xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,0x98,
19320x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,0x4a,
19330xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,0x00,
19340x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
19350x81,0x81,0x00,0x63,0x67,0x7f,0x82,0x91,0xe2,0x42,0x45,0x98,0xbc,0xe5,0x03,
19360x6c,0x7d,0xc9,0xab,0xdb,0x95,0xc4,0x96,0x86,0xfd,0xcf,0xe6,0x32,0x4a,0x0b,
19370x7c,0x5b,0x76,0x39,0x71,0x26,0x54,0x60,0x1d,0xce,0x4f,0x29,0x22,0x9a,0xb7,
19380x7d,0x8d,0xfa,0x2c,0x99,0x0d,0xa6,0xa4,0x2e,0xd3,0xf6,0x3e,0xaf,0xea,0x89,
19390xa0,0x16,0x40,0x0f,0xf1,0x50,0xaa,0x98,0xdc,0xc2,0x69,0x90,0x6f,0xc6,0x4a,
19400xee,0x26,0x9e,0x5e,0x7d,0x4b,0x06,0x65,0x54,0x15,0x67,0x9e,0xe5,0x1d,0x1c,
19410x6f,0x0c,0x6e,0x84,0x29,0xf9,0x12,0xe9,0x71,0xdd,0xaf,0x9a,0x3d,0x2a,0xc1,
19420x60,0xeb,0x27,0xed,0x7c,0xbf,0xc4,0x84,0x17,0xa5,0xa6,0x41,0x29,0x13,0x8d,
19430x6c,0xdd,0x7c,0x3d,0x01,0x03,0xf8,0x70,0x97,0x3c,0x45 };
1944/* chain15_0 -> chain14_1:
1945 * A chain whose root is not allowed to sign certificates.
1946 */
1947static const BYTE chain15_0[] = {
19480x30,0x82,0x01,0xc2,0x30,0x82,0x01,0x2d,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
19490x10,0xb3,0x62,0xed,0xed,0x4a,0x92,0xda,0x74,0x62,0x74,0x48,0x99,0xa5,0xe9,
19500x0d,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
19510x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
19520x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
19530x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
19540x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
19550x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
19560x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
19570x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
19580x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
19590x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
19600x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
19610xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
19620x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
19630x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
19640xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
19650x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
19660x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
19670xff,0x04,0x04,0x03,0x02,0x00,0x00,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
19680x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
19690x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x51,0x48,0x43,0xc9,
19700xe3,0xb4,0xbc,0xc1,0x1d,0x98,0x14,0x69,0xd9,0xec,0x83,0x4d,0x07,0x70,0x58,
19710xe9,0x45,0x88,0xe5,0x11,0x4a,0xf0,0x58,0x2d,0x8d,0x08,0x35,0x76,0x0e,0x42,
19720x9f,0x62,0xda,0xf9,0x71,0x51,0x58,0xc7,0xd3,0x7e,0x88,0x6a,0x92,0xd2,0xfe,
19730x86,0x4f,0xa2,0x17,0xe3,0xdd,0x9b,0x55,0xe0,0xdc,0xa7,0xe7,0x08,0xe0,0x0a,
19740xa6,0xf3,0x09,0x17,0x63,0x10,0x89,0xe6,0x07,0x00,0x8e,0x2c,0x44,0x79,0x3e,
19750x6c,0x51,0x9a,0xa3,0x59,0x17,0x8b,0x90,0xa8,0x82,0x64,0x09,0x77,0x95,0x55,
19760xd6,0x38,0x43,0x8c,0x66,0xe6,0x7b,0xb9,0xf4,0xe1,0x7b,0x86,0x9b,0x8e,0xe3,
19770x56,0xc9,0x62,0x62,0x6e,0x3d,0x4d,0x67,0x8d,0x5e,0x20,0xe5,0xd0,0xfa,0xaa,
19780xbe,0x91,0xa8,0xf1 };
1979/* chain0_0 -> chain16_1:
1980 * A chain whose end cert has a name constraints extension saying it can't
1981 * be a CA, and which also has a key usage extension allowing it to sign
1982 * certs.
1983 */
1984static const BYTE chain16_1[] = {
19850x30,0x82,0x01,0xb0,0x30,0x82,0x01,0x1b,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
19860x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
19870x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
19880x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
19890x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
19900x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
19910x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
19920x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
19930x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
19940x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
19950x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
19960xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
19970x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
19980x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
19990x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
20000x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
20010x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
20020x00,0x01,0xa3,0x20,0x30,0x1e,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
20030xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,
20040x01,0xff,0x04,0x02,0x30,0x00,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,
20050x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x47,0xdb,0xb4,0x95,0xb1,0xe2,0x5c,
20060x03,0x3b,0x28,0x16,0x6b,0xed,0xe9,0x38,0xeb,0x74,0xe6,0xde,0xc5,0xaf,0x93,
20070xad,0x2e,0xaa,0x29,0x14,0x21,0xae,0xe9,0x7d,0x46,0x18,0x05,0x67,0xad,0x2d,
20080xaa,0xfa,0xf8,0x41,0xc8,0x8c,0xde,0xe0,0xd7,0x3e,0x9a,0x89,0x58,0x71,0x73,
20090x57,0xc1,0xd9,0x42,0x51,0xfb,0xaa,0xb8,0x50,0x98,0x9b,0x87,0xb1,0x14,0xa2,
20100x23,0xa7,0xfc,0x51,0x23,0x97,0x9f,0xef,0x06,0x83,0x63,0x91,0x14,0xc3,0xbe,
20110xaa,0xc8,0x7c,0x03,0x0e,0x41,0x5a,0x23,0x9c,0x1d,0x32,0x3a,0xa5,0xf1,0x6a,
20120x56,0x6c,0x36,0xe3,0x3d,0xa1,0xac,0x8e,0x1a,0x75,0x30,0x1c,0xd8,0xbc,0xae,
20130x3e,0x4a,0x1a,0x05,0xf4,0x09,0x24,0xb2,0x89,0x75,0xa4,0x28,0x78,0x6b,0xfa,
20140xcc };
2015/* chain0_0 -> chain17_1 -> chain17_2:
2016 * A root cert, an intermediate cert that's a CA and allowed to sign a cert,
2017 * and an end cert.
2018 */
2019static const BYTE chain17_1[] = {
20200x30,0x82,0x01,0xb3,0x30,0x82,0x01,0x1e,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
20210x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
20220x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
20230x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
20240x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
20250x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
20260x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
20270x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
20280x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
20290x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
20300x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
20310xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
20320x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
20330x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
20340x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
20350x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
20360x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
20370x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
20380xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
20390x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
20400x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x26,0x56,0x31,0x53,
20410x65,0xe3,0xd8,0x59,0xc8,0x6f,0xa3,0x5b,0x8a,0x11,0x53,0xde,0x8d,0x6f,0x6d,
20420x8c,0xe1,0x79,0x25,0xb2,0xbf,0xc6,0x3b,0xa1,0x8b,0x6b,0xcd,0x99,0xcf,0x0c,
20430x6f,0xaa,0xbc,0xd0,0x3d,0xb2,0xf8,0x1c,0x6f,0xb0,0x84,0x7b,0xb1,0x88,0xec,
20440xd6,0x77,0xbe,0xb1,0x0b,0x8c,0x18,0x85,0xb7,0x38,0x81,0x12,0xc9,0xc7,0x4a,
20450xf6,0x83,0xc4,0xd9,0xae,0xb6,0x1d,0xbb,0xd2,0x08,0x01,0x4a,0xe1,0xdc,0x8f,
20460x67,0xa9,0xed,0xe2,0x3f,0x96,0xf6,0x72,0x7e,0x4a,0x63,0x46,0xc4,0x82,0x89,
20470x0a,0x81,0xc8,0x3a,0x9c,0xe7,0x23,0x5f,0x8d,0xd9,0x6c,0xb2,0x5d,0x9a,0x40,
20480x04,0x04,0xd5,0x4a,0x29,0x57,0xbd,0x18,0xd8,0xca,0x1f,0xf7,0xf8,0x23,0x07,
20490x4b,0x03,0xa3,0xd9 };
2050static const BYTE chain17_2[] = {
20510x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
20520x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
20530x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
20540x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,
20550x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
20560x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
20570x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
20580x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
20590x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,
20600xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,
20610x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,
20620x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,
20630xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,
20640xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,
20650xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,
20660xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,
20670x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,
20680x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
20690x81,0x81,0x00,0x5c,0xb5,0x55,0xd7,0x2c,0x70,0xc5,0x6e,0xc0,0x8e,0x30,0x1f,
20700xf2,0x8e,0x55,0xd6,0xf6,0x95,0xa4,0x51,0xd8,0xf0,0x39,0x98,0x12,0x57,0xa7,
20710x6d,0x0c,0xfd,0xcb,0x25,0xf1,0xc4,0x73,0x85,0x78,0x82,0x15,0x12,0x08,0xb6,
20720x05,0x85,0x4f,0x5a,0x59,0x1f,0x03,0xdf,0x04,0xef,0xc2,0xb0,0xee,0xd7,0x73,
20730x09,0xca,0xbb,0xfb,0xd8,0xec,0x8b,0x39,0x01,0x14,0xc9,0x03,0xc9,0x08,0x4d,
20740x97,0xc7,0xf2,0x0b,0x54,0x67,0xf7,0x7c,0xc6,0xee,0x74,0xd5,0xa2,0x10,0x3e,
20750xd9,0x3a,0x7a,0x9d,0xeb,0xeb,0xd8,0x8e,0x43,0x74,0xc3,0xa5,0x3b,0x1a,0x4b,
20760x8a,0xbc,0x6a,0x2c,0x15,0x4b,0x72,0x0b,0xac,0xa4,0x1a,0x97,0x80,0xf8,0xb1,
20770xd3,0xd7,0x1a,0xf3,0xf5,0x9f,0x7c,0x4c,0x7d,0x7c,0xc7 };
2078/* chain0_0 -> chain18_1 -> chain18_2:
2079 * A root, an intermediate CA not allowed to sign certs, and an end cert.
2080 */
2081static const BYTE chain18_1[] = {
20820x30,0x82,0x01,0xb3,0x30,0x82,0x01,0x1e,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
20830x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
20840x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
20850x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,
20860x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,
20870x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
20880x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
20890x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
20900x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
20910x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
20920x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
20930xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
20940x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
20950x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
20960x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
20970x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
20980x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
20990x00,0x01,0xa3,0x23,0x30,0x21,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
21000xff,0x04,0x04,0x03,0x02,0x00,0x00,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
21010x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x09,0x2a,0x86,
21020x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x2c,0x49,0x9f,0xc2,
21030xce,0xf5,0x0d,0x59,0xaa,0xff,0xa0,0x72,0xa7,0xcf,0x4c,0x35,0xc5,0x5e,0x1b,
21040x32,0xe6,0x46,0x53,0x3e,0x70,0xe6,0xbc,0xa2,0x37,0xe0,0x9d,0x41,0x40,0x12,
21050x9e,0x81,0x2b,0xd9,0x46,0x3a,0xdc,0xd7,0x37,0xc4,0xbf,0x0f,0x0c,0xf8,0x74,
21060x7a,0xf9,0x92,0x2d,0xf8,0xfe,0xec,0x17,0xfb,0x38,0x4f,0x83,0x02,0x6f,0x49,
21070xb4,0xad,0xb2,0x84,0x41,0x13,0x71,0x32,0xee,0x34,0x8d,0xea,0x2b,0x64,0x9b,
21080x26,0x76,0xe9,0xcc,0xdf,0x73,0xe0,0x84,0xc1,0x8b,0xea,0xfc,0x8c,0x18,0x93,
21090xfd,0xa3,0x5f,0x8f,0xde,0x05,0x11,0x88,0x62,0x0b,0x03,0x35,0x1a,0xef,0x65,
21100x82,0x06,0xc8,0xa5,0xf6,0xd2,0x1e,0x46,0xc2,0x86,0xe7,0x26,0x8e,0x9e,0x10,
21110x33,0xe2,0x89,0x93 };
2112static const BYTE chain18_2[] = {
21130x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
21140x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
21150x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
21160x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,
21170x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
21180x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
21190x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
21200x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
21210x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,
21220xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,
21230x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,
21240x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,
21250xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,
21260xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,
21270xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,
21280xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,
21290x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,
21300x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
21310x81,0x81,0x00,0x5c,0xb5,0x55,0xd7,0x2c,0x70,0xc5,0x6e,0xc0,0x8e,0x30,0x1f,
21320xf2,0x8e,0x55,0xd6,0xf6,0x95,0xa4,0x51,0xd8,0xf0,0x39,0x98,0x12,0x57,0xa7,
21330x6d,0x0c,0xfd,0xcb,0x25,0xf1,0xc4,0x73,0x85,0x78,0x82,0x15,0x12,0x08,0xb6,
21340x05,0x85,0x4f,0x5a,0x59,0x1f,0x03,0xdf,0x04,0xef,0xc2,0xb0,0xee,0xd7,0x73,
21350x09,0xca,0xbb,0xfb,0xd8,0xec,0x8b,0x39,0x01,0x14,0xc9,0x03,0xc9,0x08,0x4d,
21360x97,0xc7,0xf2,0x0b,0x54,0x67,0xf7,0x7c,0xc6,0xee,0x74,0xd5,0xa2,0x10,0x3e,
21370xd9,0x3a,0x7a,0x9d,0xeb,0xeb,0xd8,0x8e,0x43,0x74,0xc3,0xa5,0x3b,0x1a,0x4b,
21380x8a,0xbc,0x6a,0x2c,0x15,0x4b,0x72,0x0b,0xac,0xa4,0x1a,0x97,0x80,0xf8,0xb1,
21390xd3,0xd7,0x1a,0xf3,0xf5,0x9f,0x7c,0x4c,0x7d,0x7c,0xc7 };
2140/* A chain which allows a.com, where the end cert is issued to a.com */
2141static const BYTE chain19_0[] = {
21420x30,0x82,0x01,0xd9,0x30,0x82,0x01,0x46,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
21430x22,0xf4,0xa5,0xbe,0xe7,0x5f,0x91,0x89,0x4b,0x10,0x5c,0x86,0x89,0x94,0x36,
21440xab,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
21450x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
21460x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
21470x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
21480x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
21490x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
21500x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
21510x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
21520x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
21530x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
21540x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
21550xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
21560x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
21570x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
21580xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
21590x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
21600x00,0x01,0xa3,0x3c,0x30,0x3a,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
21610xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
21620x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x17,0x06,0x03,0x55,0x1d,
21630x1e,0x01,0x01,0xff,0x04,0x0d,0x30,0x0b,0xa0,0x09,0x30,0x07,0x82,0x05,0x61,
21640x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,
21650x03,0x81,0x81,0x00,0x19,0x84,0xa8,0xed,0x39,0xb3,0xc0,0x7e,0xc1,0x50,0x50,
21660xb7,0x4c,0xf2,0xf4,0x16,0xc8,0x2a,0x00,0xc9,0x9e,0x0a,0x77,0x7f,0x65,0xb0,
21670xe9,0x46,0x88,0x39,0x03,0xd9,0xcc,0x83,0x27,0x22,0xd3,0xec,0x98,0xb3,0x0d,
21680xf6,0x85,0xe2,0x3f,0x82,0x02,0x96,0xd2,0x9f,0x17,0xcb,0x7c,0x06,0xbb,0xe5,
21690x58,0x0d,0x9e,0xc3,0x01,0xcd,0xba,0xee,0x26,0x7d,0xc6,0x2b,0x50,0xa7,0xf3,
21700x9e,0x28,0x87,0xa8,0x9a,0x8b,0x1c,0x73,0x79,0x3e,0xed,0xa0,0xcf,0x70,0xf0,
21710x53,0x89,0x1f,0xbf,0x0d,0x6b,0x30,0xb1,0x5e,0x16,0x6d,0x57,0x81,0xe9,0xad,
21720x63,0xe5,0x03,0x50,0x99,0x3d,0xb3,0xad,0x1d,0x9c,0x6b,0x32,0xea,0xc3,0x7f,
21730x54,0x22,0x89,0x69,0xbf,0x73,0xdc,0x87,0xff,0x4b,0xf1,0xf6 };
2174static const BYTE chain19_1[] = {
21750x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
21760x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
21770x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
21780x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
21790x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
21800x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
21810x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
21820x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
21830x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
21840x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
21850xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
21860x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
21870x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
21880x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
21890x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
21900x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
21910xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
21920xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
21930x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x61,0x2e,0x63,0x6f,0x6d,0x30,0x0d,
21940x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
21950x81,0x00,0x8e,0x1d,0xf5,0xac,0x59,0x8e,0x39,0x7a,0x4d,0x79,0x79,0x68,0xa9,
21960x13,0x25,0xbf,0x71,0x62,0x73,0x55,0xb0,0x22,0xcb,0x8a,0x22,0xa2,0x4f,0xa3,
21970xfc,0x22,0xa3,0x2c,0x4c,0xe3,0x95,0xc6,0x97,0xe1,0x97,0xf1,0xee,0xb0,0xb4,
21980xac,0x7a,0x80,0xe3,0xdd,0x02,0x5a,0x42,0x30,0xe7,0x27,0x0e,0x69,0xff,0x6b,
21990xb2,0x83,0x7a,0x4f,0xc7,0xaa,0x05,0x95,0xb5,0x18,0x5f,0xa8,0x29,0x97,0x3b,
22000xf2,0xb8,0x35,0x06,0x1b,0xfe,0xfa,0xa8,0x91,0xc7,0xb7,0x1b,0x8b,0xaa,0xd5,
22010x23,0x88,0x7f,0xd9,0x88,0x45,0xee,0xd4,0xb9,0xcd,0x36,0xd4,0x5a,0x28,0x86,
22020x0d,0x92,0x5d,0xcb,0x8c,0xf1,0xd9,0xfb,0xcc,0xa4,0x65,0xda,0x8d,0x6e,0xfd,
22030x99,0xed,0xf1,0xc6,0x45,0xdf,0x5b,0x1f,0xf5,0xa0 };
2204/* A chain which allows a.com, where the end cert is issued to b.com */
2205static const BYTE chain20_0[] = {
22060x30,0x82,0x01,0xd9,0x30,0x82,0x01,0x46,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
22070x5e,0xf5,0xbf,0x5a,0x8d,0x92,0xd9,0x8e,0x46,0x09,0xbf,0x50,0x27,0x2f,0xc1,
22080x4b,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
22090x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
22100x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
22110x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
22120x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
22130x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
22140x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
22150x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
22160x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
22170x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
22180x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
22190xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
22200x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
22210x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
22220xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
22230x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
22240x00,0x01,0xa3,0x3c,0x30,0x3a,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
22250xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
22260x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x17,0x06,0x03,0x55,0x1d,
22270x1e,0x01,0x01,0xff,0x04,0x0d,0x30,0x0b,0xa0,0x09,0x30,0x07,0x82,0x05,0x61,
22280x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,
22290x03,0x81,0x81,0x00,0x4e,0xd8,0x55,0xa5,0x18,0xa8,0xc3,0xc4,0xa2,0xed,0x11,
22300xff,0x12,0x78,0xbe,0xa5,0xaf,0x6c,0x9f,0xa5,0x94,0x46,0xd3,0x74,0x8e,0x44,
22310x45,0x9f,0xf2,0xf9,0x0b,0xbe,0x28,0x08,0xf2,0x28,0x4a,0xd5,0x00,0x71,0xb2,
22320xa5,0x01,0x3b,0x86,0xd6,0x8f,0xb8,0x9a,0xbc,0x8e,0xe4,0x33,0x9e,0xc2,0x5d,
22330xcc,0x5c,0x24,0x90,0x52,0xbc,0xe6,0x83,0x38,0x77,0xd6,0x25,0x1b,0xfa,0x37,
22340xc1,0xf6,0x22,0xa7,0xff,0xc6,0x4b,0x16,0x73,0xf5,0xca,0x04,0xad,0xa5,0x71,
22350xff,0x15,0x5b,0x34,0x84,0xd4,0x45,0xce,0xfb,0xd1,0x76,0x13,0x2f,0x53,0x3e,
22360x82,0xba,0x2f,0x53,0x82,0x48,0xcb,0x3a,0x77,0xd4,0xb0,0x0f,0xb5,0x38,0x68,
22370x73,0x3f,0x49,0x60,0x0f,0x61,0x58,0xae,0x25,0xd8,0xe6,0x73 };
2238static const BYTE chain20_1[] = {
22390x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
22400x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
22410x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
22420x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
22430x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
22440x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
22450x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
22460x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
22470x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
22480x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
22490xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
22500x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
22510x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
22520x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
22530x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
22540x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
22550xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
22560xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
22570x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x62,0x2e,0x63,0x6f,0x6d,0x30,0x0d,
22580x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
22590x81,0x00,0x17,0xbb,0xec,0x37,0x4c,0xaf,0x0f,0xb0,0x57,0x04,0x01,0x67,0x69,
22600x77,0xe4,0x73,0xc4,0x12,0x0a,0xa5,0xfe,0x0c,0x8b,0x89,0x90,0x98,0x0d,0x3b,
22610x37,0xbe,0xe7,0x7e,0xba,0x84,0x27,0x5f,0xed,0x40,0xc9,0x57,0x91,0x6b,0x72,
22620xe3,0x4c,0xfa,0x9f,0x6d,0xd5,0xe6,0xf8,0x33,0xa1,0x6e,0xbd,0x5f,0x8d,0xfb,
22630x8f,0xe6,0xe1,0x6a,0x64,0x51,0x1e,0x3b,0x04,0xe4,0x3b,0xa2,0x49,0x15,0x23,
22640x35,0x17,0x61,0x4a,0xa6,0x03,0xee,0xa2,0xa6,0x4f,0x42,0x13,0x75,0x14,0xd3,
22650x87,0x3b,0x71,0x6a,0x2f,0x11,0xcd,0xe6,0xd0,0x63,0xce,0x62,0x8c,0xd9,0x64,
22660xc0,0xaa,0x53,0x4e,0x5e,0xa2,0x4c,0x6e,0xd0,0x13,0x49,0x2e,0xdf,0x81,0x3a,
22670x3c,0x67,0xcf,0x4e,0xde,0x95,0x14,0x74,0xa8,0x31 };
2268/* A chain which allows A.com, where the end cert is issued to a.COM */
2269static const BYTE chain21_0[] = {
22700x30,0x82,0x01,0xd9,0x30,0x82,0x01,0x46,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
22710x66,0xaf,0x57,0xcc,0x4b,0x41,0xd1,0x96,0x40,0xef,0xa4,0xc9,0xe0,0x96,0xad,
22720x5c,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
22730x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
22740x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
22750x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
22760x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
22770x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
22780x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
22790x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
22800x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
22810x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
22820x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
22830xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
22840x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
22850x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
22860xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
22870x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
22880x00,0x01,0xa3,0x3c,0x30,0x3a,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
22890xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
22900x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x17,0x06,0x03,0x55,0x1d,
22910x1e,0x01,0x01,0xff,0x04,0x0d,0x30,0x0b,0xa0,0x09,0x30,0x07,0x82,0x05,0x41,
22920x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,
22930x03,0x81,0x81,0x00,0x66,0x0e,0x8e,0x3d,0x1b,0xe8,0x51,0x2d,0x5f,0xfa,0xf5,
22940x01,0xb1,0xf8,0x8e,0x65,0xf6,0xcf,0x63,0x40,0x27,0x20,0x41,0xfc,0xa2,0x97,
22950x14,0x8d,0x46,0x33,0x3b,0x79,0xc7,0x3d,0xc8,0x1d,0xb3,0xf1,0xf3,0x52,0xfb,
22960x76,0x55,0x00,0xb9,0x4d,0x89,0x4c,0xfd,0xa9,0xcc,0xa0,0x96,0x86,0x15,0x40,
22970xfc,0xd2,0x5b,0x60,0xca,0x9c,0x00,0xf8,0x02,0x6a,0x56,0x1c,0x79,0x94,0x01,
22980x8a,0x60,0x44,0x1a,0x2f,0x34,0x94,0xb6,0xfb,0x00,0xa7,0xd1,0x47,0xd8,0x8f,
22990xf7,0xf5,0xfc,0xfd,0xeb,0xf7,0xa1,0xab,0xa7,0x38,0x13,0x16,0x50,0x04,0x8e,
23000xf2,0x17,0x45,0xac,0x10,0x83,0x08,0x1c,0x0d,0xe9,0xa9,0xea,0x4e,0x0e,0x06,
23010x09,0xca,0xb3,0x54,0xd1,0x44,0x10,0x47,0xac,0xaf,0xbc,0xbb };
2302static const BYTE chain21_1[] = {
23030x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
23040x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
23050x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
23060x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
23070x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
23080x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
23090x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
23100x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
23110x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
23120x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
23130xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
23140x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
23150x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
23160x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
23170x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
23180x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
23190xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
23200xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
23210x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x61,0x2e,0x43,0x4f,0x4d,0x30,0x0d,
23220x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
23230x81,0x00,0x65,0xd5,0xaa,0x17,0x1f,0xa8,0xda,0x62,0x04,0x9d,0xf5,0xe0,0x82,
23240xe4,0xed,0xc6,0x1b,0x54,0x8f,0xb7,0x46,0xac,0xcd,0xaf,0xaa,0xe3,0xd8,0x4a,
23250x8b,0xd9,0xe6,0x87,0x4f,0x8c,0xa6,0x86,0x97,0x75,0x08,0x42,0xf1,0xed,0x3e,
23260x70,0x99,0x13,0xf2,0x00,0xf8,0xcc,0xf4,0x55,0x36,0xf5,0x29,0x97,0x47,0x71,
23270xb8,0x40,0x8d,0x47,0x03,0xe2,0x66,0x3c,0x00,0x01,0xcc,0xa7,0x39,0xf7,0xf9,
23280x76,0xfc,0x14,0x31,0x1f,0x6f,0xf0,0x87,0xe0,0x43,0x8b,0xad,0x98,0xa2,0xe3,
23290xfe,0x49,0xa3,0x1e,0x57,0x34,0xe8,0x61,0x97,0x23,0xc8,0x03,0x05,0xa4,0x2f,
23300xab,0x49,0x97,0xff,0x3f,0xbf,0x6c,0x08,0x2c,0x6b,0x4d,0x6a,0x54,0x62,0x2e,
23310x16,0x83,0xac,0xdd,0x21,0x8f,0xe7,0x71,0x12,0x5f };
2332/* A chain which allows A.com, where the end cert is issued to b.COM */
2333static const BYTE chain22_0[] = {
23340x30,0x82,0x01,0xd9,0x30,0x82,0x01,0x46,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
23350x75,0xff,0x32,0x4c,0x24,0xbb,0x4e,0xb9,0x45,0x70,0xc3,0x4a,0xe1,0xfd,0xdb,
23360xdc,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
23370x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
23380x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
23390x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
23400x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
23410x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
23420x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
23430x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
23440x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
23450x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
23460x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
23470xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
23480x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
23490x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
23500xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
23510x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
23520x00,0x01,0xa3,0x3c,0x30,0x3a,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
23530xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
23540x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x17,0x06,0x03,0x55,0x1d,
23550x1e,0x01,0x01,0xff,0x04,0x0d,0x30,0x0b,0xa0,0x09,0x30,0x07,0x82,0x05,0x41,
23560x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,
23570x03,0x81,0x81,0x00,0x43,0x9b,0xcf,0x0d,0x31,0x9a,0x33,0x9d,0x7a,0xf8,0x2b,
23580x5a,0x6f,0x52,0x68,0x25,0x7e,0x14,0x04,0xb1,0x88,0x90,0xa3,0xa8,0x4e,0xa8,
23590x0c,0xc2,0x06,0x35,0x6c,0xb9,0x07,0x9a,0x28,0xd0,0x54,0xad,0x5f,0xc7,0x5e,
23600xbf,0x1d,0xde,0x3d,0x76,0x6d,0x32,0x6c,0xc2,0x95,0x26,0x8e,0x6a,0xc5,0xfd,
23610x45,0x47,0x3a,0x2e,0x81,0x47,0x37,0xf9,0xe3,0xdb,0x57,0xd5,0x24,0xe9,0x10,
23620x91,0x55,0xbf,0x48,0xaa,0x27,0x7a,0x32,0xc8,0x96,0xbc,0xd8,0x9d,0xb5,0x03,
23630x6e,0x64,0x50,0xa6,0x9d,0xc2,0xd9,0xdb,0x67,0x8d,0xad,0x76,0x82,0x75,0x42,
23640x78,0x38,0x3c,0x31,0x55,0x1e,0x8f,0xbb,0x18,0xc9,0xf3,0xa4,0x49,0xc7,0x24,
23650x1a,0x9b,0xef,0x61,0x03,0x75,0xb7,0x2b,0x8b,0xd4,0x50,0x8b };
2366static const BYTE chain22_1[] = {
23670x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
23680x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
23690x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
23700x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
23710x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
23720x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
23730x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
23740x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
23750x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
23760x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
23770xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
23780x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
23790x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
23800x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
23810x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
23820x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
23830xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
23840xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
23850x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x62,0x2e,0x43,0x4f,0x4d,0x30,0x0d,
23860x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
23870x81,0x00,0x4b,0x4c,0x2f,0x68,0xd2,0x64,0x82,0x7d,0x95,0x1d,0xd0,0x2b,0xa4,
23880xab,0xc3,0x9d,0xd8,0xc1,0x0f,0xaa,0x3e,0xc6,0xa3,0x11,0x9a,0xc6,0x58,0x40,
23890x49,0xcc,0x92,0x8e,0xd4,0x0d,0x20,0x81,0x65,0x59,0xca,0x7d,0x54,0xce,0xd4,
23900x43,0x95,0xb5,0xc3,0x8c,0x79,0x01,0xc6,0x17,0xf8,0x04,0x13,0xf7,0x7c,0xf7,
23910x7f,0xd7,0xc6,0x62,0x2c,0x21,0x0d,0xab,0x79,0x82,0xd7,0x70,0x9f,0x38,0xba,
23920x5f,0x2f,0xb4,0xfd,0xe8,0x62,0x40,0xe3,0x69,0xe7,0xc4,0xe5,0x5a,0xc1,0x71,
23930xc0,0x9a,0xdc,0xcc,0xa6,0x0e,0x5e,0x84,0x27,0x70,0xc3,0x47,0x98,0x72,0x89,
23940xf9,0x7c,0xe4,0x15,0x4b,0x4c,0xec,0x56,0x1b,0xbf,0x6c,0xf1,0xf7,0x5a,0x76,
23950x80,0x1f,0x43,0x7c,0xae,0xdb,0xb3,0x49,0xbc,0xcb };
2396/* A chain which allows *.com, where the end cert is issued to foo.com */
2397static const BYTE chain23_0[] = {
23980x30,0x82,0x01,0xd9,0x30,0x82,0x01,0x46,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
23990x70,0x29,0x25,0xb2,0x21,0xd9,0x44,0x8a,0x4b,0x9d,0xf3,0x4e,0x6b,0xdb,0x7c,
24000xa7,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
24010x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
24020x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
24030x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
24040x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
24050x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
24060x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
24070x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
24080x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
24090x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
24100x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
24110xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
24120x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
24130x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
24140xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
24150x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
24160x00,0x01,0xa3,0x3c,0x30,0x3a,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
24170xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
24180x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x17,0x06,0x03,0x55,0x1d,
24190x1e,0x01,0x01,0xff,0x04,0x0d,0x30,0x0b,0xa0,0x09,0x30,0x07,0x82,0x05,0x2a,
24200x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,
24210x03,0x81,0x81,0x00,0x39,0x5b,0xf7,0xc9,0x4e,0xac,0x65,0x8b,0x56,0xf4,0xaf,
24220x23,0xaa,0x1b,0x95,0x0a,0x6e,0x62,0xa8,0x39,0xa0,0xc7,0x86,0x6f,0xb2,0xac,
24230x45,0xb6,0x99,0x21,0x66,0x48,0x1a,0x7d,0xe9,0xa9,0xfe,0x5c,0xc6,0xa7,0x25,
24240x89,0x66,0x84,0xc4,0x8e,0x05,0x3b,0x53,0xcf,0xee,0x78,0x88,0x85,0xf1,0x8f,
24250xce,0x6e,0x72,0xc6,0x0c,0x06,0x3d,0xa6,0x12,0xad,0x0a,0x07,0xbb,0x16,0x2f,
24260x0c,0x96,0x0c,0x78,0x31,0xfa,0x93,0x5a,0x2d,0x8d,0x02,0xf5,0xb0,0x1c,0x83,
24270x53,0x14,0xc6,0xa6,0x29,0xa6,0xfe,0xb1,0xc0,0x65,0x72,0x47,0xe9,0xf6,0x01,
24280x09,0xa4,0xff,0xd2,0x60,0x87,0x81,0xc1,0xb4,0xe7,0xe8,0x3e,0x9a,0xba,0x25,
24290xb2,0x36,0x50,0xc4,0xf8,0xb1,0x94,0x07,0xba,0xdd,0x6a,0x95 };
2430static const BYTE chain23_1[] = {
24310x30,0x82,0x01,0xac,0x30,0x82,0x01,0x15,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
24320x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
24330x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
24340x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
24350x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
24360x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
24370x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
24380x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
24390x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
24400x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
24410xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
24420x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
24430x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
24440x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
24450x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
24460x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
24470xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
24480xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x16,0x30,0x14,0x30,0x12,0x06,0x03,0x55,
24490x1d,0x07,0x04,0x0b,0x30,0x09,0x82,0x07,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,
24500x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
24510x03,0x81,0x81,0x00,0xa5,0xc0,0xf6,0xb1,0x63,0x3a,0x23,0xc5,0xb0,0x07,0xb4,
24520x83,0xcf,0x36,0xb4,0xfe,0x3c,0xcb,0xa6,0x6b,0xed,0xf7,0x4c,0x25,0x9f,0x2d,
24530x88,0xcd,0x8a,0xe4,0x88,0xe3,0x33,0xbb,0x50,0x54,0xee,0xc9,0xad,0xed,0x8b,
24540xec,0x1e,0x64,0x36,0xe8,0xb5,0x51,0xca,0xd3,0xa5,0xb9,0x7a,0x2d,0x4b,0xe7,
24550xe8,0xc9,0xa5,0x1d,0x49,0xa1,0x31,0x0f,0x50,0x46,0xb0,0x0f,0xd0,0xf6,0xad,
24560x51,0x18,0x93,0x25,0x8f,0x4f,0x57,0x12,0x72,0x1e,0xa7,0x44,0x37,0x9f,0xf2,
24570xc0,0x28,0xe8,0xbe,0xb8,0x75,0x42,0xef,0x1d,0x7a,0xca,0x87,0x0c,0x11,0x25,
24580xeb,0xab,0xcf,0xe0,0xe1,0x12,0x38,0xf6,0x68,0x31,0xfb,0x16,0xcb,0xef,0x67,
24590x8c,0x4b,0x6b,0xfd,0x69,0xba,0x0b,0x69,0xee,0x74,0xe0,0x73 };
2460/* A chain which allows *.com, where the end cert is issued to foo.bar.com */
2461static const BYTE chain24_0[] = {
24620x30,0x82,0x01,0xd9,0x30,0x82,0x01,0x46,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
24630x57,0xa6,0x19,0xe0,0x2a,0x65,0x89,0x8d,0x4c,0xd9,0x58,0x8f,0xd0,0xe5,0x5a,
24640x02,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
24650x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
24660x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
24670x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
24680x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
24690x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
24700x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
24710x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
24720x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
24730x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
24740x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
24750xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
24760x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
24770x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
24780xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
24790x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
24800x00,0x01,0xa3,0x3c,0x30,0x3a,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
24810xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
24820x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x17,0x06,0x03,0x55,0x1d,
24830x1e,0x01,0x01,0xff,0x04,0x0d,0x30,0x0b,0xa0,0x09,0x30,0x07,0x82,0x05,0x2a,
24840x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,
24850x03,0x81,0x81,0x00,0x44,0xec,0x96,0x0c,0x82,0x70,0xd6,0x4f,0xa0,0xa0,0x9e,
24860x6f,0xfc,0x93,0xcb,0xbb,0x9b,0xb7,0x34,0xf9,0x9c,0x00,0x00,0x7e,0x11,0xeb,
24870x38,0x85,0x8d,0xc9,0xc5,0x69,0x05,0x8e,0xcd,0x82,0x6c,0xe4,0xe5,0xb8,0x63,
24880xa6,0x8b,0xe5,0x17,0x9e,0x24,0x67,0x34,0xdd,0x4c,0x62,0xdd,0x08,0xfe,0xdc,
24890x90,0xe1,0x8e,0x02,0xfe,0xe9,0xc4,0x19,0xfc,0x7d,0xef,0x24,0xcc,0x99,0x9f,
24900x11,0x81,0x6a,0x4d,0x46,0xc8,0x48,0x73,0xc8,0x52,0x89,0xab,0xc7,0x0d,0x9b,
24910x77,0xc0,0xbc,0xb5,0x57,0x51,0x2e,0x64,0xad,0x98,0x39,0xd3,0x6d,0xe9,0xe1,
24920x58,0x32,0x01,0xfa,0xc7,0xa9,0x89,0x58,0x86,0x3c,0x34,0xc3,0x90,0xd6,0xed,
24930x4a,0xdc,0x23,0x66,0xc5,0xab,0x76,0xb9,0x47,0xc8,0x00,0x4c };
2494static const BYTE chain24_1[] = {
24950x30,0x82,0x01,0xb0,0x30,0x82,0x01,0x19,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
24960x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
24970x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
24980x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
24990x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
25000x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
25010x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
25020x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
25030x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
25040x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
25050xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
25060x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
25070x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
25080x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
25090x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
25100x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
25110xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
25120xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x1a,0x30,0x18,0x30,0x16,0x06,0x03,0x55,
25130x1d,0x07,0x04,0x0f,0x30,0x0d,0x82,0x0b,0x66,0x6f,0x6f,0x2e,0x62,0x61,0x72,
25140x2e,0x63,0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
25150x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x28,0x64,0x0b,0xad,0x9f,0x12,0xd4,
25160x77,0xbe,0x1d,0x20,0x3b,0x69,0x74,0xce,0x91,0x69,0xbe,0x3f,0x76,0x1d,0xe7,
25170x81,0x92,0x2b,0xdc,0xbb,0xf9,0xd9,0xba,0xf0,0xba,0x58,0x4a,0x9b,0x47,0x59,
25180x34,0xf7,0x19,0xb5,0x15,0x31,0x35,0x4a,0x6d,0x7b,0x91,0x3d,0xc2,0x6c,0x8f,
25190x58,0x27,0x0f,0x79,0x96,0x57,0xee,0x4e,0x66,0x3e,0xfa,0x5c,0x22,0xb9,0x57,
25200xbf,0x8e,0x7e,0xce,0x98,0x62,0x28,0xb1,0x39,0x0e,0x2d,0x7b,0x5d,0x23,0x70,
25210xf0,0x4a,0x63,0x11,0x66,0x80,0xf9,0x99,0x53,0x80,0xda,0x87,0x87,0xf7,0x3c,
25220x44,0x76,0x66,0x26,0xa7,0x05,0x3c,0x68,0x66,0x1c,0x07,0x4d,0xcf,0x54,0xaa,
25230x5d,0xba,0x7a,0x8f,0x06,0xa7,0x1e,0x86,0xf1,0x5a,0x4b,0x50,0x16,0xad,0x9f,
25240x89 };
2525/* A chain which allows f*.com, where the end cert is issued to foo.com */
2526static const BYTE chain25_0[] = {
25270x30,0x82,0x01,0xda,0x30,0x82,0x01,0x47,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
25280x58,0x61,0x5e,0xb3,0x52,0x48,0xc2,0xa7,0x4a,0xa4,0x70,0x8a,0x64,0x96,0xac,
25290xc6,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
25300x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
25310x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
25320x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
25330x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
25340x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
25350x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
25360x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
25370x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
25380x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
25390x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
25400xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
25410x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
25420x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
25430xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
25440x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
25450x00,0x01,0xa3,0x3d,0x30,0x3b,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
25460xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
25470x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x18,0x06,0x03,0x55,0x1d,
25480x1e,0x01,0x01,0xff,0x04,0x0e,0x30,0x0c,0xa0,0x0a,0x30,0x08,0x82,0x06,0x66,
25490x2a,0x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,
25500x00,0x03,0x81,0x81,0x00,0x18,0xb1,0xb1,0x84,0x3c,0x55,0x29,0xfc,0xd0,0xa7,
25510xcd,0x40,0x88,0x9b,0x35,0x9a,0x14,0xa1,0x34,0xd7,0x20,0xd9,0xfb,0x52,0x2f,
25520xba,0x6c,0x19,0x5c,0xdc,0x0b,0x0b,0xa5,0x21,0xf9,0x0f,0x98,0x23,0xb6,0xcd,
25530x36,0x3f,0xed,0xeb,0xf3,0x10,0xbf,0x62,0x33,0xbb,0xb1,0x94,0x79,0x45,0xe4,
25540x42,0x2b,0x9e,0x32,0x53,0x18,0x19,0x59,0x4d,0xc9,0x2d,0x65,0xa4,0xcb,0xd4,
25550x0b,0x90,0x2a,0xfe,0xea,0x7f,0x10,0xa9,0xb7,0x65,0xf8,0xc3,0xad,0x26,0x4c,
25560x29,0x45,0x60,0xce,0x6a,0x63,0x3e,0xa4,0x6f,0x47,0xaf,0x96,0xea,0xc4,0x35,
25570xb0,0x83,0xd7,0x52,0xa9,0x1a,0xd0,0x9a,0x6d,0xac,0xcf,0x6a,0xa6,0xe8,0x8e,
25580x52,0x61,0x34,0x95,0xd2,0x22,0x83,0x1f,0x86,0x15,0xa0,0x91,0x2b };
2559static const BYTE chain25_1[] = {
25600x30,0x82,0x01,0xac,0x30,0x82,0x01,0x15,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
25610x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
25620x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
25630x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
25640x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
25650x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
25660x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
25670x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
25680x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
25690x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
25700xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
25710x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
25720x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
25730x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
25740x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
25750x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
25760xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
25770xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x16,0x30,0x14,0x30,0x12,0x06,0x03,0x55,
25780x1d,0x07,0x04,0x0b,0x30,0x09,0x82,0x07,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,
25790x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
25800x03,0x81,0x81,0x00,0xa5,0xc0,0xf6,0xb1,0x63,0x3a,0x23,0xc5,0xb0,0x07,0xb4,
25810x83,0xcf,0x36,0xb4,0xfe,0x3c,0xcb,0xa6,0x6b,0xed,0xf7,0x4c,0x25,0x9f,0x2d,
25820x88,0xcd,0x8a,0xe4,0x88,0xe3,0x33,0xbb,0x50,0x54,0xee,0xc9,0xad,0xed,0x8b,
25830xec,0x1e,0x64,0x36,0xe8,0xb5,0x51,0xca,0xd3,0xa5,0xb9,0x7a,0x2d,0x4b,0xe7,
25840xe8,0xc9,0xa5,0x1d,0x49,0xa1,0x31,0x0f,0x50,0x46,0xb0,0x0f,0xd0,0xf6,0xad,
25850x51,0x18,0x93,0x25,0x8f,0x4f,0x57,0x12,0x72,0x1e,0xa7,0x44,0x37,0x9f,0xf2,
25860xc0,0x28,0xe8,0xbe,0xb8,0x75,0x42,0xef,0x1d,0x7a,0xca,0x87,0x0c,0x11,0x25,
25870xeb,0xab,0xcf,0xe0,0xe1,0x12,0x38,0xf6,0x68,0x31,0xfb,0x16,0xcb,0xef,0x67,
25880x8c,0x4b,0x6b,0xfd,0x69,0xba,0x0b,0x69,0xee,0x74,0xe0,0x73 };
2589/* A chain which allows f*.com, where the end cert is issued to bar.com */
2590static const BYTE chain26_0[] = {
25910x30,0x82,0x01,0xda,0x30,0x82,0x01,0x47,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
25920x6f,0x9d,0x2b,0x8a,0x6d,0xf2,0xd4,0x9f,0x42,0xea,0x3d,0x16,0xe8,0xa5,0x80,
25930x7e,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
25940x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
25950x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
25960x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
25970x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
25980x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
25990x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
26000x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
26010x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
26020x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
26030x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
26040xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
26050x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
26060x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
26070xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
26080x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
26090x00,0x01,0xa3,0x3d,0x30,0x3b,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
26100xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
26110x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x18,0x06,0x03,0x55,0x1d,
26120x1e,0x01,0x01,0xff,0x04,0x0e,0x30,0x0c,0xa0,0x0a,0x30,0x08,0x82,0x06,0x66,
26130x2a,0x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,
26140x00,0x03,0x81,0x81,0x00,0x6c,0x34,0x75,0x37,0xd9,0x65,0x9e,0x20,0x05,0x67,
26150x16,0x2e,0xc9,0x53,0xc1,0x69,0x53,0xd6,0x00,0x2c,0x92,0x53,0x91,0xa2,0x2a,
26160x94,0x2c,0xfa,0x6f,0xc1,0x7e,0xee,0x3c,0x22,0x06,0xcc,0xd1,0xdc,0xd7,0x21,
26170x6a,0xf2,0xd3,0x1b,0xaf,0x34,0x20,0x97,0x0f,0xa1,0xec,0x7f,0x72,0x22,0xf2,
26180x98,0x5d,0xf4,0x0b,0x83,0x23,0xa7,0x73,0xb2,0xde,0x12,0x56,0xc9,0x11,0xa6,
26190x5d,0xbc,0x32,0x79,0x41,0x8b,0xe6,0x8c,0x9c,0xf9,0x78,0xd2,0x20,0x96,0x27,
26200x85,0x41,0xc1,0xb8,0x8a,0x74,0x1e,0xbb,0x27,0xc1,0xf7,0xaf,0xe8,0x1c,0x21,
26210xe4,0x10,0x64,0x6a,0xdf,0x79,0x30,0x29,0x0e,0x5a,0x04,0x48,0x18,0xdd,0xb0,
26220xaa,0x43,0x08,0x71,0x2e,0x49,0x9f,0x9b,0xc1,0x1a,0xcc,0x5f,0xee };
2623static const BYTE chain26_1[] = {
26240x30,0x82,0x01,0xac,0x30,0x82,0x01,0x15,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
26250x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
26260x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
26270x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
26280x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
26290x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
26300x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
26310x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
26320x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
26330x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
26340xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
26350x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
26360x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
26370x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
26380x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
26390x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
26400xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
26410xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x16,0x30,0x14,0x30,0x12,0x06,0x03,0x55,
26420x1d,0x07,0x04,0x0b,0x30,0x09,0x82,0x07,0x62,0x61,0x72,0x2e,0x63,0x6f,0x6d,
26430x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
26440x03,0x81,0x81,0x00,0x47,0xa6,0x37,0x73,0x4f,0x19,0xf9,0xaf,0xa9,0xb5,0xa8,
26450x41,0x99,0x31,0xa5,0xaa,0x0d,0x6c,0xb8,0x9d,0xe6,0xf6,0x59,0x4d,0xd8,0x12,
26460x76,0xcc,0x0b,0xaa,0x2f,0x08,0x1c,0x75,0x54,0x5a,0xae,0x09,0x39,0x25,0xfc,
26470x44,0xa1,0x00,0x24,0x5c,0xec,0x20,0x04,0xc7,0xe9,0x14,0xb0,0x71,0x4a,0x33,
26480x41,0x7f,0x1d,0x47,0xe5,0x7c,0xe4,0x86,0xb1,0xeb,0xa4,0x9d,0x2a,0x89,0xeb,
26490x1d,0x15,0xd6,0x42,0x39,0xe4,0x05,0x26,0xbf,0xc2,0x09,0x6c,0x5c,0xd1,0x56,
26500xfd,0x18,0x42,0xd3,0xd5,0x7c,0x52,0xa8,0x4a,0x77,0xe8,0xc0,0x53,0x2b,0xa6,
26510x01,0xf9,0x90,0x68,0x60,0x3f,0xcb,0xb8,0x24,0x16,0x0b,0x69,0x4b,0xd9,0xf8,
26520x2c,0x92,0xed,0x89,0xa5,0xff,0x71,0xc5,0xed,0xe8,0xbc,0x70 };
2653/* A chain which allows foo.com, where the end cert is issued to
2654 * foo.com\0baddie
2655 */
2656static const BYTE chain27_0[] = {
26570x30,0x82,0x01,0xdb,0x30,0x82,0x01,0x48,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
26580x3d,0xd2,0x79,0xf1,0xa7,0x1a,0xac,0xb2,0x43,0x5e,0x53,0x67,0xc9,0xa1,0x8c,
26590x53,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
26600x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
26610x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
26620x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
26630x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
26640x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
26650x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
26660x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
26670x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
26680x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
26690x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
26700xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
26710x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
26720x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
26730xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
26740x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
26750x00,0x01,0xa3,0x3e,0x30,0x3c,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
26760xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
26770x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x19,0x06,0x03,0x55,0x1d,
26780x1e,0x01,0x01,0xff,0x04,0x0f,0x30,0x0d,0xa0,0x0b,0x30,0x09,0x82,0x07,0x66,
26790x6f,0x6f,0x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,
26800x05,0x00,0x03,0x81,0x81,0x00,0x18,0x5d,0xb0,0x42,0x96,0xf7,0x96,0x7b,0x23,
26810x46,0xa9,0xf4,0x99,0x57,0x27,0x8e,0x24,0xae,0x29,0xb8,0x04,0xe3,0x1b,0x64,
26820x22,0x8e,0x20,0xf1,0x45,0xb8,0x84,0x38,0x41,0x99,0x73,0xb2,0xbc,0xd9,0xcb,
26830x9d,0x9f,0xf4,0x86,0xed,0x21,0x34,0x42,0x21,0xf4,0x8f,0xa7,0xcf,0x19,0xe5,
26840xd3,0x4f,0x7c,0x4f,0xc7,0x9e,0x91,0x3a,0x16,0x0b,0x61,0x9e,0xfa,0x08,0x1b,
26850x01,0xc0,0x19,0xeb,0xe8,0xd4,0x5a,0xe9,0xe0,0x71,0x04,0xaa,0x88,0x93,0x10,
26860x3e,0xc5,0x23,0xbe,0x0b,0xab,0xa9,0x07,0x46,0x4d,0x4b,0xf2,0x95,0xeb,0x69,
26870xf2,0x70,0x33,0x5c,0xf7,0xd1,0xa9,0x5b,0xd2,0x84,0x10,0xa6,0x00,0xbe,0xb5,
26880xd4,0xe7,0xa3,0x54,0x63,0x3c,0xca,0xb0,0xbf,0x96,0xd1,0x6f,0x64,0xaf };
2689static const BYTE chain27_1[] = {
26900x30,0x82,0x01,0xb3,0x30,0x82,0x01,0x1c,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
26910x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
26920x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
26930x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
26940x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
26950x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
26960x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
26970x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
26980x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
26990x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
27000xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
27010x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
27020x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
27030x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
27040x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
27050x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
27060xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
27070xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x1d,0x30,0x1b,0x30,0x19,0x06,0x03,0x55,
27080x1d,0x07,0x04,0x12,0x30,0x10,0x82,0x0e,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,
27090x00,0x62,0x61,0x64,0x64,0x69,0x65,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
27100xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x6f,0x06,0xc6,0xd0,
27110xa1,0x8c,0xc6,0xed,0x33,0x04,0xf6,0x64,0x81,0xa1,0x0f,0x79,0x4d,0x9a,0xbd,
27120xc0,0x8f,0x18,0xc2,0xb8,0x82,0xb9,0x70,0x6f,0xbe,0xaa,0xbb,0x43,0x95,0x79,
27130x58,0xec,0xdf,0x94,0x8b,0x4d,0xe1,0xee,0x56,0xc4,0x57,0x7c,0xff,0xde,0x5f,
27140x52,0xf9,0x3a,0x9e,0x33,0x99,0x6e,0xdf,0xf2,0xce,0x40,0xc7,0xd8,0xb5,0x86,
27150xae,0xb7,0x52,0x8b,0xc5,0x62,0x17,0xce,0x03,0x06,0x29,0x5a,0xf6,0x5a,0x9a,
27160x8e,0xb7,0xe3,0xb2,0xcd,0x3f,0xa7,0x61,0x2b,0xba,0xe6,0x68,0xa8,0x92,0x8a,
27170xe5,0x32,0xe0,0x49,0xd4,0x42,0xc0,0x1a,0x92,0x72,0xb0,0x66,0x48,0x84,0x74,
27180xd3,0x25,0xe3,0x66,0x2f,0x30,0xea,0x40,0x72,0x82,0xc4,0xc5,0x4a,0x4e,0xcc,
27190x32,0xbc,0x36,0xa4 };
2720/* A chain which allows foo.*.com, where the end cert is issued to foo.bar.com.
2721 */
2722static const BYTE chain28_0[] = {
27230x30,0x82,0x01,0xdd,0x30,0x82,0x01,0x4a,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
27240x72,0x7f,0x98,0xcd,0x99,0xa6,0x5f,0x89,0x4a,0x5c,0xd2,0x15,0xd0,0x68,0x25,
27250xc8,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
27260x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
27270x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
27280x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
27290x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
27300x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
27310x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
27320x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
27330x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
27340x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
27350x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
27360xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
27370x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
27380x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
27390xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
27400x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
27410x00,0x01,0xa3,0x40,0x30,0x3e,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
27420xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
27430x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1b,0x06,0x03,0x55,0x1d,
27440x1e,0x01,0x01,0xff,0x04,0x11,0x30,0x0f,0xa0,0x0d,0x30,0x0b,0x82,0x09,0x66,
27450x6f,0x6f,0x2e,0x2a,0x2e,0x63,0x6f,0x6d,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,
27460x02,0x1d,0x05,0x00,0x03,0x81,0x81,0x00,0x01,0x9a,0x8c,0x75,0x20,0x9f,0x91,
27470xe9,0xde,0x28,0x3c,0x7a,0xd9,0xf1,0x2d,0xa3,0x0d,0x66,0x9f,0xd8,0x2a,0xb0,
27480xb5,0x19,0x9a,0x29,0xc7,0xd5,0xe5,0xf6,0x75,0xee,0x06,0xe4,0xd2,0x71,0x77,
27490x7e,0xbc,0x1a,0x5f,0xbe,0x28,0xba,0x6e,0x50,0x8e,0xe6,0xd9,0xd5,0x5a,0x21,
27500xa6,0x29,0xff,0xb0,0xc7,0xfe,0x06,0xb6,0xde,0x51,0x5b,0xab,0xe4,0xbb,0xbf,
27510xaa,0x03,0xa9,0xfe,0x71,0xb8,0x3f,0x65,0xe2,0x2c,0xa9,0x31,0x18,0x6d,0xe6,
27520x54,0xd0,0x90,0x6b,0x7b,0x3a,0x9a,0x45,0xa9,0x1b,0x05,0x2e,0xca,0xd7,0x5f,
27530x79,0x3d,0x1c,0xbf,0xdb,0xce,0x23,0x5d,0x0a,0x9b,0xb4,0x91,0xfe,0xd4,0x94,
27540x92,0x76,0x36,0xae,0x03,0xb8,0x30,0x13,0x58,0x69,0x71,0xea,0xc2,0xbc,0x31,
27550x83 };
2756static const BYTE chain28_1[] = {
27570x30,0x82,0x01,0xb0,0x30,0x82,0x01,0x19,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
27580x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
27590x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
27600x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
27610x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
27620x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
27630x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
27640x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
27650x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
27660x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
27670xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
27680x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
27690x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
27700x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
27710x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
27720x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
27730xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
27740xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x1a,0x30,0x18,0x30,0x16,0x06,0x03,0x55,
27750x1d,0x07,0x04,0x0f,0x30,0x0d,0x82,0x0b,0x66,0x6f,0x6f,0x2e,0x62,0x61,0x72,
27760x2e,0x63,0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
27770x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x28,0x64,0x0b,0xad,0x9f,0x12,0xd4,
27780x77,0xbe,0x1d,0x20,0x3b,0x69,0x74,0xce,0x91,0x69,0xbe,0x3f,0x76,0x1d,0xe7,
27790x81,0x92,0x2b,0xdc,0xbb,0xf9,0xd9,0xba,0xf0,0xba,0x58,0x4a,0x9b,0x47,0x59,
27800x34,0xf7,0x19,0xb5,0x15,0x31,0x35,0x4a,0x6d,0x7b,0x91,0x3d,0xc2,0x6c,0x8f,
27810x58,0x27,0x0f,0x79,0x96,0x57,0xee,0x4e,0x66,0x3e,0xfa,0x5c,0x22,0xb9,0x57,
27820xbf,0x8e,0x7e,0xce,0x98,0x62,0x28,0xb1,0x39,0x0e,0x2d,0x7b,0x5d,0x23,0x70,
27830xf0,0x4a,0x63,0x11,0x66,0x80,0xf9,0x99,0x53,0x80,0xda,0x87,0x87,0xf7,0x3c,
27840x44,0x76,0x66,0x26,0xa7,0x05,0x3c,0x68,0x66,0x1c,0x07,0x4d,0xcf,0x54,0xaa,
27850x5d,0xba,0x7a,0x8f,0x06,0xa7,0x1e,0x86,0xf1,0x5a,0x4b,0x50,0x16,0xad,0x9f,
27860x89 };
2787/* A chain whose end certificate is issued to *.winehq.org. */
2788static const BYTE chain29_1[] = {
27890x30,0x82,0x01,0xab,0x30,0x82,0x01,0x16,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
27900x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
27910x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
27920x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,0x30,
27930x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,0x30,
27940x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
27950x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
27960x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
27970x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
27980x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
27990x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
28000xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
28010x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
28020x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
28030x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
28040x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
28050x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
28060x00,0x01,0xa3,0x1b,0x30,0x19,0x30,0x17,0x06,0x03,0x55,0x1d,0x07,0x04,0x10,
28070x30,0x0e,0x82,0x0c,0x2a,0x2e,0x77,0x69,0x6e,0x65,0x68,0x71,0x2e,0x6f,0x72,
28080x67,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
28090x81,0x81,0x00,0x65,0xbf,0xfa,0xf7,0xc3,0x09,0x70,0x25,0x8a,0x46,0x69,0xf6,
28100xdc,0x07,0x1e,0x30,0xc9,0xe4,0x58,0x89,0x65,0x3a,0xa8,0xda,0xbd,0x17,0xf8,
28110x1d,0x0d,0x7d,0x47,0xb1,0xb2,0xda,0x17,0x9f,0xf6,0x47,0xe0,0xe4,0x4a,0xeb,
28120x02,0xc9,0x2e,0x69,0x1c,0x57,0x2a,0x80,0xc9,0x01,0x77,0x7b,0x27,0xff,0x2f,
28130xaf,0xdf,0xf3,0x65,0x12,0xd8,0x7d,0xc2,0xbf,0x1b,0x1d,0x18,0x96,0x5c,0xf6,
28140xba,0x43,0xc5,0x43,0x57,0xc0,0xdd,0x97,0x95,0xfb,0x1c,0xad,0x64,0x0f,0x61,
28150x3a,0xe9,0x27,0xa4,0x57,0x27,0x34,0xa7,0x42,0xde,0x78,0x1a,0x71,0x80,0x23,
28160xd6,0xd7,0x22,0xf0,0x24,0x0d,0x71,0xf1,0x2b,0xd0,0xd8,0x76,0x3d,0xef,0x4c,
28170xce,0x1c,0x3b,0x83,0x1b,0x63,0x10,0x6c,0x63,0xe5,0x69 };
2818/* chain0_0 -> chain30_1 -> chain30_2
2819 * A chain whose intermediate certificate has an unsupported critical
2820 * extension.
2821 */
2822static const BYTE chain30_1[] = {
28230x30,0x82,0x01,0xc0,0x30,0x82,0x01,0x2b,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
28240x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
28250x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
28260x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,0x30,
28270x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,0x30,
28280x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
28290x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
28300x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
28310x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
28320x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
28330x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
28340xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
28350x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
28360x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
28370x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
28380x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
28390x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
28400x00,0x01,0xa3,0x30,0x30,0x2e,0x30,0x0e,0x06,0x03,0x55,0x1d,0x0f,0x01,0x01,
28410xff,0x04,0x04,0x03,0x02,0x00,0x04,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,0x01,
28420x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x0b,0x06,0x02,0x2a,0x03,
28430x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,
28440xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0x51,0x3e,0x35,0x1b,0x66,0x3c,
28450xca,0x5e,0xf3,0xf9,0x1b,0xd5,0x03,0x13,0xf8,0xcf,0x87,0xdf,0xed,0x75,0xa6,
28460xcd,0x4b,0x1c,0x15,0xd3,0xd8,0x58,0x85,0x85,0x2c,0x64,0x31,0xbd,0xbb,0xad,
28470xff,0x38,0x64,0xc5,0x16,0x43,0x14,0x0e,0x71,0x35,0xf3,0xe9,0xca,0xf9,0xf4,
28480x69,0xa7,0x67,0xa8,0x0f,0xc9,0xcf,0x6f,0x22,0xe5,0x39,0xb8,0xfc,0xe7,0x50,
28490x82,0xf7,0xa4,0xaa,0x29,0xe1,0xa9,0xb5,0x03,0x5e,0x0b,0x5f,0x9c,0x8e,0x29,
28500x64,0xe5,0xb6,0xed,0xde,0x04,0x0e,0xdb,0xad,0xa3,0xc6,0x2a,0xb0,0x12,0x86,
28510x60,0xd4,0xff,0xd8,0xea,0x85,0x54,0x34,0xca,0xc1,0x85,0x4e,0xb5,0x15,0x96,
28520xb7,0xa5,0x64,0x7b,0xc7,0x76,0xcb,0x04,0x75,0x9e,0x1e,0xbd,0x62,0x79,0xc5,
28530x1f,0x32 };
2854static const BYTE chain30_2[] = {
28550x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
28560x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
28570x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
28580x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x39,0x30,0x31,0x30,0x30,0x30,0x30,
28590x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
28600x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
28610x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
28620x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
28630x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,
28640xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,
28650x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,
28660x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,
28670xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,
28680xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,
28690xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,
28700xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,
28710x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,
28720x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
28730x81,0x81,0x00,0x14,0x75,0x85,0xcc,0x68,0xfe,0x98,0x6f,0xf6,0x67,0x00,0x5b,
28740x0c,0xfc,0x36,0x18,0xf4,0x56,0x46,0x7c,0xb9,0xfa,0x6c,0xe6,0x37,0xaf,0x69,
28750x37,0x93,0x8c,0x35,0x3a,0x1b,0x58,0x2f,0xe2,0x06,0x39,0x85,0x3f,0x73,0xcf,
28760xe1,0x3f,0x27,0x19,0x60,0xc3,0x1b,0xf6,0x69,0x3b,0x8e,0x57,0x7b,0xd8,0xb9,
28770xc6,0x9f,0x13,0x72,0x22,0x04,0x8f,0x5c,0x54,0x13,0x8c,0x63,0xe3,0x6b,0x70,
28780x98,0xec,0xcc,0xe1,0x93,0xb1,0x4b,0x30,0x4c,0xde,0xe8,0x3c,0x68,0x38,0x44,
28790x5e,0xe2,0x2b,0xf5,0xa1,0xee,0x02,0x7e,0x09,0x15,0xff,0xc9,0xf6,0xaf,0xf5,
28800xcc,0xeb,0xfc,0xe7,0x3c,0x92,0xdb,0x31,0xab,0x1e,0xb8,0x9e,0xf0,0x5e,0xa3,
28810x93,0xfe,0xab,0x26,0x7b,0x01,0xa8,0x98,0x88,0xbb,0xee };
2882/* chain0_0 -> chain31_1: a chain whose end certificate has two CNs, a
2883 * wildcard name "*.foo.com" and a non-wildcard name "foo.com".
2884 */
2885static const BYTE chain31_1[] = {
28860x30,0x82,0x01,0xa2,0x30,0x82,0x01,0x0d,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
28870x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
28880x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
28890x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,0x30,
28900x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,0x30,
28910x30,0x30,0x30,0x5a,0x30,0x24,0x31,0x22,0x30,0x0e,0x06,0x03,0x55,0x04,0x03,
28920x13,0x07,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,0x30,0x10,0x06,0x03,0x55,0x04,
28930x03,0x13,0x09,0x2a,0x2e,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,0x30,0x81,0x9d,
28940x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,
28950x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,
28960xe5,0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,
28970xc6,0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,
28980xa7,0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,
28990x8b,0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,
29000x6b,0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,
29010xfc,0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,
29020x85,0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,
29030xb2,0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,
29040x72,0xa3,0x02,0x03,0x01,0x00,0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,
29050xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0xa0,0x93,0x52,0x87,0x81,0xe2,
29060xff,0x2a,0xc7,0xef,0x5f,0x3c,0xbc,0x88,0x99,0xc0,0x47,0x3e,0x13,0xe9,0x87,
29070xfa,0x36,0xd7,0xb5,0xe8,0xdf,0x70,0xcc,0x36,0xe4,0x70,0x3c,0xcd,0xa2,0x0b,
29080x31,0x6e,0x0a,0xb9,0x00,0xf0,0x4f,0xb6,0xc2,0xce,0xf4,0x33,0x1e,0xc0,0x29,
29090xc0,0x73,0x0c,0xcf,0x28,0xa5,0x26,0x9d,0xc2,0xaf,0x85,0x30,0x81,0xbf,0xd1,
29100x70,0x3f,0x69,0x15,0xc5,0x41,0x1d,0x8e,0xd4,0xfa,0x02,0xcd,0xba,0xf1,0xf2,
29110x67,0xb5,0x45,0x29,0xad,0xe8,0x54,0x9a,0x0f,0x1a,0x8f,0xdf,0x16,0xf4,0xcb,
29120x43,0x08,0xe5,0x78,0x2b,0x95,0xf3,0x75,0xb6,0x88,0xf0,0x6b,0x5c,0x5b,0x50,
29130x04,0x91,0x3b,0x89,0x5a,0x60,0x1f,0xfc,0x36,0x53,0x32,0x36,0x0a,0x4d,0x03,
29140x2c,0xd7 };
2915/* Microsoft Root Certificate Authority 2010 */
2916static const BYTE chain32_1[] = {
29170x30,0x82,0x05,0xed,0x30,0x82,0x03,0xd5,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
29180x28,0xcc,0x3a,0x25,0xbf,0xba,0x44,0xac,0x44,0x9a,0x9b,0x58,0x6b,0x43,0x39,
29190xaa,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,
29200x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,
29210x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,
29220x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,
29230x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,
29240x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,
29250x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,
29260x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,
29270x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66,
29280x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,
29290x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,0x36,0x32,0x33,
29300x32,0x31,0x35,0x37,0x32,0x34,0x5a,0x17,0x0d,0x33,0x35,0x30,0x36,0x32,0x33,
29310x32,0x32,0x30,0x34,0x30,0x31,0x5a,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,
29320x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,
29330x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,
29340x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,
29350x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,
29360x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,
29370x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,
29380x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,
29390x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,
29400x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x30,0x30,0x82,0x02,0x22,
29410x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,
29420x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,0x02,0x82,0x02,0x01,0x00,0xb9,
29430x08,0x9e,0x28,0xe4,0xe4,0xec,0x06,0x4e,0x50,0x68,0xb3,0x41,0xc5,0x7b,0xeb,
29440xae,0xb6,0x8e,0xaf,0x81,0xba,0x22,0x44,0x1f,0x65,0x34,0x69,0x4c,0xbe,0x70,
29450x40,0x17,0xf2,0x16,0x7b,0xe2,0x79,0xfd,0x86,0xed,0x0d,0x39,0xf4,0x1b,0xa8,
29460xad,0x92,0x90,0x1e,0xcb,0x3d,0x76,0x8f,0x5a,0xd9,0xb5,0x91,0x10,0x2e,0x3c,
29470x05,0x8d,0x8a,0x6d,0x24,0x54,0xe7,0x1f,0xed,0x56,0xad,0x83,0xb4,0x50,0x9c,
29480x15,0xa5,0x17,0x74,0x88,0x59,0x20,0xfc,0x08,0xc5,0x84,0x76,0xd3,0x68,0xd4,
29490x6f,0x28,0x78,0xce,0x5c,0xb8,0xf3,0x50,0x90,0x44,0xff,0xe3,0x63,0x5f,0xbe,
29500xa1,0x9a,0x2c,0x96,0x15,0x04,0xd6,0x07,0xfe,0x1e,0x84,0x21,0xe0,0x42,0x31,
29510x11,0xc4,0x28,0x36,0x94,0xcf,0x50,0xa4,0x62,0x9e,0xc9,0xd6,0xab,0x71,0x00,
29520xb2,0x5b,0x0c,0xe6,0x96,0xd4,0x0a,0x24,0x96,0xf5,0xff,0xc6,0xd5,0xb7,0x1b,
29530xd7,0xcb,0xb7,0x21,0x62,0xaf,0x12,0xdc,0xa1,0x5d,0x37,0xe3,0x1a,0xfb,0x1a,
29540x46,0x98,0xc0,0x9b,0xc0,0xe7,0x63,0x1f,0x2a,0x08,0x93,0x02,0x7e,0x1e,0x6a,
29550x8e,0xf2,0x9f,0x18,0x89,0xe4,0x22,0x85,0xa2,0xb1,0x84,0x57,0x40,0xff,0xf5,
29560x0e,0xd8,0x6f,0x9c,0xed,0xe2,0x45,0x31,0x01,0xcd,0x17,0xe9,0x7f,0xb0,0x81,
29570x45,0xe3,0xaa,0x21,0x40,0x26,0xa1,0x72,0xaa,0xa7,0x4f,0x3c,0x01,0x05,0x7e,
29580xee,0x83,0x58,0xb1,0x5e,0x06,0x63,0x99,0x62,0x91,0x78,0x82,0xb7,0x0d,0x93,
29590x0c,0x24,0x6a,0xb4,0x1b,0xdb,0x27,0xec,0x5f,0x95,0x04,0x3f,0x93,0x4a,0x30,
29600xf5,0x97,0x18,0xb3,0xa7,0xf9,0x19,0xa7,0x93,0x33,0x1d,0x01,0xc8,0xdb,0x22,
29610x52,0x5c,0xd7,0x25,0xc9,0x46,0xf9,0xa2,0xfb,0x87,0x59,0x43,0xbe,0x9b,0x62,
29620xb1,0x8d,0x2d,0x86,0x44,0x1a,0x46,0xac,0x78,0x61,0x7e,0x30,0x09,0xfa,0xae,
29630x89,0xc4,0x41,0x2a,0x22,0x66,0x03,0x91,0x39,0x45,0x9c,0xc7,0x8b,0x0c,0xa8,
29640xca,0x0d,0x2f,0xfb,0x52,0xea,0x0c,0xf7,0x63,0x33,0x23,0x9d,0xfe,0xb0,0x1f,
29650xad,0x67,0xd6,0xa7,0x50,0x03,0xc6,0x04,0x70,0x63,0xb5,0x2c,0xb1,0x86,0x5a,
29660x43,0xb7,0xfb,0xae,0xf9,0x6e,0x29,0x6e,0x21,0x21,0x41,0x26,0x06,0x8c,0xc9,
29670xc3,0xee,0xb0,0xc2,0x85,0x93,0xa1,0xb9,0x85,0xd9,0xe6,0x32,0x6c,0x4b,0x4c,
29680x3f,0xd6,0x5d,0xa3,0xe5,0xb5,0x9d,0x77,0xc3,0x9c,0xc0,0x55,0xb7,0x74,0x00,
29690xe3,0xb8,0x38,0xab,0x83,0x97,0x50,0xe1,0x9a,0x42,0x24,0x1d,0xc6,0xc0,0xa3,
29700x30,0xd1,0x1a,0x5a,0xc8,0x52,0x34,0xf7,0x73,0xf1,0xc7,0x18,0x1f,0x33,0xad,
29710x7a,0xec,0xcb,0x41,0x60,0xf3,0x23,0x94,0x20,0xc2,0x48,0x45,0xac,0x5c,0x51,
29720xc6,0x2e,0x80,0xc2,0xe2,0x77,0x15,0xbd,0x85,0x87,0xed,0x36,0x9d,0x96,0x91,
29730xee,0x00,0xb5,0xa3,0x70,0xec,0x9f,0xe3,0x8d,0x80,0x68,0x83,0x76,0xba,0xaf,
29740x5d,0x70,0x52,0x22,0x16,0xe2,0x66,0xfb,0xba,0xb3,0xc5,0xc2,0xf7,0x3e,0x2f,
29750x77,0xa6,0xca,0xde,0xc1,0xa6,0xc6,0x48,0x4c,0xc3,0x37,0x51,0x23,0xd3,0x27,
29760xd7,0xb8,0x4e,0x70,0x96,0xf0,0xa1,0x44,0x76,0xaf,0x78,0xcf,0x9a,0xe1,0x66,
29770x13,0x02,0x03,0x01,0x00,0x01,0xa3,0x51,0x30,0x4f,0x30,0x0b,0x06,0x03,0x55,
29780x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,
29790x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1d,0x06,0x03,0x55,
29800x1d,0x0e,0x04,0x16,0x04,0x14,0xd5,0xf6,0x56,0xcb,0x8f,0xe8,0xa2,0x5c,0x62,
29810x68,0xd1,0x3d,0x94,0x90,0x5b,0xd7,0xce,0x9a,0x18,0xc4,0x30,0x10,0x06,0x09,
29820x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,
29830x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,
29840x82,0x02,0x01,0x00,0xac,0xa5,0x96,0x8c,0xbf,0xbb,0xae,0xa6,0xf6,0xd7,0x71,
29850x87,0x43,0x31,0x56,0x88,0xfd,0x1c,0x32,0x71,0x5b,0x35,0xb7,0xd4,0xf0,0x91,
29860xf2,0xaf,0x37,0xe2,0x14,0xf1,0xf3,0x02,0x26,0x05,0x3e,0x16,0x14,0x7f,0x14,
29870xba,0xb8,0x4f,0xfb,0x89,0xb2,0xb2,0xe7,0xd4,0x09,0xcc,0x6d,0xb9,0x5b,0x3b,
29880x64,0x65,0x70,0x66,0xb7,0xf2,0xb1,0x5a,0xdf,0x1a,0x02,0xf3,0xf5,0x51,0xb8,
29890x67,0x6d,0x79,0xf3,0xbf,0x56,0x7b,0xe4,0x84,0xb9,0x2b,0x1e,0x9b,0x40,0x9c,
29900x26,0x34,0xf9,0x47,0x18,0x98,0x69,0xd8,0x1c,0xd7,0xb6,0xd1,0xbf,0x8f,0x61,
29910xc2,0x67,0xc4,0xb5,0xef,0x60,0x43,0x8e,0x10,0x1b,0x36,0x49,0xe4,0x20,0xca,
29920xad,0xa7,0xc1,0xb1,0x27,0x65,0x09,0xf8,0xcd,0xf5,0x5b,0x2a,0xd0,0x84,0x33,
29930xf3,0xef,0x1f,0xf2,0xf5,0x9c,0x0b,0x58,0x93,0x37,0xa0,0x75,0xa0,0xde,0x72,
29940xde,0x6c,0x75,0x2a,0x66,0x22,0xf5,0x8c,0x06,0x30,0x56,0x9f,0x40,0xb9,0x30,
29950xaa,0x40,0x77,0x15,0x82,0xd7,0x8b,0xec,0xc0,0xd3,0xb2,0xbd,0x83,0xc5,0x77,
29960x0c,0x1e,0xae,0xaf,0x19,0x53,0xa0,0x4d,0x79,0x71,0x9f,0x0f,0xaf,0x30,0xce,
29970x67,0xf9,0xd6,0x2c,0xcc,0x22,0x41,0x7a,0x07,0xf2,0x97,0x42,0x18,0xce,0x59,
29980x79,0x10,0x55,0xde,0x6f,0x10,0xe4,0xb8,0xda,0x83,0x66,0x40,0x16,0x09,0x68,
29990x23,0x5b,0x97,0x2e,0x26,0x9a,0x02,0xbb,0x57,0x8c,0xc5,0xb8,0xba,0x69,0x62,
30000x32,0x80,0x89,0x9e,0xa1,0xfd,0xc0,0x92,0x7c,0x7b,0x2b,0x33,0x19,0x84,0x2a,
30010x63,0xc5,0x00,0x68,0x62,0xfa,0x9f,0x47,0x8d,0x99,0x7a,0x45,0x3a,0xa7,0xe9,
30020xed,0xee,0x69,0x42,0xb5,0xf3,0x81,0x9b,0x47,0x56,0x10,0x7b,0xfc,0x70,0x36,
30030x84,0x18,0x73,0xea,0xef,0xf9,0x97,0x4d,0x9e,0x33,0x23,0xdd,0x26,0x0b,0xba,
30040x2a,0xb7,0x3f,0x44,0xdc,0x83,0x27,0xff,0xbd,0x61,0x59,0x2b,0x11,0xb7,0xca,
30050x4f,0xdb,0xc5,0x8b,0x0c,0x1c,0x31,0xae,0x32,0xf8,0xf8,0xb9,0x42,0xf7,0x7f,
30060xdc,0x61,0x9a,0x76,0xb1,0x5a,0x04,0xe1,0x11,0x3d,0x66,0x45,0xb7,0x18,0x71,
30070xbe,0xc9,0x24,0x85,0xd6,0xf3,0xd4,0xba,0x41,0x34,0x5d,0x12,0x2d,0x25,0xb9,
30080x8d,0xa6,0x13,0x48,0x6d,0x4b,0xb0,0x07,0x7d,0x99,0x93,0x09,0x61,0x81,0x74,
30090x57,0x26,0x8a,0xab,0x69,0xe3,0xe4,0xd9,0xc7,0x88,0xcc,0x24,0xd8,0xec,0x52,
30100x24,0x5c,0x1e,0xbc,0x91,0x14,0xe2,0x96,0xde,0xeb,0x0a,0xda,0x9e,0xdd,0x5f,
30110xb3,0x5b,0xdb,0xd4,0x82,0xec,0xc6,0x20,0x50,0x87,0x25,0x40,0x3a,0xfb,0xc7,
30120xee,0xcd,0xfe,0x33,0xe5,0x6e,0xc3,0x84,0x09,0x55,0x03,0x25,0x39,0xc0,0xe9,
30130x35,0x5d,0x65,0x31,0xa8,0xf6,0xbf,0xa0,0x09,0xcd,0x29,0xc7,0xb3,0x36,0x32,
30140x2e,0xdc,0x95,0xf3,0x83,0xc1,0x5a,0xcf,0x8b,0x8d,0xf6,0xea,0xb3,0x21,0xf8,
30150xa4,0xed,0x1e,0x31,0x0e,0xb6,0x4c,0x11,0xab,0x60,0x0b,0xa4,0x12,0x23,0x22,
30160x17,0xa3,0x36,0x64,0x82,0x91,0x04,0x12,0xe0,0xab,0x6f,0x1e,0xcb,0x50,0x05,
30170x61,0xb4,0x40,0xff,0x59,0x86,0x71,0xd1,0xd5,0x33,0x69,0x7c,0xa9,0x73,0x8a,
30180x38,0xd7,0x64,0x0c,0xf1,0x69 };
3019/* Microsoft Code Signing PCA 2010 */
3020static const BYTE chain32_2[] = {
30210x30,0x82,0x06,0x70,0x30,0x82,0x04,0x58,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,
30220x61,0x0c,0x52,0x4c,0x00,0x00,0x00,0x00,0x00,0x03,0x30,0x0d,0x06,0x09,0x2a,
30230x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,
30240x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,
30250x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,
30260x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,
30270x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,
30280x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,
30290x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,
30300x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,
30310x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,
30320x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x30,0x30,
30330x1e,0x17,0x0d,0x31,0x30,0x30,0x37,0x30,0x36,0x32,0x30,0x34,0x30,0x31,0x37,
30340x5a,0x17,0x0d,0x32,0x35,0x30,0x37,0x30,0x36,0x32,0x30,0x35,0x30,0x31,0x37,
30350x5a,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,
30360x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,
30370x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,
30380x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,
30390x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,
30400x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,
30410x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,
30420x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,
30430x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x82,0x01,0x22,0x30,0x0d,
30440x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,
30450x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xe9,0x0e,0x64,
30460x50,0x79,0x67,0xb5,0xc4,0xe3,0xfd,0x09,0x00,0x4c,0x9e,0x94,0xac,0xf7,0x56,
30470x68,0xea,0x44,0xd8,0xcf,0xc5,0x58,0x4f,0xa9,0xa5,0x76,0x7c,0x6d,0x45,0xba,
30480xd3,0x39,0x92,0xb4,0xa4,0x1e,0xf9,0xf9,0x65,0x82,0xe4,0x17,0xd2,0x8f,0xfd,
30490x44,0x9c,0x08,0xe8,0x65,0x93,0xce,0x2c,0x55,0x84,0xbf,0x7d,0x08,0xe3,0x2e,
30500x2b,0xa8,0x41,0x2b,0x18,0xb7,0xa2,0x4b,0x6e,0x49,0x4c,0x6b,0x15,0x07,0xde,
30510xd1,0xd2,0xc2,0x89,0x1e,0x71,0x94,0xcd,0xb5,0x7f,0x4b,0xb4,0xaf,0x08,0xd8,
30520xcc,0x88,0xd6,0x6b,0x17,0x94,0x3a,0x93,0xce,0x26,0x3f,0xec,0xe6,0xfe,0x34,
30530x98,0x57,0xd5,0x1d,0x5d,0x49,0xf6,0xb2,0x2a,0x2e,0xd5,0x85,0xbb,0x59,0x3f,
30540xf8,0x90,0xb4,0x2b,0x83,0x74,0xca,0x2b,0xb3,0x3b,0x46,0xe3,0xf0,0x46,0x49,
30550xc1,0x17,0x66,0x54,0xc9,0x1c,0xbd,0x1d,0xc4,0x55,0x62,0x57,0x72,0xf8,0x67,
30560xb9,0x25,0x20,0x34,0xde,0x5d,0xa6,0xa5,0x95,0x5e,0xab,0x28,0x80,0xcd,0xd5,
30570xb2,0x9e,0xe5,0x03,0xb5,0x63,0xd3,0xb2,0x14,0xc8,0xc1,0xc8,0x8a,0x26,0x0a,
30580x59,0x7f,0x07,0xec,0xff,0x0e,0xed,0x80,0x12,0x35,0x4c,0x12,0xa6,0xbe,0x52,
30590x5b,0xf5,0xa6,0xda,0xe0,0x8b,0x0b,0x48,0x77,0xd6,0x85,0x47,0xd5,0x10,0xb9,
30600xc6,0xe8,0xaa,0xee,0x8b,0x6a,0x2d,0x05,0x5c,0x60,0xc6,0xb4,0x2a,0x5b,0x9c,
30610x23,0x1c,0x5f,0x45,0xe3,0x1a,0x14,0x1e,0x6f,0x37,0xcb,0x19,0x33,0x80,0x6a,
30620x89,0x4d,0xa3,0x6a,0x66,0x63,0x78,0x93,0xd5,0x30,0xcf,0x95,0x1f,0x02,0x03,
30630x01,0x00,0x01,0xa3,0x82,0x01,0xe3,0x30,0x82,0x01,0xdf,0x30,0x10,0x06,0x09,
30640x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,
30650x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0xe6,0xfc,0x5f,0x7b,0xbb,
30660x22,0x00,0x58,0xe4,0x72,0x4e,0xb5,0xf4,0x21,0x74,0x23,0x32,0xe6,0xef,0xac,
30670x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,
30680x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,
30690x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55,
30700x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,
30710x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0xf6,0x56,0xcb,0x8f,
30720xe8,0xa2,0x5c,0x62,0x68,0xd1,0x3d,0x94,0x90,0x5b,0xd7,0xce,0x9a,0x18,0xc4,
30730x30,0x56,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,
30740xa0,0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,
30750x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,
30760x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,
30770x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,
30780x30,0x31,0x30,0x2d,0x30,0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x6c,0x30,0x5a,
30790x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,
30800x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,
30810x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,
30820x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,
30830x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,
30840x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x74,
30850x30,0x81,0x9d,0x06,0x03,0x55,0x1d,0x20,0x04,0x81,0x95,0x30,0x81,0x92,0x30,
30860x81,0x8f,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x2e,0x03,0x30,0x81,
30870x81,0x30,0x3d,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x31,
30880x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,
30890x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x50,0x4b,0x49,0x2f,0x64,
30900x6f,0x63,0x73,0x2f,0x43,0x50,0x53,0x2f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,
30910x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,
30920x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,
30930x00,0x6c,0x00,0x5f,0x00,0x50,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,
30940x79,0x00,0x5f,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x6d,
30950x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,
30960x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,
30970x1a,0x74,0xef,0x57,0x4f,0x29,0x7b,0xc4,0x16,0x85,0x78,0xb8,0x50,0xd3,0x22,
30980xfc,0x09,0x9d,0xac,0x82,0x97,0xf8,0x34,0xff,0x2a,0x2c,0x97,0x95,0x12,0xe5,
30990xe4,0xbf,0xcf,0xbf,0x93,0xc8,0xe3,0x34,0xa9,0xdb,0x81,0xb8,0xdc,0x1e,0x00,
31000xbe,0xd2,0x35,0x6f,0xaf,0xe5,0x7f,0x79,0x95,0x77,0xe5,0x02,0xd4,0xf1,0xeb,
31010xd8,0xcd,0x4e,0x1e,0x1b,0x61,0xa2,0xc2,0x5a,0x23,0x1a,0xf0,0x8c,0xa8,0x62,
31020x51,0x45,0x67,0x08,0xe3,0x3f,0x3c,0x1e,0x93,0xf8,0x30,0x85,0x17,0xc8,0x39,
31030x40,0xa6,0xd7,0x0e,0xb3,0x21,0x29,0xe5,0xa5,0xa1,0x69,0x8c,0x22,0x93,0xcc,
31040x74,0x98,0xe7,0xa1,0x47,0x43,0xf2,0x53,0xac,0xc0,0x0f,0x30,0x69,0x7f,0xfe,
31050xd2,0x25,0x20,0x6d,0x6f,0x61,0xd3,0xdf,0x07,0xd5,0xd9,0x72,0x00,0x2c,0x69,
31060x86,0x76,0x3d,0x51,0xdb,0xa6,0x39,0x48,0xc9,0x37,0x61,0x6d,0x07,0xdd,0x53,
31070x19,0xcb,0xa7,0xd6,0x61,0xc2,0xbf,0xe2,0x83,0xab,0x0f,0xe0,0x6b,0x9b,0x95,
31080xd6,0x7d,0x28,0x51,0xb0,0x89,0x4a,0x51,0xa4,0x9a,0x6c,0xc8,0xb7,0x1f,0x4a,
31090x1a,0x0e,0x69,0xa9,0xd7,0xdc,0xc1,0x7e,0xd1,0x49,0x70,0xaa,0xb6,0xad,0xbb,
31100x72,0x47,0x63,0x17,0xfa,0xa6,0xd6,0xa2,0xa6,0x86,0xec,0xa8,0x10,0x44,0x9b,
31110x63,0xb6,0xb2,0x69,0x89,0x06,0xc7,0x46,0x86,0x7a,0x18,0x3f,0xe8,0xc5,0x1d,
31120x21,0xd5,0x7b,0xf9,0x02,0x23,0x2d,0xc5,0x41,0xcb,0xbf,0x1d,0x4c,0xc8,0x16,
31130xef,0xb1,0x9c,0x7f,0xfc,0x22,0x4b,0x49,0x8a,0x6e,0x15,0xe3,0xa6,0x7f,0x76,
31140x5b,0xd1,0x53,0x79,0x91,0x85,0x9d,0xd5,0xd2,0xdb,0x3d,0x73,0x35,0xf3,0x3c,
31150xae,0x54,0xb2,0x52,0x47,0x6a,0xc0,0xaa,0x13,0x95,0xd2,0x8e,0x11,0xda,0x99,
31160x67,0x5e,0x32,0x8c,0xfb,0x37,0x85,0xd1,0xdc,0x75,0x85,0x9c,0x87,0xc6,0x5a,
31170x57,0x85,0xc2,0xbf,0xdd,0x0d,0x8f,0x8c,0x9b,0x2d,0xeb,0xb4,0xee,0xcf,0x27,
31180xd3,0xb5,0x5e,0x69,0xfa,0xa4,0x16,0x04,0x01,0xa7,0x24,0x67,0x73,0xcf,0x4d,
31190x4f,0xb6,0xde,0x05,0x56,0x97,0x7a,0xf7,0xe9,0x52,0x4d,0xf4,0x77,0x05,0x4f,
31200x85,0xc6,0xd8,0x0b,0xf1,0x8e,0xed,0x42,0x09,0xd1,0x0d,0x76,0xe3,0x23,0x56,
31210x78,0x22,0x26,0x36,0xbe,0xca,0xb1,0x8c,0x6e,0xaa,0x1d,0xe4,0x85,0xda,0x47,
31220x33,0x62,0x8f,0xa4,0xc9,0x91,0x33,0x5f,0x71,0x1e,0x40,0xaf,0x98,0x65,0xc9,
31230x22,0xe8,0x42,0x21,0x25,0x8a,0x1c,0x2d,0x60,0xd9,0x37,0x89,0x41,0x89,0x2a,
31240x16,0x0f,0xd7,0x61,0x3c,0x94,0x68,0x60,0x52,0xef,0xd6,0x47,0x99,0xa0,0x80,
31250x40,0xee,0x15,0x81,0x77,0x3e,0x9c,0xe0,0x53,0x18,0x1a,0x50,0x1d,0x38,0x95,
31260x9b,0x1e,0x66,0x33,0x13,0x27,0x39,0x17,0x78,0x87,0x36,0xce,0x4e,0xc3,0x5f,
31270xb2,0xf5,0x3d,0x47,0x53,0xb6,0xe0,0xe5,0xdb,0x0b,0x61,0x3d,0x2a,0xd7,0x92,
31280x2c,0xce,0x37,0x5a,0x3e,0x40,0x42,0x31,0xa4,0x1f,0x10,0x08,0xc2,0x56,0x9c,
31290xbf,0x24,0x5d,0x51,0x02,0x9d,0x6a,0x79,0xd2,0x17,0xd3,0xda,0xc1,0x94,0x8e,
31300x07,0x7b,0x25,0x71,0x44,0xab,0x06,0x6a,0xe6,0xd4,0xc6,0xdf,0x23,0x9a,0x96,
31310x75,0xc5 };
3132/* Microsoft Corporation (expired) */
3133static const BYTE chain32_3[] = {
31340x30,0x82,0x04,0xfe,0x30,0x82,0x03,0xe6,0xa0,0x03,0x02,0x01,0x02,0x02,0x13,
31350x33,0x00,0x00,0x02,0xcf,0x6d,0x2c,0xc5,0x7c,0xaa,0x65,0xa6,0xd8,0x00,0x00,
31360x00,0x00,0x02,0xcf,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,
31370x01,0x0b,0x05,0x00,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,
31380x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,
31390x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,
31400x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,
31410x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,
31420x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,
31430x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,
31440x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,
31450x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,
31460x0d,0x31,0x39,0x30,0x35,0x30,0x32,0x32,0x31,0x32,0x35,0x34,0x32,0x5a,0x17,
31470x0d,0x32,0x30,0x30,0x35,0x30,0x32,0x32,0x31,0x32,0x35,0x34,0x32,0x5a,0x30,
31480x74,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,
31490x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,
31500x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,
31510x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,
31520x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,
31530x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x1e,0x30,0x1c,0x06,
31540x03,0x55,0x04,0x03,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,
31550x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x30,0x82,0x01,
31560x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
31570x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,
31580xb9,0x5a,0xf3,0xb5,0x5d,0x58,0xf9,0x43,0x0f,0x95,0x01,0x79,0xfa,0x74,0xe5,
31590xb0,0xca,0xb5,0x38,0xf0,0x92,0xca,0xec,0x9b,0x99,0x42,0x1d,0x3a,0xea,0xb5,
31600x8f,0x75,0x75,0x83,0xa9,0x1b,0x36,0xff,0x40,0x96,0x8e,0xd7,0x75,0x0a,0xd1,
31610x96,0xae,0xc7,0xb3,0x77,0x12,0x39,0x82,0xd9,0xee,0x48,0x75,0x3d,0x47,0xad,
31620x53,0x39,0x3c,0x69,0xd1,0xca,0xd8,0xf0,0x3f,0x21,0x5a,0x4c,0x3a,0xe8,0x28,
31630x67,0xc3,0x7d,0x20,0x53,0x4b,0x9c,0x8b,0xbc,0x93,0xf9,0x20,0x46,0xf0,0x50,
31640x82,0xca,0x6f,0x6a,0x4e,0x56,0xf1,0xd4,0x43,0xae,0xd8,0xe9,0xdb,0xbe,0x7c,
31650x77,0x7d,0x46,0x73,0x03,0x3a,0x64,0xe9,0xf6,0x2d,0xcb,0x25,0x51,0x0d,0x90,
31660xc9,0x16,0x59,0x29,0x0c,0x15,0x20,0x63,0xa8,0xb8,0x4f,0x70,0x24,0x9d,0x01,
31670xe5,0x69,0x94,0x49,0xc9,0xd6,0x58,0xa8,0x9b,0x89,0xb8,0x2f,0xe0,0x6e,0x1b,
31680xa7,0xcc,0x9d,0x75,0x08,0xa6,0xc8,0x31,0x65,0x0f,0xa3,0xed,0xbd,0xd6,0xc6,
31690x93,0x8c,0x66,0x22,0xbf,0x48,0x57,0x1d,0x8c,0xa1,0xc1,0xe6,0xad,0x90,0x81,
31700x29,0x2b,0x8a,0x62,0xf4,0xc2,0xa1,0xdb,0xc8,0xc1,0x79,0x23,0x74,0x37,0x08,
31710x92,0x65,0xe3,0x57,0x01,0xe4,0x4f,0xa1,0x0a,0xf5,0x68,0x96,0xd6,0x09,0x80,
31720x4a,0x05,0xdc,0xae,0x30,0xd7,0xb1,0x5a,0xfb,0x1d,0xf9,0x84,0xde,0x92,0xcb,
31730xf2,0xc0,0xf8,0xea,0x26,0x6e,0xd3,0x73,0x7e,0xc5,0x66,0xa5,0x05,0xac,0xc4,
31740xeb,0x10,0xda,0x0c,0x5c,0x7c,0x36,0x99,0x9c,0x59,0x89,0xc6,0x94,0x47,0xf6,
31750xbb,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x7d,0x30,0x82,0x01,0x79,0x30,
31760x1f,0x06,0x03,0x55,0x1d,0x25,0x04,0x18,0x30,0x16,0x06,0x0a,0x2b,0x06,0x01,
31770x04,0x01,0x82,0x37,0x3d,0x06,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,
31780x03,0x03,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x37,0xf3,
31790x4d,0xec,0x4d,0xaf,0x2c,0x04,0x31,0xa9,0x10,0x88,0x0b,0x58,0xc0,0x6f,0x03,
31800xbc,0x55,0x08,0x30,0x54,0x06,0x03,0x55,0x1d,0x11,0x04,0x4d,0x30,0x4b,0xa4,
31810x49,0x30,0x47,0x31,0x2d,0x30,0x2b,0x06,0x03,0x55,0x04,0x0b,0x13,0x24,0x4d,
31820x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x49,0x72,0x65,0x6c,0x61,0x6e,
31830x64,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x4c,0x69,
31840x6d,0x69,0x74,0x65,0x64,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x05,0x13,
31850x0d,0x32,0x33,0x30,0x38,0x36,0x35,0x2b,0x34,0x35,0x34,0x32,0x34,0x34,0x30,
31860x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xe6,0xfc,0x5f,
31870x7b,0xbb,0x22,0x00,0x58,0xe4,0x72,0x4e,0xb5,0xf4,0x21,0x74,0x23,0x32,0xe6,
31880xef,0xac,0x30,0x56,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,
31890xa0,0x49,0xa0,0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,
31900x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,
31910x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,
31920x74,0x73,0x2f,0x4d,0x69,0x63,0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,
31930x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x36,0x2e,0x63,0x72,0x6c,
31940x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,
31950x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,
31960x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,
31970x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,
31980x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x43,0x6f,0x64,0x53,0x69,0x67,0x50,
31990x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x36,0x2e,0x63,
32000x72,0x74,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,
32010x00,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,
32020x00,0x03,0x82,0x01,0x01,0x00,0xaa,0x30,0x8f,0x08,0x74,0xb1,0x28,0x88,0x0a,
32030x81,0x0c,0xcc,0x38,0xea,0xb1,0xc0,0x47,0x9a,0x7d,0xf3,0x19,0x35,0xa6,0xe8,
32040x8b,0xe9,0x16,0x04,0xe4,0xc3,0x32,0xe1,0x29,0xf7,0xcc,0xb8,0xf0,0xc6,0xc3,
32050x02,0xd5,0xb0,0x8d,0x0b,0x41,0xfe,0x5c,0xa9,0x03,0x86,0x25,0xf5,0x24,0x9f,
32060xb0,0x04,0xc4,0x69,0x0a,0x27,0x94,0x04,0xb2,0x09,0xdc,0x19,0xaf,0xbb,0x01,
32070x8b,0x92,0xe4,0xd8,0x72,0x04,0x07,0x72,0x81,0xd3,0x89,0xca,0xd7,0x79,0x98,
32080x41,0xe5,0xa0,0x29,0xfb,0x95,0x91,0xd9,0xf8,0x8c,0x40,0x23,0x70,0x9a,0xb2,
32090xf6,0xcb,0x0a,0x75,0x0b,0xbd,0x1c,0x72,0xd7,0xff,0x98,0x20,0x01,0xde,0xc0,
32100xcd,0xd0,0xd3,0xa5,0xff,0x6b,0x0c,0x8b,0xf9,0x85,0x69,0x22,0x15,0x09,0xd7,
32110x4e,0xf2,0xc1,0xe9,0xd4,0x78,0xa7,0xd1,0xe3,0x46,0xf6,0x3d,0xa9,0x06,0x66,
32120x11,0xa3,0x9e,0x2f,0xef,0xe6,0xd3,0xc5,0x80,0x29,0xc8,0xfa,0xd3,0xb7,0x98,
32130x0d,0xdc,0xa4,0xce,0x84,0x68,0xeb,0x9b,0xfb,0x14,0x83,0x28,0x6d,0x22,0x57,
32140x9a,0x46,0xbe,0x37,0x71,0xc4,0xec,0xed,0x38,0x8f,0x4d,0x6e,0x13,0x54,0x39,
32150x87,0xc6,0xf4,0x1e,0x41,0xdf,0xba,0x87,0x28,0xda,0xc2,0xc0,0x02,0xa5,0x80,
32160x52,0x3c,0xbd,0x9a,0xe2,0x66,0xc0,0x5e,0xc3,0x56,0xe8,0x65,0x1d,0xcc,0xd4,
32170xec,0xf5,0x4d,0x05,0xae,0xf3,0x9b,0x96,0x7b,0xf2,0xa9,0x3b,0xae,0xe0,0xbb,
32180x3b,0x42,0x9b,0xec,0x20,0xba,0xea,0x1c,0x6d,0xf4,0x6a,0x24,0x8f,0x31,0x01,
32190x3c,0x8a,0x0a,0x58,0x61,0x67,0x58 };
3220/* Microsoft Root Certificate Authority 2011 */
3221static const BYTE chain33_1[] = {
32220x30,0x82,0x05,0xed,0x30,0x82,0x03,0xd5,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
32230x3f,0x8b,0xc8,0xb5,0xfc,0x9f,0xb2,0x96,0x43,0xb5,0x69,0xd6,0x6c,0x42,0xe1,
32240x44,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,
32250x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,
32260x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,
32270x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,
32280x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,
32290x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,
32300x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,
32310x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,
32320x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66,
32330x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,
32340x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x31,0x30,0x33,0x32,0x32,
32350x32,0x32,0x30,0x35,0x32,0x38,0x5a,0x17,0x0d,0x33,0x36,0x30,0x33,0x32,0x32,
32360x32,0x32,0x31,0x33,0x30,0x34,0x5a,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,
32370x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,
32380x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,
32390x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,
32400x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,
32410x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,
32420x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,
32430x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,
32440x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,
32450x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x31,0x30,0x82,0x02,0x22,
32460x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,
32470x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,0x02,0x82,0x02,0x01,0x00,0xb2,
32480x80,0x41,0xaa,0x35,0x38,0x4d,0x13,0x72,0x32,0x68,0x22,0x4d,0xb8,0xb2,0xf1,
32490xff,0xd5,0x52,0xbc,0x6c,0xc7,0xf5,0xd2,0x4a,0x8c,0x36,0xee,0xd1,0xc2,0x5c,
32500x7e,0x8c,0x8a,0xae,0xaf,0x13,0x28,0x6f,0xc0,0x73,0xe3,0x3a,0xce,0xd0,0x25,
32510xa8,0x5a,0x3a,0x6d,0xef,0xa8,0xb8,0x59,0xab,0x13,0x23,0x68,0xcd,0x0c,0x29,
32520x87,0xd1,0x6f,0x80,0x5c,0x8f,0x44,0x7f,0x5d,0x90,0x01,0x52,0x58,0xac,0x51,
32530xc5,0x5f,0x2a,0x87,0xdc,0xdc,0xd8,0x0a,0x1d,0xc1,0x03,0xb9,0x7b,0xb0,0x56,
32540xe8,0xa3,0xde,0x64,0x61,0xc2,0x9e,0xf8,0xf3,0x7c,0xb9,0xec,0x0d,0xb5,0x54,
32550xfe,0x4c,0xb6,0x65,0x4f,0x88,0xf0,0x9c,0x48,0x99,0x0c,0x42,0x0b,0x09,0x7c,
32560x31,0x59,0x17,0x79,0x06,0x78,0x28,0x8d,0x89,0x3a,0x4c,0x03,0x25,0xbe,0x71,
32570x6a,0x5c,0x0b,0xe7,0x84,0x60,0xa4,0x99,0x22,0xe3,0xd2,0xaf,0x84,0xa4,0xa7,
32580xfb,0xd1,0x98,0xed,0x0c,0xa9,0xde,0x94,0x89,0xe1,0x0e,0xa0,0xdc,0xc0,0xce,
32590x99,0x3d,0xea,0x08,0x52,0xbb,0x56,0x79,0xe4,0x1f,0x84,0xba,0x1e,0xb8,0xb4,
32600xc4,0x49,0x5c,0x4f,0x31,0x4b,0x87,0xdd,0xdd,0x05,0x67,0x26,0x99,0x80,0xe0,
32610x71,0x11,0xa3,0xb8,0xa5,0x41,0xe2,0xa4,0x53,0xb9,0xf7,0x32,0x29,0x83,0x0c,
32620x13,0xbf,0x36,0x5e,0x04,0xb3,0x4b,0x43,0x47,0x2f,0x6b,0xe2,0x91,0x1e,0xd3,
32630x98,0x4f,0xdd,0x42,0x07,0xc8,0xe8,0x1d,0x12,0xfc,0x99,0xa9,0x6b,0x3e,0x92,
32640x7e,0xc8,0xd6,0x69,0x3a,0xfc,0x64,0xbd,0xb6,0x09,0x9d,0xca,0xfd,0x0c,0x0b,
32650xa2,0x9b,0x77,0x60,0x4b,0x03,0x94,0xa4,0x30,0x69,0x12,0xd6,0x42,0x2d,0xc1,
32660x41,0x4c,0xca,0xdc,0xaa,0xfd,0x8f,0x5b,0x83,0x46,0x9a,0xd9,0xfc,0xb1,0xd1,
32670xe3,0xb3,0xc9,0x7f,0x48,0x7a,0xcd,0x24,0xf0,0x41,0x8f,0x5c,0x74,0xd0,0xac,
32680xb0,0x10,0x20,0x06,0x49,0xb7,0xc7,0x2d,0x21,0xc8,0x57,0xe3,0xd0,0x86,0xf3,
32690x03,0x68,0xfb,0xd0,0xce,0x71,0xc1,0x89,0x99,0x4a,0x64,0x01,0x6c,0xfd,0xec,
32700x30,0x91,0xcf,0x41,0x3c,0x92,0xc7,0xe5,0xba,0x86,0x1d,0x61,0x84,0xc7,0x5f,
32710x83,0x39,0x62,0xae,0xb4,0x92,0x2f,0x47,0xf3,0x0b,0xf8,0x55,0xeb,0xa0,0x1f,
32720x59,0xd0,0xbb,0x74,0x9b,0x1e,0xd0,0x76,0xe6,0xf2,0xe9,0x06,0xd7,0x10,0xe8,
32730xfa,0x64,0xde,0x69,0xc6,0x35,0x96,0x88,0x02,0xf0,0x46,0xb8,0x3f,0x27,0x99,
32740x6f,0xcb,0x71,0x89,0x29,0x35,0xf7,0x48,0x16,0x02,0x35,0x8f,0xd5,0x79,0x7c,
32750x4d,0x02,0xcf,0x5f,0xeb,0x8a,0x83,0x4f,0x45,0x71,0x88,0xf9,0xa9,0x0d,0x4e,
32760x72,0xe9,0xc2,0x9c,0x07,0xcf,0x49,0x1b,0x4e,0x04,0x0e,0x63,0x51,0x8c,0x5e,
32770xd8,0x00,0xc1,0x55,0x2c,0xb6,0xc6,0xe0,0xc2,0x65,0x4e,0xc9,0x34,0x39,0xf5,
32780x9c,0xb3,0xc4,0x7e,0xe8,0x61,0x6e,0x13,0x5f,0x15,0xc4,0x5f,0xd9,0x7e,0xed,
32790x1d,0xce,0xee,0x44,0xec,0xcb,0x2e,0x86,0xb1,0xec,0x38,0xf6,0x70,0xed,0xab,
32800x5c,0x13,0xc1,0xd9,0x0f,0x0d,0xc7,0x80,0xb2,0x55,0xed,0x34,0xf7,0xac,0x9b,
32810xe4,0xc3,0xda,0xe7,0x47,0x3c,0xa6,0xb5,0x8f,0x31,0xdf,0xc5,0x4b,0xaf,0xeb,
32820xf1,0x02,0x03,0x01,0x00,0x01,0xa3,0x51,0x30,0x4f,0x30,0x0b,0x06,0x03,0x55,
32830x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55,0x1d,0x13,
32840x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1d,0x06,0x03,0x55,
32850x1d,0x0e,0x04,0x16,0x04,0x14,0x72,0x2d,0x3a,0x02,0x31,0x90,0x43,0xb9,0x14,
32860x05,0x4e,0xe1,0xea,0xa7,0xc7,0x31,0xd1,0x23,0x89,0x34,0x30,0x10,0x06,0x09,
32870x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,
32880x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,
32890x82,0x02,0x01,0x00,0x7f,0x72,0xcf,0x0f,0xb7,0xc5,0x15,0xdb,0x9b,0xc0,0x49,
32900xca,0x26,0x5b,0xfe,0x9e,0x13,0xe6,0xd3,0xf0,0xd2,0xdb,0x97,0x5f,0xf2,0x4b,
32910x3f,0x4d,0xb3,0xae,0x19,0xae,0xed,0xd7,0x97,0xa0,0xac,0xef,0xa9,0x3a,0xa3,
32920xc2,0x41,0xb0,0xe5,0xb8,0x91,0x9e,0x13,0x81,0x24,0x03,0xe6,0x09,0xfd,0x3f,
32930x57,0x40,0x39,0x21,0x24,0x56,0xd1,0x10,0x2f,0x4b,0x40,0xa9,0x36,0x86,0x4b,
32940xb4,0x53,0x57,0x9a,0xfb,0xf1,0x7e,0x89,0x8f,0x11,0xfe,0x18,0x6c,0x51,0xaa,
32950xe8,0xed,0x09,0x95,0xb5,0xe5,0x71,0xc9,0xa1,0xe9,0x87,0x75,0xa6,0x15,0x7f,
32960xc9,0x7e,0x37,0x54,0x5e,0x74,0x93,0xc5,0xc3,0x67,0xcc,0x0d,0x4f,0x6b,0xa8,
32970x17,0x0c,0x6d,0x08,0x92,0x7e,0x8b,0xdd,0x81,0xaa,0x2d,0x70,0x21,0xc3,0x3d,
32980x06,0x14,0xbb,0xbf,0x24,0x5e,0xa7,0x84,0xd7,0x3f,0x0f,0x21,0x22,0xbd,0x4b,
32990x00,0x06,0xdb,0x97,0x1c,0xd8,0x5e,0xd4,0xc5,0x0b,0x5c,0x87,0x6e,0x50,0xa4,
33000xe8,0xc3,0x38,0xa4,0xfb,0xcb,0x2c,0xc5,0x92,0x66,0x9b,0x85,0x5e,0xcb,0x7a,
33010x6c,0x93,0x7c,0x80,0x29,0x58,0x5b,0x57,0xb5,0x40,0x69,0xba,0x08,0x79,0xa6,
33020x64,0x62,0x15,0x9d,0x87,0x96,0x45,0xb5,0x66,0x23,0x20,0x03,0x8b,0x1c,0x73,
33030xa0,0xd3,0xa2,0x79,0x33,0xe0,0x50,0x59,0x86,0xdb,0x2f,0xe5,0x02,0x25,0xea,
33040x73,0x2a,0x9f,0x00,0x14,0xc8,0x36,0xc7,0x92,0x3b,0xe9,0x4e,0x00,0xec,0xd8,
33050x56,0x09,0xb9,0x33,0x49,0x12,0xd2,0x54,0x0b,0x01,0xab,0xac,0x47,0xb6,0x91,
33060x29,0x7d,0x4c,0xb4,0x75,0x80,0x52,0x01,0xe8,0xca,0x82,0xf6,0x9f,0xcc,0xac,
33070x9c,0x8f,0x17,0xea,0x2f,0x26,0xb0,0xab,0x72,0xac,0x0b,0xfe,0x9e,0x51,0x1e,
33080xc7,0x43,0x55,0x67,0x4f,0x51,0xb3,0x57,0xd6,0xb6,0xec,0xee,0x52,0xb7,0x3a,
33090xe9,0x4e,0xe1,0xd7,0x81,0x88,0xbc,0x4f,0x8e,0x75,0xbb,0x4b,0xa8,0xf0,0x35,
33100xaa,0x26,0xd4,0x67,0x67,0x49,0xb2,0x70,0x4c,0x3b,0x93,0xdc,0x1d,0xdf,0x78,
33110x90,0x86,0x72,0xb2,0x38,0xa4,0xd1,0xdc,0x92,0x4d,0xc9,0x58,0xeb,0x2b,0x12,
33120x5c,0xd4,0x3b,0xae,0x8c,0x6b,0xb0,0x83,0xe5,0x01,0x3f,0xf8,0x09,0x32,0xf6,
33130x93,0x35,0x34,0x22,0xaf,0xdd,0x37,0x0d,0x77,0x09,0x80,0x2b,0xcd,0x48,0x00,
33140xf1,0x8c,0x99,0x19,0x47,0x05,0x01,0xe9,0xd1,0xbf,0xd1,0x4e,0xd0,0xe6,0x28,
33150x43,0x37,0x99,0xa4,0x0a,0x4a,0x08,0xd9,0x9a,0x71,0x73,0xd2,0xaa,0xcd,0x31,
33160x13,0x63,0x76,0xa1,0x37,0x6f,0x92,0x38,0x1e,0x7d,0x12,0x3c,0x66,0x32,0xe7,
33170xcb,0x6d,0xe1,0xfc,0x52,0x89,0xdd,0xca,0xd6,0x66,0x05,0x9a,0x96,0x61,0xbe,
33180xa2,0x28,0xc7,0x1c,0xa3,0xa7,0x36,0x50,0x3c,0x3a,0xa4,0xdf,0x4a,0x6e,0xe6,
33190x87,0x3b,0xce,0xeb,0xf0,0xe0,0x81,0x37,0x9d,0x13,0x3c,0x52,0x8e,0xbd,0xb9,
33200x1d,0x34,0xc6,0x1d,0xd5,0x0a,0x6a,0x3d,0x98,0x29,0x70,0x8c,0x89,0x2a,0xd1,
33210xab,0x82,0x10,0x48,0x1f,0xdc,0xf4,0xef,0xa5,0xc5,0xbb,0x55,0x1a,0x38,0x63,
33220x84,0x4e,0xb7,0x6c,0xad,0x95,0x54,0xec,0x65,0x22,0x10,0x49,0x17,0xb8,0xc0,
33230x1e,0xc7,0x0f,0xac,0x54,0x47 };
3324
3325typedef struct _CONST_DATA_BLOB
3326{
3328 const BYTE *pbData;
3330
3331typedef struct _CONST_BLOB_ARRAY
3332{
3336
3337#define TODO_CHAIN 1
3338#define TODO_ERROR 2
3339#define TODO_INFO 4
3340#define TODO_ELEMENTS 8
3341#define TODO_CHAINS 16
3342#define TODO_POLICY 32
3343
3344/* Gets a certificate chain built from a store containing all the certs in
3345 * certArray, where the last certificate in the chain is expected to be the
3346 * end certificate (the one from which the chain is built.)
3347 */
3349 const CONST_BLOB_ARRAY *certArray, DWORD flags, BOOL includeStore,
3350 LPSYSTEMTIME checkTime, DWORD todo, DWORD testIndex)
3351{
3352 HCERTSTORE store;
3354
3357 if (store)
3358 {
3359 BOOL ret;
3360 PCCERT_CONTEXT endCert;
3361
3362 if (certArray->cBlob > 1)
3363 {
3364 DWORD i;
3365
3366 for (i = 0, ret = TRUE; ret && i < certArray->cBlob - 1; i++)
3367 {
3369 X509_ASN_ENCODING, certArray->rgBlob[i].pbData,
3370 certArray->rgBlob[i].cbData, CERT_STORE_ADD_ALWAYS, NULL);
3371 ok(ret, "Chain %ld: adding cert %ld failed: %08lx\n",
3372 testIndex, i, GetLastError());
3373 }
3374 }
3376 X509_ASN_ENCODING, certArray->rgBlob[certArray->cBlob - 1].pbData,
3377 certArray->rgBlob[certArray->cBlob - 1].cbData, CERT_STORE_ADD_ALWAYS,
3378 &endCert);
3379 ok(ret, "Chain %ld: adding end cert failed: %08lx\n",
3380 testIndex, GetLastError());
3381 if (ret)
3382 {
3383 /* FIXME: allow caller to specify usage matches? */
3384 CERT_CHAIN_PARA chainPara = { sizeof(chainPara), { 0 } };
3385 FILETIME fileTime;
3386
3387 ok(SystemTimeToFileTime(checkTime, &fileTime),
3388 "SystemTimeToFileTime failed for day %d, month %d, year %d\n",
3389 checkTime->wDay, checkTime->wMonth, checkTime->wYear);
3390 ret = CertGetCertificateChain(engine, endCert, &fileTime,
3391 includeStore ? store : NULL, &chainPara, flags, NULL, &chain);
3393 ok(ret, "Chain %ld: CertGetCertificateChain failed: %08lx\n",
3394 testIndex, GetLastError());
3396 }
3397 CertCloseStore(store, 0);
3398 }
3399 return chain;
3400}
3401
3403{
3407
3409 const CERT_TRUST_STATUS *got, const CERT_TRUST_STATUS *ignore,
3410 DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex,
3411 DWORD elementIndex)
3412{
3413 if (got->dwErrorStatus == expected->dwErrorStatus)
3414 ok(got->dwErrorStatus == expected->dwErrorStatus,
3415 "%s[%ld], element [%ld,%ld]: expected error %08lx, got %08lx\n",
3416 testName, testIndex, chainIndex, elementIndex, expected->dwErrorStatus,
3417 got->dwErrorStatus);
3419 ok(got->dwErrorStatus == expected->dwErrorStatus ||
3420 broken((got->dwErrorStatus & ~ignore->dwErrorStatus) ==
3421 (expected->dwErrorStatus & ~ignore->dwErrorStatus)),
3422 "%s[%ld], element [%ld,%ld]: expected error %08lx, got %08lx. %08x is "
3423 "expected if no valid root certificate is available.\n",
3424 testName, testIndex, chainIndex, elementIndex, expected->dwErrorStatus,
3426 if (got->dwInfoStatus == expected->dwInfoStatus)
3427 ok(got->dwInfoStatus == expected->dwInfoStatus,
3428 "%s[%ld], element [%ld,%ld]: expected info %08lx, got %08lx\n",
3429 testName, testIndex, chainIndex, elementIndex, expected->dwInfoStatus,
3430 got->dwInfoStatus);
3431 else todo_wine_if (todo & TODO_INFO)
3432 ok(got->dwInfoStatus == expected->dwInfoStatus ||
3433 broken((got->dwInfoStatus & ~ignore->dwInfoStatus) ==
3434 (expected->dwInfoStatus & ~ignore->dwInfoStatus)),
3435 "%s[%ld], element [%ld,%ld]: expected info %08lx, got %08lx\n",
3436 testName, testIndex, chainIndex, elementIndex, expected->dwInfoStatus,
3437 got->dwInfoStatus);
3438}
3439
3440static void checkSimpleChainStatus(const CERT_SIMPLE_CHAIN *simpleChain,
3441 const SimpleChainStatusCheck *simpleChainStatus,
3442 const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex,
3443 DWORD chainIndex)
3444{
3446 ok(simpleChain->cElement == simpleChainStatus->cElement,
3447 "%s[%ld]: expected %ld elements, got %ld\n", testName, testIndex,
3448 simpleChainStatus->cElement, simpleChain->cElement);
3449 if (simpleChain->cElement == simpleChainStatus->cElement)
3450 {
3451 DWORD i;
3452
3453 for (i = 0; i < simpleChain->cElement; i++)
3454 checkElementStatus(&simpleChainStatus->rgElementStatus[i],
3455 &simpleChain->rgpElement[i]->TrustStatus, ignore, todo, testName,
3456 testIndex, chainIndex, i);
3457 }
3458}
3459
3460typedef struct _ChainStatusCheck
3461{
3467
3469 const ChainStatusCheck *chainStatus, DWORD todo, LPCSTR testName,
3470 DWORD testIndex)
3471{
3472 ok(chain->cChain == chainStatus->cChain,
3473 "%s[%ld]: expected %ld simple chains, got %ld\n", testName, testIndex,
3474 chainStatus->cChain, chain->cChain);
3476 chain->TrustStatus.dwErrorStatus != chainStatus->status.dwErrorStatus)
3477 ok(chain->TrustStatus.dwErrorStatus ==
3478 chainStatus->status.dwErrorStatus ||
3479 broken((chain->TrustStatus.dwErrorStatus &
3480 ~chainStatus->statusToIgnore.dwErrorStatus) ==
3481 (chainStatus->status.dwErrorStatus &
3482 ~chainStatus->statusToIgnore.dwErrorStatus)),
3483 "%s[%ld]: expected error %08lx, got %08lx. %08x is expected if no valid "
3484 "root certificate is available.\n",
3485 testName, testIndex, chainStatus->status.dwErrorStatus,
3486 chain->TrustStatus.dwErrorStatus, CERT_TRUST_IS_UNTRUSTED_ROOT);
3488 chain->TrustStatus.dwInfoStatus != chainStatus->status.dwInfoStatus)
3489 ok(chain->TrustStatus.dwInfoStatus ==
3490 chainStatus->status.dwInfoStatus ||
3491 broken((chain->TrustStatus.dwInfoStatus &
3492 ~chainStatus->statusToIgnore.dwInfoStatus) ==
3493 (chainStatus->status.dwInfoStatus &
3494 ~chainStatus->statusToIgnore.dwInfoStatus)),
3495 "%s[%ld]: expected info %08lx, got %08lx\n",
3496 testName, testIndex, chainStatus->status.dwInfoStatus,
3497 chain->TrustStatus.dwInfoStatus);
3498 if (chain->cChain == chainStatus->cChain)
3499 {
3500 DWORD i;
3501
3502 for (i = 0; i < chain->cChain; i++)
3503 checkSimpleChainStatus(chain->rgpChain[i],
3504 &chainStatus->rgChainStatus[i], &chainStatus->statusToIgnore,
3505 todo, testName, testIndex, i);
3506 }
3507}
3508
3509/* Wednesday, Oct 1, 2007 */
3510static SYSTEMTIME oct2007 = { 2007, 10, 1, 1, 0, 0, 0, 0 };
3511/* Wednesday, Oct 28, 2009 */
3512static SYSTEMTIME oct2009 = { 2009, 10, 3, 28, 0, 0, 0, 0 };
3513/* Wednesday, Oct 28, 2010 */
3514static SYSTEMTIME oct2010 = { 2010, 10, 3, 28, 0, 0, 0, 0 };
3515/* Friday, June 6, 2013 */
3516static SYSTEMTIME jun2013 = { 2013, 6, 5, 6, 0, 0, 0, 0 };
3517/* Saturday, Oct 1, 2016 */
3518static SYSTEMTIME oct2016 = { 2016, 10, 6, 1, 0, 0, 0, 0 };
3519/* Wednesday, Nov 17, 2016 */
3520static SYSTEMTIME nov2016 = { 2016, 11, 3, 17, 0, 0, 0, 0 };
3521/* Thursday, May 14, 2020 */
3522static SYSTEMTIME may2020 = { 2020, 5, 4, 14, 0, 0, 0, 0 };
3523
3524typedef struct _ChainCheck
3525{
3531
3533 { sizeof(chain0_0), chain0_0 },
3534 { sizeof(chain0_1), chain0_1 },
3535};
3540};
3543};
3545 { sizeof(chain0_0), chain0_0 },
3546 { sizeof(chain1_1), chain1_1 },
3547};
3553};
3556};
3558 { sizeof(chain2_0), chain2_0 },
3559 { sizeof(chain0_1), chain0_1 },
3560};
3565};
3568};
3570 { sizeof(chain3_0), chain3_0 },
3571 { sizeof(chain0_1), chain0_1 },
3572};
3577};
3580};
3582 { sizeof(chain4_0), chain4_0 },
3583 { sizeof(chain4_1), chain4_1 },
3584 { sizeof(chain4_2), chain4_2 },
3585};
3591};
3594};
3596 { sizeof(chain5_0), chain5_0 },
3597 { sizeof(chain5_1), chain5_1 },
3598};
3604};
3607};
3609 { sizeof(chain0_0), chain0_0 },
3610 { sizeof(chain4_1), chain4_1 },
3611};
3616};
3619};
3621 { sizeof(chain0_0), chain0_0 },
3622 { sizeof(chain7_1), chain7_1 },
3623};
3628};
3631};
3633 { sizeof(chain8_0), chain8_0 },
3634 { sizeof(chain8_1), chain8_1 },
3635 { sizeof(chain8_2), chain8_2 },
3636};
3642};
3645};
3647 { sizeof(chain9_0), chain9_0 },
3648 { sizeof(chain7_1), chain7_1 },
3649};
3655};
3658};
3660 { sizeof(chain0_0), chain0_0 },
3661 { sizeof(chain10_1), chain10_1 },
3662 { sizeof(chain7_1), chain7_1 },
3663};
3668};
3671};
3673 { sizeof(chain0_0), chain0_0 },
3674 { sizeof(chain11_1), chain11_1 },
3675 { sizeof(chain7_1), chain7_1 },
3676};
3678 { sizeof(chain12_0), chain12_0 },
3679 { sizeof(chain7_1), chain7_1 },
3680};
3685};
3688};
3690 { sizeof(chain0_0), chain0_0 },
3691 { sizeof(chain13_1), chain13_1 },
3692};
3697};
3700};
3702 { sizeof(chain14_0), chain14_0 },
3703 { sizeof(chain14_1), chain14_1 },
3704};
3709};
3712};
3714 { sizeof(chain15_0), chain15_0 },
3715 { sizeof(chain14_1), chain14_1 },
3716};
3721};
3724};
3726 { sizeof(chain0_0), chain0_0 },
3727 { sizeof(chain16_1), chain16_1 },
3728};
3734};
3737};
3739 { sizeof(chain0_0), chain0_0 },
3740 { sizeof(chain17_1), chain17_1 },
3741 { sizeof(chain17_2), chain17_2 },
3742};
3748};
3751};
3753 { sizeof(chain0_0), chain0_0 },
3754 { sizeof(chain18_1), chain18_1 },
3755 { sizeof(chain18_2), chain18_2 },
3756};
3762};
3765};
3767 { sizeof(chain19_0), chain19_0 },
3768 { sizeof(chain19_1), chain19_1 },
3769};
3775};
3778};
3780 { sizeof(chain20_0), chain20_0 },
3781 { sizeof(chain20_1), chain20_1 },
3782};
3787};
3790};
3792 { sizeof(chain21_0), chain21_0 },
3793 { sizeof(chain21_1), chain21_1 },
3794};
3800};
3803};
3805 { sizeof(chain22_0), chain22_0 },
3806 { sizeof(chain22_1), chain22_1 },
3807};
3812};
3815};
3817 { sizeof(chain23_0), chain23_0 },
3818 { sizeof(chain23_1), chain23_1 },
3819};
3824};
3827};
3829 { sizeof(chain24_0), chain24_0 },
3830 { sizeof(chain24_1), chain24_1 },
3831};
3836};
3839};
3841 { sizeof(chain25_0), chain25_0 },
3842 { sizeof(chain25_1), chain25_1 },
3843};
3848};
3851};
3853 { sizeof(chain26_0), chain26_0 },
3854 { sizeof(chain26_1), chain26_1 },
3855};
3860};
3863};
3865 { sizeof(chain27_0), chain27_0 },
3866 { sizeof(chain27_1), chain27_1 },
3867};
3873};
3876};
3882};
3886};
3888 { sizeof(chain28_0), chain28_0 },
3889 { sizeof(chain28_1), chain28_1 },
3890};
3895};
3898};
3900 { sizeof(chain0_0), chain0_0 },
3901 { sizeof(chain29_1), chain29_1 },
3902};
3904 { sizeof(chain0_0), chain0_0 },
3905 { sizeof(chain30_1), chain30_1 },
3906 { sizeof(chain30_2), chain30_2 },
3907};
3914};
3917};
3919 { sizeof(chain0_0), chain0_0 },
3920 { sizeof(chain31_1), chain31_1 },
3921};
3923 { sizeof(chain32_1), chain32_1 },
3924 { sizeof(chain32_2), chain32_2 },
3925 { sizeof(chain32_3), chain32_3 },
3926};
3928 { sizeof(chain33_1), chain33_1 },
3929};
3931 { sizeof(selfSignedCert), selfSignedCert }
3932};
3936};
3940};
3944 { sizeof(google_com), google_com },
3945};
3946/* The Google cert is only valid from 11/10/2016 to 2/2/2017, so with the date
3947 * tested (October 2016) it's not time valid.
3948 */
3953 /* TODO_INFO */
3955};
3959};
3962 { sizeof(thawte_ssl_ca), thawte_ssl_ca },
3963 { sizeof(battlenet), battlenet },
3964};
3965/* The openssl cert is only valid from 9/12/2008 to 9/13/2012, so with the date
3966 * tested (October 2007) it's not time valid.
3967 */
3970 { sizeof(global_sign_ca), global_sign_ca },
3971 { sizeof(openssl_org), openssl_org },
3972};
3978};
3982};
3983/* The OpenSSL chain may not have its root trusted, in which case the chain
3984 * is truncated (on Win98).
3985 */
3987 { sizeof(global_sign_ca), global_sign_ca },
3988 { sizeof(openssl_org), openssl_org },
3989};
3993};
3997};
3998/*
3999 * USERTrust -> InCommon RSA CA -> cs.stanford.edu
4000 * cs.stanford.edu's cert is only valid from 10/21/2016 to 10/22/2019, so with
4001 * the date tested (October 1, 2016) it's not time valid.
4002 */
4004 { sizeof(usertrust_ca), usertrust_ca },
4005 { sizeof(incommon_rsa_ca), incommon_rsa_ca },
4006 { sizeof(cs_stanford_edu), cs_stanford_edu },
4007};
4013};
4017};
4019 /* Windows XP erroneously sets CERT_TRUST_HAS_PREFERRED_ISSUER on all
4020 * elements, so ignore it.
4021 * Windows 98/NT4 also set CERT_TRUST_IS_NOT_TIME_NESTED on chains they
4022 * shouldn't, so ignore those too.
4023 */
4024 { { ARRAY_SIZE(chain0), chain0 },
4027 1, simpleStatus0 }, 0, &oct2007 },
4028 { { ARRAY_SIZE(chain1), chain1 },
4032 1, simpleStatus1 }, 0, &oct2007 },
4033 { { ARRAY_SIZE(chain2), chain2 },
4036 1, simpleStatus2 }, 0, &oct2007 },
4037 /* Earlier versions of Windows incorrectly don't set
4038 * CERT_TRUST_INVALID_BASIC_CONSTRAINTS on this chain.
4039 */
4040 { { ARRAY_SIZE(chain3), chain3 },
4045 1, simpleStatus3 }, 0, &oct2007 },
4046 /* Earlier versions of Windows incorrectly don't set
4047 * CERT_TRUST_INVALID_BASIC_CONSTRAINTS on this chain.
4048 */
4049 { { ARRAY_SIZE(chain4), chain4 },
4054 1, simpleStatus4 }, 0, &oct2007 },
4055 /* Windows versions prior to Vista/2008 incorrectly set
4056 * CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT on this chain, so ignore it.
4057 * Similarly, some older versions of Windows incorrectly set
4058 * CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, ignore that too.
4059 */
4060 { { ARRAY_SIZE(chain5), chain5 },
4066 { { ARRAY_SIZE(chain6), chain6 },
4069 { { ARRAY_SIZE(chain7), chain7 },
4072 /* Earlier versions of Windows incorrectly don't set
4073 * CERT_TRUST_INVALID_BASIC_CONSTRAINTS on this chain.
4074 */
4075 { { ARRAY_SIZE(chain8), chain8 },
4080 1, simpleStatus8 }, 0, &oct2007 },
4081 /* Earlier versions of Windows incorrectly don't set
4082 * CERT_TRUST_INVALID_BASIC_CONSTRAINTS on this chain.
4083 */
4084 { { ARRAY_SIZE(chain9), chain9 },
4089 1, simpleStatus9 }, 0, &oct2007 },
4090 { { ARRAY_SIZE(chain10), chain10 },
4093 { { ARRAY_SIZE(chain11), chain11 },
4096 { { ARRAY_SIZE(chain12), chain12 },
4099 1, simpleStatus12 }, 0, &oct2007 },
4100 { { ARRAY_SIZE(chain13), chain13 },
4103 0, &oct2007 },
4104 { { ARRAY_SIZE(chain14), chain14 },
4107 0, &oct2007 },
4108 /* Earlier versions of crypt32 incorrectly do not complain that the end cert's
4109 * key usage is invalid, so ignore that error.
4110 */
4111 { { ARRAY_SIZE(chain15), chain15 },
4115 1, simpleStatus15 },
4116 0, &oct2007 },
4117 { { ARRAY_SIZE(chain16), chain16 },
4121 1, simpleStatus16 },
4122 0, &oct2007 },
4123 { { ARRAY_SIZE(chain17), chain17 },
4126 0, &oct2007 },
4127 { { ARRAY_SIZE(chain18), chain18 },
4131 1, simpleStatus18 },
4132 0, &oct2007 },
4133 /* Older versions of crypt32 set CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
4134 * even though the constraint and alt name match.
4135 * They also do not set CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS, since they
4136 * incorrectly find a name constraint error.
4137 */
4138 { { ARRAY_SIZE(chain19), chain19 },
4142 },
4144 1, simpleStatus19 },
4145 0, &oct2007 },
4146 /* Older versions of crypt32 do not set
4147 * CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, though they should. So
4148 * ignore it (on Windows) but require it (on Wine.)
4149 */
4150 { { ARRAY_SIZE(chain20), chain20 },
4157 1, simpleStatus20 },
4158 0, &oct2007 },
4159 { { ARRAY_SIZE(chain21), chain21 },
4163 },
4165 1, simpleStatus21 },
4166 0, &oct2007 },
4167 { { ARRAY_SIZE(chain22), chain22 },
4174 1, simpleStatus22 },
4175 0, &oct2007 },
4176 { { ARRAY_SIZE(chain23), chain23 },
4183 1, simpleStatus23 },
4184 0, &oct2007 },
4185 { { ARRAY_SIZE(chain24), chain24 },
4192 1, simpleStatus24 },
4193 0, &oct2007 },
4194 { { ARRAY_SIZE(chain25), chain25 },
4201 1, simpleStatus25 },
4202 0, &oct2007 },
4203 { { ARRAY_SIZE(chain26), chain26 },
4210 1, simpleStatus26 },
4211 0, &oct2007 },
4212 /* chain27 is handled separately elsewhere */
4213 { { ARRAY_SIZE(chain28), chain28 },
4220 1, simpleStatus28 },
4221 0, &oct2007 },
4222 /* chain29 is handled separately elsewhere */
4223 /* Microsoft incorrectly ignores unknown/unsupported critical extensions on
4224 * older Windows versions, so ignore the error on Windows.
4225 */
4226 { { ARRAY_SIZE(chain30), chain30 },
4235 1, simpleStatus30 },
4236 0, &oct2007 },
4240 1, selfSignedSimpleStatus }, 0, &oct2007 },
4241 /* The google chain may or may not have its root trusted, so ignore the error.
4242 * The chain is also considered not time nested on Win98, so ignore that
4243 * error too.
4244 * TODO_INFO: If the root cert is considered self-signed, InfoStatus is hardcoded in Wine
4245 * e.g. has always CERT_TRUST_HAS_NAME_MATCH_ISSUER flag
4246 * @see CRYPT_CheckSimpleChain
4247 */
4253 /* The stanford chain may or may not have its root trusted, so ignore the error
4254 */
4258 1, stanfordSimpleStatus }, 0, &oct2016 },
4259};
4260
4263};
4267};
4273 0 },
4274 { { ARRAY_SIZE(chain8), chain8 },
4278 0 },
4279};
4280
4281 /* The openssl chain may or may not have its root trusted, so ignore the error
4282 */
4287 1, opensslSimpleStatus }, 0 };
4294
4295/* Chain27 checks a certificate with a subject alternate name containing an
4296 * embedded NULL. Newer crypt32 versions fail to decode such alternate names,
4297 * correctly prohibiting them. Older crypt32 versions do not. Rather than
4298 * ignoring the expected error bits, check each version separately depending
4299 * on the chain's error status.
4300 */
4307 1, simpleStatus27 },
4308 0 };
4317 0 };
4318
4319#define test_name_blob(a,b) _test_name_blob(__LINE__,a,b)
4320static void _test_name_blob(unsigned line, CERT_NAME_BLOB *blob, const char *exdata)
4321{
4322 char buf[1024];
4323
4325 ok_(__FILE__,line)(!strcmp(buf, exdata), "got string %s, expected %s\n", buf, exdata);
4326}
4327
4328static void testGetCertChain(void)
4329{
4330 BOOL ret;
4332 CERT_CHAIN_PARA para = { 0 };
4334 const CERT_SIMPLE_CHAIN *simple_chain;
4335 const CERT_CHAIN_ELEMENT *chain_elem;
4336 FILETIME fileTime;
4337 DWORD i;
4338 HCERTSTORE store;
4339 static char one_two_three[] = "1.2.3";
4340 static char oid_server_auth[] = szOID_PKIX_KP_SERVER_AUTH;
4341 LPSTR oids[2];
4342
4343 /* Basic parameter checks */
4344 if (0)
4345 {
4346 /* Crash on Vista */
4349 "Expected E_INVALIDARG, got %08lx\n", GetLastError());
4350 }
4352 &chain);
4354 "Expected E_INVALIDARG, got %08lx\n", GetLastError());
4355 /* Crash
4356 ret = CertGetCertificateChain(NULL, NULL, NULL, NULL, &para, 0, NULL, NULL);
4357 ret = CertGetCertificateChain(NULL, NULL, NULL, NULL, &para, 0, NULL,
4358 &chain);
4359 */
4361 sizeof(bigCert));
4362 if (0)
4363 {
4364 /* Crash on Vista */
4367 "Expected E_INVALIDARG, got %08lx\n", GetLastError());
4368 }
4369 /* Crash
4370 ret = CertGetCertificateChain(NULL, cert, NULL, NULL, &para, 0, NULL, NULL);
4371 */
4372
4373 /* Tests with an invalid cert (one whose signature is bad) */
4374 SetLastError(0xdeadbeef);
4376 &chain);
4377 ok(!ret, "Expected failure\n");
4379 GetLastError() == CRYPT_E_ASN1_BADTAG /* Vista */,
4380 "Expected ERROR_INVALID_DATA or CRYPT_E_ASN1_BADTAG, got %ld\n", GetLastError());
4381 para.cbSize = sizeof(para);
4382 SetLastError(0xdeadbeef);
4384 &chain);
4385 ok(!ret, "Expected failure\n");
4387 GetLastError() == CRYPT_E_ASN1_BADTAG /* Vista */,
4388 "Expected ERROR_INVALID_DATA or CRYPT_E_ASN1_BADTAG, got %ld\n", GetLastError());
4389
4390 para.cbSize = 0;
4391 SetLastError(0xdeadbeef);
4393 &chain);
4394 ok(!ret, "Expected failure\n");
4396 GetLastError() == CRYPT_E_ASN1_BADTAG, /* Vista and higher */
4397 "Expected ERROR_INVALID_DATA or CRYPT_E_ASN1_BADTAG, got %ld\n", GetLastError());
4398
4400
4401 /* Test usage match with Google's cert */
4409 google_com, sizeof(google_com));
4410 SystemTimeToFileTime(&oct2009, &fileTime);
4411 memset(&para, 0, sizeof(para));
4412 para.cbSize = sizeof(para);
4413 oids[0] = one_two_three;
4417 ret = CertGetCertificateChain(NULL, cert, &fileTime, store, &para,
4418 0, NULL, &chain);
4419 ok(ret, "CertGetCertificateChain failed: %08lx\n", GetLastError());
4420 if (ret)
4421 {
4422 ok(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE,
4423 "expected CERT_TRUST_IS_NOT_VALID_FOR_USAGE\n");
4425 }
4426 oids[0] = oid_server_auth;
4427 ret = CertGetCertificateChain(NULL, cert, &fileTime, store, &para,
4428 0, NULL, &chain);
4429 ok(ret, "CertGetCertificateChain failed: %08lx\n", GetLastError());
4430 if (ret)
4431 {
4432 ok(!(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE),
4433 "didn't expect CERT_TRUST_IS_NOT_VALID_FOR_USAGE, got %lx\n", chain->TrustStatus.dwErrorStatus);
4435 }
4436 oids[1] = one_two_three;
4439 ret = CertGetCertificateChain(NULL, cert, &fileTime, store, &para,
4440 0, NULL, &chain);
4441 ok(ret, "CertGetCertificateChain failed: %08lx\n", GetLastError());
4442 if (ret)
4443 {
4444 ok(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE,
4445 "expected CERT_TRUST_IS_NOT_VALID_FOR_USAGE\n");
4447 }
4449 ret = CertGetCertificateChain(NULL, cert, &fileTime, store, &para,
4450 0, NULL, &chain);
4451 ok(ret, "CertGetCertificateChain failed: %08lx\n", GetLastError());
4452 if (ret)
4453 {
4454 ok(!(chain->TrustStatus.dwErrorStatus &
4456 "didn't expect CERT_TRUST_IS_NOT_VALID_FOR_USAGE\n");
4458 }
4459 CertCloseStore(store, 0);
4461
4462 for (i = 0; i < ARRAY_SIZE(chainCheck); i++)
4463 {
4464 chain = getChain(NULL, &chainCheck[i].certs, 0, TRUE, chainCheck[i].validfor,
4465 chainCheck[i].todo, i);
4466 if (chain)
4467 {
4469 "chainCheck", i);
4471 }
4472 }
4475 if (chain)
4476 {
4477 ok(chain->TrustStatus.dwErrorStatus ==
4479 broken((chain->TrustStatus.dwErrorStatus &
4483 "unexpected chain error status %08lx\n",
4484 chain->TrustStatus.dwErrorStatus);
4486 chain->TrustStatus.dwErrorStatus)
4488 opensslChainCheck.todo, "opensslChainCheck", 0);
4489 else
4491 incompleteOpensslChainCheck.todo, "incompleteOpensslChainCheck",
4492 0);
4494 }
4495 for (i = 0; i < ARRAY_SIZE(chainCheckNoStore); i++)
4496 {
4499 if (chain)
4500 {
4502 chainCheckNoStore[i].todo, "chainCheckNoStore", i);
4504 }
4505 }
4508 if (chain)
4509 {
4510 ok(chain->TrustStatus.dwErrorStatus ==
4512 broken((chain->TrustStatus.dwErrorStatus &
4516 "unexpected chain error status %08lx\n",
4517 chain->TrustStatus.dwErrorStatus);
4519 chain->TrustStatus.dwErrorStatus)
4521 chainCheckEmbeddedNull.todo, "chainCheckEmbeddedNull", 0);
4522 else
4524 chainCheckEmbeddedNullBroken.todo, "chainCheckEmbeddedNullBroken",
4525 0);
4527 }
4528
4530 ok(store != NULL, "CertOpenStore failed: %lu\n", GetLastError());
4531
4534 ok(ret, "CertAddEncodedCertificateToStore failed: %lu\n", GetLastError());
4535
4536 oids[0] = oid_server_auth;
4537 memset(&para, 0, sizeof(para));
4538 para.cbSize = sizeof(para);
4541 SystemTimeToFileTime(&jun2013, &fileTime);
4542
4543 /* Pass store that does not contain all certs in chain. */
4544 ret = CertGetCertificateChain(NULL, cert, &fileTime, store, &para, 0, NULL, &chain);
4545 ok(ret, "CertGetCertificateChain failed: %lu\n", GetLastError());
4546
4547 ok(chain->TrustStatus.dwErrorStatus == CERT_TRUST_HAS_EXACT_MATCH_ISSUER, "chain->TrustStatus.dwErrorStatus = %lx\n",
4548 chain->TrustStatus.dwErrorStatus);
4549 todo_wine
4550 ok(chain->TrustStatus.dwInfoStatus == CERT_TRUST_HAS_PREFERRED_ISSUER, "chain->TrustStatus.dwInfoStatus = %lx\n",
4551 chain->TrustStatus.dwInfoStatus);
4552
4553 ok(chain->cChain == 1, "chain->cChain = %ld\n", chain->cChain);
4554 ok(!chain->cLowerQualityChainContext, "chain->cLowerQualityChainContext = %lx\n", chain->cLowerQualityChainContext);
4555 ok(!chain->rgpLowerQualityChainContext, "chain->rgpLowerQualityChainContext = %p\n", chain->rgpLowerQualityChainContext);
4556
4557 simple_chain = *chain->rgpChain;
4558 ok(simple_chain->cbSize == sizeof(*simple_chain), "simple_chain->cbSize = %lu\n", simple_chain->cbSize);
4559 ok(simple_chain->TrustStatus.dwErrorStatus == CERT_TRUST_HAS_EXACT_MATCH_ISSUER, "simple_chain->TrustStatus.dwErrorStatus = %lx\n",
4560 simple_chain->TrustStatus.dwErrorStatus);
4561 todo_wine
4563 "simple_chain->TrustStatus.dwInfoStatus = %lx\n", simple_chain->TrustStatus.dwInfoStatus);
4564 ok(simple_chain->cElement == 3, "simple_chain->cElement = %lu\n", simple_chain->cElement);
4565
4566 for(i=0; i < simple_chain->cElement; i++) {
4567 chain_elem = simple_chain->rgpElement[i];
4568 ok(chain_elem->cbSize == sizeof(*chain_elem), "chain_elem->cbSize = %lu\n", chain_elem->cbSize);
4569 if (!i || i == 1)
4571 "chain_elem->TrustStatus.dwErrorStatus = %lx\n", chain_elem->TrustStatus.dwErrorStatus);
4572 else
4573 ok(!chain_elem->TrustStatus.dwErrorStatus, "chain_elem->TrustStatus.dwErrorStatus = %lx\n",
4574 chain_elem->TrustStatus.dwErrorStatus);
4575 trace("info[%lu] = %lx\n", i, chain_elem->TrustStatus.dwInfoStatus);
4577 "chain_elem->pCertContext->dwCertEncodingType = %lx\n",
4578 chain_elem->pCertContext->dwCertEncodingType);
4579 }
4580
4581 ok(simple_chain->rgpElement[0]->pCertContext == cert, "simple_chain->rgpElement[0]->pCertContext != cert\n");
4583 "US, New Jersey, Jersey City, The USERTRUST Network, USERTrust RSA Certification Authority");
4585 "US, VA, Herndon, Network Solutions L.L.C., Network Solutions OV Server CA 2");
4587 "US, New Jersey, Jersey City, The USERTRUST Network, USERTrust RSA Certification Authority");
4589 "US, New Jersey, Jersey City, The USERTRUST Network, USERTrust RSA Certification Authority");
4590
4592
4593 /* Test revocation flags */
4595 &chain);
4596 ok(ret, "CertGetCertificateChain failed: %lu\n", GetLastError());
4597 ok(chain->TrustStatus.dwErrorStatus == CERT_TRUST_HAS_EXACT_MATCH_ISSUER, "chain->TrustStatus.dwErrorStatus = %lx\n",
4598 chain->TrustStatus.dwErrorStatus);
4600
4602 ok(ret, "CertGetCertificateChain failed: %lu\n", GetLastError());
4603 ok(chain->TrustStatus.dwErrorStatus == CERT_TRUST_HAS_EXACT_MATCH_ISSUER,
4604 "chain->TrustStatus.dwErrorStatus = %lx\n", chain->TrustStatus.dwErrorStatus);
4606
4608 NULL, &chain);
4609 ok(ret, "CertGetCertificateChain failed: %lu\n", GetLastError());
4610 ok(chain->TrustStatus.dwErrorStatus == CERT_TRUST_HAS_EXACT_MATCH_ISSUER, "chain->TrustStatus.dwErrorStatus = %lx\n",
4611 chain->TrustStatus.dwErrorStatus);
4613
4614 /* Test HCCE_LOCAL_MACHINE */
4615 ret = CertGetCertificateChain(HCCE_LOCAL_MACHINE, cert, &fileTime, store, &para, 0, NULL, &chain);
4616 ok(ret, "CertGetCertificateChain failed: %lu\n", GetLastError());
4618
4620 CertCloseStore(store, 0);
4621}
4622
4624{
4625 BOOL ret;
4627 CERT_CHAIN_PARA para = { 0 };
4629 HCERTSTORE store;
4630 DWORD i;
4631
4634
4638 ok(ret, "CertAddEncodedCertificateToStore failed: %08lx\n", GetLastError());
4642 ok(ret, "CertAddEncodedCertificateToStore failed: %08lx\n", GetLastError());
4643
4644 for (i = 0; i < sizeof(CERT_CHAIN_PARA) + 2; i++)
4645 {
4646 FILETIME fileTime;
4647
4648 SystemTimeToFileTime(&oct2007, &fileTime);
4649
4650 para.cbSize = i;
4651 ret = CertGetCertificateChain(NULL, cert, &fileTime,
4652 NULL, &para, 0, NULL, &chain);
4653 ok(ret, "CertGetCertificateChain failed %lu\n", GetLastError());
4655 }
4656
4658 CertCloseStore(store, 0);
4659}
4660
4661typedef struct _ChainPolicyCheck
4662{
4668
4670 { { ARRAY_SIZE(chain0), chain0 },
4671 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4672 { { ARRAY_SIZE(chain1), chain1 },
4673 { 0, TRUST_E_CERT_SIGNATURE, 0, 0, NULL }, NULL, 0 },
4674 { { ARRAY_SIZE(chain2), chain2 },
4675 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4676 { { ARRAY_SIZE(chain3), chain3 },
4677 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4678 { { ARRAY_SIZE(chain4), chain4 },
4679 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4680 { { ARRAY_SIZE(chain5), chain5 },
4681 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4682 { { ARRAY_SIZE(chain6), chain6 },
4683 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4684 { { ARRAY_SIZE(chain7), chain7 },
4685 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4686 { { ARRAY_SIZE(chain8), chain8 },
4687 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4688 { { ARRAY_SIZE(chain9), chain9 },
4689 { 0, CERT_E_CHAINING, 0, -1, NULL }, NULL, 0 },
4690 { { ARRAY_SIZE(chain10), chain10 },
4691 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4692 { { ARRAY_SIZE(chain11), chain11 },
4693 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4694 { { ARRAY_SIZE(chain12), chain12 },
4695 { 0, TRUST_E_CERT_SIGNATURE, 0, 1, NULL }, NULL, 0 },
4696 { { ARRAY_SIZE(chain13), chain13 },
4697 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4698 { { ARRAY_SIZE(chain14), chain14 },
4699 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4700 { { ARRAY_SIZE(chain15), chain15 },
4701 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4702 { { ARRAY_SIZE(chain16), chain16 },
4703 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4704 { { ARRAY_SIZE(chain17), chain17 },
4705 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4706 { { ARRAY_SIZE(chain18), chain18 },
4707 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4709 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL }, NULL, 0 },
4710};
4711
4712/* Windows NT 4 has a different error code when the validity period doesn't
4713 * nest. (It's arguably more correct than other Windows versions, but since
4714 * others do not emulate its behavior, we mark its behavior broken.)
4715 */
4717 { 0, CERT_E_VALIDITYPERIODNESTING, 0, 0, NULL };
4718
4720 { ARRAY_SIZE(chain2), chain2 },
4721 { 0, 0, -1, -1, NULL}, NULL, 0
4722};
4723
4726 { 0, 0, -1, -1, NULL}, NULL, 0
4727};
4728
4731 { 0, 0, -1, -1, NULL}, NULL, 0
4732};
4733
4736 { 0, CERT_E_WRONG_USAGE, 0, 1, NULL}, NULL, 0
4737};
4738
4740 { { ARRAY_SIZE(chain0), chain0 },
4741 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4742 { { ARRAY_SIZE(chain1), chain1 },
4743 { 0, TRUST_E_CERT_SIGNATURE, 0, 0, NULL }, NULL, 0 },
4744 { { ARRAY_SIZE(chain2), chain2 },
4745 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4746 { { ARRAY_SIZE(chain3), chain3 },
4747 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4748 { { ARRAY_SIZE(chain4), chain4 },
4749 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4750 { { ARRAY_SIZE(chain5), chain5 },
4751 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4752 { { ARRAY_SIZE(chain6), chain6 },
4753 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4754 { { ARRAY_SIZE(chain7), chain7 },
4755 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4756 { { ARRAY_SIZE(chain8), chain8 },
4757 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4758 { { ARRAY_SIZE(chain9), chain9 },
4759 { 0, CERT_E_UNTRUSTEDROOT, 0, -1, NULL }, NULL, 0 },
4760 { { ARRAY_SIZE(chain10), chain10 },
4761 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4762 { { ARRAY_SIZE(chain11), chain11 },
4763 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4764 { { ARRAY_SIZE(chain12), chain12 },
4765 { 0, TRUST_E_CERT_SIGNATURE, 0, 1, NULL }, NULL, 0 },
4766 { { ARRAY_SIZE(chain13), chain13 },
4767 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4768 { { ARRAY_SIZE(chain14), chain14 },
4769 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4770 { { ARRAY_SIZE(chain15), chain15 },
4771 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4772 { { ARRAY_SIZE(chain16), chain16 },
4773 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4774 { { ARRAY_SIZE(chain17), chain17 },
4775 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4776 { { ARRAY_SIZE(chain18), chain18 },
4777 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4779 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL }, NULL, 0 },
4780};
4781
4783 { ARRAY_SIZE(chain0), chain0 },
4784 { 0, CERT_E_EXPIRED, 0, 0, NULL }, NULL, 0
4785};
4786
4789 { 0, CERT_E_EXPIRED, 0, 0, NULL}, NULL, 0
4790};
4791
4794 { 0, 0, -1, -1, NULL}, NULL, 0
4795};
4796
4797/* Win98 does not trust the root of the OpenSSL chain or the Stanford chain */
4799 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL };
4800
4803 { 0, 0, -1, -1, NULL}, &untrustedRootStatus, 0
4804};
4805
4809};
4810
4813 { 0, 0, -1, -1, NULL}, NULL, 0
4814};
4815
4818 { 0, CERT_E_CN_NO_MATCH, 0, 0, NULL}, NULL, 0
4819};
4820
4823 { 0, 0, -1, -1, NULL}, &untrustedRootStatus, 0
4824};
4825
4829};
4830
4833 { 0, 0, -1, -1, NULL}, &untrustedRootStatus, 0
4834};
4835
4838 { 0, CERT_E_CRITICAL, 0, 1, NULL}, &badDateNestingStatus, 0
4839};
4840
4843 { 0, 0, -1, -1, NULL}, NULL, 0
4844};
4845
4848 { 0, CERT_E_CN_NO_MATCH, 0, 0, NULL}, NULL, 0
4849};
4850
4852 { { ARRAY_SIZE(chain0), chain0 },
4853 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4854 { { ARRAY_SIZE(chain1), chain1 },
4855 { 0, TRUST_E_CERT_SIGNATURE, 0, 0, NULL }, NULL, 0 },
4856 { { ARRAY_SIZE(chain2), chain2 },
4857 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4858 { { ARRAY_SIZE(chain3), chain3 },
4859 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4860 { { ARRAY_SIZE(chain4), chain4 },
4861 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4862 { { ARRAY_SIZE(chain5), chain5 },
4863 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4864 { { ARRAY_SIZE(chain6), chain6 },
4865 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4866 { { ARRAY_SIZE(chain7), chain7 },
4867 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4868 { { ARRAY_SIZE(chain8), chain8 },
4869 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4870 { { ARRAY_SIZE(chain9), chain9 },
4871 { 0, CERT_E_CHAINING, 0, -1, NULL }, NULL, 0 },
4872 { { ARRAY_SIZE(chain10), chain10 },
4873 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4874 { { ARRAY_SIZE(chain11), chain11 },
4875 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4876 { { ARRAY_SIZE(chain12), chain12 },
4877 { 0, TRUST_E_CERT_SIGNATURE, 0, 1, NULL }, NULL, 0 },
4878 { { ARRAY_SIZE(chain13), chain13 },
4879 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4880 { { ARRAY_SIZE(chain14), chain14 },
4881 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4882 { { ARRAY_SIZE(chain15), chain15 },
4883 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4884 { { ARRAY_SIZE(chain16), chain16 },
4885 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, 0 },
4886 { { ARRAY_SIZE(chain17), chain17 },
4887 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4888 { { ARRAY_SIZE(chain18), chain18 },
4889 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, 0 },
4891 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL }, NULL, 0 },
4892};
4893
4894/* On some older systems, the element index is set to 2 rather than 1 for
4895 * chain 4, because they do not catch the basic constraints error in the
4896 * chain, which occurs at element 1.
4897 */
4899 { 0, TRUST_E_BASIC_CONSTRAINTS, 0, 2, NULL };
4900
4902 { { ARRAY_SIZE(chain0), chain0 },
4903 { 0, 0, -1, -1, NULL }, NULL, 0 },
4904 { { ARRAY_SIZE(chain1), chain1 },
4905 { 0, 0, -1, -1, NULL }, NULL, 0 },
4906 { { ARRAY_SIZE(chain2), chain2 },
4907 { 0, 0, -1, -1, NULL }, NULL, 0 },
4908 { { ARRAY_SIZE(chain3), chain3 },
4909 { 0, TRUST_E_BASIC_CONSTRAINTS, 0, 1, NULL }, NULL, 0 },
4910 { { ARRAY_SIZE(chain4), chain4 },
4912 { { ARRAY_SIZE(chain5), chain5 },
4913 { 0, 0, -1, -1, NULL }, NULL, 0 },
4914 { { ARRAY_SIZE(chain6), chain6 },
4915 { 0, 0, -1, -1, NULL }, NULL, 0 },
4916 { { ARRAY_SIZE(chain7), chain7 },
4917 { 0, 0, -1, -1, NULL }, NULL, 0 },
4918 { { ARRAY_SIZE(chain8), chain8 },
4919 { 0, TRUST_E_BASIC_CONSTRAINTS, 0, 1, NULL }, NULL, 0 },
4920 { { ARRAY_SIZE(chain9), chain9 },
4921 { 0, TRUST_E_BASIC_CONSTRAINTS, 0, 1, NULL }, NULL, 0 },
4922 { { ARRAY_SIZE(chain10), chain10 },
4923 { 0, 0, -1, -1, NULL }, NULL, 0 },
4924 { { ARRAY_SIZE(chain11), chain11 },
4925 { 0, 0, -1, -1, NULL }, NULL, 0 },
4926 { { ARRAY_SIZE(chain12), chain12 },
4927 { 0, 0, -1, -1, NULL }, NULL, 0 },
4928 { { ARRAY_SIZE(chain13), chain13 },
4929 { 0, 0, -1, -1, NULL }, NULL, 0 },
4930 { { ARRAY_SIZE(chain14), chain14 },
4931 { 0, 0, -1, -1, NULL }, NULL, 0 },
4932 { { ARRAY_SIZE(chain15), chain15 },
4933 { 0, 0, -1, -1, NULL }, NULL, 0 },
4934 { { ARRAY_SIZE(chain16), chain16 },
4935 { 0, 0, -1, -1, NULL }, NULL, 0 },
4936 { { ARRAY_SIZE(chain17), chain17 },
4937 { 0, 0, -1, -1, NULL }, NULL, 0 },
4938 { { ARRAY_SIZE(chain18), chain18 },
4939 { 0, 0, -1, -1, NULL }, NULL, 0 },
4941 { 0, 0, -1, -1, NULL }, NULL, 0 },
4942};
4943
4945 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL };
4946
4948 { { ARRAY_SIZE(chain0), chain0 },
4949 { 0, CERT_E_UNTRUSTEDROOT, 0, 1, NULL }, NULL, TODO_ELEMENTS },
4951 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL }, NULL, 0 },
4952 { { ARRAY_SIZE(chain32), chain32 },
4953 { 0, 0, 0, 0, NULL }, &chain32BrokenStatus, 0 },
4954 { { ARRAY_SIZE(chain33), chain33 },
4955 { 0, CERT_E_UNTRUSTEDROOT, 0, 0, NULL }, NULL, 0 },
4956};
4957
4959 { { ARRAY_SIZE(chain32), chain32 },
4960 { 0, CERT_E_UNTRUSTEDROOT, 0, 2, NULL }, NULL, TODO_ELEMENTS },
4961 { { ARRAY_SIZE(chain33), chain33 },
4962 { 0, 0, 0, 0, NULL }, NULL, 0 },
4963};
4964
4965static const char *num_to_str(WORD num)
4966{
4967 static char buf[6];
4968
4969 sprintf(buf, "#%04X", num);
4970 return buf;
4971}
4972
4974 const ChainPolicyCheck *check, LPCSTR testName, DWORD testIndex,
4975 SYSTEMTIME *sysTime, PCERT_CHAIN_POLICY_PARA para)
4976{
4977 PCCERT_CHAIN_CONTEXT chain = getChain(engine, &check->certs, 0, TRUE,
4978 sysTime, check->todo, testIndex);
4979
4980 if (chain)
4981 {
4982 CERT_CHAIN_POLICY_STATUS policyStatus = { 0 };
4984 &policyStatus);
4985
4986 if (check->todo & TODO_POLICY)
4988 "%s[%ld](%s): CertVerifyCertificateChainPolicy failed: %08lx\n",
4989 testName, testIndex,
4991 GetLastError());
4992 else
4993 {
4995 {
4996 skip("%s[%ld]: missing policy %s, skipping test\n",
4997 testName, testIndex,
5000 return;
5001 }
5002 ok(ret, "%s[%ld](%s): CertVerifyCertificateChainPolicy failed: %08lx\n",
5003 testName, testIndex,
5005 GetLastError());
5006 }
5007 if (ret)
5008 {
5009 todo_wine_if (check->todo & TODO_ERROR)
5010 ok(policyStatus.dwError == check->status.dwError ||
5011 broken(policyStatus.dwError == CERT_TRUST_NO_ERROR) ||
5012 (check->brokenStatus && broken(policyStatus.dwError ==
5013 check->brokenStatus->dwError)),
5014 "%s[%ld](%s): expected %08lx, got %08lx\n",
5015 testName, testIndex,
5017 check->status.dwError, policyStatus.dwError);
5018 if (policyStatus.dwError != check->status.dwError)
5019 {
5020 skip("%s[%ld](%s): error %08lx doesn't match expected %08lx, not checking indexes\n",
5021 testName, testIndex,
5023 policyStatus.dwError, check->status.dwError);
5025 return;
5026 }
5028 ok(policyStatus.lChainIndex == check->status.lChainIndex ||
5029 (check->brokenStatus && broken(policyStatus.lChainIndex ==
5030 check->brokenStatus->lChainIndex)),
5031 "%s[%ld](%s): expected %ld, got %ld\n",
5032 testName, testIndex,
5034 check->status.lChainIndex, policyStatus.lChainIndex);
5036 ok(policyStatus.lElementIndex == check->status.lElementIndex ||
5037 (check->brokenStatus && broken(policyStatus.lElementIndex ==
5038 check->brokenStatus->lElementIndex)),
5039 "%s[%ld](%s): expected %ld, got %ld\n",
5040 testName, testIndex,
5042 check->status.lElementIndex, policyStatus.lElementIndex);
5043 }
5045 }
5046}
5047
5048#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para) \
5049 do { \
5050 DWORD i; \
5051 for (i = 0; i < ARRAY_SIZE(array); i++) \
5052 checkChainPolicyStatus((policy), (engine), &(array)[i], \
5053 #array, i, (date), (para)); \
5054 } while(0)
5055
5056#define CHECK_CHAIN_POLICY_STATUS(policy, engine, policyCheck, date, para) \
5057 checkChainPolicyStatus((policy), (engine), &(policyCheck), \
5058 #policyCheck, 0, (date), (para))
5059
5060static void check_base_policy(void)
5061{
5062 CERT_CHAIN_POLICY_PARA policyPara = { 0 };
5063
5066 policyPara.cbSize = sizeof(policyPara);
5069 ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
5090 invalidUsageBasePolicyCheck, &oct2007, &policyPara);
5091 /* Test chain30, which has an invalid critical extension in an intermediate
5092 * cert, against the base policy.
5093 */
5096 invalidExtensionPolicyCheck, &oct2007, &policyPara);
5097}
5098
5100{
5101 CERT_CHAIN_POLICY_PARA policyPara = { 0 };
5102 SYSTEMTIME epochStart = { 0 };
5103
5104 /* The authenticode policy doesn't seem to check anything beyond the base
5105 * policy. It might check for chains signed by the MS test cert, but none
5106 * of these chains is.
5107 */
5110 policyPara.cbSize = sizeof(policyPara);
5113 ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
5114 epochStart.wDay = epochStart.wMonth = 1;
5115 epochStart.wYear = 1601;
5117 ignoredUnknownCAPolicyCheck, &epochStart, &policyPara);
5121}
5122
5123static void check_ssl_policy(void)
5124{
5125 CERT_CHAIN_POLICY_PARA policyPara = { 0 };
5126 SSL_EXTRA_CERT_CHAIN_POLICY_PARA sslPolicyPara = { { 0 } };
5127 HCERTSTORE testRoot;
5128 CERT_CHAIN_ENGINE_CONFIG engineConfig = { sizeof(engineConfig), 0 };
5129 HCERTCHAINENGINE engine;
5130
5131 /* Check ssl policy with no parameter */
5133 &oct2007, NULL);
5134 /* Check again with a policy parameter that specifies nothing */
5136 &oct2007, &policyPara);
5137 /* Check yet again, but specify an empty SSL_EXTRA_CERT_CHAIN_POLICY_PARA
5138 * argument.
5139 */
5140 policyPara.pvExtraPolicyPara = &sslPolicyPara;
5142 &oct2007, &policyPara);
5143 /* And again, but specify the auth type as a client */
5144 sslPolicyPara.dwAuthType = AUTHTYPE_CLIENT;
5146 &oct2007, &policyPara);
5147 /* And again, but specify the auth type as a server */
5148 sslPolicyPara.dwAuthType = AUTHTYPE_SERVER;
5150 &oct2007, &policyPara);
5151 /* And again authenticating a client, but specify the size of the policy
5152 * parameter.
5153 */
5154 sslPolicyPara.cbSize = sizeof(sslPolicyCheck);
5155 sslPolicyPara.dwAuthType = AUTHTYPE_CLIENT;
5157 &oct2007, &policyPara);
5158 /* One more time authenticating a client, but specify winehq.org as the
5159 * server name.
5160 */
5161 sslPolicyPara.pwszServerName = (WCHAR *)L"winehq.org";
5163 &oct2007, &policyPara);
5164 /* And again authenticating a server, still specifying winehq.org as the
5165 * server name.
5166 */
5167 sslPolicyPara.dwAuthType = AUTHTYPE_SERVER;
5169 &oct2007, &policyPara);
5170 /* And again authenticating a server, this time specifying the size of the
5171 * policy param.
5172 */
5173 policyPara.cbSize = sizeof(policyPara);
5175 &oct2007, &policyPara);
5176 /* And again, specifying a chain with an untrusted root, but ignoring
5177 * unknown CAs.
5178 */
5181 ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
5182 sslPolicyPara.fdwChecks = 0;
5183 /* And again, but specifying the ignore in dwFlags */
5186 ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
5187 /* And again, but checking the Google chain at a bad date */
5188 sslPolicyPara.pwszServerName = (WCHAR *)L"www.google.com";
5191 policyPara.dwFlags = 0;
5192 /* Again checking the Google chain at a bad date, but ignoring date
5193 * errors.
5194 */
5199 /* And again, but checking the Google chain at a good date */
5201 sslPolicyPara.pwszServerName = (WCHAR *)L"www.google.com";
5204 sslPolicyPara.fdwChecks = 0;
5205
5206 /* Check again with the openssl cert, which has a wildcard in its name,
5207 * with various combinations of matching and non-matching names.
5208 * With "a.openssl.org": match
5209 */
5210 sslPolicyPara.pwszServerName = (WCHAR *)L"a.openssl.org";
5213 /* With "openssl.org": no match */
5214 sslPolicyPara.pwszServerName = (WCHAR *)L"openssl.org";
5217 /* With "fopenssl.org": no match */
5218 sslPolicyPara.pwszServerName = (WCHAR *)L"fopenssl.org";
5221 /* with "a.b.openssl.org": no match */
5222 sslPolicyPara.pwszServerName = (WCHAR *)L"a.b.openssl.org";
5225 /* Check again with the cs.stanford.edu, which has both cs.stanford.edu
5226 * and www.cs.stanford.edu in its subject alternative name.
5227 * With "cs.stanford.edu": match
5228 */
5229 sslPolicyPara.pwszServerName = (WCHAR *)L"cs.stanford.edu";
5232 /* With "www.cs.stanford.edu": match */
5233 sslPolicyPara.pwszServerName = (WCHAR *)L"www.cs.stanford.edu";
5236 /* With "a.cs.stanford.edu": no match */
5237 sslPolicyPara.pwszServerName = (WCHAR *)L"a.cs.stanford.edu";
5240 /* Check chain29, which has a wildcard in its subject alternative name,
5241 * but not in its distinguished name.
5242 * Step 1: create a chain engine that trusts chain29's root.
5243 */
5244 testRoot = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
5248 engineConfig.hExclusiveRoot = testRoot;
5249 if (!CertCreateCertificateChainEngine(&engineConfig, &engine))
5250 {
5251 skip("Couldn't create chain engine\n");
5252 return;
5253 }
5254 /* With "winehq.org": no match */
5255 sslPolicyPara.pwszServerName = (WCHAR *)L"winehq.org";
5258 /* With "test.winehq.org": match */
5259 sslPolicyPara.pwszServerName = (WCHAR *)L"test.winehq.org";
5262 /* With "a.b.winehq.org": no match */
5263 sslPolicyPara.pwszServerName = (WCHAR *)L"a.b.winehq.org";
5266 /* When specifying to ignore name mismatch: match */
5271 CertCloseStore(testRoot, 0);
5272 /* Test chain30, which has an invalid critical extension in an intermediate
5273 * cert, against the SSL policy.
5274 */
5276 sslPolicyPara.pwszServerName = NULL;
5278 invalidExtensionPolicyCheck, &oct2007, &policyPara);
5279 /* Test chain31, which has two CNs, "*.foo.com" and "foo.com", against
5280 * some names that match one of the CNs:
5281 */
5282 sslPolicyPara.pwszServerName = (WCHAR *)L"foo.com";
5285 sslPolicyPara.pwszServerName = (WCHAR *)L"a.foo.com";
5288 /* and against a name that doesn't match either CN: */
5289 sslPolicyPara.pwszServerName = (WCHAR *)L"afoo.com";
5292 /* The Battle.Net chain checks a certificate with a domain component
5293 * containing a terminating NULL.
5294 */
5295 sslPolicyPara.pwszServerName = (WCHAR *)L"www.battle.net";
5298}
5299
5300static void check_msroot_policy(void)
5301{
5303
5306
5307 para.cbSize = sizeof(para);
5308 para.pvExtraPolicyPara = NULL;
5312}
5313
5315{
5316 BOOL ret;
5318 CERT_CHAIN_PARA chainPara = { sizeof(CERT_CHAIN_PARA), { 0 } };
5320 CERT_CHAIN_POLICY_STATUS policyStatus = { 0 };
5321 CERT_CHAIN_POLICY_PARA policyPara = { 0 };
5322
5323 /* Crash
5324 ret = CertVerifyCertificateChainPolicy(NULL, NULL, NULL, NULL);
5325 ret = CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, NULL, NULL,
5326 NULL);
5327 ret = CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, NULL,
5328 &chainPara, NULL);
5329 */
5330 SetLastError(0xdeadbeef);
5333 "Expected ERROR_FILE_NOT_FOUND, got %08lx\n", GetLastError());
5334 /* Crashes
5335 ret = CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, NULL, NULL,
5336 &policyStatus);
5337 */
5339 sizeof(selfSignedCert));
5340 CertGetCertificateChain(NULL, cert, NULL, NULL, &chainPara, 0, NULL,
5341 &chain);
5342 /* Crash
5343 ret = CertVerifyCertificateChainPolicy(NULL, chain, NULL, NULL);
5344 ret = CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, chain, NULL,
5345 NULL);
5346 ret = CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, chain,
5347 &chainPara, NULL);
5348 */
5349 /* Size of policy status is apparently ignored, as is pChainPolicyPara */
5351 &policyStatus);
5352 ok(ret, "CertVerifyCertificateChainPolicy failed: %08lx\n", GetLastError());
5353 ok(policyStatus.dwError == CERT_E_UNTRUSTEDROOT ||
5354 policyStatus.dwError == TRUST_E_CERT_SIGNATURE, /* win7 + win8 */
5355 "Expected CERT_E_UNTRUSTEDROOT or TRUST_E_CERT_SIGNATURE, got %08lx\n", policyStatus.dwError);
5356 ok(policyStatus.lChainIndex == 0 && policyStatus.lElementIndex == 0,
5357 "Expected both indexes 0, got %ld, %ld\n", policyStatus.lChainIndex,
5358 policyStatus.lElementIndex);
5360 &policyPara, &policyStatus);
5361 ok(ret, "CertVerifyCertificateChainPolicy failed: %08lx\n", GetLastError());
5362 ok(policyStatus.dwError == CERT_E_UNTRUSTEDROOT ||
5363 policyStatus.dwError == TRUST_E_CERT_SIGNATURE, /* win7 + win8 */
5364 "Expected CERT_E_UNTRUSTEDROOT or TRUST_E_CERT_SIGNATURE, got %08lx\n", policyStatus.dwError);
5365 ok(policyStatus.lChainIndex == 0 && policyStatus.lElementIndex == 0,
5366 "Expected both indexes 0, got %ld, %ld\n", policyStatus.lChainIndex,
5367 policyStatus.lElementIndex);
5370
5377}
5378
5380{
5382#if defined(__REACTOS__) && defined(_M_IX86)
5383 if ((GetVersion() & 0xFF) > 5) // testVerifyCertChainPolicy() hangs on Server 2003 x86
5384#endif
5388}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
Definition: appmodel.h:73
#define trace
Definition: atltest.h:70
#define ok(value,...)
Definition: atltest.h:57
#define skip(...)
Definition: atltest.h:64
#define broken(x)
Definition: atltest.h:178
#define START_TEST(x)
Definition: atltest.h:75
#define ok_(x1, x2)
Definition: atltest.h:61
#define ARRAY_SIZE(A)
Definition: main.h:20
#define IS_INTOID(x)
#define E_INVALIDARG
Definition: ddrawi.h:101
struct config_s config
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3716
BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
Definition: chain.c:2879
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
Definition: chain.c:2960
void WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
Definition: chain.c:249
struct _CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT
BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
Definition: chain.c:225
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPSTR psz, DWORD csz)
Definition: str.c:414
#define SetLastError(x)
Definition: compat.h:752
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
Definition: time.c:158
DWORD WINAPI GetVersion(void)
Definition: version.c:1458
#define check(expected, result)
Definition: dplayx.c:32
return ret
Definition: mutex.c:146
#define L(x)
Definition: resources.c:13
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLbitfield flags
Definition: glext.h:7161
GLuint GLuint num
Definition: glext.h:9618
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define todo_wine_if(is_todo)
Definition: minitest.h:81
#define todo_wine
Definition: minitest.h:80
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define sprintf
Definition: sprintf.c:45
BOOL todo
Definition: filedlg.c:313
static const BYTE chain33_1[]
Definition: chain.c:3221
static const SimpleChainStatusCheck simpleStatus13[]
Definition: chain.c:3698
static const BYTE chain30_2[]
Definition: chain.c:2854
static const SimpleChainStatusCheck simpleStatus26[]
Definition: chain.c:3861
static CONST_DATA_BLOB chain25[]
Definition: chain.c:3840
static const BYTE chain14_0[]
Definition: chain.c:1884
static const ChainPolicyCheck msRootPolicyCheck_approot[]
Definition: chain.c:4958
static CONST_DATA_BLOB chain29[]
Definition: chain.c:3899
static const SimpleChainStatusCheck simpleStatus9[]
Definition: chain.c:3656
static const ChainPolicyCheck stanfordPolicyCheckWithoutMatchingName
Definition: chain.c:4826
static const CERT_TRUST_STATUS elementStatus19[]
Definition: chain.c:3770
static const BYTE chain18_1[]
Definition: chain.c:2081
static const BYTE chain26_0[]
Definition: chain.c:2590
static const CERT_TRUST_STATUS elementStatus18[]
Definition: chain.c:3757
static const CERT_TRUST_STATUS elementStatus22[]
Definition: chain.c:3808
static CONST_DATA_BLOB chain1[]
Definition: chain.c:3544
static const CERT_TRUST_STATUS elementStatus16[]
Definition: chain.c:3729
static const SimpleChainStatusCheck simpleStatus4[]
Definition: chain.c:3592
static const SimpleChainStatusCheck simpleStatus25[]
Definition: chain.c:3849
static const ChainPolicyCheck googlePolicyCheckWithMatchingNameExpired
Definition: chain.c:4787
static const SimpleChainStatusCheck simpleStatus0[]
Definition: chain.c:3541
struct _CONST_BLOB_ARRAY CONST_BLOB_ARRAY
static CONST_DATA_BLOB chain18[]
Definition: chain.c:3752
static void check_base_policy(void)
Definition: chain.c:5060
#define TODO_ERROR
Definition: chain.c:3338
static const ChainPolicyCheck basicConstraintsPolicyCheck[]
Definition: chain.c:4901
struct _SimpleChainStatusCheck SimpleChainStatusCheck
static const CERT_TRUST_STATUS elementStatus20[]
Definition: chain.c:3783
static SYSTEMTIME oct2007
Definition: chain.c:3510
static CONST_DATA_BLOB stanfordChain[]
Definition: chain.c:4003
static const CERT_TRUST_STATUS elementStatus7[]
Definition: chain.c:3624
static const SimpleChainStatusCheck simpleStatus28[]
Definition: chain.c:3896
static const BYTE google_internet_authority[]
Definition: chain.c:195
static SYSTEMTIME may2020
Definition: chain.c:3522
static ChainCheck opensslChainCheck
Definition: chain.c:4283
static const ChainPolicyCheck nullTerminatedDomainComponentPolicyCheck
Definition: chain.c:4831
static const CERT_TRUST_STATUS elementStatus10[]
Definition: chain.c:3664
static CONST_DATA_BLOB chain6[]
Definition: chain.c:3608
static const ChainPolicyCheck opensslPolicyCheckWithMatchingName
Definition: chain.c:4801
static const ChainPolicyCheck ignoredInvalidUsageBasePolicyCheck
Definition: chain.c:4729
#define TODO_CHAINS
Definition: chain.c:3341
static const BYTE chain5_1[]
Definition: chain.c:1553
static const BYTE chain12_0[]
Definition: chain.c:1817
static const BYTE chain0_0[]
Definition: chain.c:1260
static const BYTE bigCert[]
Definition: chain.c:124
static const SimpleChainStatusCheck simpleStatus2[]
Definition: chain.c:3566
static const BYTE chain21_0[]
Definition: chain.c:2269
static const CERT_TRUST_STATUS elementStatus14[]
Definition: chain.c:3705
static const BYTE chain10_1[]
Definition: chain.c:1750
static const CERT_TRUST_STATUS stanfordElementStatus[]
Definition: chain.c:4008
static const BYTE chain19_0[]
Definition: chain.c:2141
static void checkChainPolicyStatus(LPCSTR policy, HCERTCHAINENGINE engine, const ChainPolicyCheck *check, LPCSTR testName, DWORD testIndex, SYSTEMTIME *sysTime, PCERT_CHAIN_POLICY_PARA para)
Definition: chain.c:4973
static const CERT_TRUST_STATUS elementStatus23[]
Definition: chain.c:3820
static const BYTE chain4_1[]
Definition: chain.c:1456
static CONST_DATA_BLOB chain20[]
Definition: chain.c:3779
static const ChainPolicyCheck sslPolicyCheck[]
Definition: chain.c:4739
static const CERT_TRUST_STATUS elementStatus17[]
Definition: chain.c:3743
static const SimpleChainStatusCheck simpleStatus22[]
Definition: chain.c:3813
static const CERT_TRUST_STATUS elementStatus1[]
Definition: chain.c:3548
static const BYTE chain20_1[]
Definition: chain.c:2238
static const CERT_TRUST_STATUS elementStatus13[]
Definition: chain.c:3693
static const SimpleChainStatusCheck simpleStatus21[]
Definition: chain.c:3801
static CONST_DATA_BLOB chain4[]
Definition: chain.c:3581
static CONST_DATA_BLOB opensslChain[]
Definition: chain.c:3968
static const CERT_CHAIN_POLICY_STATUS badDateNestingStatus
Definition: chain.c:4716
static const SimpleChainStatusCheck stanfordSimpleStatus[]
Definition: chain.c:4014
static const SimpleChainStatusCheck selfSignedSimpleStatus[]
Definition: chain.c:3937
static const SimpleChainStatusCheck simpleStatus27Broken[]
Definition: chain.c:3883
static const BYTE chain18_2[]
Definition: chain.c:2112
static const CERT_TRUST_STATUS elementStatus8[]
Definition: chain.c:3637
#define TODO_POLICY
Definition: chain.c:3342
static CONST_DATA_BLOB selfSignedChain[]
Definition: chain.c:3930
static const BYTE chain27_1[]
Definition: chain.c:2689
static const SimpleChainStatusCheck simpleStatus7[]
Definition: chain.c:3629
static const BYTE google_com[]
Definition: chain.c:266
static const BYTE chain27_0[]
Definition: chain.c:2656
static CONST_DATA_BLOB chain31[]
Definition: chain.c:3918
#define TODO_ELEMENTS
Definition: chain.c:3340
static CONST_DATA_BLOB chain14[]
Definition: chain.c:3701
static CONST_DATA_BLOB chain17[]
Definition: chain.c:3738
static const CERT_TRUST_STATUS elementStatus8NoStore[]
Definition: chain.c:4261
static CONST_DATA_BLOB chain0[]
Definition: chain.c:3532
static const ChainPolicyCheck invalidUsageBasePolicyCheck
Definition: chain.c:4734
static const BYTE chain28_0[]
Definition: chain.c:2722
static const CERT_TRUST_STATUS elementStatus6[]
Definition: chain.c:3612
static void testVerifyCertChainPolicy(void)
Definition: chain.c:5314
static void checkSimpleChainStatus(const CERT_SIMPLE_CHAIN *simpleChain, const SimpleChainStatusCheck *simpleChainStatus, const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex)
Definition: chain.c:3440
static const CERT_TRUST_STATUS elementStatus21[]
Definition: chain.c:3795
static CONST_DATA_BLOB chain8[]
Definition: chain.c:3632
static const BYTE chain23_0[]
Definition: chain.c:2397
static const BYTE chain11_1[]
Definition: chain.c:1785
static const SimpleChainStatusCheck simpleStatus24[]
Definition: chain.c:3837
static const ChainPolicyCheck winehqPolicyCheckWithMatchingName
Definition: chain.c:4811
static const CERT_TRUST_STATUS elementStatus27[]
Definition: chain.c:3868
static void check_ssl_policy(void)
Definition: chain.c:5123
static const BYTE global_sign_ca[]
Definition: chain.c:811
static const BYTE chain14_1[]
Definition: chain.c:1916
static const CERT_TRUST_STATUS elementStatus27Broken[]
Definition: chain.c:3877
static const BYTE chain7_1[]
Definition: chain.c:1590
static const CERT_TRUST_STATUS elementStatus2[]
Definition: chain.c:3561
static const BYTE chain20_0[]
Definition: chain.c:2205
static const BYTE chain26_1[]
Definition: chain.c:2623
static const BYTE chain1_1[]
Definition: chain.c:1324
static CONST_DATA_BLOB chain27[]
Definition: chain.c:3864
struct _ChainStatusCheck ChainStatusCheck
static const BYTE chain16_1[]
Definition: chain.c:1984
static CONST_DATA_BLOB incompleteOpensslChain[]
Definition: chain.c:3986
static CONST_DATA_BLOB chain13[]
Definition: chain.c:3689
static const CERT_TRUST_STATUS googleElementStatus[]
Definition: chain.c:3949
#define TODO_CHAIN
Definition: chain.c:3337
struct _ChainCheck ChainCheck
static const CERT_TRUST_STATUS elementStatus30[]
Definition: chain.c:3908
static const CERT_CHAIN_POLICY_STATUS untrustedRootStatus
Definition: chain.c:4798
static const BYTE thawte_ssl_ca[]
Definition: chain.c:657
static const BYTE chain4_0[]
Definition: chain.c:1424
static const ChainPolicyCheck fooPolicyCheckWithoutMatchingName
Definition: chain.c:4846
static const BYTE chain3_0[]
Definition: chain.c:1391
static const SimpleChainStatusCheck simpleStatus27[]
Definition: chain.c:3874
static const ChainPolicyCheck basePolicyCheck[]
Definition: chain.c:4669
static const CERT_TRUST_STATUS opensslElementStatus[]
Definition: chain.c:3973
static const CERT_TRUST_STATUS elementStatus9[]
Definition: chain.c:3650
static SYSTEMTIME nov2016
Definition: chain.c:3520
static CONST_DATA_BLOB chain19[]
Definition: chain.c:3766
static ChainCheck chainCheckEmbeddedNullBroken
Definition: chain.c:4309
static void check_msroot_policy(void)
Definition: chain.c:5300
static const SimpleChainStatusCheck simpleStatus1[]
Definition: chain.c:3554
static void checkElementStatus(const CERT_TRUST_STATUS *expected, const CERT_TRUST_STATUS *got, const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex, DWORD elementIndex)
Definition: chain.c:3408
static CONST_DATA_BLOB chain21[]
Definition: chain.c:3791
static const char * num_to_str(WORD num)
Definition: chain.c:4965
static const BYTE geotrust_global_ca[]
Definition: chain.c:134
static CONST_DATA_BLOB chain16[]
Definition: chain.c:3725
static const BYTE chain0_1[]
Definition: chain.c:1292
static const BYTE chain24_1[]
Definition: chain.c:2494
static const BYTE chain32_3[]
Definition: chain.c:3133
static CONST_DATA_BLOB chain32[]
Definition: chain.c:3922
static const BYTE chain25_0[]
Definition: chain.c:2526
static CONST_DATA_BLOB chain2[]
Definition: chain.c:3557
static const BYTE chain8_2[]
Definition: chain.c:1684
static CONST_DATA_BLOB chain28[]
Definition: chain.c:3887
static CONST_DATA_BLOB chain15[]
Definition: chain.c:3713
static const CERT_CHAIN_POLICY_STATUS chain4BrokenStatus
Definition: chain.c:4898
static CONST_DATA_BLOB chain22[]
Definition: chain.c:3804
static const BYTE chain17_2[]
Definition: chain.c:2050
static const BYTE chain8_1[]
Definition: chain.c:1655
static const CERT_TRUST_STATUS elementStatus28[]
Definition: chain.c:3891
static const CERT_TRUST_STATUS elementStatus15[]
Definition: chain.c:3717
static const BYTE thawte_primary_ca[]
Definition: chain.c:585
static const ChainPolicyCheck ignoredUnknownCAPolicyCheck
Definition: chain.c:4782
static const BYTE chain22_1[]
Definition: chain.c:2366
static const ChainPolicyCheck ignoredBadDateNestingBasePolicyCheck
Definition: chain.c:4719
static const BYTE chain19_1[]
Definition: chain.c:2174
static const SimpleChainStatusCheck googleSimpleStatus[]
Definition: chain.c:3956
#define TODO_INFO
Definition: chain.c:3339
static const BYTE chain9_0[]
Definition: chain.c:1716
static const CERT_TRUST_STATUS elementStatus26[]
Definition: chain.c:3856
static const CERT_TRUST_STATUS elementStatus4[]
Definition: chain.c:3586
static const BYTE global_sign_root[]
Definition: chain.c:737
static const BYTE usertrust_ca[]
Definition: chain.c:968
static const CERT_TRUST_STATUS elementStatus3[]
Definition: chain.c:3573
static const CERT_TRUST_STATUS selfSignedElementStatus[]
Definition: chain.c:3933
static const SimpleChainStatusCheck simpleStatus15[]
Definition: chain.c:3722
static CONST_DATA_BLOB chain3[]
Definition: chain.c:3569
static const CERT_TRUST_STATUS elementStatus0[]
Definition: chain.c:3536
static const ChainPolicyCheck msRootPolicyCheck[]
Definition: chain.c:4947
static CONST_DATA_BLOB googleChain[]
Definition: chain.c:3941
static PCCERT_CHAIN_CONTEXT getChain(HCERTCHAINENGINE engine, const CONST_BLOB_ARRAY *certArray, DWORD flags, BOOL includeStore, LPSYSTEMTIME checkTime, DWORD todo, DWORD testIndex)
Definition: chain.c:3348
static const BYTE chain23_1[]
Definition: chain.c:2430
static CONST_DATA_BLOB chain11[]
Definition: chain.c:3672
static CONST_DATA_BLOB chain26[]
Definition: chain.c:3852
static void testCreateCertChainEngine(void)
Definition: chain.c:73
static const BYTE chain8_0[]
Definition: chain.c:1623
static void checkChainStatus(PCCERT_CHAIN_CONTEXT chain, const ChainStatusCheck *chainStatus, DWORD todo, LPCSTR testName, DWORD testIndex)
Definition: chain.c:3468
static const BYTE chain24_0[]
Definition: chain.c:2461
static const BYTE chain29_1[]
Definition: chain.c:2788
static const ChainPolicyCheck invalidExtensionPolicyCheck
Definition: chain.c:4836
static const ChainPolicyCheck authenticodePolicyCheck[]
Definition: chain.c:4851
static CONST_DATA_BLOB chain7[]
Definition: chain.c:3620
static const SimpleChainStatusCheck incompleteOpensslSimpleStatus[]
Definition: chain.c:3994
static const SimpleChainStatusCheck simpleStatus8[]
Definition: chain.c:3643
struct _ChainPolicyCheck ChainPolicyCheck
static CONST_DATA_BLOB battlenetChain[]
Definition: chain.c:3960
static const CERT_CHAIN_POLICY_STATUS chain32BrokenStatus
Definition: chain.c:4944
static void _test_name_blob(unsigned line, CERT_NAME_BLOB *blob, const char *exdata)
Definition: chain.c:4320
static const BYTE chain17_1[]
Definition: chain.c:2019
static const SimpleChainStatusCheck simpleStatus20[]
Definition: chain.c:3788
static const BYTE chain21_1[]
Definition: chain.c:2302
static const ChainPolicyCheck googlePolicyCheckWithMatchingName
Definition: chain.c:4792
static ChainCheck incompleteOpensslChainCheck
Definition: chain.c:4288
static CONST_DATA_BLOB chain5[]
Definition: chain.c:3595
static const SimpleChainStatusCheck simpleStatus30[]
Definition: chain.c:3915
static const SimpleChainStatusCheck simpleStatus17[]
Definition: chain.c:3749
static const SimpleChainStatusCheck simpleStatus23[]
Definition: chain.c:3825
static const BYTE chain28_1[]
Definition: chain.c:2756
static SYSTEMTIME oct2009
Definition: chain.c:3512
static ChainCheck chainCheckEmbeddedNull
Definition: chain.c:4301
static SYSTEMTIME oct2010
Definition: chain.c:3514
static CONST_DATA_BLOB chain33[]
Definition: chain.c:3927
static const BYTE chain22_0[]
Definition: chain.c:2333
static const ChainPolicyCheck ignoredInvalidDateBasePolicyCheck
Definition: chain.c:4724
static const CERT_TRUST_STATUS elementStatus24[]
Definition: chain.c:3832
static const BYTE incommon_rsa_ca[]
Definition: chain.c:1065
static CONST_DATA_BLOB chain10[]
Definition: chain.c:3659
static CONST_DATA_BLOB chain9[]
Definition: chain.c:3646
static void check_authenticode_policy(void)
Definition: chain.c:5099
static const BYTE chain15_0[]
Definition: chain.c:1947
static const BYTE openssl_org[]
Definition: chain.c:885
static const BYTE battlenet[]
Definition: chain.c:518
static CONST_DATA_BLOB chain30[]
Definition: chain.c:3903
static const SimpleChainStatusCheck opensslSimpleStatus[]
Definition: chain.c:3979
static const BYTE chain2_0[]
Definition: chain.c:1356
static const CERT_TRUST_STATUS elementStatus5[]
Definition: chain.c:3599
static const BYTE chain13_1[]
Definition: chain.c:1852
static const SimpleChainStatusCheck simpleStatus6[]
Definition: chain.c:3617
static const BYTE chain32_2[]
Definition: chain.c:3020
static ChainCheck chainCheckNoStore[]
Definition: chain.c:4268
static const SimpleChainStatusCheck simpleStatus16[]
Definition: chain.c:3735
static const BYTE chain30_1[]
Definition: chain.c:2822
static const ChainPolicyCheck fooPolicyCheckWithMatchingName
Definition: chain.c:4841
static const SimpleChainStatusCheck simpleStatus5[]
Definition: chain.c:3605
static const BYTE chain31_1[]
Definition: chain.c:2885
static const SimpleChainStatusCheck simpleStatus19[]
Definition: chain.c:3776
static SYSTEMTIME oct2016
Definition: chain.c:3518
struct _CONST_DATA_BLOB CONST_DATA_BLOB
#define test_name_blob(a, b)
Definition: chain.c:4319
static CONST_DATA_BLOB chain23[]
Definition: chain.c:3816
static const SimpleChainStatusCheck simpleStatus10[]
Definition: chain.c:3669
static CONST_DATA_BLOB chain12[]
Definition: chain.c:3677
static const BYTE winehq_org[]
Definition: chain.c:392
static const CERT_TRUST_STATUS incompleteOpensslElementStatus[]
Definition: chain.c:3990
static const BYTE chain25_1[]
Definition: chain.c:2559
static const ChainPolicyCheck winehqPolicyCheckWithoutMatchingName
Definition: chain.c:4816
static const SimpleChainStatusCheck simpleStatus18[]
Definition: chain.c:3763
static const SimpleChainStatusCheck simpleStatus8NoStore[]
Definition: chain.c:4264
static SYSTEMTIME jun2013
Definition: chain.c:3516
static const CERT_TRUST_STATUS elementStatus25[]
Definition: chain.c:3844
static const BYTE cs_stanford_edu[]
Definition: chain.c:1163
static const ChainPolicyCheck opensslPolicyCheckWithoutMatchingName
Definition: chain.c:4806
static void test_CERT_CHAIN_PARA_cbSize(void)
Definition: chain.c:4623
static const BYTE selfSignedCert[]
Definition: chain.c:32
#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para)
Definition: chain.c:5048
static const SimpleChainStatusCheck simpleStatus3[]
Definition: chain.c:3578
static ChainCheck chainCheck[]
Definition: chain.c:4018
static const SimpleChainStatusCheck simpleStatus14[]
Definition: chain.c:3710
static const CERT_TRUST_STATUS elementStatus12[]
Definition: chain.c:3681
static const BYTE chain4_2[]
Definition: chain.c:1487
static const BYTE chain5_0[]
Definition: chain.c:1519
static const ChainPolicyCheck stanfordPolicyCheckWithMatchingName
Definition: chain.c:4821
static CONST_DATA_BLOB chain24[]
Definition: chain.c:3828
static void testGetCertChain(void)
Definition: chain.c:4328
#define CHECK_CHAIN_POLICY_STATUS(policy, engine, policyCheck, date, para)
Definition: chain.c:5056
static const SimpleChainStatusCheck simpleStatus12[]
Definition: chain.c:3686
static const BYTE chain32_1[]
Definition: chain.c:2916
static BYTE cert[]
Definition: msg.c:1374
BOOL expected
Definition: store.c:2000
#define LOWORD(l)
Definition: pedump.c:82
#define memset(x, y, z)
Definition: compat.h:39
PCCERT_CONTEXT pCertContext
Definition: wincrypt.h:1028
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:1029
CERT_USAGE_MATCH RequestedUsage
Definition: wincrypt.h:1183
DWORD dwCertEncodingType
Definition: wincrypt.h:488
PCERT_INFO pCertInfo
Definition: wincrypt.h:491
CERT_NAME_BLOB Subject
Definition: wincrypt.h:256
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:253
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:1038
PCERT_CHAIN_ELEMENT * rgpElement
Definition: wincrypt.h:1040
CERT_ENHKEY_USAGE Usage
Definition: wincrypt.h:1161
CONST_DATA_BLOB * rgBlob
Definition: chain.c:3334
DWORD cbData
Definition: chain.c:3327
const BYTE * pbData
Definition: chain.c:3328
DWORD cUsageIdentifier
Definition: wincrypt.h:831
LPSTR * rgpszUsageIdentifier
Definition: wincrypt.h:832
DWORD todo
Definition: chain.c:3528
PSYSTEMTIME validfor
Definition: chain.c:3529
ChainStatusCheck status
Definition: chain.c:3527
CONST_BLOB_ARRAY certs
Definition: chain.c:3526
CERT_CHAIN_POLICY_STATUS status
Definition: chain.c:4664
const CERT_CHAIN_POLICY_STATUS * brokenStatus
Definition: chain.c:4665
CONST_BLOB_ARRAY certs
Definition: chain.c:4663
CERT_TRUST_STATUS statusToIgnore
Definition: chain.c:3462
const SimpleChainStatusCheck * rgChainStatus
Definition: chain.c:3465
CERT_TRUST_STATUS status
Definition: chain.c:3463
const CERT_TRUST_STATUS * rgElementStatus
Definition: chain.c:3405
Definition: image.c:134
Definition: parser.c:49
Definition: ps.c:97
struct sock * chain
Definition: tcpcore.h:1
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define CERT_CHAIN_POLICY_MICROSOFT_ROOT
Definition: wincrypt.h:1080
#define USAGE_MATCH_TYPE_AND
Definition: wincrypt.h:1156
#define CERT_CHAIN_POLICY_BASE
Definition: wincrypt.h:1074
struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN
Definition: wincrypt.h:1170
#define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
Definition: wincrypt.h:1001
#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS
Definition: wincrypt.h:1078
#define CERT_TRUST_IS_CYCLIC
Definition: wincrypt.h:989
#define CERT_CHAIN_REVOCATION_CHECK_END_CERT
Definition: wincrypt.h:1169
#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
Definition: wincrypt.h:1015
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2633
#define USAGE_MATCH_TYPE_OR
Definition: wincrypt.h:1157
#define CERT_TRUST_INVALID_EXTENSION
Definition: wincrypt.h:990
#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS
Definition: wincrypt.h:992
#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER
Definition: wincrypt.h:1008
#define HCCE_LOCAL_MACHINE
Definition: wincrypt.h:3774
#define CERT_TRUST_IS_NOT_TIME_NESTED
Definition: wincrypt.h:983
#define X509_ASN_ENCODING
Definition: wincrypt.h:2501
#define CERT_TRUST_HAS_PREFERRED_ISSUER
Definition: wincrypt.h:1013
#define CERT_CHAIN_POLICY_AUTHENTICODE
Definition: wincrypt.h:1075
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:1011
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2455
#define CERT_TRUST_HAS_KEY_MATCH_ISSUER
Definition: wincrypt.h:1009
#define CERT_SIMPLE_NAME_STR
Definition: wincrypt.h:3642
#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG
Definition: wincrypt.h:1113
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:996
#define AUTHTYPE_SERVER
Definition: wincrypt.h:1148
#define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG
Definition: wincrypt.h:1092
#define CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG
Definition: wincrypt.h:1093
#define szOID_PKIX_KP_SERVER_AUTH
Definition: wincrypt.h:3450
#define CERT_CHAIN_POLICY_SSL
Definition: wincrypt.h:1077
#define AUTHTYPE_CLIENT
Definition: wincrypt.h:1147
#define CERT_TRUST_INVALID_NAME_CONSTRAINTS
Definition: wincrypt.h:993
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Definition: wincrypt.h:1171
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:1010
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2654
#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
Definition: wincrypt.h:995
#define CRYPT_ASN_ENCODING
Definition: wincrypt.h:2499
#define CERT_TRUST_IS_PARTIAL_CHAIN
Definition: wincrypt.h:1003
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:981
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:986
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID
Definition: wincrypt.h:985
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG
Definition: wincrypt.h:1082
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:987
#define CERT_TRUST_IS_NOT_TIME_VALID
Definition: wincrypt.h:982
#define CERT_E_CHAINING
Definition: winerror.h:4640
#define CERT_E_UNTRUSTEDROOT
Definition: winerror.h:4639
#define CRYPT_E_NOT_FOUND
Definition: winerror.h:4421
#define CERT_E_WRONG_USAGE
Definition: winerror.h:4646
#define TRUST_E_CERT_SIGNATURE
Definition: winerror.h:4588
#define CERT_E_VALIDITYPERIODNESTING
Definition: winerror.h:4632
#define CERT_E_CRITICAL
Definition: winerror.h:4635
#define TRUST_E_BASIC_CONSTRAINTS
Definition: winerror.h:4592
#define CERT_E_CN_NO_MATCH
Definition: winerror.h:4645
#define CERT_E_EXPIRED
Definition: winerror.h:4631
#define CRYPT_E_ASN1_BADTAG
Definition: winerror.h:4510
#define ERROR_INVALID_DATA
Definition: winerror.h:238
#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
Definition: winhttp.h:282
#define SECURITY_FLAG_IGNORE_UNKNOWN_CA
Definition: winhttp.h:281
#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID
Definition: winhttp.h:283
const char * LPCSTR
Definition: xmlstorage.h:183
__wchar_t WCHAR
Definition: xmlstorage.h:180
char * LPSTR
Definition: xmlstorage.h:182
unsigned char BYTE
Definition: xxhash.c:193