]> git.saurik.com Git - apple/security.git/blob - OSX/sec/Security/Regressions/secitem/si-15-certificate.c
Security-57740.20.22.tar.gz
[apple/security.git] / OSX / sec / Security / Regressions / secitem / si-15-certificate.c
1 /*
2 * Copyright (c) 2008-2010,2012 Apple Inc. All Rights Reserved.
3 */
4
5 #include <CoreFoundation/CoreFoundation.h>
6 #include <Security/SecCertificate.h>
7 #include <Security/SecCertificatePriv.h>
8 #include <Security/SecPolicy.h>
9 #include <Security/SecTrust.h>
10 #include <stdlib.h>
11 #include <unistd.h>
12
13 #include "shared_regressions.h"
14
15 /*
16 Apple Inc. CA
17 */
18 static const uint8_t _c0[] = {
19 0x30, 0x82, 0x04, 0xbb, 0x30, 0x82, 0x03, 0xa3,
20 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02,
21 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
22 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30,
23 0x62, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
24 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13,
25 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
26 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49,
27 0x6e, 0x63, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06,
28 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x70,
29 0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
30 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
31 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
32 0x69, 0x74, 0x79, 0x31, 0x16, 0x30, 0x14, 0x06,
33 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x41, 0x70,
34 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74,
35 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30,
36 0x36, 0x30, 0x34, 0x32, 0x35, 0x32, 0x31, 0x34,
37 0x30, 0x33, 0x36, 0x5a, 0x17, 0x0d, 0x33, 0x35,
38 0x30, 0x32, 0x30, 0x39, 0x32, 0x31, 0x34, 0x30,
39 0x33, 0x36, 0x5a, 0x30, 0x62, 0x31, 0x0b, 0x30,
40 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
41 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
42 0x55, 0x04, 0x0a, 0x13, 0x0a, 0x41, 0x70, 0x70,
43 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
44 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b,
45 0x13, 0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20,
46 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
47 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
48 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31,
49 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03,
50 0x13, 0x0d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20,
51 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30,
52 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
53 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
54 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
55 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
56 0xe4, 0x91, 0xa9, 0x09, 0x1f, 0x91, 0xdb, 0x1e,
57 0x47, 0x50, 0xeb, 0x05, 0xed, 0x5e, 0x79, 0x84,
58 0x2d, 0xeb, 0x36, 0xa2, 0x57, 0x4c, 0x55, 0xec,
59 0x8b, 0x19, 0x89, 0xde, 0xf9, 0x4b, 0x6c, 0xf5,
60 0x07, 0xab, 0x22, 0x30, 0x02, 0xe8, 0x18, 0x3e,
61 0xf8, 0x50, 0x09, 0xd3, 0x7f, 0x41, 0xa8, 0x98,
62 0xf9, 0xd1, 0xca, 0x66, 0x9c, 0x24, 0x6b, 0x11,
63 0xd0, 0xa3, 0xbb, 0xe4, 0x1b, 0x2a, 0xc3, 0x1f,
64 0x95, 0x9e, 0x7a, 0x0c, 0xa4, 0x47, 0x8b, 0x5b,
65 0xd4, 0x16, 0x37, 0x33, 0xcb, 0xc4, 0x0f, 0x4d,
66 0xce, 0x14, 0x69, 0xd1, 0xc9, 0x19, 0x72, 0xf5,
67 0x5d, 0x0e, 0xd5, 0x7f, 0x5f, 0x9b, 0xf2, 0x25,
68 0x03, 0xba, 0x55, 0x8f, 0x4d, 0x5d, 0x0d, 0xf1,
69 0x64, 0x35, 0x23, 0x15, 0x4b, 0x15, 0x59, 0x1d,
70 0xb3, 0x94, 0xf7, 0xf6, 0x9c, 0x9e, 0xcf, 0x50,
71 0xba, 0xc1, 0x58, 0x50, 0x67, 0x8f, 0x08, 0xb4,
72 0x20, 0xf7, 0xcb, 0xac, 0x2c, 0x20, 0x6f, 0x70,
73 0xb6, 0x3f, 0x01, 0x30, 0x8c, 0xb7, 0x43, 0xcf,
74 0x0f, 0x9d, 0x3d, 0xf3, 0x2b, 0x49, 0x28, 0x1a,
75 0xc8, 0xfe, 0xce, 0xb5, 0xb9, 0x0e, 0xd9, 0x5e,
76 0x1c, 0xd6, 0xcb, 0x3d, 0xb5, 0x3a, 0xad, 0xf4,
77 0x0f, 0x0e, 0x00, 0x92, 0x0b, 0xb1, 0x21, 0x16,
78 0x2e, 0x74, 0xd5, 0x3c, 0x0d, 0xdb, 0x62, 0x16,
79 0xab, 0xa3, 0x71, 0x92, 0x47, 0x53, 0x55, 0xc1,
80 0xaf, 0x2f, 0x41, 0xb3, 0xf8, 0xfb, 0xe3, 0x70,
81 0xcd, 0xe6, 0xa3, 0x4c, 0x45, 0x7e, 0x1f, 0x4c,
82 0x6b, 0x50, 0x96, 0x41, 0x89, 0xc4, 0x74, 0x62,
83 0x0b, 0x10, 0x83, 0x41, 0x87, 0x33, 0x8a, 0x81,
84 0xb1, 0x30, 0x58, 0xec, 0x5a, 0x04, 0x32, 0x8c,
85 0x68, 0xb3, 0x8f, 0x1d, 0xde, 0x65, 0x73, 0xff,
86 0x67, 0x5e, 0x65, 0xbc, 0x49, 0xd8, 0x76, 0x9f,
87 0x33, 0x14, 0x65, 0xa1, 0x77, 0x94, 0xc9, 0x2d,
88 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
89 0x7a, 0x30, 0x82, 0x01, 0x76, 0x30, 0x0e, 0x06,
90 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
91 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0f, 0x06,
92 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
93 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d,
94 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
95 0x14, 0x2b, 0xd0, 0x69, 0x47, 0x94, 0x76, 0x09,
96 0xfe, 0xf4, 0x6b, 0x8d, 0x2e, 0x40, 0xa6, 0xf7,
97 0x47, 0x4d, 0x7f, 0x08, 0x5e, 0x30, 0x1f, 0x06,
98 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
99 0x80, 0x14, 0x2b, 0xd0, 0x69, 0x47, 0x94, 0x76,
100 0x09, 0xfe, 0xf4, 0x6b, 0x8d, 0x2e, 0x40, 0xa6,
101 0xf7, 0x47, 0x4d, 0x7f, 0x08, 0x5e, 0x30, 0x82,
102 0x01, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
103 0x82, 0x01, 0x08, 0x30, 0x82, 0x01, 0x04, 0x30,
104 0x82, 0x01, 0x00, 0x06, 0x09, 0x2a, 0x86, 0x48,
105 0x86, 0xf7, 0x63, 0x64, 0x05, 0x01, 0x30, 0x81,
106 0xf2, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01,
107 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1e, 0x68,
108 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
109 0x77, 0x77, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65,
110 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x70,
111 0x6c, 0x65, 0x63, 0x61, 0x2f, 0x30, 0x81, 0xc3,
112 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
113 0x02, 0x02, 0x30, 0x81, 0xb6, 0x1a, 0x81, 0xb3,
114 0x52, 0x65, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65,
115 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73,
116 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
117 0x63, 0x61, 0x74, 0x65, 0x20, 0x62, 0x79, 0x20,
118 0x61, 0x6e, 0x79, 0x20, 0x70, 0x61, 0x72, 0x74,
119 0x79, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65,
120 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74,
121 0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20,
122 0x74, 0x68, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e,
123 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
124 0x62, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6e,
125 0x64, 0x61, 0x72, 0x64, 0x20, 0x74, 0x65, 0x72,
126 0x6d, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63,
127 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
128 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65,
129 0x2c, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
130 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x70, 0x6f,
131 0x6c, 0x69, 0x63, 0x79, 0x20, 0x61, 0x6e, 0x64,
132 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
133 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70,
134 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x20,
135 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
136 0x74, 0x73, 0x2e, 0x30, 0x0d, 0x06, 0x09, 0x2a,
137 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
138 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x5c,
139 0x36, 0x99, 0x4c, 0x2d, 0x78, 0xb7, 0xed, 0x8c,
140 0x9b, 0xdc, 0xf3, 0x77, 0x9b, 0xf2, 0x76, 0xd2,
141 0x77, 0x30, 0x4f, 0xc1, 0x1f, 0x85, 0x83, 0x85,
142 0x1b, 0x99, 0x3d, 0x47, 0x37, 0xf2, 0xa9, 0x9b,
143 0x40, 0x8e, 0x2c, 0xd4, 0xb1, 0x90, 0x12, 0xd8,
144 0xbe, 0xf4, 0x73, 0x9b, 0xee, 0xd2, 0x64, 0x0f,
145 0xcb, 0x79, 0x4f, 0x34, 0xd8, 0xa2, 0x3e, 0xf9,
146 0x78, 0xff, 0x6b, 0xc8, 0x07, 0xec, 0x7d, 0x39,
147 0x83, 0x8b, 0x53, 0x20, 0xd3, 0x38, 0xc4, 0xb1,
148 0xbf, 0x9a, 0x4f, 0x0a, 0x6b, 0xff, 0x2b, 0xfc,
149 0x59, 0xa7, 0x05, 0x09, 0x7c, 0x17, 0x40, 0x56,
150 0x11, 0x1e, 0x74, 0xd3, 0xb7, 0x8b, 0x23, 0x3b,
151 0x47, 0xa3, 0xd5, 0x6f, 0x24, 0xe2, 0xeb, 0xd1,
152 0xb7, 0x70, 0xdf, 0x0f, 0x45, 0xe1, 0x27, 0xca,
153 0xf1, 0x6d, 0x78, 0xed, 0xe7, 0xb5, 0x17, 0x17,
154 0xa8, 0xdc, 0x7e, 0x22, 0x35, 0xca, 0x25, 0xd5,
155 0xd9, 0x0f, 0xd6, 0x6b, 0xd4, 0xa2, 0x24, 0x23,
156 0x11, 0xf7, 0xa1, 0xac, 0x8f, 0x73, 0x81, 0x60,
157 0xc6, 0x1b, 0x5b, 0x09, 0x2f, 0x92, 0xb2, 0xf8,
158 0x44, 0x48, 0xf0, 0x60, 0x38, 0x9e, 0x15, 0xf5,
159 0x3d, 0x26, 0x67, 0x20, 0x8a, 0x33, 0x6a, 0xf7,
160 0x0d, 0x82, 0xcf, 0xde, 0xeb, 0xa3, 0x2f, 0xf9,
161 0x53, 0x6a, 0x5b, 0x64, 0xc0, 0x63, 0x33, 0x77,
162 0xf7, 0x3a, 0x07, 0x2c, 0x56, 0xeb, 0xda, 0x0f,
163 0x21, 0x0e, 0xda, 0xba, 0x73, 0x19, 0x4f, 0xb5,
164 0xd9, 0x36, 0x7f, 0xc1, 0x87, 0x55, 0xd9, 0xa7,
165 0x99, 0xb9, 0x32, 0x42, 0xfb, 0xd8, 0xd5, 0x71,
166 0x9e, 0x7e, 0xa1, 0x52, 0xb7, 0x1b, 0xbd, 0x93,
167 0x42, 0x24, 0x12, 0x2a, 0xc7, 0x0f, 0x1d, 0xb6,
168 0x4d, 0x9c, 0x5e, 0x63, 0xc8, 0x4b, 0x80, 0x17,
169 0x50, 0xaa, 0x8a, 0xd5, 0xda, 0xe4, 0xfc, 0xd0,
170 0x09, 0x07, 0x37, 0xb0, 0x75, 0x75, 0x21,
171 };
172
173 /*
174 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
175 issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
176 serial=254B8A853842CCE358F8C5DDAE226EA4
177 */
178 static const uint8_t _c1[] = {
179 0x30, 0x82, 0x03, 0x83, 0x30, 0x82, 0x02, 0xec,
180 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x25,
181 0x4b, 0x8a, 0x85, 0x38, 0x42, 0xcc, 0xe3, 0x58,
182 0xf8, 0xc5, 0xdd, 0xae, 0x22, 0x6e, 0xa4, 0x30,
183 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
184 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
185 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
186 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30,
187 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
188 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e,
189 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x37,
190 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
191 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
192 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20,
193 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
194 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
195 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
196 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
197 0x1e, 0x17, 0x0d, 0x39, 0x37, 0x30, 0x34, 0x31,
198 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
199 0x17, 0x0d, 0x31, 0x31, 0x31, 0x30, 0x32, 0x34,
200 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
201 0x81, 0xba, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03,
202 0x55, 0x04, 0x0a, 0x13, 0x16, 0x56, 0x65, 0x72,
203 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72,
204 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77,
205 0x6f, 0x72, 0x6b, 0x31, 0x17, 0x30, 0x15, 0x06,
206 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0e, 0x56, 0x65,
207 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20,
208 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31,
209 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2a, 0x56,
210 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20,
211 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74,
212 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65,
213 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20,
214 0x2d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
215 0x33, 0x31, 0x49, 0x30, 0x47, 0x06, 0x03, 0x55,
216 0x04, 0x0b, 0x13, 0x40, 0x77, 0x77, 0x77, 0x2e,
217 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e,
218 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53,
219 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x2e,
220 0x62, 0x79, 0x20, 0x52, 0x65, 0x66, 0x2e, 0x20,
221 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54,
222 0x59, 0x20, 0x4c, 0x54, 0x44, 0x2e, 0x28, 0x63,
223 0x29, 0x39, 0x37, 0x20, 0x56, 0x65, 0x72, 0x69,
224 0x53, 0x69, 0x67, 0x6e, 0x30, 0x81, 0x9f, 0x30,
225 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
226 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
227 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81,
228 0x00, 0xd8, 0x82, 0x80, 0xe8, 0xd6, 0x19, 0x02,
229 0x7d, 0x1f, 0x85, 0x18, 0x39, 0x25, 0xa2, 0x65,
230 0x2b, 0xe1, 0xbf, 0xd4, 0x05, 0xd3, 0xbc, 0xe6,
231 0x36, 0x3b, 0xaa, 0xf0, 0x4c, 0x6c, 0x5b, 0xb6,
232 0xe7, 0xaa, 0x3c, 0x73, 0x45, 0x55, 0xb2, 0xf1,
233 0xbd, 0xea, 0x97, 0x42, 0xed, 0x9a, 0x34, 0x0a,
234 0x15, 0xd4, 0xa9, 0x5c, 0xf5, 0x40, 0x25, 0xdd,
235 0xd9, 0x07, 0xc1, 0x32, 0xb2, 0x75, 0x6c, 0xc4,
236 0xca, 0xbb, 0xa3, 0xfe, 0x56, 0x27, 0x71, 0x43,
237 0xaa, 0x63, 0xf5, 0x30, 0x3e, 0x93, 0x28, 0xe5,
238 0xfa, 0xf1, 0x09, 0x3b, 0xf3, 0xb7, 0x4d, 0x4e,
239 0x39, 0xf7, 0x5c, 0x49, 0x5a, 0xb8, 0xc1, 0x1d,
240 0xd3, 0xb2, 0x8a, 0xfe, 0x70, 0x30, 0x95, 0x42,
241 0xcb, 0xfe, 0x2b, 0x51, 0x8b, 0x5a, 0x3c, 0x3a,
242 0xf9, 0x22, 0x4f, 0x90, 0xb2, 0x02, 0xa7, 0x53,
243 0x9c, 0x4f, 0x34, 0xe7, 0xab, 0x04, 0xb2, 0x7b,
244 0x6f, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81,
245 0xe3, 0x30, 0x81, 0xe0, 0x30, 0x0f, 0x06, 0x03,
246 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01,
247 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x44, 0x06,
248 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3d, 0x30, 0x3b,
249 0x30, 0x39, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01,
250 0x86, 0xf8, 0x45, 0x01, 0x07, 0x01, 0x01, 0x30,
251 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01,
252 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68,
253 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
254 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73,
255 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
256 0x43, 0x50, 0x53, 0x30, 0x34, 0x06, 0x03, 0x55,
257 0x1d, 0x25, 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x08,
258 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
259 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
260 0x03, 0x02, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
261 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60,
262 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08,
263 0x01, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f,
264 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x11,
265 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
266 0x42, 0x01, 0x01, 0x04, 0x04, 0x03, 0x02, 0x01,
267 0x06, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f,
268 0x04, 0x2a, 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24,
269 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70,
270 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76,
271 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
272 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33,
273 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09,
274 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
275 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x08,
276 0x01, 0xec, 0xe4, 0x68, 0x94, 0x03, 0x42, 0xf1,
277 0x73, 0xf1, 0x23, 0xa2, 0x3a, 0xde, 0xe9, 0xf1,
278 0xda, 0xc6, 0x54, 0xc4, 0x23, 0x3e, 0x86, 0xea,
279 0xcf, 0x6a, 0x3a, 0x33, 0xab, 0xea, 0x9c, 0x04,
280 0x14, 0x07, 0x36, 0x06, 0x0b, 0xf9, 0x88, 0x6f,
281 0xd5, 0x13, 0xee, 0x29, 0x2b, 0xc3, 0xe4, 0x72,
282 0x8d, 0x44, 0xed, 0xd1, 0xac, 0x20, 0x09, 0x2d,
283 0xe1, 0xf6, 0xe1, 0x19, 0x05, 0x38, 0xb0, 0x3d,
284 0x0f, 0x9f, 0x7f, 0xf8, 0x9e, 0x02, 0xdc, 0x86,
285 0x02, 0x86, 0x61, 0x4e, 0x26, 0x5f, 0x5e, 0x9f,
286 0x92, 0x1e, 0x0c, 0x24, 0xa4, 0xf5, 0xd0, 0x70,
287 0x13, 0xcf, 0x26, 0xc3, 0x43, 0x3d, 0x49, 0x1d,
288 0x9e, 0x82, 0x2e, 0x52, 0x5f, 0xbc, 0x3e, 0xc6,
289 0x66, 0x29, 0x01, 0x8e, 0x4e, 0x92, 0x2c, 0xbc,
290 0x46, 0x75, 0x03, 0x82, 0xac, 0x73, 0xe9, 0xd9,
291 0x7e, 0x0b, 0x67, 0xef, 0x54, 0x52, 0x1a
292 };
293
294
295 /*
296 subject= /C=US/O=University of Virginia/OU=UVA Standard PKI User/emailAddress=kmm6b@Virginia.EDU/CN=Keith M. Moores 10
297 issuer= /C=US/ST=Virginia/L=Charlottesville/O=University of Virginia/emailAddress=pkimaster@virginia.edu/CN=UVA Standard Assurance SKP 1
298 serial=0C6D
299 */
300 static const uint8_t _c2[] = {
301 0x30, 0x82, 0x05, 0x56, 0x30, 0x82, 0x04, 0xbf,
302 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x02, 0x0c,
303 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
304 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
305 0x30, 0x81, 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06,
306 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
307 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04,
308 0x08, 0x13, 0x08, 0x56, 0x69, 0x72, 0x67, 0x69,
309 0x6e, 0x69, 0x61, 0x31, 0x18, 0x30, 0x16, 0x06,
310 0x03, 0x55, 0x04, 0x07, 0x13, 0x0f, 0x43, 0x68,
311 0x61, 0x72, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x73,
312 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x31, 0x1f, 0x30,
313 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x16,
314 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69,
315 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x56, 0x69,
316 0x72, 0x67, 0x69, 0x6e, 0x69, 0x61, 0x31, 0x25,
317 0x30, 0x23, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
318 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x16, 0x70,
319 0x6b, 0x69, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72,
320 0x40, 0x76, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69,
321 0x61, 0x2e, 0x65, 0x64, 0x75, 0x31, 0x25, 0x30,
322 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
323 0x55, 0x56, 0x41, 0x20, 0x53, 0x74, 0x61, 0x6e,
324 0x64, 0x61, 0x72, 0x64, 0x20, 0x41, 0x73, 0x73,
325 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x53,
326 0x4b, 0x50, 0x20, 0x31, 0x30, 0x1e, 0x17, 0x0d,
327 0x30, 0x34, 0x30, 0x31, 0x30, 0x38, 0x31, 0x37,
328 0x32, 0x35, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x30,
329 0x35, 0x30, 0x31, 0x30, 0x38, 0x31, 0x37, 0x32,
330 0x35, 0x30, 0x30, 0x5a, 0x30, 0x81, 0x8e, 0x31,
331 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
332 0x13, 0x02, 0x55, 0x53, 0x31, 0x1f, 0x30, 0x1d,
333 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x16, 0x55,
334 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74,
335 0x79, 0x20, 0x6f, 0x66, 0x20, 0x56, 0x69, 0x72,
336 0x67, 0x69, 0x6e, 0x69, 0x61, 0x31, 0x1e, 0x30,
337 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x15,
338 0x55, 0x56, 0x41, 0x20, 0x53, 0x74, 0x61, 0x6e,
339 0x64, 0x61, 0x72, 0x64, 0x20, 0x50, 0x4b, 0x49,
340 0x20, 0x55, 0x73, 0x65, 0x72, 0x31, 0x21, 0x30,
341 0x1f, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
342 0x0d, 0x01, 0x09, 0x01, 0x16, 0x12, 0x6b, 0x6d,
343 0x6d, 0x36, 0x62, 0x40, 0x56, 0x69, 0x72, 0x67,
344 0x69, 0x6e, 0x69, 0x61, 0x2e, 0x45, 0x44, 0x55,
345 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
346 0x03, 0x13, 0x12, 0x4b, 0x65, 0x69, 0x74, 0x68,
347 0x20, 0x4d, 0x2e, 0x20, 0x4d, 0x6f, 0x6f, 0x72,
348 0x65, 0x73, 0x20, 0x31, 0x30, 0x30, 0x81, 0x9f,
349 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
350 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
351 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81,
352 0x81, 0x00, 0xb4, 0xf9, 0x1b, 0xda, 0x10, 0x01,
353 0x47, 0x96, 0xb4, 0xea, 0xb2, 0x35, 0xbb, 0x7e,
354 0x69, 0x69, 0xd9, 0x49, 0x2c, 0x36, 0x3a, 0x27,
355 0x55, 0x6e, 0x11, 0xb1, 0xdf, 0x13, 0x54, 0xf2,
356 0x66, 0xa5, 0x98, 0x3a, 0xfd, 0x7e, 0xda, 0x6d,
357 0x12, 0xb7, 0x06, 0xaa, 0xde, 0x55, 0x50, 0x04,
358 0xf5, 0x91, 0x27, 0xc7, 0x4d, 0x85, 0x91, 0xd9,
359 0xc5, 0xd6, 0x88, 0xc6, 0x33, 0x40, 0x83, 0xc0,
360 0xe4, 0x83, 0xe2, 0x9f, 0x49, 0xfb, 0xc1, 0x1f,
361 0xdb, 0xd9, 0xf4, 0xd4, 0x32, 0x2e, 0x3a, 0xe9,
362 0xb4, 0x12, 0x5d, 0x58, 0x2a, 0x65, 0x4e, 0xc7,
363 0x09, 0x59, 0xfc, 0x2b, 0x0d, 0xda, 0x6a, 0xc3,
364 0x9f, 0x32, 0x7d, 0xf2, 0xfc, 0xf4, 0x3e, 0xb8,
365 0x63, 0xbc, 0x13, 0x74, 0xc6, 0x0e, 0x76, 0x3a,
366 0x7a, 0xe9, 0x93, 0x97, 0x7f, 0xc8, 0x2b, 0x33,
367 0x9f, 0xd8, 0x59, 0xef, 0xc0, 0x0a, 0x2e, 0xd3,
368 0xd9, 0x69, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
369 0x82, 0x02, 0xa4, 0x30, 0x82, 0x02, 0xa0, 0x30,
370 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04,
371 0x03, 0x02, 0x05, 0xa0, 0x30, 0x1d, 0x06, 0x03,
372 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06,
373 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
374 0x02, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
375 0x07, 0x03, 0x04, 0x30, 0x1d, 0x06, 0x03, 0x55,
376 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x4d, 0xe0,
377 0xe1, 0x57, 0xb6, 0x91, 0x7a, 0x34, 0x99, 0x7a,
378 0xe5, 0x2a, 0xd6, 0xae, 0x0a, 0x75, 0x05, 0x73,
379 0x5d, 0x30, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d,
380 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1f, 0x06,
381 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
382 0x80, 0x14, 0x2c, 0xb7, 0xe3, 0xa6, 0x09, 0x68,
383 0x85, 0x90, 0x58, 0x8e, 0x2d, 0xd5, 0x3a, 0xef,
384 0x93, 0x02, 0x2a, 0x4c, 0x85, 0x62, 0x30, 0x41,
385 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x3a, 0x30,
386 0x38, 0xa0, 0x22, 0x06, 0x0a, 0x2b, 0x06, 0x01,
387 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, 0x03, 0xa0,
388 0x14, 0x0c, 0x12, 0x6b, 0x6d, 0x6d, 0x36, 0x62,
389 0x40, 0x56, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69,
390 0x61, 0x2e, 0x45, 0x44, 0x55, 0x81, 0x12, 0x6b,
391 0x6d, 0x6d, 0x36, 0x62, 0x40, 0x56, 0x69, 0x72,
392 0x67, 0x69, 0x6e, 0x69, 0x61, 0x2e, 0x45, 0x44,
393 0x55, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x1d, 0x12,
394 0x04, 0x28, 0x30, 0x26, 0x81, 0x16, 0x70, 0x6b,
395 0x69, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x40,
396 0x56, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69, 0x61,
397 0x2e, 0x45, 0x44, 0x55, 0x82, 0x0c, 0x56, 0x69,
398 0x72, 0x67, 0x69, 0x6e, 0x69, 0x61, 0x2e, 0x45,
399 0x44, 0x55, 0x30, 0x82, 0x01, 0x5c, 0x06, 0x03,
400 0x55, 0x1d, 0x1f, 0x04, 0x82, 0x01, 0x53, 0x30,
401 0x82, 0x01, 0x4f, 0x30, 0x74, 0xa0, 0x72, 0xa0,
402 0x70, 0x86, 0x6e, 0x6c, 0x64, 0x61, 0x70, 0x3a,
403 0x2f, 0x2f, 0x6c, 0x64, 0x61, 0x70, 0x2e, 0x70,
404 0x6b, 0x69, 0x2e, 0x76, 0x69, 0x72, 0x67, 0x69,
405 0x6e, 0x69, 0x61, 0x2e, 0x65, 0x64, 0x75, 0x2f,
406 0x63, 0x3d, 0x55, 0x53, 0x2c, 0x6f, 0x3d, 0x55,
407 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74,
408 0x79, 0x25, 0x32, 0x30, 0x6f, 0x66, 0x25, 0x32,
409 0x30, 0x56, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69,
410 0x61, 0x2c, 0x6f, 0x75, 0x3d, 0x55, 0x56, 0x41,
411 0x25, 0x32, 0x30, 0x53, 0x74, 0x61, 0x6e, 0x64,
412 0x61, 0x72, 0x64, 0x25, 0x32, 0x30, 0x41, 0x73,
413 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x25,
414 0x32, 0x30, 0x53, 0x4b, 0x50, 0x25, 0x32, 0x30,
415 0x31, 0x2c, 0x63, 0x6e, 0x3d, 0x30, 0x43, 0x36,
416 0x44, 0x30, 0x74, 0xa0, 0x72, 0xa0, 0x70, 0x86,
417 0x6e, 0x6c, 0x64, 0x61, 0x70, 0x3a, 0x2f, 0x2f,
418 0x6c, 0x64, 0x61, 0x70, 0x2e, 0x70, 0x6b, 0x69,
419 0x2e, 0x76, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69,
420 0x61, 0x2e, 0x65, 0x64, 0x75, 0x2f, 0x63, 0x6e,
421 0x3d, 0x30, 0x43, 0x36, 0x44, 0x2c, 0x6f, 0x75,
422 0x3d, 0x55, 0x56, 0x41, 0x25, 0x32, 0x30, 0x53,
423 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x25,
424 0x32, 0x30, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61,
425 0x6e, 0x63, 0x65, 0x25, 0x32, 0x30, 0x53, 0x4b,
426 0x50, 0x25, 0x32, 0x30, 0x31, 0x2c, 0x6f, 0x3d,
427 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69,
428 0x74, 0x79, 0x25, 0x32, 0x30, 0x6f, 0x66, 0x25,
429 0x32, 0x30, 0x56, 0x69, 0x72, 0x67, 0x69, 0x6e,
430 0x69, 0x61, 0x2c, 0x63, 0x3d, 0x55, 0x53, 0x30,
431 0x61, 0xa0, 0x5f, 0xa0, 0x5d, 0x86, 0x5b, 0x68,
432 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
433 0x77, 0x2e, 0x70, 0x6b, 0x69, 0x2e, 0x76, 0x69,
434 0x72, 0x67, 0x69, 0x6e, 0x69, 0x61, 0x2e, 0x65,
435 0x64, 0x75, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62,
436 0x69, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x2d, 0x63,
437 0x72, 0x6c, 0x3f, 0x6f, 0x75, 0x3d, 0x55, 0x56,
438 0x41, 0x25, 0x32, 0x30, 0x53, 0x74, 0x61, 0x6e,
439 0x64, 0x61, 0x72, 0x64, 0x25, 0x32, 0x30, 0x41,
440 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65,
441 0x25, 0x32, 0x30, 0x53, 0x4b, 0x50, 0x25, 0x32,
442 0x30, 0x31, 0x26, 0x63, 0x6e, 0x3d, 0x30, 0x43,
443 0x36, 0x44, 0x30, 0x53, 0x06, 0x03, 0x55, 0x1d,
444 0x20, 0x04, 0x4c, 0x30, 0x4a, 0x30, 0x48, 0x06,
445 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb4, 0x76,
446 0x01, 0x01, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08,
447 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
448 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
449 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x70, 0x6b, 0x69,
450 0x2e, 0x76, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69,
451 0x61, 0x2e, 0x65, 0x64, 0x75, 0x2f, 0x73, 0x74,
452 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2f, 0x63,
453 0x70, 0x73, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x30,
454 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
455 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81,
456 0x81, 0x00, 0x9f, 0xf2, 0x7f, 0x51, 0x97, 0x2c,
457 0xe6, 0x8f, 0x50, 0xba, 0x75, 0xd8, 0x9c, 0x77,
458 0x5e, 0x2a, 0xe9, 0xbe, 0x18, 0x37, 0x7f, 0x18,
459 0x86, 0xbb, 0x9d, 0x22, 0xf2, 0xf9, 0x3e, 0x22,
460 0x00, 0x0b, 0xf2, 0x41, 0x6b, 0x08, 0x17, 0xbc,
461 0x7a, 0xc4, 0xc9, 0x99, 0xa0, 0xbd, 0x53, 0x8d,
462 0x52, 0xdb, 0xcc, 0xd0, 0x88, 0x14, 0x2a, 0x05,
463 0x93, 0xcd, 0xf3, 0xa0, 0xf3, 0xb9, 0xdb, 0x35,
464 0x5c, 0xec, 0x24, 0xe8, 0x08, 0xbe, 0x4e, 0xa1,
465 0xa2, 0x54, 0x41, 0xbc, 0xbe, 0x7b, 0x22, 0xf4,
466 0x03, 0x7d, 0xd0, 0xfb, 0x25, 0x8d, 0xf5, 0xa9,
467 0x04, 0x14, 0xe9, 0xe3, 0x3e, 0x3f, 0x13, 0x6f,
468 0x89, 0x72, 0x76, 0x41, 0x67, 0x8a, 0x48, 0x2a,
469 0x36, 0xf0, 0xe6, 0xb9, 0x33, 0x35, 0x88, 0xda,
470 0x27, 0x9d, 0xf9, 0x5d, 0x42, 0x04, 0x6f, 0x7d,
471 0x60, 0x53, 0x86, 0xf2, 0xf4, 0x3b, 0x3d, 0xbe,
472 0x1d, 0x99,
473 };
474
475 /* subject:/C=US/O=Apple Computer, Inc./OU=mac.com/CN=phased/description=.Mac Sharing Certificate */
476 /* issuer :/C=US/O=Apple Computer, Inc./OU=Apple Computer Certificate Authority/CN=Apple .Mac Certificate Authority */
477 static unsigned char _phased_c3[1376]={
478 0x30,0x82,0x05,0x5C,0x30,0x82,0x04,0x44,0xA0,0x03,0x02,0x01,0x02,0x02,0x03,0x20,
479 0x7D,0xC7,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,
480 0x00,0x30,0x81,0x86,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,
481 0x53,0x31,0x1D,0x30,0x1B,0x06,0x03,0x55,0x04,0x0A,0x13,0x14,0x41,0x70,0x70,0x6C,
482 0x65,0x20,0x43,0x6F,0x6D,0x70,0x75,0x74,0x65,0x72,0x2C,0x20,0x49,0x6E,0x63,0x2E,
483 0x31,0x2D,0x30,0x2B,0x06,0x03,0x55,0x04,0x0B,0x13,0x24,0x41,0x70,0x70,0x6C,0x65,
484 0x20,0x43,0x6F,0x6D,0x70,0x75,0x74,0x65,0x72,0x20,0x43,0x65,0x72,0x74,0x69,0x66,
485 0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x31,
486 0x29,0x30,0x27,0x06,0x03,0x55,0x04,0x03,0x13,0x20,0x41,0x70,0x70,0x6C,0x65,0x20,
487 0x2E,0x4D,0x61,0x63,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,
488 0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x30,0x1E,0x17,0x0D,0x30,0x37,
489 0x31,0x30,0x32,0x38,0x31,0x38,0x35,0x34,0x35,0x33,0x5A,0x17,0x0D,0x30,0x38,0x31,
490 0x30,0x32,0x38,0x31,0x38,0x35,0x34,0x35,0x33,0x5A,0x30,0x72,0x31,0x0B,0x30,0x09,
491 0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x1D,0x30,0x1B,0x06,0x03,0x55,
492 0x04,0x0A,0x13,0x14,0x41,0x70,0x70,0x6C,0x65,0x20,0x43,0x6F,0x6D,0x70,0x75,0x74,
493 0x65,0x72,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x10,0x30,0x0E,0x06,0x03,0x55,0x04,
494 0x0B,0x13,0x07,0x6D,0x61,0x63,0x2E,0x63,0x6F,0x6D,0x31,0x0F,0x30,0x0D,0x06,0x03,
495 0x55,0x04,0x03,0x13,0x06,0x70,0x68,0x61,0x73,0x65,0x64,0x31,0x21,0x30,0x1F,0x06,
496 0x03,0x55,0x04,0x0D,0x13,0x18,0x2E,0x4D,0x61,0x63,0x20,0x53,0x68,0x61,0x72,0x69,
497 0x6E,0x67,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x30,0x81,
498 0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,
499 0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xC0,0xFB,0x0E,0x62,0xD3,
500 0xE2,0xCC,0xC7,0x54,0x6A,0x4F,0x9C,0x4E,0x40,0x9D,0x30,0x3D,0x60,0x86,0x00,0x7C,
501 0x33,0x0C,0x2E,0x2E,0x45,0xDF,0xBE,0xEB,0x94,0xE7,0xD6,0xBE,0x6B,0x0F,0x7B,0x88,
502 0x3C,0x02,0xA7,0x25,0x5E,0x18,0xC6,0x97,0xF0,0x0C,0xDD,0x89,0x22,0x27,0x9C,0x85,
503 0x25,0x36,0x95,0x61,0x26,0xE7,0x6C,0x7E,0x41,0xDE,0xFF,0x5D,0x77,0xCB,0xE6,0x05,
504 0xB0,0xAD,0x77,0xC9,0xFC,0xA5,0xF1,0x82,0x1A,0xB4,0xE4,0x26,0x8D,0x1B,0xC3,0xE2,
505 0xEF,0x6A,0xE0,0xEE,0xF3,0x38,0x27,0xE1,0x73,0x9E,0xD0,0x93,0x6A,0xA6,0xD5,0xD1,
506 0xEC,0xE5,0x0D,0x4B,0x3A,0x42,0x8C,0xF1,0xE1,0x24,0x0A,0x02,0x0D,0x22,0xAE,0xEC,
507 0x47,0xDA,0xFA,0x6B,0x12,0x50,0x47,0x2E,0x4A,0xD8,0x9F,0x02,0x03,0x01,0x00,0x01,
508 0xA3,0x82,0x02,0x68,0x30,0x82,0x02,0x64,0x30,0x0C,0x06,0x03,0x55,0x1D,0x13,0x01,
509 0x01,0xFF,0x04,0x02,0x30,0x00,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,
510 0x04,0x04,0x03,0x02,0x03,0x88,0x30,0x28,0x06,0x03,0x55,0x1D,0x25,0x04,0x21,0x30,
511 0x1F,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x03,0x02,0x06,0x0A,0x2A,0x86,0x48,
512 0x86,0xF7,0x63,0x64,0x03,0x02,0x01,0x06,0x07,0x2B,0x06,0x01,0x05,0x02,0x03,0x04,
513 0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x3D,0xD9,0xDD,0x8F,0x5B,
514 0x5E,0xA3,0x3A,0x8C,0x89,0x7F,0x8A,0x85,0x26,0xA7,0x84,0x0E,0xF3,0x0D,0x82,0x30,
515 0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x7A,0x7D,0x90,0xB1,
516 0x30,0x59,0x08,0x92,0x91,0xF9,0x53,0xB9,0x71,0x1D,0x35,0x33,0x67,0x34,0x8B,0xD5,
517 0x30,0x81,0xAD,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x81,0xA0,
518 0x30,0x81,0x9D,0x30,0x28,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x30,0x01,0x86,
519 0x1C,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x63,0x65,0x72,0x74,0x69,0x6E,0x66,0x6F,
520 0x2E,0x6D,0x61,0x63,0x2E,0x63,0x6F,0x6D,0x2F,0x6F,0x63,0x73,0x70,0x30,0x44,0x06,
521 0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x38,0x68,0x74,0x74,0x70,0x3A,
522 0x2F,0x2F,0x77,0x77,0x77,0x2E,0x61,0x70,0x70,0x6C,0x65,0x2E,0x63,0x6F,0x6D,0x2F,
523 0x63,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x61,0x75,0x74,0x68,0x6F,
524 0x72,0x69,0x74,0x79,0x2F,0x63,0x61,0x73,0x69,0x67,0x6E,0x65,0x72,0x73,0x2E,0x68,
525 0x74,0x6D,0x6C,0x30,0x2B,0x06,0x03,0x55,0x1D,0x12,0x86,0x24,0x68,0x74,0x74,0x70,
526 0x3A,0x2F,0x2F,0x63,0x65,0x72,0x74,0x69,0x6E,0x66,0x6F,0x2E,0x6D,0x61,0x63,0x2E,
527 0x63,0x6F,0x6D,0x2F,0x64,0x6F,0x74,0x4D,0x61,0x63,0x43,0x41,0x2E,0x63,0x65,0x72,
528 0x30,0x82,0x01,0x28,0x06,0x03,0x55,0x1D,0x20,0x04,0x82,0x01,0x1F,0x30,0x82,0x01,
529 0x1B,0x30,0x82,0x01,0x17,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x63,0x64,0x05,0x02,
530 0x30,0x82,0x01,0x08,0x30,0x40,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x02,0x01,
531 0x16,0x34,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x61,0x70,0x70,
532 0x6C,0x65,0x2E,0x63,0x6F,0x6D,0x2F,0x63,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,
533 0x74,0x65,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x2F,0x74,0x65,0x72,0x6D,
534 0x73,0x2E,0x68,0x74,0x6D,0x6C,0x30,0x81,0xC3,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,
535 0x07,0x02,0x02,0x30,0x81,0xB6,0x1A,0x81,0xB3,0x52,0x65,0x6C,0x69,0x61,0x6E,0x63,
536 0x65,0x20,0x6F,0x6E,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x65,0x72,0x74,0x69,0x66,
537 0x69,0x63,0x61,0x74,0x65,0x20,0x62,0x79,0x20,0x61,0x6E,0x79,0x20,0x70,0x61,0x72,
538 0x74,0x79,0x20,0x61,0x73,0x73,0x75,0x6D,0x65,0x73,0x20,0x61,0x63,0x63,0x65,0x70,
539 0x74,0x61,0x6E,0x63,0x65,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x68,0x65,
540 0x6E,0x20,0x61,0x70,0x70,0x6C,0x69,0x63,0x61,0x62,0x6C,0x65,0x20,0x73,0x74,0x61,
541 0x6E,0x64,0x61,0x72,0x64,0x20,0x74,0x65,0x72,0x6D,0x73,0x20,0x61,0x6E,0x64,0x20,
542 0x63,0x6F,0x6E,0x64,0x69,0x74,0x69,0x6F,0x6E,0x73,0x20,0x6F,0x66,0x20,0x75,0x73,
543 0x65,0x2C,0x20,0x63,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x70,
544 0x6F,0x6C,0x69,0x63,0x79,0x20,0x61,0x6E,0x64,0x20,0x63,0x65,0x72,0x74,0x69,0x66,
545 0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x70,0x72,0x61,0x63,0x74,0x69,0x63,0x65,
546 0x20,0x73,0x74,0x61,0x74,0x65,0x6D,0x65,0x6E,0x74,0x73,0x2E,0x30,0x0D,0x06,0x09,
547 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,
548 0x30,0x48,0x04,0xA8,0x63,0x5A,0x7A,0xF9,0xEA,0x8B,0xF7,0x7F,0xF6,0x27,0x21,0x02,
549 0xE2,0x83,0xC8,0x64,0x99,0xB3,0x40,0x71,0x97,0x30,0xE2,0x92,0xD4,0x58,0xB8,0xD8,
550 0xF1,0xAA,0x30,0x59,0x75,0x4C,0x67,0x16,0xF8,0x38,0xBD,0xD7,0xF4,0xEA,0x03,0xB5,
551 0xE6,0x42,0xF8,0x95,0xBA,0x5B,0xE4,0x3C,0xA8,0x75,0x6C,0x05,0xFB,0x3C,0x3C,0xE3,
552 0x08,0x90,0x5F,0x6D,0x7E,0x3A,0xEA,0xBD,0x19,0x52,0x82,0x3B,0x9C,0x7F,0x64,0x15,
553 0x3A,0xCA,0x54,0x52,0x57,0xEB,0x53,0x09,0xE8,0x05,0x53,0x79,0xB9,0x7D,0x51,0xA3,
554 0x8E,0x31,0xF1,0xE5,0x5E,0xC6,0xA6,0x81,0x11,0x68,0x0A,0x17,0xD5,0xA0,0xBB,0x49,
555 0xF3,0x4E,0x59,0x1D,0xCB,0xCA,0x3E,0x09,0x64,0x2F,0x27,0x6C,0xCA,0x39,0x50,0x73,
556 0x42,0x5C,0x9D,0xE2,0x92,0x45,0x37,0x7F,0x02,0xF0,0x2B,0xA0,0xDD,0x1C,0x02,0xDC,
557 0x77,0xA9,0x0C,0xEA,0x14,0xAE,0xDE,0x81,0xDF,0x3E,0x31,0x59,0xF6,0xF7,0xE5,0x7F,
558 0xBC,0x7C,0xFD,0xE8,0x22,0xBE,0x9A,0x78,0xDD,0xFD,0x32,0x7F,0xE0,0xEC,0x0F,0x8D,
559 0x4D,0xB5,0xDE,0xF6,0x91,0x4B,0xAD,0xDB,0x7D,0xF9,0x07,0xB8,0x2B,0x0E,0xB5,0x58,
560 0x05,0xA2,0x85,0xF6,0x72,0x0E,0xCB,0x63,0x4E,0x8F,0xBF,0xD6,0x33,0x6F,0xF3,0xC2,
561 0x53,0xFA,0x67,0x5D,0x19,0xA8,0x49,0x1C,0x05,0x5D,0xAF,0x6C,0xDC,0x14,0x37,0xD5,
562 0x65,0x42,0x24,0x3B,0x69,0xC9,0x78,0x3F,0x4B,0x0E,0xAF,0x13,0x37,0x00,0x1E,0x6B,
563 0xCE,0xB9,0xCC,0xAA,0x99,0x1A,0xB7,0x5A,0x27,0xB9,0xE9,0xD6,0x87,0x0A,0xEB,0x77,
564 };
565
566 static unsigned char pem[] = "\n"
567 "-----BEGIN CERTIFICATE-----\n"
568 "MIIDSzCCAjOgAwIBAgIJAPsB+wAAAAABMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNV\n"
569 "BAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0\n"
570 "aWZpY2F0aW9uIEF1dGhvcml0eTEyMDAGA1UEAxMpQXBwbGUgU2VjdXJlIEJvb3Qg\n"
571 "Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDcwMTA2MDUyMDUyWhcNMTcwMTA2\n"
572 "MDUyMDUyWjB0MQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEyMDAG\n"
573 "A1UECxMpQXBwbGUgU2VjdXJlIEJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx\n"
574 "HDAaBgNVBAMTE1M1TDg5MDAgU2VjdXJlIEJvb3QwgZ8wDQYJKoZIhvcNAQEBBQAD\n"
575 "gY0AMIGJAoGBAMSrg/5uSm6EaOPbN2sedX5F31i+4x5BLd8cVbopszz/9OJZz/RD\n"
576 "tWbVkSh2O7PZbvfYwwHB6D3pebAA1S9rakwaKO7hKyKzHqpHeiqu+ECdmPGBRhFf\n"
577 "16zQL/pXzEnHn4IBfHcG5O49VqI8TK9pMZiqOQ4nh5H5mYIBImcaQ7frAgMBAAGj\n"
578 "WjBYMAsGA1UdDwQEAwIHgDAJBgNVHRMEAjAAMB0GA1UdDgQWBBQZ39dDpsNXFu2G\n"
579 "Qt2ylAihau3f3jAfBgNVHSMEGDAWgBRJPTZTydcV4YZhTqyrqxhWY13DxjANBgkq\n"
580 "hkiG9w0BAQUFAAOCAQEAlAHI8JncOxR8kSzIuN6jCY22DgiZYahvO7H3f68w3QO3\n"
581 "NE8Cp/UCECv+pQmlMuJPMAYzfLwGtoLhpq6BlCQXEc4KYhjGh5aicdXBkZDf+rA0\n"
582 "p1KphAd8c2UEIAWBbqU87q1FbDSJBw3YKN7C/I4qGnzUrWSpBbq6musM0QzO/uUZ\n"
583 "3R1QsfpicZ+nT/1WmlJSAwtoQsBjNAgMauhRLAJc/fCPi8TqONju/xxbGDYJ/cQs\n"
584 "bCGfszrUSeGYu4ryxeyNuu2L8gluHUKbhfZ7J1XYgIsvoCnk5E5hWJDhpIyywylb\n"
585 "9F/uRNib8zb0L80S64vAWC4m4QUJ3iLmTfIsk+NYPQ==\n"
586 "-----END CERTIFICATE-----\n";
587
588 static unsigned char _elektron_v1_cert_der[] = {
589 0x30, 0x82, 0x02, 0x71, 0x30, 0x82, 0x01, 0xda, 0x02, 0x01, 0x01, 0x30,
590 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
591 0x05, 0x00, 0x30, 0x81, 0x80, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
592 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
593 0x55, 0x04, 0x08, 0x13, 0x02, 0x63, 0x61, 0x31, 0x11, 0x30, 0x0f, 0x06,
594 0x03, 0x55, 0x04, 0x07, 0x13, 0x08, 0x73, 0x61, 0x6e, 0x20, 0x6a, 0x6f,
595 0x73, 0x65, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
596 0x04, 0x62, 0x72, 0x61, 0x64, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55,
597 0x04, 0x0b, 0x13, 0x1e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64,
598 0x20, 0x62, 0x79, 0x20, 0x45, 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e,
599 0x20, 0x76, 0x32, 0x2e, 0x30, 0x2e, 0x31, 0x38, 0x35, 0x32, 0x31, 0x19,
600 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10, 0x62, 0x72, 0x61,
601 0x64, 0x20, 0x45, 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x43,
602 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x33, 0x31, 0x32, 0x32, 0x33, 0x31,
603 0x31, 0x34, 0x36, 0x30, 0x37, 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x32,
604 0x32, 0x32, 0x31, 0x31, 0x34, 0x36, 0x30, 0x37, 0x5a, 0x30, 0x81, 0x80,
605 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
606 0x53, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x02,
607 0x63, 0x61, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,
608 0x08, 0x73, 0x61, 0x6e, 0x20, 0x6a, 0x6f, 0x73, 0x65, 0x31, 0x0d, 0x30,
609 0x0b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x04, 0x62, 0x72, 0x61, 0x64,
610 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1e, 0x50,
611 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x45,
612 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x76, 0x32, 0x2e, 0x30,
613 0x2e, 0x31, 0x38, 0x35, 0x32, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55,
614 0x04, 0x03, 0x13, 0x10, 0x62, 0x72, 0x61, 0x64, 0x20, 0x45, 0x6c, 0x65,
615 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30,
616 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
617 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81,
618 0x00, 0xe0, 0xab, 0x3a, 0x05, 0x8d, 0xed, 0x81, 0x73, 0xa8, 0x76, 0x9c,
619 0x14, 0x07, 0x50, 0x4b, 0x56, 0x8f, 0xfe, 0x88, 0xba, 0xec, 0xde, 0xab,
620 0x9a, 0x5d, 0x49, 0x23, 0x3b, 0x87, 0x4f, 0x50, 0x59, 0x8d, 0x0f, 0x78,
621 0xd0, 0x61, 0x98, 0x28, 0x9d, 0x1d, 0x39, 0xbf, 0x92, 0x62, 0xda, 0x21,
622 0xf7, 0xb1, 0x32, 0x6a, 0x5d, 0x73, 0x1c, 0x1d, 0x36, 0xba, 0xf7, 0x3c,
623 0xff, 0xda, 0xd9, 0xff, 0xf0, 0xbd, 0x62, 0x1d, 0xde, 0x6d, 0xc7, 0x76,
624 0x93, 0xdd, 0x3a, 0x90, 0x2b, 0x97, 0xab, 0x86, 0xea, 0x48, 0xb5, 0x70,
625 0xe7, 0xe1, 0xa2, 0x5c, 0x61, 0x1a, 0x7d, 0x48, 0x4d, 0x83, 0x42, 0x73,
626 0x70, 0xaf, 0x5d, 0xcf, 0x8c, 0x26, 0xb4, 0x83, 0xff, 0x77, 0xd5, 0x64,
627 0xe0, 0x14, 0x52, 0x20, 0xa2, 0xe9, 0xc5, 0x8c, 0x70, 0xb5, 0x6f, 0xf5,
628 0x6d, 0x31, 0x2b, 0xcb, 0x1d, 0xad, 0xf4, 0xb2, 0x27, 0x02, 0x03, 0x01,
629 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
630 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x74, 0x49, 0x79,
631 0x14, 0xc0, 0x68, 0xd7, 0x9d, 0xfd, 0x35, 0x6a, 0xda, 0xa0, 0x1d, 0x46,
632 0x0a, 0xc6, 0x1b, 0x51, 0x4b, 0xdf, 0x27, 0xd6, 0x14, 0x1a, 0xcf, 0xf1,
633 0xd0, 0xe2, 0x1b, 0x92, 0x39, 0x33, 0x98, 0x13, 0xc2, 0x6e, 0x97, 0xed,
634 0x2b, 0x1b, 0xfc, 0x28, 0x8a, 0x93, 0xf9, 0xe5, 0xe1, 0xf0, 0xbf, 0xf8,
635 0xa3, 0x5e, 0x08, 0x9c, 0x9f, 0x61, 0x7d, 0xb9, 0xe7, 0x14, 0x0e, 0x6d,
636 0x07, 0x3e, 0x35, 0x12, 0xd4, 0x98, 0x2e, 0x0a, 0x9c, 0x5c, 0xb9, 0xbf,
637 0x20, 0x29, 0x01, 0x55, 0x82, 0x86, 0xa7, 0xcb, 0x97, 0x8f, 0xbb, 0xd8,
638 0x2b, 0xbd, 0x40, 0xd3, 0x1a, 0xa7, 0xb1, 0x66, 0x5c, 0xe5, 0x9a, 0x7b,
639 0x39, 0xb7, 0x73, 0x49, 0x2c, 0x44, 0x8c, 0x79, 0x5b, 0xb5, 0x18, 0x41,
640 0xd0, 0xf1, 0x4b, 0x6d, 0xc5, 0x1a, 0xf8, 0x51, 0xea, 0x99, 0x0d, 0x85,
641 0x1b, 0xbe, 0x16, 0x56, 0x18
642 };
643
644 #if 0 // currently unused.
645 static unsigned int _elektron_v1_cert_der_len = 629;
646 #endif
647
648 static unsigned char _wapi_as_der[] = {
649 0x30, 0x82, 0x01, 0xb7, 0x30, 0x82, 0x01, 0x6c, 0xa0, 0x03, 0x02, 0x01,
650 0x02, 0x02, 0x01, 0x12, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x81, 0x1c, 0xd7,
651 0x63, 0x01, 0x01, 0x01, 0x05, 0x00, 0x30, 0x1d, 0x31, 0x0c, 0x30, 0x0a,
652 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x03, 0x54, 0x4d, 0x43, 0x31, 0x0d,
653 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x04, 0x57, 0x41, 0x50,
654 0x49, 0x30, 0x1e, 0x17, 0x0d, 0x37, 0x30, 0x30, 0x31, 0x30, 0x31, 0x30,
655 0x30, 0x30, 0x30, 0x31, 0x38, 0x5a, 0x17, 0x0d, 0x39, 0x30, 0x30, 0x31,
656 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x31, 0x38, 0x5a, 0x30, 0x1d, 0x31,
657 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x03, 0x54, 0x4d,
658 0x43, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x04,
659 0x57, 0x41, 0x50, 0x49, 0x30, 0x4a, 0x30, 0x14, 0x06, 0x07, 0x2a, 0x86,
660 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x09, 0x2a, 0x81, 0x1c, 0xd7, 0x63,
661 0x01, 0x01, 0x02, 0x01, 0x03, 0x32, 0x00, 0x04, 0x74, 0xd9, 0x78, 0x91,
662 0xc4, 0xd3, 0xb5, 0x9e, 0xb0, 0xa9, 0x9e, 0xf1, 0x01, 0x5b, 0xd7, 0x7f,
663 0x79, 0x9a, 0x02, 0xe5, 0x87, 0x65, 0xa1, 0x0d, 0x04, 0xc9, 0x06, 0xdb,
664 0xf6, 0x12, 0x24, 0x05, 0x9d, 0x1c, 0x51, 0x00, 0x75, 0x58, 0x46, 0x11,
665 0xe3, 0xdc, 0x71, 0x02, 0x69, 0x43, 0x37, 0x61, 0xa3, 0x81, 0xa9, 0x30,
666 0x81, 0xa6, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
667 0x14, 0x08, 0xa9, 0x47, 0x65, 0xf2, 0x39, 0xa9, 0xe8, 0x8b, 0xd1, 0x75,
668 0x43, 0xce, 0x8c, 0x1c, 0xc0, 0xec, 0x99, 0xae, 0xad, 0x30, 0x45, 0x06,
669 0x03, 0x55, 0x1d, 0x23, 0x04, 0x3e, 0x30, 0x3c, 0x80, 0x14, 0x08, 0xa9,
670 0x47, 0x65, 0xf2, 0x39, 0xa9, 0xe8, 0x8b, 0xd1, 0x75, 0x43, 0xce, 0x8c,
671 0x1c, 0xc0, 0xec, 0x99, 0xae, 0xad, 0xa1, 0x21, 0xa4, 0x1f, 0x30, 0x1d,
672 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x03, 0x54,
673 0x4d, 0x43, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
674 0x04, 0x57, 0x41, 0x50, 0x49, 0x82, 0x01, 0x12, 0x30, 0x31, 0x06, 0x03,
675 0x55, 0x1d, 0x1f, 0x04, 0x2a, 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0,
676 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x31, 0x39,
677 0x32, 0x2e, 0x31, 0x36, 0x38, 0x2e, 0x31, 0x2e, 0x32, 0x30, 0x30, 0x3a,
678 0x38, 0x30, 0x38, 0x30, 0x2f, 0x61, 0x73, 0x2e, 0x63, 0x72, 0x6c, 0x30,
679 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
680 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x81, 0x1c, 0xd7, 0x63, 0x01, 0x01, 0x01,
681 0x05, 0x00, 0x03, 0x37, 0x00, 0x30, 0x34, 0x02, 0x18, 0x23, 0xc5, 0x39,
682 0xc9, 0x91, 0x89, 0x3d, 0xe5, 0xae, 0x95, 0x75, 0x88, 0x68, 0xf6, 0x11,
683 0x64, 0xb1, 0x71, 0xe7, 0x67, 0x1f, 0xa1, 0x58, 0x77, 0x02, 0x18, 0x15,
684 0xef, 0x5a, 0x62, 0x7f, 0x7d, 0x9d, 0x6e, 0x6d, 0x91, 0x2b, 0x61, 0x15,
685 0x4d, 0x5a, 0xbe, 0xc8, 0x8d, 0xdc, 0x85, 0x00, 0xa9, 0x7d, 0x99
686 };
687
688 #if 0 // currently unused.
689 static unsigned int _wapi_as_der_len = 443;
690 #endif
691
692 #define CFReleaseSafe(CF) { CFTypeRef _cf = (CF); if (_cf) CFRelease(_cf); }
693 #define CFReleaseNull(CF) { CFTypeRef _cf = (CF); if (_cf) CFRelease(_cf); (CF) = NULL; }
694
695 /* Test basic add delete update copy matching stuff. */
696 static void tests(void)
697 {
698 SecCertificateRef cert0, cert1, cert2, cert3, cert4, cert5, cert6;
699 isnt(cert0 = SecCertificateCreateWithBytes(NULL, _c0, sizeof(_c0)),
700 NULL, "create cert0");
701 isnt(cert1 = SecCertificateCreateWithBytes(NULL, _c1, sizeof(_c1)),
702 NULL, "create cert1");
703
704 CFDataRef cert2Data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault,
705 _c2, sizeof(_c2), kCFAllocatorNull);
706 isnt(cert2 = SecCertificateCreateWithData(kCFAllocatorDefault, cert2Data),
707 NULL, "create cert2");
708 CFReleaseNull(cert2Data);
709
710 isnt(cert3 = SecCertificateCreateWithBytes(NULL, _phased_c3, sizeof(_phased_c3)),
711 NULL, "create cert3");
712
713 CFDataRef cert4data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault,
714 pem, sizeof(pem), kCFAllocatorNull);
715 ok(cert4 = SecCertificateCreateWithPEM(NULL, cert4data), "create cert from pem");
716 CFReleaseNull(cert4data);
717
718 isnt(cert5 = SecCertificateCreateWithBytes(NULL, _elektron_v1_cert_der,
719 sizeof(_elektron_v1_cert_der)), NULL, "create cert5");
720
721 isnt(cert6 = SecCertificateCreateWithBytes(NULL, _wapi_as_der,
722 sizeof(_wapi_as_der)), NULL, "create cert6");
723
724 if (!cert0 || !cert1 || !cert2 || !cert3 || !cert4 || !cert5 || !cert6) {
725 goto errOut;
726 }
727
728 ok(SecCertificateIsSelfSignedCA(cert0), "cert0 is CA");
729 ok(!SecCertificateIsSelfSignedCA(cert1), "cert1 is not CA");
730 ok(SecCertificateIsSelfSignedCA(cert5), "cert5 is v1 CA");
731
732 CFStringRef subjectSummary, issuerSummary;
733 isnt(subjectSummary = SecCertificateCopySubjectSummary(cert1), NULL,
734 "cert1 has a subject summary");
735 isnt(issuerSummary = SecCertificateCopyIssuerSummary(cert1), NULL,
736 "cert1 has an issuer summary");
737
738 ok(subjectSummary && CFEqual(subjectSummary, CFSTR("www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign, VeriSign International Server CA - Class 3, VeriSign, Inc.")),
739 "subject summary is \"www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign, VeriSign International Server CA - Class 3, VeriSign, Inc.\"");
740 ok(issuerSummary && CFEqual(issuerSummary,
741 CFSTR("Class 3 Public Primary Certification Authority")),
742 "issuer summary is \"Class 3 Public Primary Certification Authority\"");
743
744 CFArrayRef ntPrincipalNames;
745 ok(ntPrincipalNames = SecCertificateCopyNTPrincipalNames(cert2),
746 "SecCertificateCopyNTPrincipalNames");
747 is(CFArrayGetCount(ntPrincipalNames), 1, "we got 1 princialname back");
748 CFStringRef principal = (CFStringRef)CFArrayGetValueAtIndex(ntPrincipalNames, 0);
749 ok(CFEqual(principal, CFSTR("kmm6b@Virginia.EDU")),
750 "first principal is kmm6b@Virginia.EDU");
751 CFReleaseSafe(ntPrincipalNames);
752
753 CFReleaseSafe(subjectSummary);
754 CFReleaseSafe(issuerSummary);
755
756 isnt(subjectSummary = SecCertificateCopySubjectSummary(cert3), NULL,
757 "cert3 has a subject summary");
758 /* @@@ this causes a double free without an extra retain in obtainSummaryFromX501Name():
759 summary->description = string = copyDERThingDescription(kCFAllocatorDefault, value, true); */
760 CFReleaseSafe(subjectSummary);
761
762 isnt(subjectSummary = SecCertificateCopySubjectSummary(cert4), NULL,
763 "cert4 has a subject summary");
764 ok(subjectSummary && CFEqual(subjectSummary, CFSTR("S5L8900 Secure Boot")),
765 "cert4 is S5L8900 Secure Boot");
766 CFReleaseSafe(subjectSummary);
767
768 CFStringRef desc = NULL;
769 ok(desc = CFCopyDescription(cert4), "cert4 CFCopyDescription works");
770 CFReleaseNull(desc);
771
772 CFDataRef spki1Hash = SecCertificateCopySubjectPublicKeyInfoSHA1Digest(cert0);
773 isnt(spki1Hash, NULL, "cert0 has a SHA-1 subject public key info hash");
774 CFReleaseSafe(spki1Hash);
775
776 CFDataRef spki2Hash = SecCertificateCopySubjectPublicKeyInfoSHA256Digest(cert0);
777 isnt(spki2Hash, NULL, "cert0 has a SHA-256 subject public key info hash");
778 CFReleaseSafe(spki2Hash);
779
780 errOut:
781 CFReleaseSafe(cert0);
782 CFReleaseSafe(cert1);
783 CFReleaseSafe(cert2);
784 CFReleaseSafe(cert3);
785 CFReleaseSafe(cert4);
786 CFReleaseSafe(cert5);
787 CFReleaseSafe(cert6);
788 }
789
790 int si_15_certificate(int argc, char *const *argv)
791 {
792 plan_tests(23);
793
794 tests();
795
796 return 0;
797 }