2 * Copyright (c) 2006-2010,2012 Apple Inc. All Rights Reserved.
5 #include <CoreFoundation/CoreFoundation.h>
6 #include <Security/SecCertificate.h>
7 #include <Security/SecCertificatePriv.h>
8 #include <Security/SecInternal.h>
9 #include <Security/SecPolicyPriv.h>
10 #include <Security/SecTrustPriv.h>
11 #include <Security/SecItem.h>
12 #include <ipc/securityd_client.h>
13 #include <utilities/array_size.h>
14 #include <utilities/SecCFWrappers.h>
18 #include "Security_regressions.h"
21 subject= /C=US/ST=California/L=Cupertino/O=Apple Computer, Inc./OU=Apple Internet Services/OU=Terms of use at www.verisign.com/rpa (c)00/CN=store.apple.com
22 issuer= /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
23 serial=4450E623F57E734FF85C1DEEFB976C86
25 static const uint8_t _c0
[] = {
26 0x30, 0x82, 0x04, 0x82, 0x30, 0x82, 0x03, 0xeb,
27 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x44,
28 0x50, 0xe6, 0x23, 0xf5, 0x7e, 0x73, 0x4f, 0xf8,
29 0x5c, 0x1d, 0xee, 0xfb, 0x97, 0x6c, 0x86, 0x30,
30 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
31 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
32 0xba, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
33 0x04, 0x0a, 0x13, 0x16, 0x56, 0x65, 0x72, 0x69,
34 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75,
35 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
36 0x72, 0x6b, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,
37 0x55, 0x04, 0x0b, 0x13, 0x0e, 0x56, 0x65, 0x72,
38 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
39 0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31, 0x06,
40 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2a, 0x56, 0x65,
41 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x49,
42 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69,
43 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72,
44 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d,
45 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
46 0x31, 0x49, 0x30, 0x47, 0x06, 0x03, 0x55, 0x04,
47 0x0b, 0x13, 0x40, 0x77, 0x77, 0x77, 0x2e, 0x76,
48 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
49 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x20,
50 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x62,
51 0x79, 0x20, 0x52, 0x65, 0x66, 0x2e, 0x20, 0x4c,
52 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59,
53 0x20, 0x4c, 0x54, 0x44, 0x2e, 0x28, 0x63, 0x29,
54 0x39, 0x37, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53,
55 0x69, 0x67, 0x6e, 0x30, 0x1e, 0x17, 0x0d, 0x30,
56 0x35, 0x30, 0x33, 0x30, 0x32, 0x30, 0x30, 0x30,
57 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x30, 0x37,
58 0x30, 0x34, 0x30, 0x31, 0x32, 0x33, 0x35, 0x39,
59 0x35, 0x39, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b,
60 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
61 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06,
62 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x43, 0x61,
63 0x6c, 0x69, 0x66, 0x6f, 0x72, 0x6e, 0x69, 0x61,
64 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04,
65 0x07, 0x14, 0x09, 0x43, 0x75, 0x70, 0x65, 0x72,
66 0x74, 0x69, 0x6e, 0x6f, 0x31, 0x1d, 0x30, 0x1b,
67 0x06, 0x03, 0x55, 0x04, 0x0a, 0x14, 0x14, 0x41,
68 0x70, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x6f, 0x6d,
69 0x70, 0x75, 0x74, 0x65, 0x72, 0x2c, 0x20, 0x49,
70 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06,
71 0x03, 0x55, 0x04, 0x0b, 0x14, 0x17, 0x41, 0x70,
72 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65,
73 0x72, 0x6e, 0x65, 0x74, 0x20, 0x53, 0x65, 0x72,
74 0x76, 0x69, 0x63, 0x65, 0x73, 0x31, 0x33, 0x30,
75 0x31, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x14, 0x2a,
76 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66,
77 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
78 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69,
79 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
80 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29,
81 0x30, 0x30, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03,
82 0x55, 0x04, 0x03, 0x14, 0x0f, 0x73, 0x74, 0x6f,
83 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65,
84 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x81, 0x9f, 0x30,
85 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
86 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
87 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81,
88 0x00, 0xbf, 0x8f, 0x59, 0x14, 0xbb, 0x91, 0xa4,
89 0xe6, 0x3e, 0x75, 0xf8, 0x38, 0x36, 0xfe, 0xcd,
90 0x9e, 0x5d, 0x3f, 0x14, 0x62, 0xfc, 0xe7, 0x48,
91 0x5f, 0x7e, 0x6b, 0x6e, 0x87, 0xd2, 0x31, 0x6e,
92 0x9d, 0x19, 0x92, 0x6f, 0xe3, 0xbc, 0x7e, 0x48,
93 0xb1, 0x2f, 0x9d, 0x70, 0x2c, 0x11, 0xdf, 0x35,
94 0xd1, 0xee, 0xd2, 0xd5, 0x37, 0x92, 0x4e, 0x06,
95 0x66, 0xb3, 0xc9, 0x9c, 0x99, 0xec, 0x09, 0xc6,
96 0xc4, 0xd6, 0xe6, 0x62, 0xb7, 0x97, 0x24, 0xd8,
97 0x38, 0x40, 0xf1, 0xa0, 0x1c, 0x0f, 0xf2, 0x3d,
98 0xaf, 0x4a, 0x93, 0xba, 0x11, 0xad, 0x67, 0xc4,
99 0x4b, 0x1d, 0x74, 0x33, 0x7c, 0xb9, 0x6b, 0x2d,
100 0xc5, 0x9b, 0x6a, 0xd2, 0xf2, 0x28, 0x08, 0x05,
101 0x18, 0x7d, 0xf0, 0xde, 0x28, 0x61, 0xf1, 0x81,
102 0xd5, 0x56, 0x4f, 0x20, 0x6e, 0xf3, 0x34, 0x89,
103 0x67, 0xd3, 0xa7, 0x09, 0xda, 0xc7, 0x89, 0x4d,
104 0xe1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
105 0x01, 0x79, 0x30, 0x82, 0x01, 0x75, 0x30, 0x09,
106 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30,
107 0x00, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f,
108 0x04, 0x04, 0x03, 0x02, 0x05, 0xa0, 0x30, 0x46,
109 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3f, 0x30,
110 0x3d, 0x30, 0x3b, 0xa0, 0x39, 0xa0, 0x37, 0x86,
111 0x35, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
112 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69,
113 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
114 0x2f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x49,
115 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69,
116 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76,
117 0x65, 0x72, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x44,
118 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3d, 0x30,
119 0x3b, 0x30, 0x39, 0x06, 0x0b, 0x60, 0x86, 0x48,
120 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x17, 0x03,
121 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06,
122 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c,
123 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
124 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69,
125 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
126 0x2f, 0x72, 0x70, 0x61, 0x30, 0x28, 0x06, 0x03,
127 0x55, 0x1d, 0x25, 0x04, 0x21, 0x30, 0x1f, 0x06,
128 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42,
129 0x04, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
130 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06,
131 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x34,
132 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
133 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24,
134 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
135 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70,
136 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e,
137 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e,
138 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x6d, 0x06, 0x08,
139 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c,
140 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d, 0xa0, 0x5b,
141 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
142 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69,
143 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30, 0x07, 0x06,
144 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
145 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e,
146 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4, 0x48, 0x18,
147 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
148 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c,
149 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, 0x69,
150 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
151 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
152 0x67, 0x69, 0x66, 0x30, 0x0d, 0x06, 0x09, 0x2a,
153 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
154 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x01, 0x5e,
155 0x47, 0x3c, 0x5f, 0x38, 0x4f, 0x4d, 0x64, 0xf1,
156 0x33, 0x13, 0xd3, 0xcf, 0x80, 0xf9, 0x88, 0x93,
157 0xba, 0x44, 0x7b, 0xf0, 0xbd, 0x60, 0x96, 0x39,
158 0xa8, 0xc5, 0x76, 0x18, 0x01, 0xa7, 0x03, 0x53,
159 0x8b, 0x92, 0xda, 0x97, 0xaa, 0x85, 0xc7, 0xb7,
160 0x7d, 0x58, 0x83, 0x68, 0x4a, 0xd9, 0x54, 0x78,
161 0x7f, 0xa0, 0xe9, 0x8f, 0xc5, 0xb4, 0x3a, 0xb7,
162 0x3c, 0xa1, 0x70, 0x40, 0xac, 0xc2, 0xc6, 0x5b,
163 0xbd, 0x70, 0x90, 0xb9, 0xc6, 0x7d, 0x7e, 0x49,
164 0xe4, 0xbd, 0xc1, 0x5d, 0x1a, 0x0f, 0x9e, 0x0a,
165 0x93, 0xfd, 0xc7, 0x7a, 0x8b, 0x9c, 0x61, 0x61,
166 0x34, 0x02, 0xcc, 0x68, 0xdd, 0x2b, 0x29, 0xbc,
167 0x83, 0x8d, 0x7a, 0x8b, 0x22, 0xb9, 0x1e, 0x79,
168 0x3a, 0x5a, 0xc6, 0xda, 0xb3, 0xaf, 0xaf, 0x0b,
169 0x41, 0x16, 0xda, 0xd2, 0x8e, 0xcd, 0xc1, 0xc0,
170 0x43, 0xfc, 0xb3, 0x10, 0xb7, 0x27
173 static const uint8_t _c0_serial
[] = {
174 0x44, 0x50, 0xE6, 0x23, 0xF5, 0x7E, 0x73, 0x4F,
175 0xF8, 0x5C, 0x1D, 0xEE, 0xFB, 0x97, 0x6C, 0x86
179 subject= /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
180 issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
181 serial=254B8A853842CCE358F8C5DDAE226EA4
183 static const uint8_t _c1
[] = {
184 0x30, 0x82, 0x03, 0x83, 0x30, 0x82, 0x02, 0xec,
185 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x25,
186 0x4b, 0x8a, 0x85, 0x38, 0x42, 0xcc, 0xe3, 0x58,
187 0xf8, 0xc5, 0xdd, 0xae, 0x22, 0x6e, 0xa4, 0x30,
188 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
189 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
190 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
191 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30,
192 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
193 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e,
194 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x37,
195 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
196 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
197 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20,
198 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
199 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
200 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
201 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
202 0x1e, 0x17, 0x0d, 0x39, 0x37, 0x30, 0x34, 0x31,
203 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
204 0x17, 0x0d, 0x31, 0x31, 0x31, 0x30, 0x32, 0x34,
205 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
206 0x81, 0xba, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03,
207 0x55, 0x04, 0x0a, 0x13, 0x16, 0x56, 0x65, 0x72,
208 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72,
209 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77,
210 0x6f, 0x72, 0x6b, 0x31, 0x17, 0x30, 0x15, 0x06,
211 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0e, 0x56, 0x65,
212 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20,
213 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31,
214 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2a, 0x56,
215 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20,
216 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74,
217 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65,
218 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20,
219 0x2d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
220 0x33, 0x31, 0x49, 0x30, 0x47, 0x06, 0x03, 0x55,
221 0x04, 0x0b, 0x13, 0x40, 0x77, 0x77, 0x77, 0x2e,
222 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e,
223 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53,
224 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x2e,
225 0x62, 0x79, 0x20, 0x52, 0x65, 0x66, 0x2e, 0x20,
226 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54,
227 0x59, 0x20, 0x4c, 0x54, 0x44, 0x2e, 0x28, 0x63,
228 0x29, 0x39, 0x37, 0x20, 0x56, 0x65, 0x72, 0x69,
229 0x53, 0x69, 0x67, 0x6e, 0x30, 0x81, 0x9f, 0x30,
230 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
231 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
232 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81,
233 0x00, 0xd8, 0x82, 0x80, 0xe8, 0xd6, 0x19, 0x02,
234 0x7d, 0x1f, 0x85, 0x18, 0x39, 0x25, 0xa2, 0x65,
235 0x2b, 0xe1, 0xbf, 0xd4, 0x05, 0xd3, 0xbc, 0xe6,
236 0x36, 0x3b, 0xaa, 0xf0, 0x4c, 0x6c, 0x5b, 0xb6,
237 0xe7, 0xaa, 0x3c, 0x73, 0x45, 0x55, 0xb2, 0xf1,
238 0xbd, 0xea, 0x97, 0x42, 0xed, 0x9a, 0x34, 0x0a,
239 0x15, 0xd4, 0xa9, 0x5c, 0xf5, 0x40, 0x25, 0xdd,
240 0xd9, 0x07, 0xc1, 0x32, 0xb2, 0x75, 0x6c, 0xc4,
241 0xca, 0xbb, 0xa3, 0xfe, 0x56, 0x27, 0x71, 0x43,
242 0xaa, 0x63, 0xf5, 0x30, 0x3e, 0x93, 0x28, 0xe5,
243 0xfa, 0xf1, 0x09, 0x3b, 0xf3, 0xb7, 0x4d, 0x4e,
244 0x39, 0xf7, 0x5c, 0x49, 0x5a, 0xb8, 0xc1, 0x1d,
245 0xd3, 0xb2, 0x8a, 0xfe, 0x70, 0x30, 0x95, 0x42,
246 0xcb, 0xfe, 0x2b, 0x51, 0x8b, 0x5a, 0x3c, 0x3a,
247 0xf9, 0x22, 0x4f, 0x90, 0xb2, 0x02, 0xa7, 0x53,
248 0x9c, 0x4f, 0x34, 0xe7, 0xab, 0x04, 0xb2, 0x7b,
249 0x6f, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81,
250 0xe3, 0x30, 0x81, 0xe0, 0x30, 0x0f, 0x06, 0x03,
251 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01,
252 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x44, 0x06,
253 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3d, 0x30, 0x3b,
254 0x30, 0x39, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01,
255 0x86, 0xf8, 0x45, 0x01, 0x07, 0x01, 0x01, 0x30,
256 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01,
257 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68,
258 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
259 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73,
260 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
261 0x43, 0x50, 0x53, 0x30, 0x34, 0x06, 0x03, 0x55,
262 0x1d, 0x25, 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x08,
263 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
264 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
265 0x03, 0x02, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
266 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60,
267 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08,
268 0x01, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f,
269 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x11,
270 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
271 0x42, 0x01, 0x01, 0x04, 0x04, 0x03, 0x02, 0x01,
272 0x06, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f,
273 0x04, 0x2a, 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24,
274 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70,
275 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76,
276 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
277 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33,
278 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09,
279 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
280 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x08,
281 0x01, 0xec, 0xe4, 0x68, 0x94, 0x03, 0x42, 0xf1,
282 0x73, 0xf1, 0x23, 0xa2, 0x3a, 0xde, 0xe9, 0xf1,
283 0xda, 0xc6, 0x54, 0xc4, 0x23, 0x3e, 0x86, 0xea,
284 0xcf, 0x6a, 0x3a, 0x33, 0xab, 0xea, 0x9c, 0x04,
285 0x14, 0x07, 0x36, 0x06, 0x0b, 0xf9, 0x88, 0x6f,
286 0xd5, 0x13, 0xee, 0x29, 0x2b, 0xc3, 0xe4, 0x72,
287 0x8d, 0x44, 0xed, 0xd1, 0xac, 0x20, 0x09, 0x2d,
288 0xe1, 0xf6, 0xe1, 0x19, 0x05, 0x38, 0xb0, 0x3d,
289 0x0f, 0x9f, 0x7f, 0xf8, 0x9e, 0x02, 0xdc, 0x86,
290 0x02, 0x86, 0x61, 0x4e, 0x26, 0x5f, 0x5e, 0x9f,
291 0x92, 0x1e, 0x0c, 0x24, 0xa4, 0xf5, 0xd0, 0x70,
292 0x13, 0xcf, 0x26, 0xc3, 0x43, 0x3d, 0x49, 0x1d,
293 0x9e, 0x82, 0x2e, 0x52, 0x5f, 0xbc, 0x3e, 0xc6,
294 0x66, 0x29, 0x01, 0x8e, 0x4e, 0x92, 0x2c, 0xbc,
295 0x46, 0x75, 0x03, 0x82, 0xac, 0x73, 0xe9, 0xd9,
296 0x7e, 0x0b, 0x67, 0xef, 0x54, 0x52, 0x1a
300 /* subject:/C=US/ST=California/L=Cupertino/O=Apple Inc/OU=Internet Operations/CN=xedge2.apple.com
301 issuer :/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority */
302 const uint8_t xedge2_certificate
[1385]={
303 0x30,0x82,0x05,0x65,0x30,0x82,0x04,0xCE,0xA0,0x03,0x02,0x01,0x02,0x02,0x04,0x46,
304 0x9C,0xDF,0x96,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,
305 0x05,0x00,0x30,0x81,0xC3,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,
306 0x55,0x53,0x31,0x14,0x30,0x12,0x06,0x03,0x55,0x04,0x0A,0x13,0x0B,0x45,0x6E,0x74,
307 0x72,0x75,0x73,0x74,0x2E,0x6E,0x65,0x74,0x31,0x3B,0x30,0x39,0x06,0x03,0x55,0x04,
308 0x0B,0x13,0x32,0x77,0x77,0x77,0x2E,0x65,0x6E,0x74,0x72,0x75,0x73,0x74,0x2E,0x6E,
309 0x65,0x74,0x2F,0x43,0x50,0x53,0x20,0x69,0x6E,0x63,0x6F,0x72,0x70,0x2E,0x20,0x62,
310 0x79,0x20,0x72,0x65,0x66,0x2E,0x20,0x28,0x6C,0x69,0x6D,0x69,0x74,0x73,0x20,0x6C,
311 0x69,0x61,0x62,0x2E,0x29,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0B,0x13,0x1C,
312 0x28,0x63,0x29,0x20,0x31,0x39,0x39,0x39,0x20,0x45,0x6E,0x74,0x72,0x75,0x73,0x74,
313 0x2E,0x6E,0x65,0x74,0x20,0x4C,0x69,0x6D,0x69,0x74,0x65,0x64,0x31,0x3A,0x30,0x38,
314 0x06,0x03,0x55,0x04,0x03,0x13,0x31,0x45,0x6E,0x74,0x72,0x75,0x73,0x74,0x2E,0x6E,
315 0x65,0x74,0x20,0x53,0x65,0x63,0x75,0x72,0x65,0x20,0x53,0x65,0x72,0x76,0x65,0x72,
316 0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,
317 0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x30,0x1E,0x17,0x0D,0x30,0x38,0x30,0x31,
318 0x32,0x39,0x31,0x38,0x33,0x33,0x31,0x33,0x5A,0x17,0x0D,0x31,0x30,0x30,0x31,0x32,
319 0x38,0x31,0x39,0x30,0x33,0x31,0x32,0x5A,0x30,0x81,0x83,0x31,0x0B,0x30,0x09,0x06,
320 0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,
321 0x08,0x13,0x0A,0x43,0x61,0x6C,0x69,0x66,0x6F,0x72,0x6E,0x69,0x61,0x31,0x12,0x30,
322 0x10,0x06,0x03,0x55,0x04,0x07,0x13,0x09,0x43,0x75,0x70,0x65,0x72,0x74,0x69,0x6E,
323 0x6F,0x31,0x12,0x30,0x10,0x06,0x03,0x55,0x04,0x0A,0x13,0x09,0x41,0x70,0x70,0x6C,
324 0x65,0x20,0x49,0x6E,0x63,0x31,0x1C,0x30,0x1A,0x06,0x03,0x55,0x04,0x0B,0x13,0x13,
325 0x49,0x6E,0x74,0x65,0x72,0x6E,0x65,0x74,0x20,0x4F,0x70,0x65,0x72,0x61,0x74,0x69,
326 0x6F,0x6E,0x73,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x03,0x13,0x10,0x78,0x65,
327 0x64,0x67,0x65,0x32,0x2E,0x61,0x70,0x70,0x6C,0x65,0x2E,0x63,0x6F,0x6D,0x30,0x81,
328 0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,
329 0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xC7,0xF3,0xA1,0x0E,0x0E,
330 0xA4,0xDF,0xC5,0x3F,0x24,0x87,0xC3,0x6E,0xE7,0xD0,0x7C,0x2B,0x5A,0x1C,0xF3,0x67,
331 0x6C,0x6B,0x56,0x0A,0x95,0xC9,0xE5,0x13,0x28,0x6E,0x16,0x9D,0x4F,0xB1,0x76,0xFB,
332 0x7D,0x42,0x5B,0x2A,0x7C,0xCC,0x97,0x75,0xAA,0xA6,0xA9,0xDE,0xB2,0xEC,0xEF,0xE2,
333 0xAB,0x40,0xAE,0x9A,0x23,0xF0,0x6A,0x10,0xB3,0x75,0x27,0xF0,0xF4,0x7D,0x08,0x67,
334 0x8F,0xCE,0x41,0x24,0x74,0xAA,0x37,0xB6,0xC1,0x32,0x61,0xCF,0x7D,0x1C,0x21,0xCD,
335 0xCF,0x7C,0x9E,0xE2,0x48,0x03,0x7E,0x78,0xB3,0x86,0x3D,0x06,0x6B,0x39,0xEC,0xC8,
336 0x73,0x68,0xDB,0xE7,0x5B,0x97,0xF4,0xF9,0xA3,0xE7,0xFB,0x81,0x2E,0x4D,0x0B,0x3F,
337 0xA9,0xCA,0xDE,0x32,0x26,0xF3,0xF0,0x97,0x72,0x65,0xAB,0x02,0x03,0x01,0x00,0x01,
338 0xA3,0x82,0x02,0xA2,0x30,0x82,0x02,0x9E,0x30,0x0B,0x06,0x03,0x55,0x1D,0x0F,0x04,
339 0x04,0x03,0x02,0x05,0xA0,0x30,0x2B,0x06,0x03,0x55,0x1D,0x10,0x04,0x24,0x30,0x22,
340 0x80,0x0F,0x32,0x30,0x30,0x38,0x30,0x31,0x32,0x39,0x31,0x38,0x33,0x33,0x31,0x33,
341 0x5A,0x81,0x0F,0x32,0x30,0x31,0x30,0x30,0x31,0x32,0x38,0x31,0x39,0x30,0x33,0x31,
342 0x32,0x5A,0x30,0x11,0x06,0x09,0x60,0x86,0x48,0x01,0x86,0xF8,0x42,0x01,0x01,0x04,
343 0x04,0x03,0x02,0x06,0x40,0x30,0x13,0x06,0x03,0x55,0x1D,0x25,0x04,0x0C,0x30,0x0A,
344 0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x01,0x30,0x82,0x01,0x68,0x06,0x03,
345 0x55,0x1D,0x20,0x04,0x82,0x01,0x5F,0x30,0x82,0x01,0x5B,0x30,0x82,0x01,0x57,0x06,
346 0x09,0x2A,0x86,0x48,0x86,0xF6,0x7D,0x07,0x4B,0x02,0x30,0x82,0x01,0x48,0x30,0x26,
347 0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x1A,0x68,0x74,0x74,0x70,
348 0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x65,0x6E,0x74,0x72,0x75,0x73,0x74,0x2E,0x6E,
349 0x65,0x74,0x2F,0x63,0x70,0x73,0x30,0x82,0x01,0x1C,0x06,0x08,0x2B,0x06,0x01,0x05,
350 0x05,0x07,0x02,0x02,0x30,0x82,0x01,0x0E,0x1A,0x82,0x01,0x0A,0x54,0x68,0x65,0x20,
351 0x45,0x6E,0x74,0x72,0x75,0x73,0x74,0x20,0x53,0x53,0x4C,0x20,0x57,0x65,0x62,0x20,
352 0x53,0x65,0x72,0x76,0x65,0x72,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,
353 0x74,0x69,0x6F,0x6E,0x20,0x50,0x72,0x61,0x63,0x74,0x69,0x63,0x65,0x20,0x53,0x74,
354 0x61,0x74,0x65,0x6D,0x65,0x6E,0x74,0x20,0x28,0x43,0x50,0x53,0x29,0x20,0x61,0x76,
355 0x61,0x69,0x6C,0x61,0x62,0x6C,0x65,0x20,0x61,0x74,0x20,0x77,0x77,0x77,0x2E,0x65,
356 0x6E,0x74,0x72,0x75,0x73,0x74,0x2E,0x6E,0x65,0x74,0x2F,0x63,0x70,0x73,0x20,0x20,
357 0x69,0x73,0x20,0x68,0x65,0x72,0x65,0x62,0x79,0x20,0x69,0x6E,0x63,0x6F,0x72,0x70,
358 0x6F,0x72,0x61,0x74,0x65,0x64,0x20,0x69,0x6E,0x74,0x6F,0x20,0x79,0x6F,0x75,0x72,
359 0x20,0x75,0x73,0x65,0x20,0x6F,0x72,0x20,0x72,0x65,0x6C,0x69,0x61,0x6E,0x63,0x65,
360 0x20,0x6F,0x6E,0x20,0x74,0x68,0x69,0x73,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,
361 0x63,0x61,0x74,0x65,0x2E,0x20,0x20,0x54,0x68,0x69,0x73,0x20,0x43,0x50,0x53,0x20,
362 0x63,0x6F,0x6E,0x74,0x61,0x69,0x6E,0x73,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,0x74,
363 0x69,0x6F,0x6E,0x73,0x20,0x6F,0x6E,0x20,0x77,0x61,0x72,0x72,0x61,0x6E,0x74,0x69,
364 0x65,0x73,0x20,0x61,0x6E,0x64,0x20,0x6C,0x69,0x61,0x62,0x69,0x6C,0x69,0x74,0x69,
365 0x65,0x73,0x2E,0x20,0x43,0x6F,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,
366 0x29,0x20,0x32,0x30,0x30,0x32,0x20,0x45,0x6E,0x74,0x72,0x75,0x73,0x74,0x20,0x4C,
367 0x69,0x6D,0x69,0x74,0x65,0x64,0x30,0x33,0x06,0x03,0x55,0x1D,0x1F,0x04,0x2C,0x30,
368 0x2A,0x30,0x28,0xA0,0x26,0xA0,0x24,0x86,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,
369 0x63,0x72,0x6C,0x2E,0x65,0x6E,0x74,0x72,0x75,0x73,0x74,0x2E,0x6E,0x65,0x74,0x2F,
370 0x73,0x65,0x72,0x76,0x65,0x72,0x31,0x2E,0x63,0x72,0x6C,0x30,0x33,0x06,0x08,0x2B,
371 0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x27,0x30,0x25,0x30,0x23,0x06,0x08,0x2B,
372 0x06,0x01,0x05,0x05,0x07,0x30,0x01,0x86,0x17,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,
373 0x6F,0x63,0x73,0x70,0x2E,0x65,0x6E,0x74,0x72,0x75,0x73,0x74,0x2E,0x6E,0x65,0x74,
374 0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xF0,0x17,0x62,
375 0x13,0x55,0x3D,0xB3,0xFF,0x0A,0x00,0x6B,0xFB,0x50,0x84,0x97,0xF3,0xED,0x62,0xD0,
376 0x1A,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x2D,0xEF,0xD9,0xAF,
377 0x1A,0x89,0x40,0x53,0x75,0x48,0x26,0x59,0x2F,0xEC,0x11,0x18,0xC0,0xD1,0x7A,0x34,
378 0x30,0x09,0x06,0x03,0x55,0x1D,0x13,0x04,0x02,0x30,0x00,0x30,0x19,0x06,0x09,0x2A,
379 0x86,0x48,0x86,0xF6,0x7D,0x07,0x41,0x00,0x04,0x0C,0x30,0x0A,0x1B,0x04,0x56,0x37,
380 0x2E,0x31,0x03,0x02,0x03,0x28,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,
381 0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x77,0x33,0x2A,0x69,0x45,0x5A,0xB2,
382 0xF5,0x74,0xF7,0xDF,0xC7,0x08,0x85,0x86,0x88,0x98,0x41,0x7F,0x57,0x49,0x01,0xBA,
383 0x13,0x21,0x40,0xD0,0x0A,0x5C,0xA7,0x37,0xDF,0xB3,0x7E,0xF8,0xED,0x04,0x63,0xC3,
384 0xE8,0x0F,0xA0,0xE5,0xC4,0x4F,0x3A,0x90,0xE4,0x87,0x5F,0xEC,0xDB,0x65,0x8B,0x6E,
385 0x88,0x6E,0x6E,0xE4,0xBC,0x6A,0x7E,0x37,0x47,0x04,0xFF,0x09,0xC6,0x70,0xE1,0x65,
386 0x8F,0xE3,0xE9,0x60,0xEB,0xE8,0x8E,0x29,0xAE,0xF9,0x81,0xCA,0x9A,0x97,0x3C,0x6F,
387 0x7C,0xFA,0xA8,0x49,0xB4,0x33,0x76,0x9C,0x65,0x92,0x12,0xF6,0x7F,0x6A,0x62,0x84,
388 0x29,0x5F,0x14,0x26,0x6E,0x07,0x6F,0x5C,0xB5,0x7C,0x21,0x64,0x7C,0xD9,0x93,0xF4,
389 0x9C,0xC8,0xE7,0xEC,0xC6,0xAC,0x13,0xC4,0xF0
393 /* subject:/CN=garthc2.apple.com/O=Apple Inc./OU=DTS/ST=California/C=US/L=Cupertino/emailAddress=gcummings@apple.com
394 issuer :/CN=garthc2.apple.com/O=Apple Inc./OU=DTS/ST=California/C=US/L=Cupertino/emailAddress=gcummings@apple.com */
395 const uint8_t garthc2_certificate
[730]={
396 0x30,0x82,0x02,0xD6,0x30,0x82,0x02,0x3F,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
397 0x30,0x0B,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x30,0x81,0x99,
398 0x31,0x1A,0x30,0x18,0x06,0x03,0x55,0x04,0x03,0x0C,0x11,0x67,0x61,0x72,0x74,0x68,
399 0x63,0x32,0x2E,0x61,0x70,0x70,0x6C,0x65,0x2E,0x63,0x6F,0x6D,0x31,0x13,0x30,0x11,
400 0x06,0x03,0x55,0x04,0x0A,0x0C,0x0A,0x41,0x70,0x70,0x6C,0x65,0x20,0x49,0x6E,0x63,
401 0x2E,0x31,0x0C,0x30,0x0A,0x06,0x03,0x55,0x04,0x0B,0x0C,0x03,0x44,0x54,0x53,0x31,
402 0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x0C,0x0A,0x43,0x61,0x6C,0x69,0x66,0x6F,
403 0x72,0x6E,0x69,0x61,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,
404 0x53,0x31,0x12,0x30,0x10,0x06,0x03,0x55,0x04,0x07,0x0C,0x09,0x43,0x75,0x70,0x65,
405 0x72,0x74,0x69,0x6E,0x6F,0x31,0x22,0x30,0x20,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,
406 0x0D,0x01,0x09,0x01,0x16,0x13,0x67,0x63,0x75,0x6D,0x6D,0x69,0x6E,0x67,0x73,0x40,
407 0x61,0x70,0x70,0x6C,0x65,0x2E,0x63,0x6F,0x6D,0x30,0x1E,0x17,0x0D,0x30,0x39,0x30,
408 0x37,0x31,0x36,0x32,0x32,0x34,0x39,0x31,0x30,0x5A,0x17,0x0D,0x31,0x30,0x30,0x37,
409 0x31,0x36,0x32,0x32,0x34,0x39,0x31,0x30,0x5A,0x30,0x81,0x99,0x31,0x1A,0x30,0x18,
410 0x06,0x03,0x55,0x04,0x03,0x0C,0x11,0x67,0x61,0x72,0x74,0x68,0x63,0x32,0x2E,0x61,
411 0x70,0x70,0x6C,0x65,0x2E,0x63,0x6F,0x6D,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,
412 0x0A,0x0C,0x0A,0x41,0x70,0x70,0x6C,0x65,0x20,0x49,0x6E,0x63,0x2E,0x31,0x0C,0x30,
413 0x0A,0x06,0x03,0x55,0x04,0x0B,0x0C,0x03,0x44,0x54,0x53,0x31,0x13,0x30,0x11,0x06,
414 0x03,0x55,0x04,0x08,0x0C,0x0A,0x43,0x61,0x6C,0x69,0x66,0x6F,0x72,0x6E,0x69,0x61,
415 0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x12,0x30,
416 0x10,0x06,0x03,0x55,0x04,0x07,0x0C,0x09,0x43,0x75,0x70,0x65,0x72,0x74,0x69,0x6E,
417 0x6F,0x31,0x22,0x30,0x20,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x09,0x01,
418 0x16,0x13,0x67,0x63,0x75,0x6D,0x6D,0x69,0x6E,0x67,0x73,0x40,0x61,0x70,0x70,0x6C,
419 0x65,0x2E,0x63,0x6F,0x6D,0x30,0x81,0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,
420 0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02,0x81,
421 0x81,0x00,0xCF,0x30,0xD9,0x9D,0x9C,0xD5,0x6F,0xCB,0xB1,0xD1,0xC2,0x73,0xE2,0xB4,
422 0x06,0xC3,0x16,0x6D,0x0E,0x68,0x40,0x5E,0x92,0xFC,0xD9,0x14,0xD2,0x5E,0x21,0x50,
423 0x66,0x41,0x96,0x3A,0x76,0x26,0xF6,0x6C,0x3C,0xA2,0xD4,0x84,0x91,0x09,0x2E,0x23,
424 0x2D,0x07,0x38,0x48,0x58,0x31,0xE5,0x00,0x08,0xB1,0x6C,0x5D,0x39,0x50,0x30,0xF7,
425 0x68,0x12,0x99,0xB5,0x4C,0x86,0x1E,0xA5,0xF4,0x0C,0xCB,0xCB,0x25,0xB0,0x7C,0x6A,
426 0xFE,0x28,0xD4,0x34,0xA5,0xD2,0x94,0x5E,0xBE,0x5F,0xC1,0x61,0xAE,0xB5,0xD2,0xD2,
427 0x18,0x34,0x07,0x02,0xA8,0x56,0xAC,0x55,0x4D,0x87,0x56,0x8A,0xBA,0x1B,0x17,0x26,
428 0x11,0x9B,0xF8,0x88,0xD1,0x4F,0x94,0x03,0x01,0xCC,0x01,0xE7,0x0B,0x9B,0x14,0x43,
429 0x25,0xFB,0x02,0x03,0x01,0x00,0x01,0xA3,0x2E,0x30,0x2C,0x30,0x0B,0x06,0x03,0x55,
430 0x1D,0x0F,0x04,0x04,0x03,0x02,0x05,0xA0,0x30,0x1D,0x06,0x03,0x55,0x1D,0x25,0x04,
431 0x16,0x30,0x14,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x02,0x06,0x08,0x2B,
432 0x06,0x01,0x05,0x05,0x07,0x03,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,
433 0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x9D,0x8A,0x8A,0x9F,0xA5,0x36,
434 0xA2,0xE6,0x1D,0xA9,0xF1,0x10,0xDF,0xC8,0xFC,0x1A,0x2B,0xA0,0x01,0x07,0x58,0xA4,
435 0xD0,0x41,0xE1,0x32,0xD8,0xA9,0x84,0x9E,0xF3,0xE2,0xDE,0x48,0xD3,0x03,0xD7,0xC9,
436 0x40,0x58,0x5A,0x91,0x85,0x70,0xF6,0xC7,0x34,0x90,0x3C,0x1B,0x06,0x8F,0x0C,0xEE,
437 0xDD,0x79,0x14,0x42,0x72,0x4F,0x41,0xF9,0xB0,0xEC,0x04,0x9F,0xD6,0x75,0x68,0x06,
438 0xA0,0xEA,0x11,0x0C,0xE9,0x16,0x2F,0x9E,0x23,0xFA,0x5D,0xC2,0x02,0x92,0x2A,0xDD,
439 0xE8,0xBD,0xA1,0x8F,0x33,0x96,0x84,0xFA,0xFD,0x3C,0x70,0xD4,0x9D,0x43,0xA4,0xA0,
440 0xE9,0xF4,0x49,0xB2,0xF4,0xCB,0x9F,0x43,0x87,0x04,0x8D,0xD0,0xEA,0xAC,0x21,0x24,
441 0x2C,0x4C,0x36,0x5C,0x34,0x8C,0x61,0xA4,0xF4,0xB8,
444 const uint8_t prt_forest_fi_certificate
[1797] = {
445 0x30, 0x82, 0x07, 0x01, 0x30, 0x82, 0x05, 0xe9, 0xa0, 0x03, 0x02, 0x01,
446 0x02, 0x02, 0x11, 0x00, 0xfa, 0x69, 0x1a, 0xa7, 0xbf, 0x1b, 0x93, 0xbe,
447 0x97, 0x11, 0xb0, 0xfe, 0xfc, 0xa8, 0x8d, 0x8c, 0x30, 0x0d, 0x06, 0x09,
448 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30,
449 0x39, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
450 0x46, 0x49, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
451 0x06, 0x53, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x31, 0x19, 0x30, 0x17, 0x06,
452 0x03, 0x55, 0x04, 0x03, 0x13, 0x10, 0x53, 0x6f, 0x6e, 0x65, 0x72, 0x61,
453 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x20, 0x43, 0x41, 0x30, 0x1e,
454 0x17, 0x0d, 0x31, 0x30, 0x31, 0x32, 0x30, 0x31, 0x30, 0x39, 0x33, 0x39,
455 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x31, 0x33, 0x30, 0x30,
456 0x39, 0x33, 0x39, 0x33, 0x33, 0x5a, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09,
457 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x46, 0x49, 0x31, 0x16, 0x30,
458 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0d, 0x50, 0x52, 0x54, 0x2d,
459 0x46, 0x6f, 0x72, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x79, 0x31, 0x16, 0x30,
460 0x14, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x0d, 0x54, 0x69, 0x65, 0x74,
461 0x6f, 0x68, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x74, 0x6f, 0x31, 0x18, 0x30,
462 0x16, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0f, 0x2a, 0x2e, 0x70, 0x72,
463 0x74, 0x2d, 0x66, 0x6f, 0x72, 0x65, 0x73, 0x74, 0x2e, 0x66, 0x69, 0x30,
464 0x82, 0x04, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
465 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x04, 0x0f, 0x00, 0x30,
466 0x82, 0x04, 0x0a, 0x02, 0x82, 0x04, 0x01, 0x00, 0xbc, 0x62, 0x25, 0x57,
467 0xbc, 0x71, 0xb8, 0xa9, 0x5b, 0x0e, 0x04, 0xbc, 0xc4, 0x0e, 0xf1, 0x0e,
468 0x1f, 0x20, 0xd2, 0xf4, 0x4f, 0x23, 0xfe, 0x14, 0x54, 0x34, 0x81, 0xd3,
469 0x5b, 0xdd, 0x74, 0xed, 0xa1, 0xbe, 0x91, 0x99, 0x9d, 0x02, 0xb9, 0x36,
470 0x70, 0x43, 0x5d, 0x73, 0xa6, 0xe5, 0x70, 0x7b, 0x0e, 0x0c, 0x3f, 0x33,
471 0xbb, 0x71, 0xd6, 0xd4, 0x22, 0xb0, 0xeb, 0xf5, 0x6e, 0x07, 0x7c, 0xe7,
472 0xc7, 0xd1, 0x20, 0x64, 0x72, 0x4e, 0xae, 0x5e, 0xae, 0xaf, 0x08, 0xfb,
473 0x7d, 0x6d, 0xdb, 0x69, 0x5a, 0x31, 0x73, 0x7d, 0xbd, 0x53, 0xcb, 0x04,
474 0x69, 0x6d, 0x74, 0x56, 0x6c, 0xbc, 0x84, 0xa6, 0x01, 0x39, 0x37, 0x0c,
475 0xb9, 0x5c, 0x2e, 0x78, 0x50, 0x3a, 0x8d, 0x1f, 0xa2, 0x33, 0xf1, 0xd2,
476 0xc2, 0x87, 0x51, 0xf4, 0x92, 0xc3, 0xa7, 0xaa, 0xc8, 0x36, 0x51, 0x1c,
477 0xfb, 0x77, 0xbf, 0xcf, 0x24, 0x11, 0xfe, 0xf4, 0x11, 0x2f, 0x5c, 0xdf,
478 0x26, 0xf6, 0xb9, 0x15, 0xc1, 0x46, 0x75, 0x83, 0x40, 0x77, 0xa4, 0x83,
479 0x74, 0xce, 0xc0, 0x29, 0x31, 0xd3, 0xd8, 0x68, 0xfa, 0x2e, 0xcc, 0x15,
480 0x2c, 0x59, 0x5c, 0xa7, 0x96, 0x65, 0x8f, 0x34, 0x87, 0x29, 0x22, 0x1d,
481 0xde, 0x65, 0xc7, 0x1c, 0x5c, 0xd8, 0x33, 0x22, 0xf7, 0x93, 0xd9, 0xcd,
482 0x96, 0x76, 0x22, 0xab, 0x75, 0x18, 0x04, 0xe7, 0x65, 0x2a, 0xeb, 0x42,
483 0x75, 0x17, 0x13, 0x12, 0x00, 0xe3, 0xf4, 0xd9, 0xde, 0xd1, 0x9f, 0x1c,
484 0x61, 0xee, 0xf6, 0xb9, 0xf9, 0x50, 0xb3, 0x1b, 0x79, 0x77, 0x38, 0x3c,
485 0x6a, 0xcc, 0xa0, 0x1d, 0xe4, 0xd7, 0x43, 0xca, 0x8b, 0x22, 0xbf, 0x77,
486 0x33, 0xea, 0xaa, 0x01, 0xcf, 0x1e, 0xd0, 0x0d, 0x04, 0x2b, 0xec, 0x42,
487 0x7b, 0xec, 0x53, 0xed, 0xc7, 0x4f, 0x0c, 0xac, 0x29, 0xb7, 0x8b, 0x92,
488 0x14, 0x3f, 0x9b, 0xc6, 0xd8, 0xa1, 0x30, 0x4d, 0x5a, 0x07, 0x0e, 0x1e,
489 0x80, 0x5f, 0x38, 0x66, 0x4d, 0xc1, 0xad, 0x2f, 0xee, 0xae, 0x94, 0x50,
490 0x8e, 0x38, 0x2a, 0x00, 0x80, 0xe2, 0xc4, 0x43, 0x2e, 0xd5, 0xcd, 0xca,
491 0x3f, 0x3d, 0xcb, 0x35, 0x13, 0x96, 0xd2, 0xdc, 0x0e, 0xe7, 0x45, 0x57,
492 0x4b, 0x8f, 0xee, 0xa1, 0xce, 0xe6, 0x57, 0x52, 0xcd, 0xd0, 0x82, 0xca,
493 0x3b, 0x87, 0xf4, 0x22, 0xff, 0x81, 0x4b, 0xf5, 0xa3, 0xda, 0xc5, 0xb6,
494 0x67, 0xb8, 0xf4, 0xaf, 0xff, 0x8d, 0x4e, 0x80, 0xb5, 0x22, 0x80, 0x3c,
495 0x70, 0xe4, 0xa0, 0xae, 0xdc, 0xcf, 0x44, 0xff, 0x00, 0x98, 0x3f, 0x19,
496 0x7b, 0x4c, 0x3d, 0xd8, 0xa5, 0xd8, 0xe0, 0x05, 0x73, 0x54, 0x06, 0x0c,
497 0x4d, 0x50, 0xf8, 0xd8, 0x85, 0x0b, 0xa8, 0x49, 0xaa, 0x97, 0x87, 0x3b,
498 0x32, 0xe8, 0x58, 0x22, 0xee, 0x34, 0x1c, 0x9f, 0xe3, 0x18, 0xba, 0x93,
499 0x43, 0xea, 0xb7, 0x78, 0x35, 0xa2, 0xb5, 0x1e, 0x19, 0x16, 0x3b, 0xb3,
500 0xf5, 0x12, 0xe8, 0x26, 0x62, 0x2d, 0xd7, 0x45, 0xc3, 0xa4, 0x4b, 0xda,
501 0x38, 0x48, 0x00, 0x3f, 0x68, 0x62, 0xa2, 0x83, 0x9d, 0x32, 0x76, 0x27,
502 0x40, 0x5d, 0x0e, 0x75, 0xb1, 0x08, 0xdb, 0x58, 0xfa, 0x20, 0x62, 0xf1,
503 0x3f, 0xbd, 0x86, 0x2f, 0x7c, 0x07, 0x01, 0x14, 0x1d, 0x19, 0x61, 0xee,
504 0x0a, 0x85, 0xbf, 0xc7, 0x4f, 0x4a, 0x06, 0xc0, 0xaf, 0x44, 0x5d, 0x6f,
505 0xc3, 0x53, 0x23, 0xcb, 0xdf, 0x40, 0x7a, 0x18, 0xa1, 0x34, 0x80, 0x18,
506 0x86, 0xfe, 0xe3, 0x87, 0xce, 0x30, 0x53, 0x33, 0x1c, 0x45, 0x4a, 0xb4,
507 0xe1, 0x8c, 0x9b, 0x4b, 0xf5, 0x2c, 0x7c, 0x13, 0x56, 0x37, 0x8a, 0x94,
508 0x24, 0xdb, 0x3a, 0x4b, 0x80, 0xb1, 0x26, 0x57, 0x5a, 0x75, 0x1c, 0x44,
509 0xc5, 0xf7, 0x67, 0xb4, 0x61, 0x87, 0xe8, 0x2e, 0xd9, 0xe1, 0xb9, 0x45,
510 0xcc, 0xdc, 0xdf, 0x3b, 0x8c, 0xce, 0xd0, 0x46, 0x6b, 0x87, 0xb5, 0xa9,
511 0xfe, 0x35, 0x87, 0xe0, 0xca, 0xc6, 0x7d, 0xc8, 0x86, 0xc2, 0xfe, 0x89,
512 0xec, 0xa9, 0x86, 0x33, 0x81, 0xdc, 0x41, 0xb3, 0xe7, 0xc4, 0x82, 0x3a,
513 0x81, 0x05, 0xbd, 0x8b, 0x92, 0xb2, 0x6a, 0x2c, 0x3c, 0xca, 0xd0, 0x22,
514 0xff, 0xc8, 0x8f, 0xf0, 0x5f, 0x0e, 0xfb, 0x0b, 0x36, 0x64, 0x6a, 0x12,
515 0x77, 0x2d, 0x8a, 0x38, 0xde, 0x7d, 0xed, 0xc9, 0xa7, 0xc1, 0x85, 0x41,
516 0xa2, 0x7b, 0xa5, 0xdc, 0x30, 0x96, 0xda, 0xf8, 0xb3, 0xc8, 0x21, 0x56,
517 0x3c, 0xdb, 0xe4, 0x8c, 0xb0, 0xfb, 0xec, 0x0e, 0x58, 0x49, 0x3c, 0x75,
518 0x3c, 0xc2, 0x41, 0xbd, 0xc0, 0x81, 0x37, 0xc7, 0x69, 0x5a, 0x41, 0x86,
519 0x18, 0xe9, 0x41, 0x7f, 0xba, 0xff, 0xc3, 0x52, 0x56, 0xf9, 0x7c, 0x60,
520 0x14, 0xf9, 0x66, 0x4c, 0x60, 0xb6, 0x3e, 0x23, 0xcd, 0xd1, 0x2d, 0x4f,
521 0x43, 0x97, 0xea, 0xa3, 0x37, 0xa4, 0x2a, 0xa7, 0x81, 0x49, 0x90, 0xe3,
522 0xb6, 0x12, 0x1b, 0xac, 0x78, 0x57, 0x20, 0x51, 0xb4, 0x16, 0x5e, 0x58,
523 0x61, 0x0f, 0x1e, 0x35, 0xbc, 0x3f, 0x44, 0xc2, 0x85, 0xa5, 0x61, 0x8a,
524 0x0a, 0x7c, 0x2e, 0xb0, 0x11, 0x12, 0xc6, 0xc0, 0xc8, 0xcb, 0xd8, 0x13,
525 0xc3, 0x58, 0xf1, 0xcd, 0x06, 0x5f, 0x90, 0xa5, 0xd7, 0x74, 0xbc, 0x1a,
526 0x9c, 0xdc, 0xab, 0xde, 0xea, 0x36, 0x67, 0x41, 0x4f, 0x62, 0x86, 0xc6,
527 0xfe, 0x63, 0x14, 0x83, 0x11, 0xab, 0xfb, 0x61, 0x38, 0x11, 0xce, 0x01,
528 0xe8, 0xee, 0x3a, 0x21, 0xbc, 0xaa, 0x4b, 0xb0, 0x8f, 0x2f, 0xcf, 0x58,
529 0xe6, 0x55, 0x61, 0x38, 0xa7, 0xc3, 0xaa, 0x3b, 0xb0, 0x8c, 0xf4, 0x82,
530 0xa0, 0x96, 0xc4, 0x13, 0x4a, 0xc0, 0xc8, 0x93, 0xb7, 0x3d, 0x28, 0x05,
531 0xb9, 0xc8, 0x4c, 0xe8, 0x57, 0xda, 0x56, 0x8b, 0xda, 0x27, 0xab, 0xbf,
532 0x7e, 0x66, 0x43, 0xdc, 0x57, 0x09, 0xdc, 0x88, 0x8e, 0xfb, 0xa7, 0x63,
533 0x41, 0xfb, 0xf1, 0x67, 0xb5, 0xe1, 0x84, 0x5d, 0x1d, 0xe3, 0xb4, 0xc6,
534 0x40, 0x97, 0xf8, 0x4d, 0xfc, 0x00, 0xcd, 0x56, 0xc2, 0xab, 0xff, 0x49,
535 0x93, 0xff, 0x46, 0x56, 0x9b, 0xee, 0x6d, 0xa0, 0x5d, 0xf4, 0x78, 0x36,
536 0x0e, 0xf6, 0xc9, 0x9c, 0x79, 0x89, 0xf9, 0x9c, 0xa7, 0x3e, 0xa0, 0x8d,
537 0x62, 0x7c, 0xdc, 0x83, 0x0a, 0xfc, 0x46, 0x96, 0x31, 0xd3, 0x56, 0xc6,
538 0xea, 0x7f, 0x1d, 0xaa, 0x49, 0xd1, 0x8b, 0x54, 0xa2, 0x6e, 0x59, 0x8c,
539 0x2a, 0xec, 0x3a, 0xd7, 0xda, 0xd2, 0xc1, 0xfc, 0x1d, 0x78, 0x55, 0xce,
540 0xd8, 0x0c, 0x1d, 0x7e, 0x99, 0xf8, 0x5e, 0x3c, 0x2d, 0xec, 0x63, 0xe2,
541 0xda, 0xa1, 0x68, 0x6f, 0x28, 0x2e, 0xb4, 0xef, 0x07, 0xc4, 0xa8, 0x65,
542 0xc7, 0xfd, 0x6b, 0x0f, 0x83, 0x23, 0xf8, 0xc2, 0xc9, 0x55, 0xfa, 0xa4,
543 0xa8, 0x6a, 0xab, 0x12, 0xf4, 0x89, 0x42, 0x26, 0x72, 0xd1, 0x82, 0x2f,
544 0x62, 0x14, 0xb6, 0x04, 0x23, 0x20, 0xb6, 0xd4, 0xef, 0x59, 0x8a, 0x40,
545 0x43, 0xd7, 0x72, 0xe0, 0x5b, 0x0c, 0xb0, 0x73, 0x6f, 0x6a, 0x87, 0xc1,
546 0x82, 0x50, 0x20, 0xdb, 0xaa, 0xf8, 0x8d, 0x70, 0xb6, 0x39, 0x46, 0xe0,
547 0x68, 0xc4, 0xab, 0xea, 0xd1, 0x31, 0xad, 0xf7, 0x05, 0xfb, 0x3a, 0x3c,
548 0x2e, 0x66, 0x4f, 0xc6, 0x0d, 0xf9, 0xb8, 0x29, 0xec, 0xdc, 0xfc, 0x81,
549 0x56, 0x2b, 0xb0, 0xad, 0xd2, 0x12, 0x8f, 0x69, 0x70, 0x18, 0x27, 0x16,
550 0xf9, 0xf0, 0x40, 0x93, 0xef, 0x6b, 0x95, 0x96, 0xcd, 0x5f, 0xe9, 0x5a,
551 0x7b, 0xad, 0x7f, 0x98, 0xa7, 0x6a, 0xe5, 0x17, 0xeb, 0xc3, 0xdd, 0xc9,
552 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xe5, 0x30, 0x81, 0xe2, 0x30,
553 0x13, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x0c, 0x30, 0x0a, 0x80, 0x08,
554 0x4a, 0xa0, 0xaa, 0x58, 0x84, 0xd3, 0x5e, 0x3c, 0x30, 0x19, 0x06, 0x03,
555 0x55, 0x1d, 0x20, 0x04, 0x12, 0x30, 0x10, 0x30, 0x0e, 0x06, 0x0c, 0x2b,
556 0x06, 0x01, 0x04, 0x01, 0x82, 0x0f, 0x02, 0x03, 0x01, 0x01, 0x02, 0x30,
557 0x72, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x6b, 0x30, 0x69, 0x30, 0x67,
558 0xa0, 0x65, 0xa0, 0x63, 0x86, 0x61, 0x6c, 0x64, 0x61, 0x70, 0x3a, 0x2f,
559 0x2f, 0x31, 0x39, 0x34, 0x2e, 0x32, 0x35, 0x32, 0x2e, 0x31, 0x32, 0x34,
560 0x2e, 0x32, 0x34, 0x31, 0x3a, 0x33, 0x38, 0x39, 0x2f, 0x63, 0x6e, 0x3d,
561 0x53, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x25, 0x32, 0x30, 0x43, 0x6c, 0x61,
562 0x73, 0x73, 0x32, 0x25, 0x32, 0x30, 0x43, 0x41, 0x2c, 0x6f, 0x3d, 0x53,
563 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x2c, 0x63, 0x3d, 0x46, 0x49, 0x3f, 0x63,
564 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x72, 0x65,
565 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6c, 0x69, 0x73, 0x74,
566 0x3b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x30, 0x1d, 0x06, 0x03, 0x55,
567 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
568 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
569 0x03, 0x02, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
570 0x14, 0x85, 0xc2, 0x31, 0x35, 0x4f, 0x93, 0x92, 0x9d, 0x8a, 0xbc, 0x32,
571 0x7d, 0x1b, 0xf0, 0xaa, 0x96, 0xb1, 0x03, 0x86, 0x71, 0x30, 0x0d, 0x06,
572 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
573 0x03, 0x82, 0x01, 0x01, 0x00, 0x00, 0x9e, 0x75, 0x2b, 0x95, 0x6a, 0x96,
574 0x12, 0x24, 0xd5, 0x04, 0x6c, 0x34, 0x0a, 0x58, 0x5a, 0x7d, 0x59, 0xb9,
575 0x03, 0x23, 0x13, 0xc3, 0xf5, 0x24, 0x57, 0x33, 0x8d, 0xca, 0x5f, 0xd8,
576 0x26, 0xff, 0x64, 0x46, 0x13, 0x40, 0xe5, 0x04, 0xb2, 0xba, 0x92, 0xa5,
577 0xa6, 0xa3, 0xd9, 0x2b, 0xff, 0x05, 0xef, 0xce, 0x3c, 0x28, 0xe8, 0x1b,
578 0xa3, 0x10, 0x8a, 0xdd, 0x3d, 0x3a, 0x0a, 0xe1, 0x07, 0x3c, 0xb4, 0xf6,
579 0xbb, 0xeb, 0xb5, 0xf2, 0x05, 0xe8, 0xd7, 0x16, 0x3e, 0xe5, 0x15, 0x49,
580 0xdf, 0x8d, 0x34, 0xb8, 0x1b, 0xd4, 0xf2, 0x65, 0xa0, 0x70, 0x80, 0xd0,
581 0xbf, 0xa5, 0x74, 0x5d, 0xfb, 0xd4, 0x52, 0x3b, 0x54, 0xca, 0x32, 0xba,
582 0xf7, 0xe3, 0x90, 0xa5, 0xa8, 0xad, 0xd0, 0xe5, 0x5d, 0x18, 0x18, 0x87,
583 0x60, 0xb0, 0xf3, 0xf9, 0x62, 0x20, 0x77, 0xaa, 0x0f, 0xdd, 0x16, 0x4c,
584 0x01, 0x3a, 0xb1, 0x1f, 0x85, 0x7e, 0x01, 0x04, 0x5f, 0xf1, 0x37, 0x36,
585 0xe3, 0x3a, 0xc1, 0xa3, 0x7c, 0x33, 0xca, 0xce, 0x0b, 0xb9, 0x34, 0xe2,
586 0xe1, 0xe6, 0xed, 0x24, 0xc1, 0xc3, 0xc7, 0x74, 0x8f, 0x22, 0x2c, 0x6e,
587 0xcb, 0x5c, 0x7a, 0x61, 0x99, 0xde, 0xea, 0x13, 0xe1, 0xa8, 0xa1, 0x94,
588 0xd0, 0x85, 0x65, 0x65, 0xed, 0x97, 0x14, 0x6e, 0x97, 0xc9, 0xcf, 0x34,
589 0x7c, 0xf2, 0x68, 0xeb, 0xc2, 0x7d, 0x03, 0x53, 0xf5, 0xdb, 0xa1, 0x11,
590 0x8d, 0xda, 0xcc, 0x26, 0x13, 0xaa, 0x43, 0x76, 0x04, 0x9b, 0x85, 0x89,
591 0xc3, 0x29, 0xd8, 0xb5, 0x54, 0x81, 0x09, 0xf5, 0x18, 0x52, 0xa5, 0x38,
592 0x4a, 0x00, 0xc6, 0x1d, 0x4d, 0x5a, 0x15, 0xa0, 0xfd, 0xf7, 0x58, 0x27,
593 0xcd, 0x6b, 0x56, 0x6b, 0xee, 0x7d, 0x73, 0xd3, 0xfd, 0x6c, 0xb6, 0xb1,
594 0x3b, 0xbd, 0xbf, 0x5b, 0x4a, 0x6c, 0xd3, 0x1c, 0x47
598 /* Test basic add delete update copy matching stuff. */
599 static void tests(void)
602 SecCertificateRef cert0
, cert1
;
603 isnt(cert0
= SecCertificateCreateWithBytes(NULL
, _c0
, sizeof(_c0
)),
604 NULL
, "create cert0");
605 isnt(cert1
= SecCertificateCreateWithBytes(NULL
, _c1
, sizeof(_c1
)),
606 NULL
, "create cert1");
607 const void *v_certs
[] = {
611 SecPolicyRef policy
= SecPolicyCreateSSL(false, NULL
);
612 CFArrayRef certs
= CFArrayCreate(NULL
, v_certs
,
613 array_size(v_certs
), NULL
);
615 /* SecTrustCreateWithCertificates using single cert. */
616 ok_status(SecTrustCreateWithCertificates(cert0
, policy
, &trust
),
617 "create trust with single cert0");
618 is(SecTrustGetCertificateCount(trust
), 1, "cert count is 1");
619 is(SecTrustGetCertificateAtIndex(trust
, 0), cert0
, "cert 0 is leaf");
620 CFReleaseNull(trust
);
622 /* SecTrustCreateWithCertificates failures. */
623 is_status(SecTrustCreateWithCertificates(kCFBooleanTrue
, policy
, &trust
),
624 errSecParam
, "create trust with boolean instead of cert");
625 is_status(SecTrustCreateWithCertificates(cert0
, kCFBooleanTrue
, &trust
),
626 errSecParam
, "create trust with boolean instead of policy");
628 /* SecTrustCreateWithCertificates using array of certs. */
629 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
), "create trust");
630 /* NOTE: prior to <rdar://11810677 SecTrustGetCertificateCount would return 1 at this point.
631 * Now, however, we do an implicit SecTrustEvaluate to build the chain if it has not yet been
632 * evaluated, so we now expect the full chain length.
634 is(SecTrustGetCertificateCount(trust
), 3, "cert count is 3");
635 is(SecTrustGetCertificateAtIndex(trust
, 0), cert0
, "cert 0 is leaf");
638 CFDateRef date
= CFDateCreate(NULL
, 157680000.0);
639 ok_status(SecTrustSetVerifyDate(trust
, date
), "set date");
641 is(SecTrustGetVerifyTime(trust
), 157680000.0, "get date");
643 SecTrustResultType trustResult
;
647 skip("Can't fail to connect to securityd in NO_SERVER mode", 4, false);
649 // Test Restore OS environment
650 SecServerSetMachServiceName("com.apple.security.doesn't-exist");
651 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust without securityd running");
652 is_status(trustResult
, kSecTrustResultInvalid
, "trustResult is kSecTrustResultInvalid");
653 is(SecTrustGetCertificateCount(trust
), 1, "cert count is 1 without securityd running");
654 SecKeyRef pubKey
= NULL
;
655 ok(pubKey
= SecTrustCopyPublicKey(trust
), "copy public key without securityd running");
656 CFReleaseNull(pubKey
);
657 SecServerSetMachServiceName(NULL
);
658 // End of Restore OS environment tests
661 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust");
662 is_status(trustResult
, kSecTrustResultUnspecified
,
663 "trustResult is kSecTrustResultUnspecified");
665 is(SecTrustGetCertificateCount(trust
), 3, "cert count is 3");
667 CFDataRef c0_serial
= CFDataCreate(NULL
, _c0_serial
, sizeof(_c0_serial
));
669 ok(serial
= SecCertificateCopySerialNumber(cert0
), "copy cert0 serial");
670 ok(CFEqual(c0_serial
, serial
), "serial matches");
672 CFArrayRef anchors
= CFArrayCreate(NULL
, (const void **)&cert1
, 1, &kCFTypeArrayCallBacks
);
673 ok_status(SecTrustSetAnchorCertificates(trust
, anchors
), "set anchors");
674 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust");
675 is_status(trustResult
, kSecTrustResultUnspecified
,
676 "trust is kSecTrustResultUnspecified");
677 is(SecTrustGetCertificateCount(trust
), 2, "cert count is 2");
679 CFReleaseSafe(anchors
);
680 anchors
= CFArrayCreate(NULL
, NULL
, 0, NULL
);
681 ok_status(SecTrustSetAnchorCertificates(trust
, anchors
), "set empty anchors list");
682 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust");
683 is_status(trustResult
, kSecTrustResultRecoverableTrustFailure
,
684 "trust is kSecTrustResultRecoverableTrustFailure");
686 ok_status(SecTrustSetAnchorCertificatesOnly(trust
, false), "trust passed in anchors and system anchors");
687 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust");
688 is_status(trustResult
, kSecTrustResultUnspecified
,
689 "trust is kSecTrustResultUnspecified");
691 ok_status(SecTrustSetAnchorCertificatesOnly(trust
, true), "only trust passed in anchors (default)");
692 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust");
693 is_status(trustResult
, kSecTrustResultRecoverableTrustFailure
,
694 "trust is kSecTrustResultRecoverableTrustFailure");
696 /* Test cert_1 intermididate from the keychain. */
697 CFReleaseSafe(trust
);
698 ok_status(SecTrustCreateWithCertificates(cert0
, policy
, &trust
),
699 "create trust with single cert0");
700 ok_status(SecTrustSetVerifyDate(trust
, date
), "set date");
703 CFDictionaryRef query
= CFDictionaryCreateForCFTypes(kCFAllocatorDefault
,
704 kSecClass
, kSecClassCertificate
, kSecValueRef
, cert1
, NULL
);
705 ok_status(SecItemAdd(query
, NULL
), "add cert1 to keychain");
706 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate trust");
707 // Cleanup added cert1.
708 ok_status(SecItemDelete(query
), "remove cert1 from keychain");
709 CFReleaseSafe(query
);
710 is_status(trustResult
, kSecTrustResultUnspecified
,
711 "trust is kSecTrustResultUnspecified");
712 is(SecTrustGetCertificateCount(trust
), 3, "cert count is 3");
714 /* Set certs to be the xedge2 leaf. */
715 CFReleaseSafe(certs
);
716 const void *cert_xedge2
;
717 isnt(cert_xedge2
= SecCertificateCreateWithBytes(NULL
, xedge2_certificate
,
718 sizeof(xedge2_certificate
)), NULL
, "create cert_xedge2");
719 certs
= CFArrayCreate(NULL
, &cert_xedge2
, 1, NULL
);
721 CFReleaseSafe(trust
);
722 CFReleaseSafe(policy
);
725 policy
= SecPolicyCreateSSL(server
, CFSTR("xedge2.apple.com"));
726 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
727 "create trust for ssl server xedge2.apple.com");
729 date
= CFDateCreate(NULL
, 252288000.0);
730 ok_status(SecTrustSetVerifyDate(trust
, date
), "set xedge2 trust date to Jan 1st 2009");
731 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate xedge2 trust");
732 is_status(trustResult
, kSecTrustResultUnspecified
,
733 "trust is kSecTrustResultUnspecified");
735 CFReleaseSafe(trust
);
736 CFReleaseSafe(policy
);
738 policy
= SecPolicyCreateSSL(server
, CFSTR("xedge2.apple.com"));
739 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
740 "create trust for ssl client xedge2.apple.com");
741 ok_status(SecTrustSetVerifyDate(trust
, date
), "set xedge2 trust date to Jan 1st 2009");
742 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate xedge2 trust");
743 is_status(trustResult
, kSecTrustResultRecoverableTrustFailure
,
744 "trust is kSecTrustResultRecoverableTrustFailure");
746 CFReleaseSafe(trust
);
747 CFReleaseSafe(policy
);
749 policy
= SecPolicyCreateIPSec(server
, CFSTR("xedge2.apple.com"));
750 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
751 "create trust for ip server xedge2.apple.com");
752 ok_status(SecTrustSetVerifyDate(trust
, date
), "set xedge2 trust date to Jan 1st 2009");
753 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate xedge2 trust");
755 /* Although this shouldn't be a valid ipsec cert, since we no longer
756 check for ekus in the ipsec policy it is. */
757 is_status(trustResult
, kSecTrustResultRecoverableTrustFailure
,
758 "trust is kSecTrustResultRecoverableTrustFailure");
760 is_status(trustResult
, kSecTrustResultUnspecified
,
761 "trust is kSecTrustResultUnspecified");
764 CFReleaseSafe(trust
);
765 CFReleaseSafe(policy
);
767 policy
= SecPolicyCreateSSL(server
, CFSTR("nowhere.com"));
768 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
769 "create trust for ssl server nowhere.com");
770 SecPolicyRef replacementPolicy
= SecPolicyCreateSSL(server
, CFSTR("xedge2.apple.com"));
771 SecTrustSetPolicies(trust
, replacementPolicy
);
772 CFReleaseSafe(replacementPolicy
);
773 ok_status(SecTrustSetVerifyDate(trust
, date
), "set xedge2 trust date to Jan 1st 2009");
774 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate xedge2 trust");
775 is_status(trustResult
, kSecTrustResultUnspecified
,
776 "trust is kSecTrustResultUnspecified");
778 CFReleaseSafe(trust
);
779 CFReleaseSafe(policy
);
781 policy
= SecPolicyCreateSSL(server
, CFSTR("nowhere.com"));
782 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
783 "create trust for ssl server nowhere.com");
784 SecPolicyRef replacementPolicy2
= SecPolicyCreateSSL(server
, CFSTR("xedge2.apple.com"));
785 CFArrayRef replacementPolicies
= CFArrayCreate(kCFAllocatorDefault
, (CFTypeRef
*)&replacementPolicy2
, 1, &kCFTypeArrayCallBacks
);
786 SecTrustSetPolicies(trust
, replacementPolicies
);
787 CFReleaseSafe(replacementPolicy2
);
788 CFReleaseSafe(replacementPolicies
);
789 ok_status(SecTrustSetVerifyDate(trust
, date
), "set xedge2 trust date to Jan 1st 2009");
790 ok_status(SecTrustEvaluate(trust
, &trustResult
), "evaluate xedge2 trust");
791 is_status(trustResult
, kSecTrustResultUnspecified
,
792 "trust is kSecTrustResultUnspecified");
794 /* Test self signed ssl cert with cert itself set as anchor. */
795 CFReleaseSafe(trust
);
796 CFReleaseSafe(policy
);
797 CFReleaseSafe(certs
);
801 isnt(garthc2
= SecCertificateCreateWithBytes(NULL
, garthc2_certificate
,
802 sizeof(garthc2_certificate
)), NULL
, "create garthc2");
803 certs
= CFArrayCreate(NULL
, &garthc2
, 1, NULL
);
804 policy
= SecPolicyCreateSSL(server
, CFSTR("garthc2.apple.com"));
805 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
806 "create trust for ip server garthc2.apple.com");
807 date
= CFDateCreate(NULL
, 269568000.0);
808 ok_status(SecTrustSetVerifyDate(trust
, date
),
809 "set garthc2 trust date to Aug 2009");
810 ok_status(SecTrustSetAnchorCertificates(trust
, certs
),
811 "set garthc2 as anchor");
812 ok_status(SecTrustEvaluate(trust
, &trustResult
),
813 "evaluate self signed cert with cert as anchor");
814 is_status(trustResult
, kSecTrustResultUnspecified
,
815 "trust is kSecTrustResultUnspecified");
817 CFReleaseSafe(garthc2
);
818 CFReleaseSafe(cert_xedge2
);
819 CFReleaseSafe(anchors
);
820 CFReleaseSafe(trust
);
821 CFReleaseSafe(serial
);
822 CFReleaseSafe(c0_serial
);
823 CFReleaseSafe(policy
);
824 CFReleaseSafe(certs
);
825 CFReleaseSafe(cert0
);
826 CFReleaseSafe(cert1
);
829 /* Test prt_forest_fi */
830 const void *prt_forest_fi
;
831 isnt(prt_forest_fi
= SecCertificateCreateWithBytes(NULL
, prt_forest_fi_certificate
,
832 sizeof(prt_forest_fi_certificate
)), NULL
, "create prt_forest_fi");
833 isnt(certs
= CFArrayCreate(NULL
, &prt_forest_fi
, 1, NULL
), NULL
, "failed to create cert array");
834 policy
= SecPolicyCreateSSL(false, CFSTR("owa.prt-forest.fi"));
835 ok_status(SecTrustCreateWithCertificates(certs
, policy
, &trust
),
836 "create trust for ip client owa.prt-forest.fi");
837 date
= CFDateCreate(NULL
, 391578321.0);
838 ok_status(SecTrustSetVerifyDate(trust
, date
),
839 "set owa.prt-forest.fi trust date to May 2013");
841 SecKeyRef pubkey
= SecTrustCopyPublicKey(trust
);
842 is(pubkey
, NULL
, "pubkey returned");
844 CFReleaseSafe(certs
);
845 CFReleaseNull(prt_forest_fi
);
846 CFReleaseNull(policy
);
847 CFReleaseNull(trust
);
848 CFReleaseNull(pubkey
);
853 int si_20_sectrust(int argc
, char *const *argv
)