xref: /freebsd/contrib/libfido2/regress/cred.c (revision 4d846d26)
1 /*
2  * Copyright (c) 2018-2021 Yubico AB. All rights reserved.
3  * Use of this source code is governed by a BSD-style
4  * license that can be found in the LICENSE file.
5  */
6 
7 #include <assert.h>
8 #include <cbor.h>
9 #include <fido.h>
10 #include <string.h>
11 
12 #define FAKE_DEV_HANDLE	((void *)0xdeadbeef)
13 
14 static const unsigned char cdh[32] = {
15 	0xf9, 0x64, 0x57, 0xe7, 0x2d, 0x97, 0xf6, 0xbb,
16 	0xdd, 0xd7, 0xfb, 0x06, 0x37, 0x62, 0xea, 0x26,
17 	0x20, 0x44, 0x8e, 0x69, 0x7c, 0x03, 0xf2, 0x31,
18 	0x2f, 0x99, 0xdc, 0xaf, 0x3e, 0x8a, 0x91, 0x6b,
19 };
20 
21 static const unsigned char authdata[198] = {
22 	0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
23 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
24 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
25 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
26 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
27 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
28 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
29 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
30 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
31 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
32 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
33 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
34 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
35 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
36 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
37 	0x25, 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01,
38 	0x21, 0x58, 0x20, 0x17, 0x5b, 0x27, 0xa6, 0x56,
39 	0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55, 0x42, 0x78,
40 	0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd, 0x1b, 0xb9,
41 	0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22, 0x64, 0xf5,
42 	0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20, 0x87, 0x5f,
43 	0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f, 0xeb, 0xe3,
44 	0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6, 0x1c, 0x31,
45 	0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1, 0xfe, 0x5d,
46 	0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
47 };
48 
49 static const unsigned char authdata_dupkeys[200] = {
50 	0x58, 0xc6, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
51 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
52 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
53 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
54 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
55 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
56 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
57 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
58 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
59 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
60 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
61 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
62 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
63 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
64 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
65 	0x25, 0xa6, 0x01, 0x02, 0x01, 0x02, 0x03, 0x26,
66 	0x20, 0x01, 0x21, 0x58, 0x20, 0x17, 0x5b, 0x27,
67 	0xa6, 0x56, 0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55,
68 	0x42, 0x78, 0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd,
69 	0x1b, 0xb9, 0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22,
70 	0x64, 0xf5, 0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20,
71 	0x87, 0x5f, 0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f,
72 	0xeb, 0xe3, 0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6,
73 	0x1c, 0x31, 0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1,
74 	0xfe, 0x5d, 0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
75 };
76 
77 static const unsigned char authdata_unsorted_keys[198] = {
78 	0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
79 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
80 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
81 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
82 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
83 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
84 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
85 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
86 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
87 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
88 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
89 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
90 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
91 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
92 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
93 	0x25, 0xa5, 0x03, 0x26, 0x01, 0x02, 0x20, 0x01,
94 	0x21, 0x58, 0x20, 0x17, 0x5b, 0x27, 0xa6, 0x56,
95 	0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55, 0x42, 0x78,
96 	0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd, 0x1b, 0xb9,
97 	0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22, 0x64, 0xf5,
98 	0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20, 0x87, 0x5f,
99 	0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f, 0xeb, 0xe3,
100 	0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6, 0x1c, 0x31,
101 	0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1, 0xfe, 0x5d,
102 	0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
103 };
104 
105 const unsigned char authdata_tpm_rs256[362] = {
106 	0x59, 0x01, 0x67, 0x49, 0x96, 0x0d, 0xe5, 0x88,
107 	0x0e, 0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64,
108 	0x76, 0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2,
109 	0x86, 0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83,
110 	0x1d, 0x97, 0x63, 0x45, 0x00, 0x00, 0x00, 0x00,
111 	0x08, 0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81,
112 	0xb6, 0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96,
113 	0x00, 0x20, 0x89, 0x99, 0x6d, 0x5a, 0x00, 0x29,
114 	0xe5, 0x3e, 0x6a, 0x1c, 0x72, 0x6d, 0x71, 0x4a,
115 	0x4f, 0x03, 0x9b, 0x68, 0x17, 0xdb, 0x29, 0x1a,
116 	0x6b, 0x02, 0x6c, 0x26, 0xf9, 0xbd, 0xc3, 0x0e,
117 	0x38, 0x1a, 0xa4, 0x01, 0x03, 0x03, 0x39, 0x01,
118 	0x00, 0x20, 0x59, 0x01, 0x00, 0xc5, 0xb6, 0x9c,
119 	0x06, 0x1d, 0xcf, 0xb9, 0xf2, 0x5e, 0x99, 0x7d,
120 	0x6d, 0x73, 0xd8, 0x36, 0xc1, 0x4a, 0x90, 0x05,
121 	0x4d, 0x82, 0x57, 0xc1, 0xb6, 0x6a, 0xd1, 0x43,
122 	0x03, 0x85, 0xf8, 0x52, 0x4f, 0xd2, 0x27, 0x91,
123 	0x0b, 0xb5, 0x93, 0xa0, 0x68, 0xf8, 0x80, 0x1b,
124 	0xaa, 0x65, 0x97, 0x45, 0x11, 0x86, 0x34, 0xd6,
125 	0x67, 0xf8, 0xd5, 0x12, 0x79, 0x84, 0xee, 0x70,
126 	0x99, 0x00, 0x63, 0xa8, 0xb4, 0x43, 0x0b, 0x4c,
127 	0x57, 0x4a, 0xd6, 0x9b, 0x75, 0x63, 0x8a, 0x46,
128 	0x57, 0xdb, 0x14, 0xc8, 0x71, 0xd1, 0xb3, 0x07,
129 	0x68, 0x58, 0xbc, 0x55, 0x84, 0x80, 0x2a, 0xd2,
130 	0x36, 0x9f, 0xc1, 0x64, 0xa0, 0x11, 0x4b, 0xc9,
131 	0x32, 0x31, 0x3a, 0xd6, 0x87, 0x26, 0x1a, 0x3a,
132 	0x78, 0x3d, 0x89, 0xdb, 0x00, 0x28, 0x3b, 0xae,
133 	0x2b, 0x1b, 0x56, 0xe2, 0x8c, 0x4c, 0x63, 0xac,
134 	0x6e, 0x6c, 0xf7, 0xb5, 0x7d, 0x4d, 0x0b, 0x9f,
135 	0x06, 0xa0, 0x10, 0x35, 0x38, 0x20, 0x4d, 0xcc,
136 	0x07, 0xd7, 0x00, 0x4e, 0x86, 0xba, 0xfe, 0x8b,
137 	0xe4, 0x3f, 0x4a, 0xd6, 0xca, 0xbf, 0x67, 0x40,
138 	0x1a, 0xa4, 0xda, 0x82, 0x52, 0x15, 0xb8, 0x14,
139 	0x3a, 0x7c, 0xa9, 0x02, 0xc1, 0x01, 0x69, 0xc6,
140 	0x51, 0xd4, 0xbc, 0x1f, 0x95, 0xb2, 0xee, 0x1f,
141 	0xdd, 0xb5, 0x73, 0x16, 0x5e, 0x29, 0x3f, 0x47,
142 	0xac, 0x65, 0xfb, 0x63, 0x5c, 0xb9, 0xc8, 0x13,
143 	0x2d, 0xec, 0x85, 0xde, 0x71, 0x0d, 0x84, 0x93,
144 	0x74, 0x76, 0x91, 0xdd, 0x1d, 0x6d, 0x3d, 0xc7,
145 	0x36, 0x19, 0x19, 0x86, 0xde, 0x7c, 0xca, 0xd6,
146 	0xc6, 0x65, 0x7e, 0x4b, 0x24, 0x9c, 0xce, 0x92,
147 	0x6b, 0x1c, 0xe0, 0xa0, 0xa9, 0x6c, 0xc3, 0xed,
148 	0x4f, 0x2a, 0x54, 0x07, 0x00, 0x32, 0x5e, 0x1b,
149 	0x94, 0x37, 0xcd, 0xe2, 0x32, 0xa8, 0xd5, 0x2c,
150 	0xfb, 0x03, 0x9d, 0x79, 0xdf, 0x21, 0x43, 0x01,
151 	0x00, 0x01
152 };
153 
154 static const unsigned char authdata_tpm_es256[166] =  {
155 	0x58, 0xa4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
156 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
157 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
158 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
159 	0x97, 0x63, 0x45, 0x00, 0x00, 0x00, 0x00, 0x08,
160 	0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81, 0xb6,
161 	0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96, 0x00,
162 	0x20, 0xa8, 0xdf, 0x03, 0xf7, 0xbf, 0x39, 0x51,
163 	0x94, 0x95, 0x8f, 0xa4, 0x84, 0x97, 0x30, 0xbc,
164 	0x3c, 0x7e, 0x1c, 0x99, 0x91, 0x4d, 0xae, 0x6d,
165 	0xfb, 0xdf, 0x53, 0xb5, 0xb6, 0x1f, 0x3a, 0x4e,
166 	0x6a, 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01,
167 	0x21, 0x58, 0x20, 0xfb, 0xd6, 0xba, 0x74, 0xe6,
168 	0x6e, 0x5c, 0x87, 0xef, 0x89, 0xa2, 0xe8, 0x3d,
169 	0x0b, 0xe9, 0x69, 0x2c, 0x07, 0x07, 0x7a, 0x8a,
170 	0x1e, 0xce, 0x12, 0xea, 0x3b, 0xb3, 0xf1, 0xf3,
171 	0xd9, 0xc3, 0xe6, 0x22, 0x58, 0x20, 0x3c, 0x68,
172 	0x51, 0x94, 0x54, 0x8d, 0xeb, 0x9f, 0xb2, 0x2c,
173 	0x66, 0x75, 0xb6, 0xb7, 0x55, 0x22, 0x0d, 0x87,
174 	0x59, 0xc4, 0x39, 0x91, 0x62, 0x17, 0xc2, 0xc3,
175 	0x53, 0xa5, 0x26, 0x97, 0x4f, 0x2d
176 };
177 
178 static const unsigned char x509[742] = {
179 	0x30, 0x82, 0x02, 0xe2, 0x30, 0x81, 0xcb, 0x02,
180 	0x01, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
181 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
182 	0x00, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06,
183 	0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x59, 0x75,
184 	0x62, 0x69, 0x63, 0x6f, 0x20, 0x55, 0x32, 0x46,
185 	0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41,
186 	0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x35,
187 	0x31, 0x35, 0x31, 0x32, 0x35, 0x38, 0x35, 0x34,
188 	0x5a, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31,
189 	0x34, 0x31, 0x32, 0x35, 0x38, 0x35, 0x34, 0x5a,
190 	0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03,
191 	0x55, 0x04, 0x03, 0x13, 0x12, 0x59, 0x75, 0x62,
192 	0x69, 0x63, 0x6f, 0x20, 0x55, 0x32, 0x46, 0x20,
193 	0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x45, 0x30,
194 	0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,
195 	0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
196 	0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,
197 	0x00, 0x04, 0xdb, 0x0a, 0xdb, 0xf5, 0x21, 0xc7,
198 	0x5c, 0xce, 0x63, 0xdc, 0xa6, 0xe1, 0xe8, 0x25,
199 	0x06, 0x0d, 0x94, 0xe6, 0x27, 0x54, 0x19, 0x4f,
200 	0x9d, 0x24, 0xaf, 0x26, 0x1a, 0xbe, 0xad, 0x99,
201 	0x44, 0x1f, 0x95, 0xa3, 0x71, 0x91, 0x0a, 0x3a,
202 	0x20, 0xe7, 0x3e, 0x91, 0x5e, 0x13, 0xe8, 0xbe,
203 	0x38, 0x05, 0x7a, 0xd5, 0x7a, 0xa3, 0x7e, 0x76,
204 	0x90, 0x8f, 0xaf, 0xe2, 0x8a, 0x94, 0xb6, 0x30,
205 	0xeb, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
206 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
207 	0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x95, 0x40,
208 	0x6b, 0x50, 0x61, 0x7d, 0xad, 0x84, 0xa3, 0xb4,
209 	0xeb, 0x88, 0x0f, 0xe3, 0x30, 0x0f, 0x2d, 0xa2,
210 	0x0a, 0x00, 0xd9, 0x25, 0x04, 0xee, 0x72, 0xfa,
211 	0x67, 0xdf, 0x58, 0x51, 0x0f, 0x0b, 0x47, 0x02,
212 	0x9c, 0x3e, 0x41, 0x29, 0x4a, 0x93, 0xac, 0x29,
213 	0x85, 0x89, 0x2d, 0xa4, 0x7a, 0x81, 0x32, 0x28,
214 	0x57, 0x71, 0x01, 0xef, 0xa8, 0x42, 0x88, 0x16,
215 	0x96, 0x37, 0x91, 0xd5, 0xdf, 0xe0, 0x8f, 0xc9,
216 	0x3c, 0x8d, 0xb0, 0xcd, 0x89, 0x70, 0x82, 0xec,
217 	0x79, 0xd3, 0xc6, 0x78, 0x73, 0x29, 0x32, 0xe5,
218 	0xab, 0x6c, 0xbd, 0x56, 0x9f, 0xd5, 0x45, 0x91,
219 	0xce, 0xc1, 0xdd, 0x8d, 0x64, 0xdc, 0xe9, 0x9c,
220 	0x1f, 0x5e, 0x3c, 0xd2, 0xaf, 0x51, 0xa5, 0x82,
221 	0x18, 0xaf, 0xe0, 0x37, 0xe7, 0x32, 0x9e, 0x76,
222 	0x05, 0x77, 0x02, 0x7b, 0xe6, 0x24, 0xa0, 0x31,
223 	0x56, 0x1b, 0xfd, 0x19, 0xc5, 0x71, 0xd3, 0xf0,
224 	0x9e, 0xc0, 0x73, 0x05, 0x4e, 0xbc, 0x85, 0xb8,
225 	0x53, 0x9e, 0xef, 0xc5, 0xbc, 0x9c, 0x56, 0xa3,
226 	0xba, 0xd9, 0x27, 0x6a, 0xbb, 0xa9, 0x7a, 0x40,
227 	0xd7, 0x47, 0x8b, 0x55, 0x72, 0x6b, 0xe3, 0xfe,
228 	0x28, 0x49, 0x71, 0x24, 0xf4, 0x8f, 0xf4, 0x20,
229 	0x81, 0xea, 0x38, 0xff, 0x7c, 0x0a, 0x4f, 0xdf,
230 	0x02, 0x82, 0x39, 0x81, 0x82, 0x3b, 0xca, 0x09,
231 	0xdd, 0xca, 0xaa, 0x0f, 0x27, 0xf5, 0xa4, 0x83,
232 	0x55, 0x6c, 0x9a, 0x39, 0x9b, 0x15, 0x3a, 0x16,
233 	0x63, 0xdc, 0x5b, 0xf9, 0xac, 0x5b, 0xbc, 0xf7,
234 	0x9f, 0xbe, 0x0f, 0x8a, 0xa2, 0x3c, 0x31, 0x13,
235 	0xa3, 0x32, 0x48, 0xca, 0x58, 0x87, 0xf8, 0x7b,
236 	0xa0, 0xa1, 0x0a, 0x6a, 0x60, 0x96, 0x93, 0x5f,
237 	0x5d, 0x26, 0x9e, 0x63, 0x1d, 0x09, 0xae, 0x9a,
238 	0x41, 0xe5, 0xbd, 0x08, 0x47, 0xfe, 0xe5, 0x09,
239 	0x9b, 0x20, 0xfd, 0x12, 0xe2, 0xe6, 0x40, 0x7f,
240 	0xba, 0x4a, 0x61, 0x33, 0x66, 0x0d, 0x0e, 0x73,
241 	0xdb, 0xb0, 0xd5, 0xa2, 0x9a, 0x9a, 0x17, 0x0d,
242 	0x34, 0x30, 0x85, 0x6a, 0x42, 0x46, 0x9e, 0xff,
243 	0x34, 0x8f, 0x5f, 0x87, 0x6c, 0x35, 0xe7, 0xa8,
244 	0x4d, 0x35, 0xeb, 0xc1, 0x41, 0xaa, 0x8a, 0xd2,
245 	0xda, 0x19, 0xaa, 0x79, 0xa2, 0x5f, 0x35, 0x2c,
246 	0xa0, 0xfd, 0x25, 0xd3, 0xf7, 0x9d, 0x25, 0x18,
247 	0x2d, 0xfa, 0xb4, 0xbc, 0xbb, 0x07, 0x34, 0x3c,
248 	0x8d, 0x81, 0xbd, 0xf4, 0xe9, 0x37, 0xdb, 0x39,
249 	0xe9, 0xd1, 0x45, 0x5b, 0x20, 0x41, 0x2f, 0x2d,
250 	0x27, 0x22, 0xdc, 0x92, 0x74, 0x8a, 0x92, 0xd5,
251 	0x83, 0xfd, 0x09, 0xfb, 0x13, 0x9b, 0xe3, 0x39,
252 	0x7a, 0x6b, 0x5c, 0xfa, 0xe6, 0x76, 0x9e, 0xe0,
253 	0xe4, 0xe3, 0xef, 0xad, 0xbc, 0xfd, 0x42, 0x45,
254 	0x9a, 0xd4, 0x94, 0xd1, 0x7e, 0x8d, 0xa7, 0xd8,
255 	0x05, 0xd5, 0xd3, 0x62, 0xcf, 0x15, 0xcf, 0x94,
256 	0x7d, 0x1f, 0x5b, 0x58, 0x20, 0x44, 0x20, 0x90,
257 	0x71, 0xbe, 0x66, 0xe9, 0x9a, 0xab, 0x74, 0x32,
258 	0x70, 0x53, 0x1d, 0x69, 0xed, 0x87, 0x66, 0xf4,
259 	0x09, 0x4f, 0xca, 0x25, 0x30, 0xc2, 0x63, 0x79,
260 	0x00, 0x3c, 0xb1, 0x9b, 0x39, 0x3f, 0x00, 0xe0,
261 	0xa8, 0x88, 0xef, 0x7a, 0x51, 0x5b, 0xe7, 0xbd,
262 	0x49, 0x64, 0xda, 0x41, 0x7b, 0x24, 0xc3, 0x71,
263 	0x22, 0xfd, 0xd1, 0xd1, 0x20, 0xb3, 0x3f, 0x97,
264 	0xd3, 0x97, 0xb2, 0xaa, 0x18, 0x1c, 0x9e, 0x03,
265 	0x77, 0x7b, 0x5b, 0x7e, 0xf9, 0xa3, 0xa0, 0xd6,
266 	0x20, 0x81, 0x2c, 0x38, 0x8f, 0x9d, 0x25, 0xde,
267 	0xe9, 0xc8, 0xf5, 0xdd, 0x6a, 0x47, 0x9c, 0x65,
268 	0x04, 0x5a, 0x56, 0xe6, 0xc2, 0xeb, 0xf2, 0x02,
269 	0x97, 0xe1, 0xb9, 0xd8, 0xe1, 0x24, 0x76, 0x9f,
270 	0x23, 0x62, 0x39, 0x03, 0x4b, 0xc8, 0xf7, 0x34,
271 	0x07, 0x49, 0xd6, 0xe7, 0x4d, 0x9a,
272 };
273 
274 const unsigned char sig[70] = {
275 	0x30, 0x44, 0x02, 0x20, 0x54, 0x92, 0x28, 0x3b,
276 	0x83, 0x33, 0x47, 0x56, 0x68, 0x79, 0xb2, 0x0c,
277 	0x84, 0x80, 0xcc, 0x67, 0x27, 0x8b, 0xfa, 0x48,
278 	0x43, 0x0d, 0x3c, 0xb4, 0x02, 0x36, 0x87, 0x97,
279 	0x3e, 0xdf, 0x2f, 0x65, 0x02, 0x20, 0x1b, 0x56,
280 	0x17, 0x06, 0xe2, 0x26, 0x0f, 0x6a, 0xe9, 0xa9,
281 	0x70, 0x99, 0x62, 0xeb, 0x3a, 0x04, 0x1a, 0xc4,
282 	0xa7, 0x03, 0x28, 0x56, 0x7c, 0xed, 0x47, 0x08,
283 	0x68, 0x73, 0x6a, 0xb6, 0x89, 0x0d,
284 };
285 
286 const unsigned char pubkey[64] = {
287 	0x17, 0x5b, 0x27, 0xa6, 0x56, 0xb2, 0x26, 0x0c,
288 	0x26, 0x0c, 0x55, 0x42, 0x78, 0x17, 0x5d, 0x4c,
289 	0xf8, 0xa2, 0xfd, 0x1b, 0xb9, 0x54, 0xdf, 0xd5,
290 	0xeb, 0xbf, 0x22, 0x64, 0xf5, 0x21, 0x9a, 0xc6,
291 	0x87, 0x5f, 0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f,
292 	0xeb, 0xe3, 0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6,
293 	0x1c, 0x31, 0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1,
294 	0xfe, 0x5d, 0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
295 };
296 
297 const unsigned char pubkey_tpm_rs256[259] = {
298 	0xc5, 0xb6, 0x9c, 0x06, 0x1d, 0xcf, 0xb9, 0xf2,
299 	0x5e, 0x99, 0x7d, 0x6d, 0x73, 0xd8, 0x36, 0xc1,
300 	0x4a, 0x90, 0x05, 0x4d, 0x82, 0x57, 0xc1, 0xb6,
301 	0x6a, 0xd1, 0x43, 0x03, 0x85, 0xf8, 0x52, 0x4f,
302 	0xd2, 0x27, 0x91, 0x0b, 0xb5, 0x93, 0xa0, 0x68,
303 	0xf8, 0x80, 0x1b, 0xaa, 0x65, 0x97, 0x45, 0x11,
304 	0x86, 0x34, 0xd6, 0x67, 0xf8, 0xd5, 0x12, 0x79,
305 	0x84, 0xee, 0x70, 0x99, 0x00, 0x63, 0xa8, 0xb4,
306 	0x43, 0x0b, 0x4c, 0x57, 0x4a, 0xd6, 0x9b, 0x75,
307 	0x63, 0x8a, 0x46, 0x57, 0xdb, 0x14, 0xc8, 0x71,
308 	0xd1, 0xb3, 0x07, 0x68, 0x58, 0xbc, 0x55, 0x84,
309 	0x80, 0x2a, 0xd2, 0x36, 0x9f, 0xc1, 0x64, 0xa0,
310 	0x11, 0x4b, 0xc9, 0x32, 0x31, 0x3a, 0xd6, 0x87,
311 	0x26, 0x1a, 0x3a, 0x78, 0x3d, 0x89, 0xdb, 0x00,
312 	0x28, 0x3b, 0xae, 0x2b, 0x1b, 0x56, 0xe2, 0x8c,
313 	0x4c, 0x63, 0xac, 0x6e, 0x6c, 0xf7, 0xb5, 0x7d,
314 	0x4d, 0x0b, 0x9f, 0x06, 0xa0, 0x10, 0x35, 0x38,
315 	0x20, 0x4d, 0xcc, 0x07, 0xd7, 0x00, 0x4e, 0x86,
316 	0xba, 0xfe, 0x8b, 0xe4, 0x3f, 0x4a, 0xd6, 0xca,
317 	0xbf, 0x67, 0x40, 0x1a, 0xa4, 0xda, 0x82, 0x52,
318 	0x15, 0xb8, 0x14, 0x3a, 0x7c, 0xa9, 0x02, 0xc1,
319 	0x01, 0x69, 0xc6, 0x51, 0xd4, 0xbc, 0x1f, 0x95,
320 	0xb2, 0xee, 0x1f, 0xdd, 0xb5, 0x73, 0x16, 0x5e,
321 	0x29, 0x3f, 0x47, 0xac, 0x65, 0xfb, 0x63, 0x5c,
322 	0xb9, 0xc8, 0x13, 0x2d, 0xec, 0x85, 0xde, 0x71,
323 	0x0d, 0x84, 0x93, 0x74, 0x76, 0x91, 0xdd, 0x1d,
324 	0x6d, 0x3d, 0xc7, 0x36, 0x19, 0x19, 0x86, 0xde,
325 	0x7c, 0xca, 0xd6, 0xc6, 0x65, 0x7e, 0x4b, 0x24,
326 	0x9c, 0xce, 0x92, 0x6b, 0x1c, 0xe0, 0xa0, 0xa9,
327 	0x6c, 0xc3, 0xed, 0x4f, 0x2a, 0x54, 0x07, 0x00,
328 	0x32, 0x5e, 0x1b, 0x94, 0x37, 0xcd, 0xe2, 0x32,
329 	0xa8, 0xd5, 0x2c, 0xfb, 0x03, 0x9d, 0x79, 0xdf,
330 	0x01, 0x00, 0x01,
331 };
332 
333 const unsigned char pubkey_tpm_es256[64] = {
334 	0xfb, 0xd6, 0xba, 0x74, 0xe6, 0x6e, 0x5c, 0x87,
335 	0xef, 0x89, 0xa2, 0xe8, 0x3d, 0x0b, 0xe9, 0x69,
336 	0x2c, 0x07, 0x07, 0x7a, 0x8a, 0x1e, 0xce, 0x12,
337 	0xea, 0x3b, 0xb3, 0xf1, 0xf3, 0xd9, 0xc3, 0xe6,
338 	0x3c, 0x68, 0x51, 0x94, 0x54, 0x8d, 0xeb, 0x9f,
339 	0xb2, 0x2c, 0x66, 0x75, 0xb6, 0xb7, 0x55, 0x22,
340 	0x0d, 0x87, 0x59, 0xc4, 0x39, 0x91, 0x62, 0x17,
341 	0xc2, 0xc3, 0x53, 0xa5, 0x26, 0x97, 0x4f, 0x2d
342 };
343 
344 const unsigned char id[64] = {
345 	0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde, 0xc5,
346 	0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d, 0x53,
347 	0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e, 0x7f,
348 	0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda, 0x68,
349 	0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83, 0x2c,
350 	0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76, 0x90,
351 	0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6, 0x3c,
352 	0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f, 0x25,
353 };
354 
355 const unsigned char id_tpm_rs256[32] = {
356 	0x89, 0x99, 0x6d, 0x5a, 0x00, 0x29, 0xe5, 0x3e,
357 	0x6a, 0x1c, 0x72, 0x6d, 0x71, 0x4a, 0x4f, 0x03,
358 	0x9b, 0x68, 0x17, 0xdb, 0x29, 0x1a, 0x6b, 0x02,
359 	0x6c, 0x26, 0xf9, 0xbd, 0xc3, 0x0e, 0x38, 0x1a
360 };
361 
362 const unsigned char id_tpm_es256[32] = {
363 	0xa8, 0xdf, 0x03, 0xf7, 0xbf, 0x39, 0x51, 0x94,
364 	0x95, 0x8f, 0xa4, 0x84, 0x97, 0x30, 0xbc, 0x3c,
365 	0x7e, 0x1c, 0x99, 0x91, 0x4d, 0xae, 0x6d, 0xfb,
366 	0xdf, 0x53, 0xb5, 0xb6, 0x1f, 0x3a, 0x4e, 0x6a
367 };
368 
369 const unsigned char attstmt_tpm_rs256[4034] = {
370 	0xa6, 0x63, 0x61, 0x6c, 0x67, 0x39, 0xff, 0xfe,
371 	0x63, 0x73, 0x69, 0x67, 0x59, 0x01, 0x00, 0x1c,
372 	0x09, 0x0d, 0x35, 0x97, 0x22, 0xfc, 0xfe, 0xc0,
373 	0x58, 0x49, 0x9e, 0xd4, 0x7e, 0x6a, 0x7d, 0xdb,
374 	0x6d, 0x20, 0x95, 0x5c, 0x0b, 0xd0, 0xd5, 0x72,
375 	0x4f, 0x15, 0x22, 0x38, 0x97, 0xb2, 0x4b, 0xd0,
376 	0xef, 0x31, 0x7c, 0xf2, 0x42, 0x19, 0x41, 0xa1,
377 	0xe2, 0xc5, 0xca, 0xc6, 0x74, 0x95, 0xcf, 0xf9,
378 	0x41, 0x75, 0x0b, 0x56, 0x39, 0x82, 0x78, 0xf6,
379 	0x59, 0xf1, 0x09, 0x96, 0x9e, 0x38, 0x7f, 0x14,
380 	0x9b, 0xf5, 0x36, 0xbb, 0x92, 0x32, 0xc4, 0x64,
381 	0xe8, 0xff, 0xb4, 0xc7, 0xcf, 0xcd, 0x17, 0x48,
382 	0x0f, 0x83, 0xd9, 0x44, 0x03, 0x35, 0x26, 0xad,
383 	0x01, 0xb7, 0x57, 0x06, 0xb3, 0x9c, 0xa0, 0x6e,
384 	0x2f, 0x58, 0xcb, 0x5c, 0xaa, 0x7c, 0xea, 0x7e,
385 	0x3f, 0xbc, 0x76, 0xc9, 0x0e, 0x52, 0x39, 0x81,
386 	0xa9, 0x9e, 0x37, 0x14, 0x1f, 0x50, 0x6a, 0x4f,
387 	0xd7, 0xfc, 0xd4, 0xfa, 0xf2, 0x18, 0x60, 0xd5,
388 	0xc3, 0x57, 0x7d, 0x6d, 0x05, 0x28, 0x25, 0xc3,
389 	0xde, 0x86, 0x85, 0x06, 0x71, 0xfb, 0x84, 0xa2,
390 	0x07, 0xb6, 0x77, 0xc9, 0x68, 0x41, 0x53, 0x32,
391 	0x4c, 0xa8, 0x4b, 0xf7, 0x08, 0x84, 0x62, 0x6c,
392 	0x8a, 0xb6, 0xcf, 0xc1, 0xde, 0x6b, 0x61, 0xc8,
393 	0xdd, 0xc0, 0x13, 0x70, 0x22, 0x28, 0xe1, 0x0f,
394 	0x46, 0x02, 0xc6, 0xb1, 0xfa, 0x30, 0xcb, 0xec,
395 	0xd1, 0x82, 0xfa, 0x51, 0xcb, 0x71, 0x5e, 0x1f,
396 	0x1b, 0x5f, 0xe0, 0xb0, 0x02, 0x8a, 0x7c, 0x78,
397 	0xd1, 0xb7, 0x4d, 0x56, 0xb0, 0x92, 0x3e, 0xda,
398 	0xc7, 0xb1, 0x74, 0xcf, 0x6a, 0x40, 0xeb, 0x98,
399 	0x1c, 0x2e, 0xf2, 0x86, 0x76, 0xf8, 0x2e, 0x6a,
400 	0x9f, 0x77, 0x51, 0x64, 0xce, 0xdc, 0x12, 0x85,
401 	0x84, 0x6b, 0x01, 0xc8, 0xeb, 0xbc, 0x57, 0x6c,
402 	0x32, 0x26, 0xcb, 0xb2, 0x84, 0x02, 0x2a, 0x33,
403 	0x15, 0xd9, 0xe3, 0x15, 0xfc, 0x3a, 0x24, 0x63,
404 	0x76, 0x65, 0x72, 0x63, 0x32, 0x2e, 0x30, 0x63,
405 	0x78, 0x35, 0x63, 0x82, 0x59, 0x05, 0xc4, 0x30,
406 	0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8, 0xa0,
407 	0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x78, 0xd9,
408 	0xa8, 0xb2, 0x64, 0xf9, 0x4d, 0x28, 0x82, 0xc0,
409 	0xd3, 0x1b, 0x40, 0x3c, 0xc8, 0xd9, 0x30, 0x0d,
410 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
411 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41, 0x31,
412 	0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03,
413 	0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53, 0x54,
414 	0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44, 0x2d,
415 	0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34, 0x41,
416 	0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37, 0x41,
417 	0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30, 0x30,
418 	0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31, 0x41,
419 	0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36, 0x30,
420 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x37,
421 	0x31, 0x35, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33,
422 	0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x33, 0x32,
423 	0x31, 0x32, 0x30, 0x32, 0x39, 0x31, 0x35, 0x5a,
424 	0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
425 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
426 	0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
427 	0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
428 	0x01, 0x01, 0x00, 0xca, 0xbe, 0x77, 0x9f, 0x45,
429 	0x97, 0x17, 0x8d, 0x01, 0xe1, 0x18, 0xcc, 0xf0,
430 	0xb5, 0xed, 0x9a, 0xb7, 0x36, 0xac, 0x05, 0x26,
431 	0xbe, 0x35, 0xd9, 0x5c, 0x00, 0x5c, 0x5d, 0x8b,
432 	0x6f, 0x2a, 0xb8, 0xf6, 0x02, 0x4f, 0x33, 0xfe,
433 	0x84, 0x45, 0x4c, 0x4f, 0x7a, 0xdb, 0xa9, 0x6a,
434 	0x62, 0x0f, 0x19, 0x35, 0x5d, 0xd2, 0x34, 0x1a,
435 	0x9d, 0x73, 0x55, 0xe5, 0x3e, 0x04, 0xa2, 0xd6,
436 	0xbe, 0xe7, 0x5a, 0xb9, 0x16, 0x6c, 0x55, 0x18,
437 	0xa8, 0x4b, 0xb2, 0x37, 0xb9, 0xa3, 0x87, 0xfc,
438 	0x76, 0xa8, 0x55, 0xc9, 0xe7, 0x30, 0xe5, 0x0e,
439 	0x3c, 0x7b, 0x74, 0xd2, 0x1e, 0xa8, 0x05, 0xd5,
440 	0xe2, 0xe3, 0xcb, 0xaf, 0x63, 0x33, 0x12, 0xaa,
441 	0xfd, 0x31, 0x32, 0x71, 0x4f, 0x41, 0x96, 0x05,
442 	0xb5, 0x69, 0x73, 0x45, 0xbe, 0x6f, 0x90, 0xd9,
443 	0x10, 0x36, 0xaf, 0x7a, 0x1c, 0xf1, 0x6d, 0x14,
444 	0xb0, 0x1e, 0xbb, 0xae, 0x1c, 0x35, 0xec, 0x1c,
445 	0xb5, 0x0e, 0xf6, 0x33, 0x98, 0x13, 0x4e, 0x44,
446 	0x7b, 0x5c, 0x97, 0x47, 0xed, 0x4f, 0xfe, 0xbd,
447 	0x08, 0xd2, 0xa9, 0xc6, 0xbe, 0x8c, 0x04, 0x9e,
448 	0xdc, 0x3d, 0xbe, 0x98, 0xe9, 0x2a, 0xb1, 0xf4,
449 	0xfa, 0x45, 0xf9, 0xc8, 0x9a, 0x55, 0x85, 0x26,
450 	0xfc, 0x5f, 0xad, 0x00, 0x8b, 0xc8, 0x41, 0xf2,
451 	0x86, 0x4e, 0xba, 0x55, 0x1c, 0xb2, 0x89, 0xe8,
452 	0x85, 0x6e, 0x1e, 0x02, 0x9f, 0x55, 0x70, 0xbe,
453 	0xfd, 0xe7, 0x9f, 0xba, 0x59, 0xa0, 0x2e, 0x9a,
454 	0x74, 0x11, 0xe7, 0xad, 0xa9, 0xc7, 0x7b, 0x58,
455 	0xc4, 0x16, 0xd3, 0x35, 0xcb, 0x61, 0x00, 0xec,
456 	0x36, 0x4a, 0xa3, 0x51, 0xa3, 0xdd, 0x61, 0xb6,
457 	0xd6, 0x29, 0xcb, 0x76, 0xe1, 0xab, 0x51, 0x3a,
458 	0xe8, 0xbf, 0xdb, 0x09, 0x4a, 0x39, 0x96, 0xd9,
459 	0xac, 0x8f, 0x6c, 0x62, 0xe0, 0x03, 0x23, 0x24,
460 	0xbe, 0xd4, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01,
461 	0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01, 0xef,
462 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
463 	0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
464 	0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
465 	0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x6d,
466 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01, 0xff,
467 	0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06, 0x09,
468 	0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15,
469 	0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b,
470 	0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30,
471 	0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43, 0x00,
472 	0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20, 0x00,
473 	0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00,
474 	0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00,
475 	0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61, 0x00,
476 	0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00,
477 	0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00,
478 	0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00,
479 	0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10, 0x06,
480 	0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30, 0x07,
481 	0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30,
482 	0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01, 0x01,
483 	0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b, 0x30,
484 	0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05, 0x67,
485 	0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69, 0x64,
486 	0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44, 0x32,
487 	0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05, 0x67,
488 	0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53, 0x54,
489 	0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41, 0x48,
490 	0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
491 	0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b, 0x69,
492 	0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30, 0x30,
493 	0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
494 	0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb8,
495 	0x5f, 0xd5, 0x67, 0xca, 0x92, 0xc4, 0x0e, 0xcf,
496 	0x0c, 0xd8, 0x1f, 0x6d, 0x3f, 0x03, 0x55, 0x6f,
497 	0x38, 0xa6, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
498 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd4, 0x04,
499 	0x64, 0xfc, 0x6e, 0x50, 0x0a, 0x56, 0x48, 0x0f,
500 	0x05, 0xa9, 0x00, 0xb7, 0x1d, 0x5e, 0x57, 0x08,
501 	0xd5, 0xdc, 0x30, 0x81, 0xb2, 0x06, 0x08, 0x2b,
502 	0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
503 	0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81, 0x9f,
504 	0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
505 	0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74, 0x74,
506 	0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63, 0x73,
507 	0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73, 0x61,
508 	0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
509 	0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x63,
510 	0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64,
511 	0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
512 	0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d, 0x2d,
513 	0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31, 0x61,
514 	0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62, 0x35,
515 	0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30, 0x63,
516 	0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65, 0x37,
517 	0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34, 0x33,
518 	0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f, 0x61,
519 	0x62, 0x64, 0x36, 0x31, 0x35, 0x66, 0x32, 0x2d,
520 	0x31, 0x35, 0x38, 0x61, 0x2d, 0x34, 0x35, 0x38,
521 	0x65, 0x2d, 0x61, 0x31, 0x35, 0x35, 0x2d, 0x37,
522 	0x63, 0x34, 0x63, 0x38, 0x63, 0x62, 0x31, 0x33,
523 	0x63, 0x36, 0x35, 0x2e, 0x63, 0x65, 0x72, 0x30,
524 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
525 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
526 	0x02, 0x01, 0x00, 0xa2, 0x10, 0xc5, 0xbf, 0x41,
527 	0xa6, 0xba, 0x8c, 0x72, 0xca, 0x0f, 0x3e, 0x5e,
528 	0x7f, 0xe2, 0xcb, 0x60, 0xb8, 0x3f, 0xfb, 0xde,
529 	0x03, 0xe2, 0xfe, 0x20, 0x29, 0xdf, 0x11, 0xf5,
530 	0xb0, 0x50, 0x6d, 0x32, 0xe8, 0x1b, 0x05, 0xad,
531 	0x6b, 0x60, 0xb5, 0xed, 0xf3, 0xa4, 0x4a, 0xea,
532 	0x09, 0xe5, 0x65, 0x7e, 0xe0, 0xd5, 0x3a, 0x6a,
533 	0xdb, 0x64, 0xb7, 0x07, 0x8f, 0xa1, 0x63, 0xb3,
534 	0x89, 0x8a, 0xac, 0x49, 0x97, 0xa0, 0x9a, 0xa3,
535 	0xd3, 0x3a, 0xc2, 0x13, 0xb2, 0xbb, 0xab, 0x0d,
536 	0xf2, 0x35, 0xc5, 0x03, 0xde, 0x1c, 0xad, 0x6a,
537 	0x03, 0x0a, 0x4c, 0xe1, 0x37, 0x8f, 0xbc, 0x13,
538 	0xc0, 0x9a, 0x17, 0xd4, 0x2e, 0x36, 0x17, 0x51,
539 	0x12, 0xb0, 0x79, 0xbf, 0x9b, 0xb3, 0xb0, 0x74,
540 	0x25, 0x81, 0x7e, 0x21, 0x31, 0xb7, 0xc2, 0x5e,
541 	0xfb, 0x36, 0xab, 0xf3, 0x7a, 0x5f, 0xa4, 0x5e,
542 	0x8f, 0x0c, 0xbd, 0xcf, 0xf5, 0x50, 0xe7, 0x0c,
543 	0x51, 0x55, 0x48, 0xe6, 0x15, 0xb6, 0xd4, 0xaf,
544 	0x95, 0x72, 0x56, 0x94, 0xf7, 0x0e, 0xd6, 0x90,
545 	0xe3, 0xd3, 0x5d, 0xbd, 0x93, 0xa1, 0xbd, 0x6c,
546 	0xe4, 0xf2, 0x39, 0x4d, 0x54, 0x74, 0xcf, 0xf5,
547 	0xeb, 0x70, 0xdb, 0x4f, 0x52, 0xcd, 0x39, 0x8f,
548 	0x11, 0x54, 0x28, 0x06, 0x29, 0x8f, 0x23, 0xde,
549 	0x9e, 0x2f, 0x7b, 0xb6, 0x5f, 0xa3, 0x89, 0x04,
550 	0x99, 0x0a, 0xf1, 0x2d, 0xf9, 0x66, 0xd3, 0x13,
551 	0x45, 0xbd, 0x6c, 0x22, 0x57, 0xf5, 0xb1, 0xb9,
552 	0xdf, 0x5b, 0x7b, 0x1a, 0x3a, 0xdd, 0x6b, 0xc7,
553 	0x35, 0x88, 0xed, 0xc4, 0x09, 0x70, 0x4e, 0x5f,
554 	0xb5, 0x3e, 0xd1, 0x0b, 0xd0, 0xca, 0xef, 0x0b,
555 	0xe9, 0x8b, 0x6f, 0xc3, 0x16, 0xc3, 0x3d, 0x79,
556 	0x06, 0xef, 0x81, 0xf0, 0x60, 0x0b, 0x32, 0xe3,
557 	0x86, 0x6b, 0x92, 0x38, 0x90, 0x62, 0xed, 0x84,
558 	0x3a, 0xb7, 0x45, 0x43, 0x2e, 0xd0, 0x3a, 0x71,
559 	0x9e, 0x80, 0xcc, 0x9c, 0xac, 0x27, 0x10, 0x91,
560 	0xb7, 0xb2, 0xbd, 0x41, 0x40, 0xa7, 0xb7, 0xcf,
561 	0xe7, 0x38, 0xca, 0x68, 0xdd, 0x62, 0x09, 0xff,
562 	0x68, 0xce, 0xba, 0xe2, 0x07, 0x49, 0x09, 0xe7,
563 	0x1f, 0xdf, 0xe6, 0x26, 0xe5, 0x0f, 0xa9, 0xbf,
564 	0x2a, 0x5b, 0x67, 0x92, 0xa1, 0x10, 0x53, 0xb2,
565 	0x7a, 0x07, 0x29, 0x9d, 0xfd, 0x6d, 0xb6, 0x3b,
566 	0x45, 0xc1, 0x94, 0xcb, 0x1c, 0xc3, 0xce, 0xf6,
567 	0x8a, 0x1a, 0x81, 0x66, 0xb0, 0xa5, 0x14, 0xc7,
568 	0x9e, 0x1f, 0x6e, 0xb6, 0xff, 0x8b, 0x90, 0x87,
569 	0x3a, 0x3f, 0xa8, 0xc2, 0x2d, 0x8f, 0x6f, 0xdb,
570 	0xb4, 0xc4, 0x14, 0x3c, 0x1d, 0x12, 0x1d, 0x6d,
571 	0xcf, 0xa6, 0x04, 0x6a, 0xa8, 0x13, 0x5e, 0xf2,
572 	0x5e, 0x77, 0x80, 0x6b, 0x85, 0x83, 0xfe, 0xbb,
573 	0xeb, 0x70, 0xcb, 0x5f, 0xe4, 0x95, 0xaa, 0x0f,
574 	0x61, 0x36, 0x7c, 0xbb, 0x22, 0x1e, 0xba, 0x98,
575 	0x43, 0x52, 0x33, 0xae, 0xed, 0x5d, 0x10, 0x2c,
576 	0xb3, 0xa9, 0x31, 0x8e, 0x60, 0x54, 0xaf, 0x40,
577 	0x6d, 0x2e, 0x18, 0xc2, 0x6a, 0xf4, 0x7b, 0x9a,
578 	0x73, 0x0f, 0x58, 0x69, 0x23, 0xbb, 0xc4, 0x84,
579 	0x53, 0x30, 0xe2, 0xd6, 0x1e, 0x10, 0xc1, 0xec,
580 	0x82, 0x13, 0xab, 0x53, 0x86, 0xa2, 0xb9, 0xda,
581 	0xbb, 0x3a, 0xa2, 0xbe, 0xb0, 0x10, 0x99, 0x0e,
582 	0xe5, 0x9c, 0xc9, 0xf1, 0xce, 0x76, 0x46, 0xea,
583 	0x86, 0xaa, 0x36, 0x83, 0x99, 0x09, 0x9b, 0x30,
584 	0xd3, 0x26, 0xc7, 0xdf, 0x66, 0xc7, 0xf0, 0xdd,
585 	0x08, 0x09, 0x15, 0x15, 0x21, 0x49, 0x46, 0xd8,
586 	0x8a, 0x66, 0xca, 0x62, 0x9c, 0x79, 0x1d, 0x81,
587 	0xea, 0x5d, 0x82, 0xb0, 0xa6, 0x6b, 0x5c, 0xf5,
588 	0xb8, 0x8c, 0xf6, 0x16, 0x01, 0x2c, 0xf8, 0x27,
589 	0xf8, 0xcf, 0x88, 0xfe, 0xf3, 0xa4, 0xfc, 0x17,
590 	0x97, 0xe7, 0x07, 0x59, 0x06, 0xef, 0x30, 0x82,
591 	0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3, 0xa0, 0x03,
592 	0x02, 0x01, 0x02, 0x02, 0x13, 0x33, 0x00, 0x00,
593 	0x02, 0x39, 0xf9, 0xbb, 0x6a, 0x1d, 0x49, 0x64,
594 	0x47, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x39,
595 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
596 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
597 	0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
598 	0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
599 	0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
600 	0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e,
601 	0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e,
602 	0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52,
603 	0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e,
604 	0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
605 	0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
606 	0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f,
607 	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x36,
608 	0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
609 	0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
610 	0x66, 0x74, 0x20, 0x54, 0x50, 0x4d, 0x20, 0x52,
611 	0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74,
612 	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
613 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
614 	0x79, 0x20, 0x32, 0x30, 0x31, 0x34, 0x30, 0x1e,
615 	0x17, 0x0d, 0x31, 0x39, 0x30, 0x33, 0x32, 0x31,
616 	0x32, 0x30, 0x32, 0x39, 0x31, 0x35, 0x5a, 0x17,
617 	0x0d, 0x32, 0x35, 0x30, 0x33, 0x32, 0x31, 0x32,
618 	0x30, 0x32, 0x39, 0x31, 0x35, 0x5a, 0x30, 0x41,
619 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
620 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
621 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
622 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
623 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
624 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
625 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
626 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
627 	0x30, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06,
628 	0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
629 	0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f,
630 	0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
631 	0x01, 0x00, 0xdb, 0xe2, 0x23, 0xf9, 0x86, 0x8f,
632 	0xa9, 0x71, 0x9f, 0x8b, 0xf9, 0x7c, 0xe9, 0x45,
633 	0x2d, 0x59, 0x56, 0x5e, 0x96, 0xf4, 0xdd, 0x9a,
634 	0x12, 0xcd, 0x90, 0x1a, 0x0c, 0xb5, 0x03, 0xbf,
635 	0x09, 0xbe, 0xbf, 0xf7, 0x55, 0x52, 0xe8, 0x39,
636 	0x4c, 0xbe, 0x2a, 0x28, 0x88, 0x78, 0x39, 0xa7,
637 	0xcb, 0xf9, 0x4c, 0x55, 0xd2, 0x31, 0x96, 0x3b,
638 	0x48, 0xa2, 0xf3, 0xf6, 0xd3, 0x1a, 0x81, 0x7f,
639 	0x90, 0x62, 0xab, 0xec, 0x5a, 0xc7, 0xa0, 0x7f,
640 	0x81, 0x32, 0x27, 0x9b, 0x29, 0x75, 0x7d, 0x1e,
641 	0x96, 0xc5, 0xfa, 0x0e, 0x7c, 0xe0, 0x60, 0x96,
642 	0x7a, 0xca, 0x94, 0xba, 0xe6, 0xb2, 0x69, 0xdd,
643 	0xc4, 0x7d, 0xbb, 0xd3, 0xc4, 0xb4, 0x6e, 0x00,
644 	0x86, 0x1f, 0x9d, 0x25, 0xe8, 0xae, 0xc7, 0x10,
645 	0x84, 0xdc, 0xc0, 0x34, 0x24, 0x6e, 0xf7, 0xfc,
646 	0xdd, 0x3d, 0x32, 0x7a, 0x43, 0x96, 0xd6, 0xc8,
647 	0x7b, 0xf4, 0x9b, 0x3d, 0xa7, 0x1e, 0xba, 0x4d,
648 	0xd0, 0x3b, 0x3d, 0x84, 0x9a, 0xd1, 0x25, 0x22,
649 	0x5d, 0x00, 0x44, 0xb0, 0x59, 0xb7, 0x40, 0xc5,
650 	0xa3, 0x53, 0x53, 0xaf, 0x8f, 0x9e, 0xfd, 0x8f,
651 	0x1e, 0x02, 0xd3, 0x4f, 0xf7, 0x09, 0xce, 0xc5,
652 	0xc6, 0x71, 0x5c, 0xe9, 0xe8, 0x7a, 0xb5, 0x6b,
653 	0xa4, 0xbf, 0x0b, 0xd9, 0xb6, 0xfa, 0x24, 0xb0,
654 	0xcd, 0x52, 0x22, 0x1d, 0x7e, 0xe8, 0x15, 0x2f,
655 	0x1e, 0x5e, 0xa2, 0xec, 0xd3, 0xa8, 0x02, 0x77,
656 	0xb9, 0x55, 0x9a, 0xcf, 0xcc, 0xd7, 0x08, 0x20,
657 	0xa5, 0xda, 0x39, 0x9a, 0x30, 0x76, 0x90, 0x37,
658 	0xa7, 0x60, 0xdf, 0x18, 0x12, 0x65, 0x17, 0xaa,
659 	0xdd, 0x48, 0xd5, 0x12, 0x1d, 0x4c, 0x83, 0x5d,
660 	0x81, 0x07, 0x1d, 0x18, 0x81, 0x40, 0x55, 0x60,
661 	0x8f, 0xa3, 0x6b, 0x34, 0x1e, 0xd5, 0xe6, 0xcf,
662 	0x52, 0x73, 0x77, 0x4a, 0x50, 0x4f, 0x1b, 0x0f,
663 	0x39, 0xc3, 0x0d, 0x16, 0xf9, 0xbb, 0x4c, 0x77,
664 	0xf6, 0x4e, 0xac, 0x9c, 0xfe, 0xe8, 0xbb, 0x52,
665 	0xa5, 0x0a, 0x0e, 0x9b, 0xf0, 0x0d, 0xef, 0xfb,
666 	0x6f, 0x89, 0x34, 0x7d, 0x47, 0xec, 0x14, 0x6a,
667 	0xf4, 0x0a, 0xe1, 0x60, 0x44, 0x73, 0x7b, 0xa0,
668 	0xab, 0x5b, 0x8c, 0x43, 0xa6, 0x05, 0x42, 0x61,
669 	0x46, 0xaa, 0x1c, 0xf5, 0xec, 0x2c, 0x86, 0x85,
670 	0x21, 0x99, 0xdf, 0x45, 0x8e, 0xf4, 0xd1, 0x1e,
671 	0xfb, 0xcd, 0x9b, 0x94, 0x32, 0xe0, 0xa0, 0xcc,
672 	0x4f, 0xad, 0xae, 0x44, 0x8b, 0x86, 0x27, 0x91,
673 	0xfe, 0x60, 0x9f, 0xf2, 0x63, 0x30, 0x6c, 0x5d,
674 	0x8d, 0xbc, 0xab, 0xd4, 0xf5, 0xa2, 0xb2, 0x74,
675 	0xe8, 0xd4, 0x95, 0xf2, 0xd6, 0x03, 0x8b, 0xc9,
676 	0xa3, 0x52, 0xe7, 0x63, 0x05, 0x64, 0x50, 0xe5,
677 	0x0a, 0x6a, 0xa0, 0x6c, 0x50, 0xcd, 0x37, 0x98,
678 	0xa8, 0x87, 0x02, 0x38, 0x5b, 0x6c, 0x02, 0x69,
679 	0x3d, 0x1f, 0x95, 0x74, 0x4d, 0x46, 0x76, 0x2a,
680 	0x9d, 0x62, 0xd4, 0xc7, 0x1b, 0xf9, 0x31, 0xa6,
681 	0x51, 0xee, 0x7b, 0xc8, 0xe4, 0x6e, 0x3a, 0xcf,
682 	0x4f, 0x4f, 0x49, 0x8a, 0xf5, 0x4f, 0x25, 0x93,
683 	0x23, 0x02, 0xef, 0x79, 0xa6, 0x27, 0xbe, 0x5a,
684 	0xe7, 0x74, 0xb7, 0xd7, 0xa8, 0xc1, 0xae, 0x55,
685 	0x88, 0xa4, 0xc7, 0x4d, 0xb7, 0x62, 0xf0, 0xf9,
686 	0x5b, 0xbf, 0x47, 0x5b, 0xfe, 0xcc, 0x0b, 0x89,
687 	0x19, 0x65, 0x4b, 0x6f, 0xdf, 0x4f, 0x7d, 0x4d,
688 	0x96, 0x42, 0x0d, 0x2a, 0xa1, 0xbd, 0x3e, 0x70,
689 	0x92, 0xba, 0xc8, 0x59, 0xd5, 0x1d, 0x3a, 0x98,
690 	0x53, 0x75, 0xa6, 0x32, 0xc8, 0x72, 0x03, 0x46,
691 	0x5f, 0x5c, 0x13, 0xa4, 0xdb, 0xc7, 0x55, 0x35,
692 	0x22, 0x0d, 0xc6, 0x17, 0x85, 0xbd, 0x46, 0x4b,
693 	0xfa, 0x1e, 0x49, 0xc2, 0xfe, 0x1e, 0xf9, 0x62,
694 	0x89, 0x56, 0x84, 0xdf, 0xa0, 0xfb, 0xfd, 0x93,
695 	0xa4, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
696 	0x82, 0x01, 0x8e, 0x30, 0x82, 0x01, 0x8a, 0x30,
697 	0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
698 	0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x84, 0x30,
699 	0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x14,
700 	0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
701 	0x01, 0x82, 0x37, 0x15, 0x24, 0x06, 0x05, 0x67,
702 	0x81, 0x05, 0x08, 0x03, 0x30, 0x16, 0x06, 0x03,
703 	0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30, 0x0d, 0x30,
704 	0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
705 	0x82, 0x37, 0x15, 0x1f, 0x30, 0x12, 0x06, 0x03,
706 	0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
707 	0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
708 	0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
709 	0x16, 0x04, 0x14, 0xb8, 0x5f, 0xd5, 0x67, 0xca,
710 	0x92, 0xc4, 0x0e, 0xcf, 0x0c, 0xd8, 0x1f, 0x6d,
711 	0x3f, 0x03, 0x55, 0x6f, 0x38, 0xa6, 0x51, 0x30,
712 	0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
713 	0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c, 0x0a, 0xce,
714 	0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94, 0xd1, 0xae,
715 	0x55, 0xc1, 0x52, 0xec, 0x71, 0x74, 0xa4, 0x56,
716 	0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
717 	0x69, 0x30, 0x67, 0x30, 0x65, 0xa0, 0x63, 0xa0,
718 	0x61, 0x86, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x3a,
719 	0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69,
720 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e,
721 	0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f,
722 	0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x4d,
723 	0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
724 	0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32,
725 	0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30,
726 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
727 	0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75,
728 	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25,
729 	0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63,
730 	0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08, 0x2b, 0x06,
731 	0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x71,
732 	0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
733 	0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x61,
734 	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
735 	0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
736 	0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
737 	0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x2f,
738 	0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69,
739 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x25,
740 	0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32, 0x30,
741 	0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43,
742 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
743 	0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75, 0x74,
744 	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25, 0x32,
745 	0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63, 0x72,
746 	0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
747 	0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
748 	0x03, 0x82, 0x02, 0x01, 0x00, 0x41, 0xaa, 0xfe,
749 	0x28, 0x6c, 0xf7, 0x6b, 0x53, 0xde, 0x77, 0xc0,
750 	0x80, 0x50, 0x94, 0xd9, 0xdb, 0x46, 0x8e, 0x6a,
751 	0x93, 0xa9, 0x10, 0x37, 0x27, 0x1f, 0xf5, 0x70,
752 	0xf1, 0xa8, 0xcf, 0xa1, 0x45, 0x86, 0x2a, 0xdd,
753 	0x8f, 0xb8, 0xb5, 0xc1, 0xe6, 0xcf, 0x8a, 0xfa,
754 	0x32, 0xa1, 0x4b, 0xb7, 0xa4, 0xbf, 0x0a, 0x48,
755 	0xcb, 0x42, 0x63, 0x71, 0xc1, 0x96, 0xb9, 0x3a,
756 	0x37, 0x84, 0x0e, 0x24, 0x39, 0xeb, 0x58, 0xce,
757 	0x3d, 0xb7, 0xa9, 0x44, 0x92, 0x59, 0xb9, 0xff,
758 	0xdb, 0x18, 0xbe, 0x6a, 0x5e, 0xe7, 0xce, 0xef,
759 	0xb8, 0x40, 0x53, 0xaf, 0xc1, 0x9b, 0xfb, 0x42,
760 	0x99, 0x7e, 0x9d, 0x05, 0x2b, 0x71, 0x0a, 0x7a,
761 	0x7a, 0x44, 0xd1, 0x31, 0xca, 0xf0, 0x5f, 0x74,
762 	0x85, 0xa9, 0xe2, 0xbc, 0xc8, 0x0c, 0xad, 0x57,
763 	0xd1, 0xe9, 0x48, 0x90, 0x88, 0x57, 0x86, 0xd7,
764 	0xc5, 0xc9, 0xe6, 0xb2, 0x5e, 0x5f, 0x13, 0xdc,
765 	0x10, 0x7f, 0xdf, 0x63, 0x8a, 0xd5, 0x9e, 0x90,
766 	0xc2, 0x75, 0x53, 0x1e, 0x68, 0x17, 0x2b, 0x03,
767 	0x29, 0x15, 0x03, 0xc5, 0x8c, 0x66, 0x3e, 0xae,
768 	0xbd, 0x4a, 0x32, 0x7e, 0x59, 0x89, 0x0b, 0x84,
769 	0xc2, 0xd9, 0x90, 0xfa, 0x02, 0x22, 0x90, 0x8d,
770 	0x9c, 0xb6, 0x0c, 0x4d, 0xe1, 0x28, 0x76, 0xd7,
771 	0x82, 0xc3, 0x36, 0xc2, 0xa3, 0x2a, 0x52, 0xe5,
772 	0xfe, 0x3c, 0x8f, 0xe3, 0x4b, 0xda, 0x6a, 0xdb,
773 	0xc0, 0x7a, 0x3c, 0x57, 0xfa, 0x85, 0x8f, 0xfb,
774 	0x62, 0xc3, 0xa1, 0x38, 0xce, 0x84, 0xf2, 0xba,
775 	0x12, 0xf4, 0x30, 0x2a, 0x4a, 0x94, 0xa9, 0x35,
776 	0x2c, 0x7d, 0x11, 0xc7, 0x68, 0x1f, 0x47, 0xaa,
777 	0x57, 0x43, 0x06, 0x70, 0x79, 0x8c, 0xb6, 0x3b,
778 	0x5d, 0x57, 0xf3, 0xf3, 0xc0, 0x2c, 0xc5, 0xde,
779 	0x41, 0x99, 0xf6, 0xdd, 0x55, 0x8a, 0xe4, 0x13,
780 	0xca, 0xc9, 0xec, 0x69, 0x93, 0x13, 0x48, 0xf0,
781 	0x5f, 0xda, 0x2e, 0xfd, 0xfb, 0xa9, 0x1b, 0x92,
782 	0xde, 0x49, 0x71, 0x37, 0x8c, 0x3f, 0xc2, 0x08,
783 	0x0a, 0x83, 0x25, 0xf1, 0x6e, 0x0a, 0xe3, 0x55,
784 	0x85, 0x96, 0x9a, 0x2d, 0xa2, 0xc0, 0xa1, 0xee,
785 	0xfe, 0x23, 0x3b, 0x69, 0x22, 0x03, 0xfd, 0xcc,
786 	0x8a, 0xdd, 0xb4, 0x53, 0x8d, 0x84, 0xa6, 0xac,
787 	0xe0, 0x1e, 0x07, 0xe5, 0xd7, 0xf9, 0xcb, 0xb9,
788 	0xe3, 0x9a, 0xb7, 0x84, 0x70, 0xa1, 0x93, 0xd6,
789 	0x02, 0x1e, 0xfe, 0xdb, 0x28, 0x7c, 0xf7, 0xd4,
790 	0x62, 0x6f, 0x80, 0x75, 0xc8, 0xd8, 0x35, 0x26,
791 	0x0c, 0xcb, 0x84, 0xed, 0xbb, 0x95, 0xdf, 0x7f,
792 	0xd5, 0xbb, 0x00, 0x96, 0x97, 0x32, 0xe7, 0xba,
793 	0xe8, 0x29, 0xb5, 0x1a, 0x51, 0x81, 0xbb, 0x04,
794 	0xd1, 0x21, 0x76, 0x34, 0x6d, 0x1e, 0x93, 0x96,
795 	0x1f, 0x96, 0x53, 0x5f, 0x5c, 0x9e, 0xf3, 0x9d,
796 	0x82, 0x1c, 0x39, 0x36, 0x59, 0xae, 0xc9, 0x3c,
797 	0x53, 0x4a, 0x67, 0x65, 0x6e, 0xbf, 0xa6, 0xac,
798 	0x3e, 0xda, 0xb2, 0xa7, 0x63, 0x07, 0x17, 0xe1,
799 	0x5b, 0xda, 0x6a, 0x31, 0x9f, 0xfb, 0xb4, 0xea,
800 	0xa1, 0x97, 0x08, 0x6e, 0xb2, 0x68, 0xf3, 0x72,
801 	0x76, 0x99, 0xe8, 0x00, 0x46, 0x88, 0x26, 0xe1,
802 	0x3c, 0x07, 0x2b, 0x78, 0x49, 0xda, 0x79, 0x3a,
803 	0xbd, 0x6f, 0xca, 0x5c, 0xa0, 0xa8, 0xed, 0x34,
804 	0xcc, 0xdb, 0x13, 0xe2, 0x51, 0x9b, 0x3d, 0x03,
805 	0xac, 0xc7, 0xf6, 0x32, 0xe1, 0x11, 0x5d, 0xe1,
806 	0xc5, 0xfd, 0x9e, 0x7a, 0xcd, 0x06, 0xb9, 0xe6,
807 	0xfc, 0xe0, 0x03, 0x31, 0xf4, 0x4a, 0xa9, 0x3b,
808 	0x79, 0x01, 0xb0, 0x64, 0x68, 0x9f, 0x6e, 0x76,
809 	0xa1, 0xcc, 0xec, 0x17, 0x41, 0x9d, 0xd4, 0x5b,
810 	0x4e, 0x9d, 0xe5, 0x46, 0xd4, 0x6b, 0x60, 0x2a,
811 	0x23, 0xb5, 0x7a, 0x89, 0x7c, 0x27, 0x96, 0x65,
812 	0x97, 0x56, 0xec, 0x98, 0xe3, 0x67, 0x70, 0x75,
813 	0x62, 0x41, 0x72, 0x65, 0x61, 0x59, 0x01, 0x36,
814 	0x00, 0x01, 0x00, 0x0b, 0x00, 0x06, 0x04, 0x72,
815 	0x00, 0x20, 0x9d, 0xff, 0xcb, 0xf3, 0x6c, 0x38,
816 	0x3a, 0xe6, 0x99, 0xfb, 0x98, 0x68, 0xdc, 0x6d,
817 	0xcb, 0x89, 0xd7, 0x15, 0x38, 0x84, 0xbe, 0x28,
818 	0x03, 0x92, 0x2c, 0x12, 0x41, 0x58, 0xbf, 0xad,
819 	0x22, 0xae, 0x00, 0x10, 0x00, 0x10, 0x08, 0x00,
820 	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc5, 0xb6,
821 	0x9c, 0x06, 0x1d, 0xcf, 0xb9, 0xf2, 0x5e, 0x99,
822 	0x7d, 0x6d, 0x73, 0xd8, 0x36, 0xc1, 0x4a, 0x90,
823 	0x05, 0x4d, 0x82, 0x57, 0xc1, 0xb6, 0x6a, 0xd1,
824 	0x43, 0x03, 0x85, 0xf8, 0x52, 0x4f, 0xd2, 0x27,
825 	0x91, 0x0b, 0xb5, 0x93, 0xa0, 0x68, 0xf8, 0x80,
826 	0x1b, 0xaa, 0x65, 0x97, 0x45, 0x11, 0x86, 0x34,
827 	0xd6, 0x67, 0xf8, 0xd5, 0x12, 0x79, 0x84, 0xee,
828 	0x70, 0x99, 0x00, 0x63, 0xa8, 0xb4, 0x43, 0x0b,
829 	0x4c, 0x57, 0x4a, 0xd6, 0x9b, 0x75, 0x63, 0x8a,
830 	0x46, 0x57, 0xdb, 0x14, 0xc8, 0x71, 0xd1, 0xb3,
831 	0x07, 0x68, 0x58, 0xbc, 0x55, 0x84, 0x80, 0x2a,
832 	0xd2, 0x36, 0x9f, 0xc1, 0x64, 0xa0, 0x11, 0x4b,
833 	0xc9, 0x32, 0x31, 0x3a, 0xd6, 0x87, 0x26, 0x1a,
834 	0x3a, 0x78, 0x3d, 0x89, 0xdb, 0x00, 0x28, 0x3b,
835 	0xae, 0x2b, 0x1b, 0x56, 0xe2, 0x8c, 0x4c, 0x63,
836 	0xac, 0x6e, 0x6c, 0xf7, 0xb5, 0x7d, 0x4d, 0x0b,
837 	0x9f, 0x06, 0xa0, 0x10, 0x35, 0x38, 0x20, 0x4d,
838 	0xcc, 0x07, 0xd7, 0x00, 0x4e, 0x86, 0xba, 0xfe,
839 	0x8b, 0xe4, 0x3f, 0x4a, 0xd6, 0xca, 0xbf, 0x67,
840 	0x40, 0x1a, 0xa4, 0xda, 0x82, 0x52, 0x15, 0xb8,
841 	0x14, 0x3a, 0x7c, 0xa9, 0x02, 0xc1, 0x01, 0x69,
842 	0xc6, 0x51, 0xd4, 0xbc, 0x1f, 0x95, 0xb2, 0xee,
843 	0x1f, 0xdd, 0xb5, 0x73, 0x16, 0x5e, 0x29, 0x3f,
844 	0x47, 0xac, 0x65, 0xfb, 0x63, 0x5c, 0xb9, 0xc8,
845 	0x13, 0x2d, 0xec, 0x85, 0xde, 0x71, 0x0d, 0x84,
846 	0x93, 0x74, 0x76, 0x91, 0xdd, 0x1d, 0x6d, 0x3d,
847 	0xc7, 0x36, 0x19, 0x19, 0x86, 0xde, 0x7c, 0xca,
848 	0xd6, 0xc6, 0x65, 0x7e, 0x4b, 0x24, 0x9c, 0xce,
849 	0x92, 0x6b, 0x1c, 0xe0, 0xa0, 0xa9, 0x6c, 0xc3,
850 	0xed, 0x4f, 0x2a, 0x54, 0x07, 0x00, 0x32, 0x5e,
851 	0x1b, 0x94, 0x37, 0xcd, 0xe2, 0x32, 0xa8, 0xd5,
852 	0x2c, 0xfb, 0x03, 0x9d, 0x79, 0xdf, 0x68, 0x63,
853 	0x65, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x58,
854 	0xa1, 0xff, 0x54, 0x43, 0x47, 0x80, 0x17, 0x00,
855 	0x22, 0x00, 0x0b, 0xdb, 0x1f, 0x74, 0x21, 0x4f,
856 	0xa9, 0x0d, 0x90, 0x64, 0xa2, 0x33, 0xbe, 0x3f,
857 	0xf1, 0x95, 0xb0, 0x4e, 0x3f, 0x02, 0xdc, 0xad,
858 	0xb0, 0x05, 0x13, 0xe6, 0x32, 0x5f, 0xed, 0x90,
859 	0x2c, 0xad, 0xc0, 0x00, 0x14, 0x58, 0x52, 0x07,
860 	0x5d, 0x64, 0x6c, 0x1f, 0xd1, 0x13, 0x7f, 0xc3,
861 	0x74, 0xf6, 0x4b, 0xe3, 0xa0, 0x2e, 0xb7, 0x71,
862 	0xda, 0x00, 0x00, 0x00, 0x00, 0x29, 0x3c, 0x64,
863 	0xdf, 0x95, 0x38, 0xba, 0x73, 0xe3, 0x57, 0x61,
864 	0xa0, 0x01, 0x24, 0x01, 0x08, 0xc9, 0xd6, 0xea,
865 	0x60, 0xe4, 0x00, 0x22, 0x00, 0x0b, 0xe1, 0x86,
866 	0xbb, 0x79, 0x27, 0xe5, 0x01, 0x19, 0x90, 0xb3,
867 	0xe9, 0x08, 0xb0, 0xee, 0xfa, 0x3a, 0x67, 0xa9,
868 	0xf3, 0xc8, 0x9e, 0x03, 0x41, 0x07, 0x75, 0x60,
869 	0xbc, 0x94, 0x0c, 0x2a, 0xb7, 0xad, 0x00, 0x22,
870 	0x00, 0x0b, 0x35, 0xb1, 0x72, 0xd6, 0x3c, 0xe9,
871 	0x85, 0xe8, 0x66, 0xed, 0x10, 0x7a, 0x5c, 0xa3,
872 	0xe6, 0xd9, 0x4d, 0xf0, 0x52, 0x69, 0x26, 0x14,
873 	0xb4, 0x36, 0x7e, 0xad, 0x76, 0x9e, 0x58, 0x68,
874 	0x3e, 0x91
875 };
876 
877 const unsigned char attstmt_tpm_es256[3841] = {
878 	0xa6, 0x63, 0x61, 0x6c, 0x67, 0x39, 0xff, 0xfe,
879 	0x63, 0x73, 0x69, 0x67, 0x59, 0x01, 0x00, 0x6d,
880 	0x11, 0x61, 0x1f, 0x45, 0xb9, 0x7f, 0x65, 0x6f,
881 	0x97, 0x46, 0xfe, 0xbb, 0x8a, 0x98, 0x07, 0xa3,
882 	0xbc, 0x67, 0x5c, 0xd7, 0x65, 0xa4, 0xf4, 0x6c,
883 	0x5b, 0x37, 0x75, 0xa4, 0x7f, 0x08, 0x52, 0xeb,
884 	0x1e, 0x12, 0xe2, 0x78, 0x8c, 0x7d, 0x94, 0xab,
885 	0x7b, 0xed, 0x05, 0x17, 0x67, 0x7e, 0xaa, 0x02,
886 	0x89, 0x6d, 0xe8, 0x6d, 0x43, 0x30, 0x99, 0xc6,
887 	0xf9, 0x59, 0xe5, 0x82, 0x3c, 0x56, 0x4e, 0x77,
888 	0x11, 0x25, 0xe4, 0x43, 0x6a, 0xae, 0x92, 0x4f,
889 	0x60, 0x92, 0x50, 0xf9, 0x65, 0x0e, 0x44, 0x38,
890 	0x3d, 0xf7, 0xaf, 0x66, 0x89, 0xc7, 0xe6, 0xe6,
891 	0x01, 0x07, 0x9e, 0x90, 0xfd, 0x6d, 0xaa, 0x35,
892 	0x51, 0x51, 0xbf, 0x54, 0x13, 0x95, 0xc2, 0x17,
893 	0xfa, 0x32, 0x0f, 0xa7, 0x82, 0x17, 0x58, 0x6c,
894 	0x3d, 0xea, 0x88, 0xd8, 0x64, 0xc7, 0xf8, 0xc2,
895 	0xd6, 0x1c, 0xbb, 0xea, 0x1e, 0xb3, 0xd9, 0x4c,
896 	0xa7, 0xce, 0x18, 0x1e, 0xcb, 0x42, 0x5f, 0xbf,
897 	0x44, 0xe7, 0xf1, 0x22, 0xe0, 0x5b, 0xeb, 0xff,
898 	0xb6, 0x1e, 0x6f, 0x60, 0x12, 0x16, 0x63, 0xfe,
899 	0xab, 0x5e, 0x31, 0x13, 0xdb, 0x72, 0xc6, 0x9a,
900 	0xf8, 0x8f, 0x19, 0x6b, 0x2e, 0xaf, 0x7d, 0xca,
901 	0x9f, 0xbc, 0x6b, 0x1a, 0x8b, 0x5e, 0xe3, 0x9e,
902 	0xaa, 0x8c, 0x79, 0x9c, 0x4e, 0xed, 0xe4, 0xff,
903 	0x3d, 0x12, 0x79, 0x90, 0x09, 0x61, 0x97, 0x67,
904 	0xbf, 0x04, 0xac, 0x37, 0xea, 0xa9, 0x1f, 0x9f,
905 	0x52, 0x64, 0x0b, 0xeb, 0xc3, 0x61, 0xd4, 0x13,
906 	0xb0, 0x84, 0xf1, 0x3c, 0x74, 0x83, 0xcc, 0xa8,
907 	0x1c, 0x14, 0xe6, 0x9d, 0xfe, 0xec, 0xee, 0xa1,
908 	0xd2, 0xc2, 0x0a, 0xa6, 0x36, 0x08, 0xbb, 0x17,
909 	0xa5, 0x7b, 0x53, 0x34, 0x0e, 0xc9, 0x09, 0xe5,
910 	0x10, 0xa6, 0x85, 0x01, 0x71, 0x66, 0xff, 0xd0,
911 	0x6d, 0x4b, 0x93, 0xdb, 0x81, 0x25, 0x01, 0x63,
912 	0x76, 0x65, 0x72, 0x63, 0x32, 0x2e, 0x30, 0x63,
913 	0x78, 0x35, 0x63, 0x82, 0x59, 0x05, 0xc4, 0x30,
914 	0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8, 0xa0,
915 	0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x30, 0xcd,
916 	0xf2, 0x7e, 0x81, 0xc0, 0x43, 0x85, 0xa2, 0xd7,
917 	0x29, 0xef, 0xf7, 0x9f, 0xa5, 0x2b, 0x30, 0x0d,
918 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
919 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41, 0x31,
920 	0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03,
921 	0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53, 0x54,
922 	0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44, 0x2d,
923 	0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34, 0x41,
924 	0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37, 0x41,
925 	0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30, 0x30,
926 	0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31, 0x41,
927 	0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36, 0x30,
928 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31,
929 	0x30, 0x32, 0x31, 0x35, 0x30, 0x36, 0x35, 0x33,
930 	0x5a, 0x17, 0x0d, 0x32, 0x37, 0x30, 0x36, 0x30,
931 	0x33, 0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a,
932 	0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
933 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
934 	0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
935 	0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
936 	0x01, 0x01, 0x00, 0xdb, 0xd5, 0x9a, 0xfc, 0x09,
937 	0xa7, 0xc4, 0xa5, 0x5f, 0xbe, 0x5f, 0xa2, 0xeb,
938 	0xd6, 0x8e, 0xed, 0xc5, 0x67, 0xa6, 0xa7, 0xd9,
939 	0xb2, 0x46, 0xc6, 0xe0, 0xae, 0x0c, 0x02, 0x25,
940 	0x0a, 0xf2, 0xc5, 0x96, 0xdc, 0xb7, 0x0e, 0xb9,
941 	0x86, 0xd3, 0x51, 0xbb, 0x63, 0xf0, 0x4f, 0x8a,
942 	0x5e, 0xd7, 0xf7, 0xff, 0xbb, 0x29, 0xbd, 0x58,
943 	0xcf, 0x75, 0x02, 0x39, 0xcb, 0x80, 0xf1, 0xd4,
944 	0xb6, 0x75, 0x67, 0x2f, 0x27, 0x4d, 0x0c, 0xcc,
945 	0x18, 0x59, 0x87, 0xfa, 0x51, 0xd1, 0x80, 0xb5,
946 	0x1a, 0xac, 0xac, 0x29, 0x51, 0xcf, 0x27, 0xaa,
947 	0x74, 0xac, 0x3e, 0x59, 0x56, 0x67, 0xe4, 0x42,
948 	0xe8, 0x30, 0x35, 0xb2, 0xf6, 0x27, 0x91, 0x62,
949 	0x60, 0x42, 0x42, 0x12, 0xde, 0xfe, 0xdd, 0xee,
950 	0xe8, 0xa8, 0x82, 0xf9, 0xb1, 0x08, 0xd5, 0x8d,
951 	0x57, 0x9a, 0x29, 0xb9, 0xb4, 0xe9, 0x19, 0x1e,
952 	0x33, 0x7d, 0x37, 0xa0, 0xce, 0x2e, 0x53, 0x13,
953 	0x39, 0xb6, 0x12, 0x61, 0x63, 0xbf, 0xd3, 0x42,
954 	0xeb, 0x6f, 0xed, 0xc1, 0x8e, 0x26, 0xba, 0x7d,
955 	0x8b, 0x37, 0x7c, 0xbb, 0x42, 0x1e, 0x56, 0x76,
956 	0xda, 0xdb, 0x35, 0x6b, 0x80, 0xe1, 0x8e, 0x00,
957 	0xac, 0xd2, 0xfc, 0x22, 0x96, 0x14, 0x0c, 0xf4,
958 	0xe4, 0xc5, 0xad, 0x14, 0xb7, 0x4d, 0x46, 0x63,
959 	0x30, 0x79, 0x3a, 0x7c, 0x33, 0xb5, 0xe5, 0x2e,
960 	0xbb, 0x5f, 0xca, 0xf2, 0x75, 0xe3, 0x4e, 0x99,
961 	0x64, 0x1b, 0x26, 0x99, 0x60, 0x1a, 0x79, 0xcc,
962 	0x30, 0x2c, 0xb3, 0x4c, 0x59, 0xf7, 0x77, 0x59,
963 	0xd5, 0x90, 0x70, 0x21, 0x79, 0x8c, 0x1f, 0x79,
964 	0x0a, 0x12, 0x8b, 0x3b, 0x37, 0x2d, 0x97, 0x39,
965 	0x89, 0x92, 0x0c, 0x44, 0x7c, 0xe9, 0x9f, 0xce,
966 	0x6d, 0xad, 0xc5, 0xae, 0xea, 0x8e, 0x50, 0x22,
967 	0x37, 0xe0, 0xd1, 0x9e, 0xd6, 0xe6, 0xa8, 0xcc,
968 	0x21, 0xfb, 0xff, 0x02, 0x03, 0x01, 0x00, 0x01,
969 	0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01, 0xef,
970 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
971 	0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
972 	0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
973 	0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x6d,
974 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01, 0xff,
975 	0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06, 0x09,
976 	0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15,
977 	0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b,
978 	0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30,
979 	0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43, 0x00,
980 	0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20, 0x00,
981 	0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00,
982 	0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00,
983 	0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61, 0x00,
984 	0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00,
985 	0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00,
986 	0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00,
987 	0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10, 0x06,
988 	0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30, 0x07,
989 	0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30,
990 	0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01, 0x01,
991 	0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b, 0x30,
992 	0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05, 0x67,
993 	0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69, 0x64,
994 	0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44, 0x32,
995 	0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05, 0x67,
996 	0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53, 0x54,
997 	0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41, 0x48,
998 	0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
999 	0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b, 0x69,
1000 	0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30, 0x30,
1001 	0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
1002 	0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x45,
1003 	0x1a, 0xec, 0xfc, 0x91, 0x70, 0xf8, 0x83, 0x8b,
1004 	0x9c, 0x47, 0x2f, 0x0b, 0x9f, 0x07, 0xf3, 0x2f,
1005 	0x7c, 0xa2, 0x8a, 0x30, 0x1d, 0x06, 0x03, 0x55,
1006 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x55, 0xa6,
1007 	0xee, 0xe3, 0x28, 0xdd, 0x40, 0x7f, 0x21, 0xd2,
1008 	0x7b, 0x8c, 0x69, 0x2f, 0x8c, 0x08, 0x29, 0xbc,
1009 	0x95, 0xb8, 0x30, 0x81, 0xb2, 0x06, 0x08, 0x2b,
1010 	0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
1011 	0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81, 0x9f,
1012 	0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
1013 	0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74, 0x74,
1014 	0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63, 0x73,
1015 	0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73, 0x61,
1016 	0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
1017 	0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x63,
1018 	0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64,
1019 	0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
1020 	0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d, 0x2d,
1021 	0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31, 0x61,
1022 	0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62, 0x35,
1023 	0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30, 0x63,
1024 	0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65, 0x37,
1025 	0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34, 0x33,
1026 	0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f, 0x62,
1027 	0x36, 0x63, 0x30, 0x64, 0x39, 0x38, 0x64, 0x2d,
1028 	0x35, 0x37, 0x38, 0x61, 0x2d, 0x34, 0x62, 0x66,
1029 	0x62, 0x2d, 0x61, 0x32, 0x64, 0x33, 0x2d, 0x65,
1030 	0x64, 0x66, 0x65, 0x35, 0x66, 0x38, 0x32, 0x30,
1031 	0x36, 0x30, 0x31, 0x2e, 0x63, 0x65, 0x72, 0x30,
1032 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
1033 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
1034 	0x02, 0x01, 0x00, 0x2a, 0x08, 0x30, 0x1f, 0xfd,
1035 	0x8f, 0x80, 0x9b, 0x4b, 0x37, 0x82, 0x61, 0x86,
1036 	0x36, 0x57, 0x90, 0xb5, 0x1d, 0x1f, 0xa3, 0xae,
1037 	0x68, 0xac, 0xa7, 0x96, 0x6a, 0x25, 0x5e, 0xc5,
1038 	0x82, 0x7c, 0x36, 0x64, 0x58, 0x11, 0xcb, 0xa5,
1039 	0xee, 0xbf, 0xc4, 0xdb, 0xa0, 0xc7, 0x82, 0x3b,
1040 	0xa3, 0x85, 0x9b, 0xc4, 0xee, 0x07, 0x36, 0xd7,
1041 	0xc7, 0xb6, 0x23, 0xed, 0xc2, 0x73, 0xab, 0xbe,
1042 	0xbe, 0xee, 0x63, 0x17, 0xf9, 0xd7, 0x7a, 0x23,
1043 	0x7b, 0xf8, 0x09, 0x7a, 0xaa, 0x7f, 0x67, 0xc3,
1044 	0x04, 0x84, 0x71, 0x9b, 0x06, 0x9c, 0x07, 0x42,
1045 	0x4b, 0x65, 0x41, 0x56, 0x58, 0x14, 0x92, 0xb0,
1046 	0xb9, 0xaf, 0xa1, 0x39, 0xd4, 0x08, 0x2d, 0x71,
1047 	0xd5, 0x6c, 0x56, 0xb9, 0x2b, 0x1e, 0xf3, 0x93,
1048 	0xa5, 0xe9, 0xb2, 0x9b, 0x4d, 0x05, 0x2b, 0xbc,
1049 	0xd2, 0x20, 0x57, 0x3b, 0xa4, 0x01, 0x68, 0x8c,
1050 	0x23, 0x20, 0x7d, 0xbb, 0x71, 0xe4, 0x2a, 0x24,
1051 	0xba, 0x75, 0x0c, 0x89, 0x54, 0x22, 0xeb, 0x0e,
1052 	0xb2, 0xf4, 0xc2, 0x1f, 0x02, 0xb7, 0xe3, 0x06,
1053 	0x41, 0x15, 0x6b, 0xf3, 0xc8, 0x2d, 0x5b, 0xc2,
1054 	0x21, 0x82, 0x3e, 0xe8, 0x95, 0x40, 0x39, 0x9e,
1055 	0x91, 0x68, 0x33, 0x0c, 0x3d, 0x45, 0xef, 0x99,
1056 	0x79, 0xe6, 0x32, 0xc9, 0x00, 0x84, 0x36, 0xfb,
1057 	0x0a, 0x8d, 0x41, 0x1c, 0x32, 0x64, 0x06, 0x9e,
1058 	0x0f, 0xb5, 0x04, 0xcc, 0x08, 0xb1, 0xb6, 0x2b,
1059 	0xcf, 0x36, 0x0f, 0x73, 0x14, 0x8e, 0x25, 0x44,
1060 	0xb3, 0x0c, 0x34, 0x14, 0x96, 0x0c, 0x8a, 0x65,
1061 	0xa1, 0xde, 0x8e, 0xc8, 0x9d, 0xbe, 0x66, 0xdf,
1062 	0x06, 0x91, 0xca, 0x15, 0x0f, 0x92, 0xd5, 0x2a,
1063 	0x0b, 0xdc, 0x4c, 0x6a, 0xf3, 0x16, 0x4a, 0x3e,
1064 	0xb9, 0x76, 0xbc, 0xfe, 0x62, 0xd4, 0xa8, 0xcd,
1065 	0x94, 0x78, 0x0d, 0xdd, 0x94, 0xfd, 0x5e, 0x63,
1066 	0x57, 0x27, 0x05, 0x9c, 0xd0, 0x80, 0x91, 0x91,
1067 	0x79, 0xe8, 0x5e, 0x18, 0x64, 0x22, 0xe4, 0x2c,
1068 	0x13, 0x65, 0xa4, 0x51, 0x5a, 0x1e, 0x3b, 0x71,
1069 	0x2e, 0x70, 0x9f, 0xc4, 0xa5, 0x20, 0xcd, 0xef,
1070 	0xd8, 0x3f, 0xa4, 0xf5, 0x89, 0x8a, 0xa5, 0x4f,
1071 	0x76, 0x2d, 0x49, 0x56, 0x00, 0x8d, 0xde, 0x40,
1072 	0xba, 0x24, 0x46, 0x51, 0x38, 0xad, 0xdb, 0xc4,
1073 	0x04, 0xf4, 0x6e, 0xc0, 0x29, 0x48, 0x07, 0x6a,
1074 	0x1b, 0x26, 0x32, 0x0a, 0xfb, 0xea, 0x71, 0x2a,
1075 	0x11, 0xfc, 0x98, 0x7c, 0x44, 0x87, 0xbc, 0x06,
1076 	0x3a, 0x4d, 0xbd, 0x91, 0x63, 0x4f, 0x26, 0x48,
1077 	0x54, 0x47, 0x1b, 0xbd, 0xf0, 0xf1, 0x56, 0x05,
1078 	0xc5, 0x0f, 0x8f, 0x20, 0xa5, 0xcc, 0xfb, 0x76,
1079 	0xb0, 0xbd, 0x83, 0xde, 0x7f, 0x39, 0x4f, 0xcf,
1080 	0x61, 0x74, 0x52, 0xa7, 0x1d, 0xf6, 0xb5, 0x5e,
1081 	0x4a, 0x82, 0x20, 0xc1, 0x94, 0xaa, 0x2c, 0x33,
1082 	0xd6, 0x0a, 0xf9, 0x8f, 0x92, 0xc6, 0x29, 0x80,
1083 	0xf5, 0xa2, 0xb1, 0xff, 0xb6, 0x2b, 0xaa, 0x04,
1084 	0x00, 0x72, 0xb4, 0x12, 0xbb, 0xb1, 0xf1, 0x3c,
1085 	0x88, 0xa3, 0xab, 0x49, 0x17, 0x90, 0x80, 0x59,
1086 	0xa2, 0x96, 0x41, 0x69, 0x74, 0x33, 0x8a, 0x28,
1087 	0x33, 0x7e, 0xb3, 0x19, 0x92, 0x28, 0xc1, 0xf0,
1088 	0xd1, 0x82, 0xd5, 0x42, 0xff, 0xe7, 0xa5, 0x3f,
1089 	0x1e, 0xb6, 0x4a, 0x23, 0xcc, 0x6a, 0x7f, 0x15,
1090 	0x15, 0x52, 0x25, 0xb1, 0xca, 0x21, 0x95, 0x11,
1091 	0x53, 0x3e, 0x1f, 0x50, 0x33, 0x12, 0x7a, 0x62,
1092 	0xce, 0xcc, 0x71, 0xc2, 0x5f, 0x34, 0x47, 0xc6,
1093 	0x7c, 0x71, 0xfa, 0xa0, 0x54, 0x00, 0xb2, 0xdf,
1094 	0xc5, 0x54, 0xac, 0x6c, 0x53, 0xef, 0x64, 0x6b,
1095 	0x08, 0x82, 0xd8, 0x16, 0x1e, 0xca, 0x40, 0xf3,
1096 	0x1f, 0xdf, 0x56, 0x63, 0x10, 0xbc, 0xd7, 0xa0,
1097 	0xeb, 0xee, 0xd1, 0x95, 0xe5, 0xef, 0xf1, 0x6a,
1098 	0x83, 0x2d, 0x5a, 0x59, 0x06, 0xef, 0x30, 0x82,
1099 	0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3, 0xa0, 0x03,
1100 	0x02, 0x01, 0x02, 0x02, 0x13, 0x33, 0x00, 0x00,
1101 	0x05, 0x23, 0xbf, 0xe8, 0xa1, 0x1a, 0x2a, 0x68,
1102 	0xbd, 0x09, 0x00, 0x00, 0x00, 0x00, 0x05, 0x23,
1103 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
1104 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
1105 	0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
1106 	0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
1107 	0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
1108 	0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e,
1109 	0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e,
1110 	0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52,
1111 	0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e,
1112 	0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
1113 	0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
1114 	0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f,
1115 	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x36,
1116 	0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
1117 	0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
1118 	0x66, 0x74, 0x20, 0x54, 0x50, 0x4d, 0x20, 0x52,
1119 	0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74,
1120 	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
1121 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
1122 	0x79, 0x20, 0x32, 0x30, 0x31, 0x34, 0x30, 0x1e,
1123 	0x17, 0x0d, 0x32, 0x31, 0x30, 0x36, 0x30, 0x33,
1124 	0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a, 0x17,
1125 	0x0d, 0x32, 0x37, 0x30, 0x36, 0x30, 0x33, 0x31,
1126 	0x39, 0x34, 0x30, 0x31, 0x36, 0x5a, 0x30, 0x41,
1127 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
1128 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
1129 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
1130 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
1131 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
1132 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
1133 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
1134 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
1135 	0x30, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06,
1136 	0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
1137 	0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f,
1138 	0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
1139 	0x01, 0x00, 0xdb, 0x03, 0x34, 0x82, 0xfa, 0x81,
1140 	0x1c, 0x84, 0x0b, 0xa0, 0x0e, 0x60, 0xd8, 0x9d,
1141 	0x84, 0xf4, 0x81, 0xc4, 0xe9, 0xff, 0xcf, 0xe9,
1142 	0xa3, 0x57, 0x53, 0x60, 0xa8, 0x19, 0xce, 0xbe,
1143 	0xe1, 0x97, 0xee, 0x5d, 0x8c, 0x9f, 0xe4, 0xbd,
1144 	0xef, 0xbd, 0x94, 0x14, 0xe4, 0x74, 0x41, 0x02,
1145 	0xe9, 0x03, 0x19, 0x9f, 0xdd, 0x48, 0x2d, 0xbd,
1146 	0xca, 0x26, 0x47, 0x2c, 0x01, 0x31, 0x5f, 0x34,
1147 	0xef, 0x59, 0x35, 0x48, 0x36, 0x3d, 0x1e, 0xdf,
1148 	0xd8, 0x13, 0xf0, 0xd0, 0x67, 0xc1, 0xb0, 0x47,
1149 	0x67, 0xa2, 0xd6, 0x62, 0xc8, 0xe1, 0x00, 0x36,
1150 	0x8b, 0x45, 0xf6, 0x3b, 0x96, 0x60, 0xa0, 0x45,
1151 	0x26, 0xcb, 0xc7, 0x0b, 0x5b, 0x97, 0xd1, 0xaf,
1152 	0x54, 0x25, 0x7a, 0x67, 0xe4, 0x2a, 0xd8, 0x9d,
1153 	0x53, 0x05, 0xbd, 0x12, 0xac, 0xa2, 0x8e, 0x95,
1154 	0xb4, 0x2a, 0xca, 0x89, 0x93, 0x64, 0x97, 0x25,
1155 	0xdc, 0x1f, 0xa9, 0xe0, 0x55, 0x07, 0x38, 0x1d,
1156 	0xee, 0x02, 0x90, 0x22, 0xf5, 0xad, 0x4e, 0x5c,
1157 	0xf8, 0xc5, 0x1f, 0x9e, 0x84, 0x7e, 0x13, 0x47,
1158 	0x52, 0xa2, 0x36, 0xf9, 0xf6, 0xbf, 0x76, 0x9e,
1159 	0x0f, 0xdd, 0x14, 0x99, 0xb9, 0xd8, 0x5a, 0x42,
1160 	0x3d, 0xd8, 0xbf, 0xdd, 0xb4, 0x9b, 0xbf, 0x6a,
1161 	0x9f, 0x89, 0x13, 0x75, 0xaf, 0x96, 0xd2, 0x72,
1162 	0xdf, 0xb3, 0x80, 0x6f, 0x84, 0x1a, 0x9d, 0x06,
1163 	0x55, 0x09, 0x29, 0xea, 0xa7, 0x05, 0x31, 0xec,
1164 	0x47, 0x3a, 0xcf, 0x3f, 0x9c, 0x2c, 0xbd, 0xd0,
1165 	0x7d, 0xe4, 0x75, 0x5b, 0x33, 0xbe, 0x12, 0x86,
1166 	0x09, 0xcf, 0x66, 0x9a, 0xeb, 0xf8, 0xf8, 0x72,
1167 	0x91, 0x88, 0x4a, 0x5e, 0x89, 0x62, 0x6a, 0x94,
1168 	0xdc, 0x48, 0x37, 0x13, 0xd8, 0x91, 0x02, 0xe3,
1169 	0x42, 0x41, 0x7c, 0x2f, 0xe3, 0xb6, 0x0f, 0xb4,
1170 	0x96, 0x06, 0x80, 0xca, 0x28, 0x01, 0x6f, 0x4b,
1171 	0xcd, 0x28, 0xd4, 0x2c, 0x94, 0x7e, 0x40, 0x7e,
1172 	0xdf, 0x01, 0xe5, 0xf2, 0x33, 0xd4, 0xda, 0xf4,
1173 	0x1a, 0x17, 0xf7, 0x5d, 0xcb, 0x66, 0x2c, 0x2a,
1174 	0xeb, 0xe1, 0xb1, 0x4a, 0xc3, 0x85, 0x63, 0xb2,
1175 	0xac, 0xd0, 0x3f, 0x1a, 0x8d, 0xa5, 0x0c, 0xee,
1176 	0x4f, 0xde, 0x74, 0x9c, 0xe0, 0x5a, 0x10, 0xc7,
1177 	0xb8, 0xe4, 0xec, 0xe7, 0x73, 0xa6, 0x41, 0x42,
1178 	0x37, 0xe1, 0xdf, 0xb9, 0xc7, 0xb5, 0x14, 0xa8,
1179 	0x80, 0x95, 0xa0, 0x12, 0x67, 0x99, 0xf5, 0xba,
1180 	0x25, 0x0a, 0x74, 0x86, 0x71, 0x9c, 0x7f, 0x59,
1181 	0x97, 0xd2, 0x3f, 0x10, 0xfe, 0x6a, 0xb9, 0xe4,
1182 	0x47, 0x36, 0xfb, 0x0f, 0x50, 0xee, 0xfc, 0x87,
1183 	0x99, 0x7e, 0x36, 0x64, 0x1b, 0xc7, 0x13, 0xb3,
1184 	0x33, 0x18, 0x71, 0xa4, 0xc3, 0xb0, 0xfc, 0x45,
1185 	0x37, 0x11, 0x40, 0xb3, 0xde, 0x2c, 0x9f, 0x0a,
1186 	0xcd, 0xaf, 0x5e, 0xfb, 0xd5, 0x9c, 0xea, 0xd7,
1187 	0x24, 0x19, 0x3a, 0x92, 0x80, 0xa5, 0x63, 0xc5,
1188 	0x3e, 0xdd, 0x51, 0xd0, 0x9f, 0xb8, 0x5e, 0xd5,
1189 	0xf1, 0xfe, 0xa5, 0x93, 0xfb, 0x7f, 0xd9, 0xb8,
1190 	0xb7, 0x0e, 0x0d, 0x12, 0x71, 0xf0, 0x52, 0x9d,
1191 	0xe9, 0xd0, 0xd2, 0x8b, 0x38, 0x8b, 0x85, 0x83,
1192 	0x98, 0x24, 0x88, 0xe8, 0x42, 0x30, 0x83, 0x12,
1193 	0xef, 0x09, 0x96, 0x2f, 0x21, 0x81, 0x05, 0x30,
1194 	0x0c, 0xbb, 0xba, 0x21, 0x39, 0x16, 0x12, 0xe8,
1195 	0x4b, 0x7b, 0x7a, 0x66, 0xb8, 0x22, 0x2c, 0x71,
1196 	0xaf, 0x59, 0xa1, 0xfc, 0x61, 0xf1, 0xb4, 0x5e,
1197 	0xfc, 0x43, 0x19, 0x45, 0x6e, 0xa3, 0x45, 0xe4,
1198 	0xcb, 0x66, 0x5f, 0xe0, 0x57, 0xf6, 0x0a, 0x30,
1199 	0xa3, 0xd6, 0x51, 0x24, 0xc9, 0x07, 0x55, 0x82,
1200 	0x4a, 0x66, 0x0e, 0x9d, 0xb2, 0x2f, 0x84, 0x56,
1201 	0x6c, 0x3e, 0x71, 0xef, 0x9b, 0x35, 0x4d, 0x72,
1202 	0xdc, 0x46, 0x2a, 0xe3, 0x7b, 0x13, 0x20, 0xbf,
1203 	0xab, 0x77, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
1204 	0x82, 0x01, 0x8e, 0x30, 0x82, 0x01, 0x8a, 0x30,
1205 	0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
1206 	0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x84, 0x30,
1207 	0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x14,
1208 	0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
1209 	0x01, 0x82, 0x37, 0x15, 0x24, 0x06, 0x05, 0x67,
1210 	0x81, 0x05, 0x08, 0x03, 0x30, 0x16, 0x06, 0x03,
1211 	0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30, 0x0d, 0x30,
1212 	0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
1213 	0x82, 0x37, 0x15, 0x1f, 0x30, 0x12, 0x06, 0x03,
1214 	0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
1215 	0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
1216 	0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
1217 	0x16, 0x04, 0x14, 0x45, 0x1a, 0xec, 0xfc, 0x91,
1218 	0x70, 0xf8, 0x83, 0x8b, 0x9c, 0x47, 0x2f, 0x0b,
1219 	0x9f, 0x07, 0xf3, 0x2f, 0x7c, 0xa2, 0x8a, 0x30,
1220 	0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
1221 	0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c, 0x0a, 0xce,
1222 	0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94, 0xd1, 0xae,
1223 	0x55, 0xc1, 0x52, 0xec, 0x71, 0x74, 0xa4, 0x56,
1224 	0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
1225 	0x69, 0x30, 0x67, 0x30, 0x65, 0xa0, 0x63, 0xa0,
1226 	0x61, 0x86, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x3a,
1227 	0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69,
1228 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e,
1229 	0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f,
1230 	0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x4d,
1231 	0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
1232 	0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32,
1233 	0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30,
1234 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
1235 	0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75,
1236 	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25,
1237 	0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63,
1238 	0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08, 0x2b, 0x06,
1239 	0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x71,
1240 	0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
1241 	0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x61,
1242 	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
1243 	0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
1244 	0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
1245 	0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x2f,
1246 	0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69,
1247 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x25,
1248 	0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32, 0x30,
1249 	0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43,
1250 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
1251 	0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75, 0x74,
1252 	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25, 0x32,
1253 	0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63, 0x72,
1254 	0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
1255 	0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
1256 	0x03, 0x82, 0x02, 0x01, 0x00, 0x48, 0x24, 0x32,
1257 	0xe8, 0xd6, 0x38, 0xda, 0x65, 0xec, 0x1b, 0x18,
1258 	0x8e, 0x37, 0x07, 0xd5, 0x18, 0x5a, 0xc8, 0xb9,
1259 	0xbb, 0x24, 0x8a, 0x4d, 0xa1, 0x3c, 0x9e, 0x46,
1260 	0x76, 0xcf, 0xa5, 0xdf, 0xd7, 0x61, 0xba, 0x05,
1261 	0x89, 0x3c, 0x13, 0xc2, 0x1f, 0x71, 0xe3, 0xec,
1262 	0x5d, 0x54, 0x9e, 0xd9, 0x01, 0x5a, 0x10, 0x3b,
1263 	0x17, 0x75, 0xde, 0xa1, 0x45, 0xbf, 0x1d, 0x1b,
1264 	0x41, 0x21, 0x42, 0x68, 0x22, 0x6b, 0xbb, 0xcb,
1265 	0x11, 0x04, 0xd2, 0xae, 0x86, 0xcf, 0x73, 0x5a,
1266 	0xf2, 0x80, 0x18, 0x00, 0xf0, 0xd6, 0x6c, 0x5a,
1267 	0x1e, 0xb3, 0x4d, 0x30, 0x02, 0x4a, 0x6a, 0x03,
1268 	0x36, 0x42, 0xde, 0xb2, 0x52, 0x55, 0xff, 0x71,
1269 	0xeb, 0x7b, 0x8b, 0x55, 0x6c, 0xdf, 0x05, 0x35,
1270 	0x47, 0x70, 0x53, 0xfb, 0x6c, 0xba, 0x06, 0xb2,
1271 	0x61, 0x86, 0xdc, 0x2a, 0x64, 0x81, 0x24, 0x79,
1272 	0x46, 0x73, 0x04, 0x55, 0x59, 0xed, 0xd6, 0x06,
1273 	0x61, 0x15, 0xf9, 0x8d, 0x78, 0x39, 0x7b, 0x84,
1274 	0x7a, 0x40, 0x45, 0x13, 0x1a, 0x91, 0x71, 0x8f,
1275 	0xd1, 0x4f, 0x78, 0x10, 0x68, 0x9b, 0x15, 0x79,
1276 	0x3f, 0x79, 0x2d, 0x9b, 0xc7, 0x5d, 0xa3, 0xcf,
1277 	0xa9, 0x14, 0xb0, 0xc4, 0xdb, 0xa9, 0x45, 0x6a,
1278 	0x6e, 0x60, 0x45, 0x0b, 0x14, 0x25, 0xc7, 0x74,
1279 	0xd0, 0x36, 0xaf, 0xc5, 0xbd, 0x4f, 0x7b, 0xc0,
1280 	0x04, 0x43, 0x85, 0xbb, 0x06, 0x36, 0x77, 0x26,
1281 	0x02, 0x23, 0x0b, 0xf8, 0x57, 0x8f, 0x1f, 0x27,
1282 	0x30, 0x95, 0xff, 0x83, 0x23, 0x2b, 0x49, 0x33,
1283 	0x43, 0x62, 0x87, 0x5d, 0x27, 0x12, 0x1a, 0x68,
1284 	0x7b, 0xba, 0x2d, 0xf6, 0xed, 0x2c, 0x26, 0xb5,
1285 	0xbb, 0xe2, 0x6f, 0xc2, 0x61, 0x17, 0xfc, 0x72,
1286 	0x14, 0x57, 0x2c, 0x2c, 0x5a, 0x92, 0x13, 0x41,
1287 	0xc4, 0x7e, 0xb5, 0x64, 0x5b, 0x86, 0x57, 0x13,
1288 	0x14, 0xff, 0xf5, 0x04, 0xb9, 0x3d, 0x2d, 0xc3,
1289 	0xe9, 0x75, 0x1f, 0x68, 0x0b, 0xb5, 0x76, 0xe1,
1290 	0x7d, 0xe3, 0xb0, 0x14, 0xa8, 0x45, 0x05, 0x98,
1291 	0x81, 0x32, 0xc1, 0xf5, 0x49, 0x4d, 0x58, 0xa4,
1292 	0xee, 0xd8, 0x84, 0xba, 0x65, 0x07, 0x8d, 0xf7,
1293 	0x9a, 0xff, 0x7d, 0xa5, 0xbc, 0x9a, 0xed, 0x4a,
1294 	0x5d, 0xa4, 0x97, 0x4b, 0x4d, 0x31, 0x90, 0xb5,
1295 	0x7d, 0x28, 0x77, 0x25, 0x88, 0x1c, 0xbf, 0x78,
1296 	0x22, 0xb2, 0xb5, 0x5c, 0x9a, 0xc9, 0x63, 0x17,
1297 	0x96, 0xe9, 0xc2, 0x52, 0x30, 0xb8, 0x9b, 0x37,
1298 	0x69, 0x1a, 0x6a, 0x66, 0x76, 0x18, 0xac, 0xc0,
1299 	0x48, 0xee, 0x46, 0x5b, 0xbe, 0x6a, 0xd5, 0x72,
1300 	0x07, 0xdc, 0x7d, 0x05, 0xbe, 0x76, 0x7d, 0xa5,
1301 	0x5e, 0x53, 0xb5, 0x47, 0x80, 0x58, 0xf0, 0xaf,
1302 	0x6f, 0x4e, 0xc0, 0xf1, 0x1e, 0x37, 0x64, 0x15,
1303 	0x42, 0x96, 0x18, 0x3a, 0x89, 0xc8, 0x14, 0x48,
1304 	0x89, 0x5c, 0x12, 0x88, 0x98, 0x0b, 0x7b, 0x4e,
1305 	0xce, 0x1c, 0xda, 0xd5, 0xa4, 0xd3, 0x32, 0x32,
1306 	0x74, 0x5b, 0xcc, 0xfd, 0x2b, 0x02, 0xfb, 0xae,
1307 	0xd0, 0x5a, 0x4c, 0xc9, 0xc1, 0x35, 0x19, 0x90,
1308 	0x5f, 0xca, 0x14, 0xeb, 0x4c, 0x17, 0xd7, 0xe3,
1309 	0xe2, 0x5d, 0xb4, 0x49, 0xaa, 0xf0, 0x50, 0x87,
1310 	0xc3, 0x20, 0x00, 0xda, 0xe9, 0x04, 0x80, 0x64,
1311 	0xac, 0x9f, 0xcd, 0x26, 0x41, 0x48, 0xe8, 0x4c,
1312 	0x46, 0xcc, 0x5b, 0xd7, 0xca, 0x4c, 0x1b, 0x43,
1313 	0x43, 0x1e, 0xbd, 0x94, 0xe7, 0xa7, 0xa6, 0x86,
1314 	0xe5, 0xd1, 0x78, 0x29, 0xa2, 0x40, 0xc5, 0xc5,
1315 	0x47, 0xb6, 0x6d, 0x53, 0xde, 0xac, 0x97, 0x74,
1316 	0x24, 0x57, 0xcc, 0x05, 0x93, 0xfd, 0x52, 0x35,
1317 	0x29, 0xd5, 0xe0, 0xfa, 0x23, 0x0d, 0xd7, 0xaa,
1318 	0x8b, 0x07, 0x4b, 0xf6, 0x64, 0xc7, 0xad, 0x3c,
1319 	0xa1, 0xb5, 0xc5, 0x70, 0xaf, 0x46, 0xfe, 0x9a,
1320 	0x82, 0x4d, 0x75, 0xb8, 0x6d, 0x67, 0x70, 0x75,
1321 	0x62, 0x41, 0x72, 0x65, 0x61, 0x58, 0x76, 0x00,
1322 	0x23, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x72, 0x00,
1323 	0x20, 0x9d, 0xff, 0xcb, 0xf3, 0x6c, 0x38, 0x3a,
1324 	0xe6, 0x99, 0xfb, 0x98, 0x68, 0xdc, 0x6d, 0xcb,
1325 	0x89, 0xd7, 0x15, 0x38, 0x84, 0xbe, 0x28, 0x03,
1326 	0x92, 0x2c, 0x12, 0x41, 0x58, 0xbf, 0xad, 0x22,
1327 	0xae, 0x00, 0x10, 0x00, 0x10, 0x00, 0x03, 0x00,
1328 	0x10, 0x00, 0x20, 0xfb, 0xd6, 0xba, 0x74, 0xe6,
1329 	0x6e, 0x5c, 0x87, 0xef, 0x89, 0xa2, 0xe8, 0x3d,
1330 	0x0b, 0xe9, 0x69, 0x2c, 0x07, 0x07, 0x7a, 0x8a,
1331 	0x1e, 0xce, 0x12, 0xea, 0x3b, 0xb3, 0xf1, 0xf3,
1332 	0xd9, 0xc3, 0xe6, 0x00, 0x20, 0x3c, 0x68, 0x51,
1333 	0x94, 0x54, 0x8d, 0xeb, 0x9f, 0xb2, 0x2c, 0x66,
1334 	0x75, 0xb6, 0xb7, 0x55, 0x22, 0x0d, 0x87, 0x59,
1335 	0xc4, 0x39, 0x91, 0x62, 0x17, 0xc2, 0xc3, 0x53,
1336 	0xa5, 0x26, 0x97, 0x4f, 0x2d, 0x68, 0x63, 0x65,
1337 	0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x58, 0xa1,
1338 	0xff, 0x54, 0x43, 0x47, 0x80, 0x17, 0x00, 0x22,
1339 	0x00, 0x0b, 0x73, 0xbe, 0xb7, 0x40, 0x82, 0xc0,
1340 	0x49, 0x9a, 0xf7, 0xf2, 0xd0, 0x79, 0x6c, 0x88,
1341 	0xf3, 0x56, 0x7b, 0x7a, 0x7d, 0xcd, 0x70, 0xd1,
1342 	0xbc, 0x41, 0x88, 0x48, 0x51, 0x03, 0xf3, 0x58,
1343 	0x3e, 0xb8, 0x00, 0x14, 0x9f, 0x57, 0x39, 0x67,
1344 	0xa8, 0x7b, 0xd8, 0xf6, 0x9e, 0x75, 0xc9, 0x85,
1345 	0xab, 0xe3, 0x55, 0xc7, 0x9c, 0xf6, 0xd8, 0x4f,
1346 	0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x1c, 0x12,
1347 	0xfd, 0xc6, 0x05, 0xc6, 0x2b, 0xf5, 0xe9, 0x88,
1348 	0x01, 0x1f, 0x70, 0x8d, 0x98, 0x2a, 0x04, 0x21,
1349 	0x30, 0x00, 0x22, 0x00, 0x0b, 0xf4, 0xfd, 0x9a,
1350 	0x33, 0x55, 0x21, 0x08, 0x27, 0x48, 0x55, 0x01,
1351 	0x56, 0xf9, 0x0b, 0x4e, 0x47, 0x55, 0x08, 0x2e,
1352 	0x3c, 0x91, 0x3d, 0x6e, 0x53, 0xcf, 0x08, 0xe9,
1353 	0x0a, 0x4b, 0xc9, 0x7e, 0x99, 0x00, 0x22, 0x00,
1354 	0x0b, 0x51, 0xd3, 0x38, 0xfe, 0xaa, 0xda, 0xc6,
1355 	0x68, 0x84, 0x39, 0xe7, 0xb1, 0x03, 0x22, 0x5e,
1356 	0xc4, 0xd3, 0xf1, 0x0c, 0xec, 0x35, 0x5d, 0x50,
1357 	0xa3, 0x9d, 0xab, 0xa1, 0x7b, 0x61, 0x51, 0x8f,
1358 	0x4e
1359 };
1360 
1361 /*
1362  * Security Key By Yubico
1363  * 5.1.X
1364  * f8a011f3-8c0a-4d15-8006-17111f9edc7d
1365  */
1366 const unsigned char aaguid[16] = {
1367 	0xf8, 0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15,
1368 	0x80, 0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d,
1369 };
1370 
1371 /*
1372  * Windows Hello by Microsoft
1373  */
1374 const unsigned char aaguid_tpm[16] = {
1375 	0x08, 0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81,
1376 	0xb6, 0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96,
1377 };
1378 
1379 const char rp_id[] = "localhost";
1380 const char rp_name[] = "sweet home localhost";
1381 
1382 static void *
1383 dummy_open(const char *path)
1384 {
1385 	(void)path;
1386 
1387 	return (FAKE_DEV_HANDLE);
1388 }
1389 
1390 static void
1391 dummy_close(void *handle)
1392 {
1393 	assert(handle == FAKE_DEV_HANDLE);
1394 }
1395 
1396 static int
1397 dummy_read(void *handle, unsigned char *buf, size_t len, int ms)
1398 {
1399 	(void)handle;
1400 	(void)buf;
1401 	(void)len;
1402 	(void)ms;
1403 
1404 	abort();
1405 	/* NOTREACHED */
1406 }
1407 
1408 static int
1409 dummy_write(void *handle, const unsigned char *buf, size_t len)
1410 {
1411 	(void)handle;
1412 	(void)buf;
1413 	(void)len;
1414 
1415 	abort();
1416 	/* NOTREACHED */
1417 }
1418 
1419 static fido_cred_t *
1420 alloc_cred(void)
1421 {
1422 	fido_cred_t *c;
1423 
1424 	c = fido_cred_new();
1425 	assert(c != NULL);
1426 
1427 	return (c);
1428 }
1429 
1430 static void
1431 free_cred(fido_cred_t *c)
1432 {
1433 	fido_cred_free(&c);
1434 	assert(c == NULL);
1435 }
1436 
1437 static fido_dev_t *
1438 alloc_dev(void)
1439 {
1440 	fido_dev_t *d;
1441 
1442 	d = fido_dev_new();
1443 	assert(d != NULL);
1444 
1445 	return (d);
1446 }
1447 
1448 static void
1449 free_dev(fido_dev_t *d)
1450 {
1451 	fido_dev_free(&d);
1452 	assert(d == NULL);
1453 }
1454 
1455 static void
1456 empty_cred(void)
1457 {
1458 	fido_cred_t *c;
1459 	fido_dev_t *d;
1460 	fido_dev_io_t io_f;
1461 
1462 	c = alloc_cred();
1463 	assert(fido_cred_authdata_len(c) == 0);
1464 	assert(fido_cred_authdata_ptr(c) == NULL);
1465 	assert(fido_cred_authdata_raw_len(c) == 0);
1466 	assert(fido_cred_authdata_raw_ptr(c) == NULL);
1467 	assert(fido_cred_clientdata_hash_len(c) == 0);
1468 	assert(fido_cred_clientdata_hash_ptr(c) == NULL);
1469 	assert(fido_cred_flags(c) == 0);
1470 	assert(fido_cred_fmt(c) == NULL);
1471 	assert(fido_cred_id_len(c) == 0);
1472 	assert(fido_cred_id_ptr(c) == NULL);
1473 	assert(fido_cred_prot(c) == 0);
1474 	assert(fido_cred_pubkey_len(c) == 0);
1475 	assert(fido_cred_pubkey_ptr(c) == NULL);
1476 	assert(fido_cred_rp_id(c) == NULL);
1477 	assert(fido_cred_rp_name(c) == NULL);
1478 	assert(fido_cred_sig_len(c) == 0);
1479 	assert(fido_cred_sig_ptr(c) == NULL);
1480 	assert(fido_cred_x5c_len(c) == 0);
1481 	assert(fido_cred_x5c_ptr(c) == NULL);
1482 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1483 
1484 	memset(&io_f, 0, sizeof(io_f));
1485 
1486 	io_f.open = dummy_open;
1487 	io_f.close = dummy_close;
1488 	io_f.read = dummy_read;
1489 	io_f.write = dummy_write;
1490 
1491 	d = alloc_dev();
1492 
1493 	fido_dev_force_u2f(d);
1494 	assert(fido_dev_set_io_functions(d, &io_f) == FIDO_OK);
1495 	assert(fido_dev_make_cred(d, c, NULL) == FIDO_ERR_INVALID_ARGUMENT);
1496 	assert(fido_dev_make_cred(d, c, "") == FIDO_ERR_UNSUPPORTED_OPTION);
1497 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1498 
1499 	fido_dev_force_fido2(d);
1500 	assert(fido_dev_set_io_functions(d, &io_f) == FIDO_OK);
1501 	assert(fido_dev_make_cred(d, c, NULL) == FIDO_ERR_INVALID_ARGUMENT);
1502 	assert(fido_dev_make_cred(d, c, "") == FIDO_ERR_INVALID_ARGUMENT);
1503 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1504 
1505 	free_cred(c);
1506 	free_dev(d);
1507 }
1508 
1509 static void
1510 valid_cred(void)
1511 {
1512 	fido_cred_t *c;
1513 
1514 	c = alloc_cred();
1515 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1516 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1517 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1518 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1519 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1520 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1521 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1522 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1523 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1524 	assert(fido_cred_verify(c) == FIDO_OK);
1525 	assert(fido_cred_prot(c) == 0);
1526 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1527 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1528 	assert(fido_cred_id_len(c) == sizeof(id));
1529 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1530 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1531 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1532 	free_cred(c);
1533 }
1534 
1535 static void
1536 no_cdh(void)
1537 {
1538 	fido_cred_t *c;
1539 
1540 	c = alloc_cred();
1541 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1542 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1543 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1544 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1545 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1546 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1547 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1548 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1549 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1550 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1551 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1552 	assert(fido_cred_id_len(c) == sizeof(id));
1553 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1554 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1555 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1556 	free_cred(c);
1557 }
1558 
1559 static void
1560 no_rp_id(void)
1561 {
1562 	fido_cred_t *c;
1563 
1564 	c = alloc_cred();
1565 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1566 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1567 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1568 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1569 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1570 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1571 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1572 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1573 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1574 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1575 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1576 	assert(fido_cred_id_len(c) == sizeof(id));
1577 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1578 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1579 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1580 	free_cred(c);
1581 }
1582 
1583 static void
1584 no_rp_name(void)
1585 {
1586 	fido_cred_t *c;
1587 
1588 	c = alloc_cred();
1589 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1590 	assert(fido_cred_set_rp(c, rp_id, NULL) == FIDO_OK);
1591 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1592 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1593 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1594 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1595 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1596 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1597 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1598 	assert(fido_cred_verify(c) == FIDO_OK);
1599 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1600 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1601 	assert(fido_cred_id_len(c) == sizeof(id));
1602 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1603 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1604 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1605 	free_cred(c);
1606 }
1607 
1608 static void
1609 no_authdata(void)
1610 {
1611 	fido_cred_t *c;
1612 	unsigned char *unset;
1613 
1614 	unset = calloc(1, sizeof(aaguid));
1615 	assert(unset != NULL);
1616 
1617 	c = alloc_cred();
1618 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1619 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1620 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1621 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1622 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1623 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1624 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1625 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1626 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1627 	assert(fido_cred_pubkey_len(c) == 0);
1628 	assert(fido_cred_pubkey_ptr(c) == NULL);
1629 	assert(fido_cred_id_len(c) == 0);
1630 	assert(fido_cred_id_ptr(c) == NULL);
1631 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1632 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
1633 	free_cred(c);
1634 	free(unset);
1635 }
1636 
1637 static void
1638 no_x509(void)
1639 {
1640 	fido_cred_t *c;
1641 
1642 	c = alloc_cred();
1643 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1644 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1645 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1646 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1647 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1648 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1649 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1650 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1651 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1652 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1653 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1654 	assert(fido_cred_id_len(c) == sizeof(id));
1655 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1656 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1657 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1658 	free_cred(c);
1659 }
1660 
1661 static void
1662 no_sig(void)
1663 {
1664 	fido_cred_t *c;
1665 
1666 	c = alloc_cred();
1667 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1668 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1669 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1670 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1671 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1672 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1673 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1674 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1675 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1676 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1677 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1678 	assert(fido_cred_id_len(c) == sizeof(id));
1679 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1680 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1681 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1682 	free_cred(c);
1683 }
1684 
1685 static void
1686 no_fmt(void)
1687 {
1688 	fido_cred_t *c;
1689 
1690 	c = alloc_cred();
1691 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1692 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1693 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1694 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1695 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1696 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1697 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1698 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1699 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1700 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1701 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1702 	assert(fido_cred_id_len(c) == sizeof(id));
1703 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1704 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1705 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1706 	free_cred(c);
1707 }
1708 
1709 static void
1710 wrong_options(void)
1711 {
1712 	fido_cred_t *c;
1713 
1714 	c = alloc_cred();
1715 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1716 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1717 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1718 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1719 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1720 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
1721 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1722 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1723 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1724 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
1725 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1726 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1727 	assert(fido_cred_id_len(c) == sizeof(id));
1728 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1729 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1730 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1731 	free_cred(c);
1732 }
1733 
1734 static void
1735 junk_cdh(void)
1736 {
1737 	fido_cred_t *c;
1738 	unsigned char *junk;
1739 
1740 	junk = malloc(sizeof(cdh));
1741 	assert(junk != NULL);
1742 	memcpy(junk, cdh, sizeof(cdh));
1743 	junk[0] = (unsigned char)~junk[0];
1744 
1745 	c = alloc_cred();
1746 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1747 	assert(fido_cred_set_clientdata_hash(c, junk, sizeof(cdh)) == FIDO_OK);
1748 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1749 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1750 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1751 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1752 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1753 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1754 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1755 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
1756 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1757 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1758 	assert(fido_cred_id_len(c) == sizeof(id));
1759 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1760 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1761 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1762 	free_cred(c);
1763 	free(junk);
1764 }
1765 
1766 static void
1767 junk_fmt(void)
1768 {
1769 	fido_cred_t *c;
1770 
1771 	c = alloc_cred();
1772 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1773 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1774 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1775 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1776 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1777 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1778 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1779 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1780 	assert(fido_cred_set_fmt(c, "junk") == FIDO_ERR_INVALID_ARGUMENT);
1781 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1782 	free_cred(c);
1783 }
1784 
1785 static void
1786 junk_rp_id(void)
1787 {
1788 	fido_cred_t *c;
1789 
1790 	c = alloc_cred();
1791 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1792 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1793 	assert(fido_cred_set_rp(c, "potato", rp_name) == FIDO_OK);
1794 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1795 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1796 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1797 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1798 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1799 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1800 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
1801 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1802 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1803 	assert(fido_cred_id_len(c) == sizeof(id));
1804 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1805 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1806 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1807 	free_cred(c);
1808 }
1809 
1810 static void
1811 junk_rp_name(void)
1812 {
1813 	fido_cred_t *c;
1814 
1815 	c = alloc_cred();
1816 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1817 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1818 	assert(fido_cred_set_rp(c, rp_id, "potato") == FIDO_OK);
1819 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1820 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1821 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1822 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1823 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1824 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1825 	assert(fido_cred_verify(c) == FIDO_OK);
1826 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1827 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1828 	assert(fido_cred_id_len(c) == sizeof(id));
1829 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1830 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1831 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1832 	free_cred(c);
1833 }
1834 
1835 static void
1836 junk_authdata(void)
1837 {
1838 	fido_cred_t *c;
1839 	unsigned char *junk;
1840 	unsigned char *unset;
1841 
1842 	junk = malloc(sizeof(authdata));
1843 	assert(junk != NULL);
1844 	memcpy(junk, authdata, sizeof(authdata));
1845 	junk[0] = (unsigned char)~junk[0];
1846 
1847 	unset = calloc(1, sizeof(aaguid));
1848 	assert(unset != NULL);
1849 
1850 	c = alloc_cred();
1851 	assert(fido_cred_set_authdata(c, junk,
1852 	    sizeof(authdata)) == FIDO_ERR_INVALID_ARGUMENT);
1853 	assert(fido_cred_authdata_len(c) == 0);
1854 	assert(fido_cred_authdata_ptr(c) == NULL);
1855 	assert(fido_cred_authdata_raw_len(c) == 0);
1856 	assert(fido_cred_authdata_raw_ptr(c) == NULL);
1857 	assert(fido_cred_flags(c) == 0);
1858 	assert(fido_cred_fmt(c) == NULL);
1859 	assert(fido_cred_id_len(c) == 0);
1860 	assert(fido_cred_id_ptr(c) == NULL);
1861 	assert(fido_cred_pubkey_len(c) == 0);
1862 	assert(fido_cred_pubkey_ptr(c) == NULL);
1863 	assert(fido_cred_rp_id(c) == NULL);
1864 	assert(fido_cred_rp_name(c) == NULL);
1865 	assert(fido_cred_sig_len(c) == 0);
1866 	assert(fido_cred_sig_ptr(c) == NULL);
1867 	assert(fido_cred_x5c_len(c) == 0);
1868 	assert(fido_cred_x5c_ptr(c) == NULL);
1869 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1870 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
1871 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1872 	free_cred(c);
1873 	free(junk);
1874 	free(unset);
1875 }
1876 
1877 static void
1878 junk_sig(void)
1879 {
1880 	fido_cred_t *c;
1881 	unsigned char *junk;
1882 
1883 	junk = malloc(sizeof(sig));
1884 	assert(junk != NULL);
1885 	memcpy(junk, sig, sizeof(sig));
1886 	junk[0] = (unsigned char)~junk[0];
1887 
1888 	c = alloc_cred();
1889 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1890 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1891 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1892 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1893 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1894 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1895 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1896 	assert(fido_cred_set_sig(c, junk, sizeof(sig)) == FIDO_OK);
1897 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1898 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
1899 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1900 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1901 	assert(fido_cred_id_len(c) == sizeof(id));
1902 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1903 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1904 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1905 	free_cred(c);
1906 	free(junk);
1907 }
1908 
1909 static void
1910 junk_x509(void)
1911 {
1912 	fido_cred_t *c;
1913 	unsigned char *junk;
1914 
1915 	junk = malloc(sizeof(x509));
1916 	assert(junk != NULL);
1917 	memcpy(junk, x509, sizeof(x509));
1918 	junk[0] = (unsigned char)~junk[0];
1919 
1920 	c = alloc_cred();
1921 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1922 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1923 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1924 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1925 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1926 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1927 	assert(fido_cred_set_x509(c, junk, sizeof(x509)) == FIDO_OK);
1928 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1929 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1930 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
1931 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
1932 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
1933 	assert(fido_cred_id_len(c) == sizeof(id));
1934 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
1935 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1936 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
1937 	free_cred(c);
1938 	free(junk);
1939 }
1940 
1941 /* github issue #6 */
1942 static void
1943 invalid_type(void)
1944 {
1945 	fido_cred_t *c;
1946 	unsigned char *unset;
1947 
1948 	unset = calloc(1, sizeof(aaguid));
1949 	assert(unset != NULL);
1950 
1951 	c = alloc_cred();
1952 	assert(fido_cred_set_type(c, COSE_RS256) == FIDO_OK);
1953 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
1954 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
1955 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_ERR_INVALID_ARGUMENT);
1956 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
1957 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
1958 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
1959 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
1960 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
1961 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
1962 	assert(fido_cred_pubkey_len(c) == 0);
1963 	assert(fido_cred_pubkey_ptr(c) == NULL);
1964 	assert(fido_cred_id_len(c) == 0);
1965 	assert(fido_cred_id_ptr(c) == NULL);
1966 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
1967 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
1968 	free_cred(c);
1969 	free(unset);
1970 }
1971 
1972 /* cbor_serialize_alloc misuse */
1973 static void
1974 bad_cbor_serialize(void)
1975 {
1976 	fido_cred_t *c;
1977 
1978 	c = alloc_cred();
1979 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1980 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
1981 	assert(fido_cred_authdata_len(c) == sizeof(authdata));
1982 	free_cred(c);
1983 }
1984 
1985 static void
1986 duplicate_keys(void)
1987 {
1988 	fido_cred_t *c;
1989 
1990 	c = alloc_cred();
1991 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
1992 	assert(fido_cred_set_authdata(c, authdata_dupkeys,
1993 	    sizeof(authdata_dupkeys)) == FIDO_ERR_INVALID_ARGUMENT);
1994 	free_cred(c);
1995 }
1996 
1997 static void
1998 unsorted_keys(void)
1999 {
2000 	fido_cred_t *c;
2001 
2002 	c = alloc_cred();
2003 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2004 	assert(fido_cred_set_authdata(c, authdata_unsorted_keys,
2005 	    sizeof(authdata_unsorted_keys)) == FIDO_ERR_INVALID_ARGUMENT);
2006 	free_cred(c);
2007 }
2008 
2009 static void
2010 wrong_credprot(void)
2011 {
2012 	fido_cred_t *c;
2013 
2014 	c = alloc_cred();
2015 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2016 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2017 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2018 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2019 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2020 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2021 	assert(fido_cred_set_prot(c, FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID) == FIDO_OK);
2022 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2023 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
2024 	free_cred(c);
2025 }
2026 
2027 static void
2028 raw_authdata(void)
2029 {
2030 	fido_cred_t *c;
2031 	cbor_item_t *item;
2032 	struct cbor_load_result cbor_result;
2033 	const unsigned char *ptr;
2034 	unsigned char *cbor;
2035 	size_t len;
2036 	size_t cbor_len;
2037 	size_t alloclen;
2038 
2039 	c = alloc_cred();
2040 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2041 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2042 	assert((ptr = fido_cred_authdata_ptr(c)) != NULL);
2043 	assert((len = fido_cred_authdata_len(c)) != 0);
2044 	assert((item = cbor_load(ptr, len, &cbor_result)) != NULL);
2045 	assert(cbor_result.read == len);
2046 	assert(cbor_isa_bytestring(item));
2047 	assert((ptr = fido_cred_authdata_raw_ptr(c)) != NULL);
2048 	assert((len = fido_cred_authdata_raw_len(c)) != 0);
2049 	assert(cbor_bytestring_length(item) == len);
2050 	assert(memcmp(ptr, cbor_bytestring_handle(item), len) == 0);
2051 	assert((len = fido_cred_authdata_len(c)) != 0);
2052 	assert((cbor_len = cbor_serialize_alloc(item, &cbor, &alloclen)) == len);
2053 	assert((ptr = cbor_bytestring_handle(item)) != NULL);
2054 	assert((len = cbor_bytestring_length(item)) != 0);
2055 	assert(fido_cred_set_authdata_raw(c, ptr, len) == FIDO_OK);
2056 	assert((ptr = fido_cred_authdata_ptr(c)) != NULL);
2057 	assert((len = fido_cred_authdata_len(c)) != 0);
2058 	assert(len == cbor_len);
2059 	assert(memcmp(cbor, ptr, len) == 0);
2060 	assert(cbor_len == sizeof(authdata));
2061 	assert(memcmp(cbor, authdata, cbor_len) == 0);
2062 	cbor_decref(&item);
2063 	free(cbor);
2064 	free_cred(c);
2065 }
2066 
2067 static void
2068 fmt_none(void)
2069 {
2070 	fido_cred_t *c;
2071 
2072 	c = alloc_cred();
2073 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2074 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2075 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2076 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2077 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2078 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2079 	assert(fido_cred_set_fmt(c, "none") == FIDO_OK);
2080 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2081 	assert(fido_cred_prot(c) == 0);
2082 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2083 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2084 	assert(fido_cred_id_len(c) == sizeof(id));
2085 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2086 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2087 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2088 	free_cred(c);
2089 }
2090 
2091 static void
2092 valid_tpm_rs256_cred(void)
2093 {
2094 	fido_cred_t *c;
2095 
2096 	c = alloc_cred();
2097 	assert(fido_cred_set_type(c, COSE_RS256) == FIDO_OK);
2098 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
2099 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2100 	assert(fido_cred_set_authdata(c, authdata_tpm_rs256, sizeof(authdata_tpm_rs256)) == FIDO_OK);
2101 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2102 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2103 	assert(fido_cred_set_fmt(c, "tpm") == FIDO_OK);
2104 	assert(fido_cred_set_attstmt(c, attstmt_tpm_rs256, sizeof(attstmt_tpm_rs256)) == FIDO_OK);
2105 	assert(fido_cred_verify(c) == FIDO_OK);
2106 	assert(fido_cred_prot(c) == 0);
2107 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_rs256));
2108 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_rs256, sizeof(pubkey_tpm_rs256)) == 0);
2109 	assert(fido_cred_id_len(c) == sizeof(id_tpm_rs256));
2110 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_rs256, sizeof(id_tpm_rs256)) == 0);
2111 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
2112 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
2113 	free_cred(c);
2114 }
2115 
2116 static void
2117 valid_tpm_es256_cred(void)
2118 {
2119 	fido_cred_t *c;
2120 
2121 	c = alloc_cred();
2122 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2123 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
2124 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2125 	assert(fido_cred_set_authdata(c, authdata_tpm_es256, sizeof(authdata_tpm_es256)) == FIDO_OK);
2126 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2127 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2128 	assert(fido_cred_set_fmt(c, "tpm") == FIDO_OK);
2129 	assert(fido_cred_set_attstmt(c, attstmt_tpm_es256, sizeof(attstmt_tpm_es256)) == FIDO_OK);
2130 	assert(fido_cred_verify(c) == FIDO_OK);
2131 	assert(fido_cred_prot(c) == 0);
2132 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_es256));
2133 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_es256, sizeof(pubkey_tpm_es256)) == 0);
2134 	assert(fido_cred_id_len(c) == sizeof(id_tpm_es256));
2135 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_es256, sizeof(id_tpm_es256)) == 0);
2136 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
2137 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
2138 	free_cred(c);
2139 }
2140 
2141 int
2142 main(void)
2143 {
2144 	fido_init(0);
2145 
2146 	empty_cred();
2147 	valid_cred();
2148 	no_cdh();
2149 	no_rp_id();
2150 	no_rp_name();
2151 	no_authdata();
2152 	no_x509();
2153 	no_sig();
2154 	no_fmt();
2155 	junk_cdh();
2156 	junk_fmt();
2157 	junk_rp_id();
2158 	junk_rp_name();
2159 	junk_authdata();
2160 	junk_x509();
2161 	junk_sig();
2162 	wrong_options();
2163 	invalid_type();
2164 	bad_cbor_serialize();
2165 	duplicate_keys();
2166 	unsorted_keys();
2167 	wrong_credprot();
2168 	raw_authdata();
2169 	fmt_none();
2170 	valid_tpm_rs256_cred();
2171 	valid_tpm_es256_cred();
2172 
2173 	exit(0);
2174 }
2175