xref: /freebsd/contrib/libfido2/regress/cred.c (revision febb0da5bf4bc99828ebede7abcb039514ac367a)
1 /*
2  * Copyright (c) 2018-2024 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  * SPDX-License-Identifier: BSD-2-Clause
6  */
7 
8 #undef NDEBUG
9 
10 #include <assert.h>
11 #include <string.h>
12 #include <stdlib.h>
13 #include <stdbool.h>
14 
15 #define _FIDO_INTERNAL
16 
17 #include <fido.h>
18 #include "extern.h"
19 #include "../fuzz/wiredata_fido2.h"
20 
21 #define REGRESS_WIREDATA_MAKECRED			\
22 	0x00, 0x22, 0x00, 0x02, 0x90, 0x04, 0x13, 0x00,	\
23 	0xa3, 0x01, 0x66, 0x70, 0x61, 0x63, 0x6b, 0x65,	\
24 	0x64, 0x02, 0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5,	\
25 	0x88, 0x0e, 0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f,	\
26 	0x64, 0x76, 0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9,	\
27 	0xa2, 0x86, 0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba,	\
28 	0x83, 0x1d, 0x97, 0x63, 0x41, 0x00, 0x00, 0x00,	\
29 	0x04, 0xf8, 0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d,	\
30 	0x00, 0x22, 0x00, 0x02, 0x00, 0x15, 0x80, 0x06,	\
31 	0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00, 0x40,	\
32 	0x19, 0x6a, 0xa6, 0xa4, 0xff, 0xa7, 0x1d, 0x38,	\
33 	0xf2, 0xa6, 0x87, 0x98, 0xf7, 0xf7, 0xc0, 0x95,	\
34 	0x57, 0x78, 0xda, 0xec, 0xb9, 0x73, 0xb7, 0xbb,	\
35 	0x97, 0x40, 0x31, 0x0d, 0xec, 0xc1, 0x5b, 0x20,	\
36 	0x84, 0x87, 0xae, 0xa8, 0xb7, 0xd0, 0x94, 0xd6,	\
37 	0xfc, 0x1d, 0x37, 0xbf, 0xaa, 0x33, 0x12, 0x35,	\
38 	0x00, 0x22, 0x00, 0x02, 0x01, 0x29, 0xf5, 0x09,	\
39 	0x76, 0x91, 0x20, 0x94, 0x42, 0xc4, 0x52, 0x8b,	\
40 	0x18, 0xca, 0xe1, 0x3d, 0x12, 0xa5, 0x01, 0x02,	\
41 	0x03, 0x26, 0x20, 0x01, 0x21, 0x58, 0x20, 0xf8,	\
42 	0x28, 0x2e, 0x88, 0x10, 0xfe, 0xa4, 0xda, 0x50,	\
43 	0x6c, 0xef, 0x2d, 0x48, 0x0d, 0xba, 0x71, 0xaf,	\
44 	0xb8, 0x76, 0x78, 0xb8, 0xc3, 0x32, 0x80, 0x0d,	\
45 	0x8c, 0x1f, 0xba, 0xb4, 0xbf, 0xa0, 0xa1, 0x22,	\
46 	0x00, 0x22, 0x00, 0x02, 0x02, 0x58, 0x20, 0xc3,	\
47 	0x88, 0x0f, 0x7e, 0x87, 0x05, 0x98, 0x32, 0x21,	\
48 	0xf3, 0x2d, 0xaf, 0x23, 0x8c, 0x08, 0x49, 0x6b,	\
49 	0x30, 0x6d, 0x8a, 0x53, 0x8a, 0xb2, 0xed, 0xc7,	\
50 	0xe8, 0xdf, 0x8a, 0x54, 0xf3, 0x0f, 0x8d, 0x03,	\
51 	0xa3, 0x63, 0x61, 0x6c, 0x67, 0x26, 0x63, 0x73,	\
52 	0x69, 0x67, 0x58, 0x47, 0x30, 0x45, 0x02, 0x21,	\
53 	0x00, 0x89, 0xec, 0x44, 0xbc, 0xa9, 0x4a, 0x8d,	\
54 	0x00, 0x22, 0x00, 0x02, 0x03, 0xf8, 0x38, 0xa1,	\
55 	0x86, 0x39, 0x8f, 0xbd, 0xca, 0x4f, 0x0c, 0xe4,	\
56 	0x60, 0xa1, 0x62, 0xb7, 0x93, 0x9a, 0x42, 0x8a,	\
57 	0xcc, 0x74, 0x6c, 0x9e, 0x6e, 0xc2, 0x02, 0x20,	\
58 	0x64, 0x04, 0x4a, 0xfb, 0x7c, 0xcf, 0x94, 0x12,	\
59 	0xef, 0x17, 0xc5, 0x4f, 0x48, 0xb6, 0xbc, 0x72,	\
60 	0xc8, 0x39, 0x6d, 0x64, 0xb6, 0x23, 0xe3, 0xc8,	\
61 	0xcb, 0x62, 0xd8, 0x6b, 0x90, 0x32, 0xc7, 0x99,	\
62 	0x00, 0x22, 0x00, 0x02, 0x04, 0x63, 0x78, 0x35,	\
63 	0x63, 0x81, 0x59, 0x02, 0xe6, 0x30, 0x82, 0x02,	\
64 	0xe2, 0x30, 0x81, 0xcb, 0x02, 0x01, 0x01, 0x30,	\
65 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,	\
66 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x1d,	\
67 	0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,	\
68 	0x03, 0x13, 0x12, 0x59, 0x75, 0x62, 0x69, 0x63,	\
69 	0x6f, 0x20, 0x55, 0x32, 0x46, 0x20, 0x54, 0x65,	\
70 	0x00, 0x22, 0x00, 0x02, 0x05, 0x73, 0x74, 0x20,	\
71 	0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,	\
72 	0x30, 0x35, 0x31, 0x35, 0x31, 0x32, 0x35, 0x38,	\
73 	0x35, 0x34, 0x5a, 0x17, 0x0d, 0x31, 0x34, 0x30,	\
74 	0x36, 0x31, 0x34, 0x31, 0x32, 0x35, 0x38, 0x35,	\
75 	0x34, 0x5a, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19,	\
76 	0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x59,	\
77 	0x75, 0x62, 0x69, 0x63, 0x6f, 0x20, 0x55, 0x32,	\
78 	0x00, 0x22, 0x00, 0x02, 0x06, 0x46, 0x20, 0x54,	\
79 	0x65, 0x73, 0x74, 0x20, 0x45, 0x45, 0x30, 0x59,	\
80 	0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,	\
81 	0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48,	\
82 	0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,	\
83 	0x04, 0xdb, 0x0a, 0xdb, 0xf5, 0x21, 0xc7, 0x5c,	\
84 	0xce, 0x63, 0xdc, 0xa6, 0xe1, 0xe8, 0x25, 0x06,	\
85 	0x0d, 0x94, 0xe6, 0x27, 0x54, 0x19, 0x4f, 0x9d,	\
86 	0x00, 0x22, 0x00, 0x02, 0x07, 0x24, 0xaf, 0x26,	\
87 	0x1a, 0xbe, 0xad, 0x99, 0x44, 0x1f, 0x95, 0xa3,	\
88 	0x71, 0x91, 0x0a, 0x3a, 0x20, 0xe7, 0x3e, 0x91,	\
89 	0x5e, 0x13, 0xe8, 0xbe, 0x38, 0x05, 0x7a, 0xd5,	\
90 	0x7a, 0xa3, 0x7e, 0x76, 0x90, 0x8f, 0xaf, 0xe2,	\
91 	0x8a, 0x94, 0xb6, 0x30, 0xeb, 0x9d, 0x30, 0x0d,	\
92 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,	\
93 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02,	\
94 	0x00, 0x22, 0x00, 0x02, 0x08, 0x01, 0x00, 0x95,	\
95 	0x40, 0x6b, 0x50, 0x61, 0x7d, 0xad, 0x84, 0xa3,	\
96 	0xb4, 0xeb, 0x88, 0x0f, 0xe3, 0x30, 0x0f, 0x2d,	\
97 	0xa2, 0x0a, 0x00, 0xd9, 0x25, 0x04, 0xee, 0x72,	\
98 	0xfa, 0x67, 0xdf, 0x58, 0x51, 0x0f, 0x0b, 0x47,	\
99 	0x02, 0x9c, 0x3e, 0x41, 0x29, 0x4a, 0x93, 0xac,	\
100 	0x29, 0x85, 0x89, 0x2d, 0xa4, 0x7a, 0x81, 0x32,	\
101 	0x28, 0x57, 0x71, 0x01, 0xef, 0xa8, 0x42, 0x88,	\
102 	0x00, 0x22, 0x00, 0x02, 0x09, 0x16, 0x96, 0x37,	\
103 	0x91, 0xd5, 0xdf, 0xe0, 0x8f, 0xc9, 0x3c, 0x8d,	\
104 	0xb0, 0xcd, 0x89, 0x70, 0x82, 0xec, 0x79, 0xd3,	\
105 	0xc6, 0x78, 0x73, 0x29, 0x32, 0xe5, 0xab, 0x6c,	\
106 	0xbd, 0x56, 0x9f, 0xd5, 0x45, 0x91, 0xce, 0xc1,	\
107 	0xdd, 0x8d, 0x64, 0xdc, 0xe9, 0x9c, 0x1f, 0x5e,	\
108 	0x3c, 0xd2, 0xaf, 0x51, 0xa5, 0x82, 0x18, 0xaf,	\
109 	0xe0, 0x37, 0xe7, 0x32, 0x9e, 0x76, 0x05, 0x77,	\
110 	0x00, 0x22, 0x00, 0x02, 0x0a, 0x02, 0x7b, 0xe6,	\
111 	0x24, 0xa0, 0x31, 0x56, 0x1b, 0xfd, 0x19, 0xc5,	\
112 	0x71, 0xd3, 0xf0, 0x9e, 0xc0, 0x73, 0x05, 0x4e,	\
113 	0xbc, 0x85, 0xb8, 0x53, 0x9e, 0xef, 0xc5, 0xbc,	\
114 	0x9c, 0x56, 0xa3, 0xba, 0xd9, 0x27, 0x6a, 0xbb,	\
115 	0xa9, 0x7a, 0x40, 0xd7, 0x47, 0x8b, 0x55, 0x72,	\
116 	0x6b, 0xe3, 0xfe, 0x28, 0x49, 0x71, 0x24, 0xf4,	\
117 	0x8f, 0xf4, 0x20, 0x81, 0xea, 0x38, 0xff, 0x7c,	\
118 	0x00, 0x22, 0x00, 0x02, 0x0b, 0x0a, 0x4f, 0xdf,	\
119 	0x02, 0x82, 0x39, 0x81, 0x82, 0x3b, 0xca, 0x09,	\
120 	0xdd, 0xca, 0xaa, 0x0f, 0x27, 0xf5, 0xa4, 0x83,	\
121 	0x55, 0x6c, 0x9a, 0x39, 0x9b, 0x15, 0x3a, 0x16,	\
122 	0x63, 0xdc, 0x5b, 0xf9, 0xac, 0x5b, 0xbc, 0xf7,	\
123 	0x9f, 0xbe, 0x0f, 0x8a, 0xa2, 0x3c, 0x31, 0x13,	\
124 	0xa3, 0x32, 0x48, 0xca, 0x58, 0x87, 0xf8, 0x7b,	\
125 	0xa0, 0xa1, 0x0a, 0x6a, 0x60, 0x96, 0x93, 0x5f,	\
126 	0x00, 0x22, 0x00, 0x02, 0x0c, 0x5d, 0x26, 0x9e,	\
127 	0x63, 0x1d, 0x09, 0xae, 0x9a, 0x41, 0xe5, 0xbd,	\
128 	0x08, 0x47, 0xfe, 0xe5, 0x09, 0x9b, 0x20, 0xfd,	\
129 	0x12, 0xe2, 0xe6, 0x40, 0x7f, 0xba, 0x4a, 0x61,	\
130 	0x33, 0x66, 0x0d, 0x0e, 0x73, 0xdb, 0xb0, 0xd5,	\
131 	0xa2, 0x9a, 0x9a, 0x17, 0x0d, 0x34, 0x30, 0x85,	\
132 	0x6a, 0x42, 0x46, 0x9e, 0xff, 0x34, 0x8f, 0x5f,	\
133 	0x87, 0x6c, 0x35, 0xe7, 0xa8, 0x4d, 0x35, 0xeb,	\
134 	0x00, 0x22, 0x00, 0x02, 0x0d, 0xc1, 0x41, 0xaa,	\
135 	0x8a, 0xd2, 0xda, 0x19, 0xaa, 0x79, 0xa2, 0x5f,	\
136 	0x35, 0x2c, 0xa0, 0xfd, 0x25, 0xd3, 0xf7, 0x9d,	\
137 	0x25, 0x18, 0x2d, 0xfa, 0xb4, 0xbc, 0xbb, 0x07,	\
138 	0x34, 0x3c, 0x8d, 0x81, 0xbd, 0xf4, 0xe9, 0x37,	\
139 	0xdb, 0x39, 0xe9, 0xd1, 0x45, 0x5b, 0x20, 0x41,	\
140 	0x2f, 0x2d, 0x27, 0x22, 0xdc, 0x92, 0x74, 0x8a,	\
141 	0x92, 0xd5, 0x83, 0xfd, 0x09, 0xfb, 0x13, 0x9b,	\
142 	0x00, 0x22, 0x00, 0x02, 0x0e, 0xe3, 0x39, 0x7a,	\
143 	0x6b, 0x5c, 0xfa, 0xe6, 0x76, 0x9e, 0xe0, 0xe4,	\
144 	0xe3, 0xef, 0xad, 0xbc, 0xfd, 0x42, 0x45, 0x9a,	\
145 	0xd4, 0x94, 0xd1, 0x7e, 0x8d, 0xa7, 0xd8, 0x05,	\
146 	0xd5, 0xd3, 0x62, 0xcf, 0x15, 0xcf, 0x94, 0x7d,	\
147 	0x1f, 0x5b, 0x58, 0x20, 0x44, 0x20, 0x90, 0x71,	\
148 	0xbe, 0x66, 0xe9, 0x9a, 0xab, 0x74, 0x32, 0x70,	\
149 	0x53, 0x1d, 0x69, 0xed, 0x87, 0x66, 0xf4, 0x09,	\
150 	0x00, 0x22, 0x00, 0x02, 0x0f, 0x4f, 0xca, 0x25,	\
151 	0x30, 0xc2, 0x63, 0x79, 0x00, 0x3c, 0xb1, 0x9b,	\
152 	0x39, 0x3f, 0x00, 0xe0, 0xa8, 0x88, 0xef, 0x7a,	\
153 	0x51, 0x5b, 0xe7, 0xbd, 0x49, 0x64, 0xda, 0x41,	\
154 	0x7b, 0x24, 0xc3, 0x71, 0x22, 0xfd, 0xd1, 0xd1,	\
155 	0x20, 0xb3, 0x3f, 0x97, 0xd3, 0x97, 0xb2, 0xaa,	\
156 	0x18, 0x1c, 0x9e, 0x03, 0x77, 0x7b, 0x5b, 0x7e,	\
157 	0xf9, 0xa3, 0xa0, 0xd6, 0x20, 0x81, 0x2c, 0x38,	\
158 	0x00, 0x22, 0x00, 0x02, 0x10, 0x8f, 0x9d, 0x25,	\
159 	0xde, 0xe9, 0xc8, 0xf5, 0xdd, 0x6a, 0x47, 0x9c,	\
160 	0x65, 0x04, 0x5a, 0x56, 0xe6, 0xc2, 0xeb, 0xf2,	\
161 	0x02, 0x97, 0xe1, 0xb9, 0xd8, 0xe1, 0x24, 0x76,	\
162 	0x9f, 0x23, 0x62, 0x39, 0x03, 0x4b, 0xc8, 0xf7,	\
163 	0x34, 0x07, 0x49, 0xd6, 0xe7, 0x4d, 0x9a, 0x00,	\
164 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	\
165 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
166 
167 #define REGRESS_WIREDATA_MAKECRED_ENTATTEST		\
168 	0x00, 0x22, 0x00, 0x02, 0x90, 0x03, 0xcd, 0x00,	\
169 	0xa4, 0x01, 0x66, 0x70, 0x61, 0x63, 0x6b, 0x65,	\
170 	0x64, 0x02, 0x58, 0xc4, 0x92, 0x36, 0x01, 0x1e,	\
171 	0x1f, 0xd0, 0x97, 0x79, 0xef, 0xba, 0x2f, 0x03,	\
172 	0xa6, 0xa0, 0x74, 0x65, 0xc2, 0x1c, 0x8d, 0x11,	\
173 	0x8e, 0x40, 0x5e, 0x87, 0xfd, 0xe4, 0x43, 0xf2,	\
174 	0x78, 0x18, 0xa4, 0xa7, 0x41, 0x00, 0x00, 0x00,	\
175 	0x04, 0xf8, 0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d,	\
176 	0x00, 0x22, 0x00, 0x02, 0x00, 0x15, 0x80, 0x06,	\
177 	0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00, 0x40,	\
178 	0xdf, 0x57, 0x2d, 0x2d, 0x1f, 0x2f, 0x0a, 0x70,	\
179 	0x12, 0xe3, 0x69, 0x3e, 0x98, 0x96, 0xdb, 0xbb,	\
180 	0x5a, 0x80, 0xdc, 0x5e, 0x98, 0x58, 0x3b, 0x4e,	\
181 	0x23, 0xb8, 0x07, 0xc6, 0x84, 0x64, 0x2d, 0x39,	\
182 	0xf1, 0x76, 0x8b, 0x80, 0xcb, 0xb8, 0x09, 0x1d,	\
183 	0x0b, 0xcb, 0xad, 0x7f, 0x18, 0xce, 0x3b, 0xc9,	\
184 	0x00, 0x22, 0x00, 0x02, 0x01, 0x1c, 0x3f, 0xda,	\
185 	0x9e, 0x03, 0x5f, 0xce, 0xee, 0x7c, 0xcd, 0x65,	\
186 	0x77, 0xff, 0x0a, 0xd3, 0x08, 0xa5, 0x01, 0x02,	\
187 	0x03, 0x26, 0x20, 0x01, 0x21, 0x58, 0x20, 0xa2,	\
188 	0xdb, 0x38, 0xba, 0x4b, 0x61, 0x81, 0x05, 0x97,	\
189 	0xf2, 0xdf, 0x48, 0xfd, 0x4d, 0xf5, 0x3f, 0x07,	\
190 	0x86, 0x44, 0x8e, 0xdb, 0x07, 0x69, 0x12, 0x42,	\
191 	0xac, 0x81, 0x2a, 0x2c, 0x46, 0xcf, 0xea, 0x22,	\
192 	0x00, 0x22, 0x00, 0x02, 0x02, 0x58, 0x20, 0xef,	\
193 	0x31, 0x8d, 0xc9, 0x7e, 0xda, 0xfd, 0x5b, 0x7d,	\
194 	0x68, 0xe0, 0x41, 0x40, 0xb2, 0x27, 0xdd, 0x8e,	\
195 	0x6d, 0x6b, 0xc4, 0x51, 0xe5, 0x36, 0xb6, 0x99,	\
196 	0xda, 0x71, 0xdb, 0x5d, 0xed, 0x0d, 0x51, 0x03,	\
197 	0xa3, 0x63, 0x61, 0x6c, 0x67, 0x26, 0x63, 0x73,	\
198 	0x69, 0x67, 0x58, 0x47, 0x30, 0x45, 0x02, 0x20,	\
199 	0x17, 0x04, 0x53, 0x07, 0xcd, 0x3d, 0x45, 0xc9,	\
200 	0x00, 0x22, 0x00, 0x02, 0x03, 0x98, 0x50, 0x38,	\
201 	0xa5, 0x30, 0x9e, 0x53, 0xd9, 0xe1, 0xfe, 0xd0,	\
202 	0xde, 0xca, 0xbd, 0x38, 0x99, 0x0b, 0xec, 0x9e,	\
203 	0xe6, 0xb8, 0xd3, 0x35, 0x82, 0x02, 0x21, 0x00,	\
204 	0xb3, 0x3a, 0xf7, 0xb9, 0x30, 0x4e, 0x7a, 0xc4,	\
205 	0x7f, 0xa7, 0xdc, 0x85, 0x2f, 0x4e, 0x26, 0x06,	\
206 	0xb0, 0xd4, 0xa7, 0x3a, 0x1a, 0x48, 0xf8, 0x11,	\
207 	0x5f, 0x9b, 0x5f, 0xd3, 0x5e, 0xf4, 0x1b, 0xce,	\
208 	0x00, 0x22, 0x00, 0x02, 0x04, 0x63, 0x78, 0x35,	\
209 	0x63, 0x81, 0x59, 0x02, 0x9e, 0x30, 0x82, 0x02,	\
210 	0x9a, 0x30, 0x82, 0x02, 0x40, 0xa0, 0x03, 0x02,	\
211 	0x01, 0x02, 0x02, 0x01, 0x01, 0x30, 0x0a, 0x06,	\
212 	0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03,	\
213 	0x02, 0x30, 0x81, 0xb0, 0x31, 0x2f, 0x30, 0x2d,	\
214 	0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x26, 0x46,	\
215 	0x49, 0x44, 0x4f, 0x32, 0x20, 0x45, 0x6e, 0x74,	\
216 	0x00, 0x22, 0x00, 0x02, 0x05, 0x65, 0x72, 0x70,	\
217 	0x72, 0x69, 0x73, 0x65, 0x20, 0x41, 0x74, 0x74,	\
218 	0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,	\
219 	0x20, 0x54, 0x45, 0x53, 0x54, 0x20, 0x52, 0x4f,	\
220 	0x4f, 0x54, 0x31, 0x25, 0x30, 0x23, 0x06, 0x09,	\
221 	0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09,	\
222 	0x01, 0x16, 0x16, 0x74, 0x6f, 0x6f, 0x6c, 0x73,	\
223 	0x40, 0x66, 0x69, 0x64, 0x6f, 0x61, 0x6c, 0x6c,	\
224 	0x00, 0x22, 0x00, 0x02, 0x06, 0x69, 0x61, 0x6e,	\
225 	0x63, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x16,	\
226 	0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c,	\
227 	0x0d, 0x46, 0x49, 0x44, 0x4f, 0x20, 0x41, 0x6c,	\
228 	0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x31, 0x0c,	\
229 	0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c,	\
230 	0x03, 0x43, 0x57, 0x47, 0x31, 0x0b, 0x30, 0x09,	\
231 	0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,	\
232 	0x00, 0x22, 0x00, 0x02, 0x07, 0x53, 0x31, 0x0b,	\
233 	0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c,	\
234 	0x02, 0x43, 0x41, 0x31, 0x16, 0x30, 0x14, 0x06,	\
235 	0x03, 0x55, 0x04, 0x07, 0x0c, 0x0d, 0x4d, 0x6f,	\
236 	0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x56,	\
237 	0x69, 0x65, 0x77, 0x30, 0x1e, 0x17, 0x0d, 0x32,	\
238 	0x31, 0x30, 0x35, 0x31, 0x33, 0x31, 0x33, 0x31,	\
239 	0x39, 0x30, 0x38, 0x5a, 0x17, 0x0d, 0x32, 0x36,	\
240 	0x00, 0x22, 0x00, 0x02, 0x08, 0x31, 0x31, 0x30,	\
241 	0x33, 0x31, 0x33, 0x31, 0x39, 0x30, 0x38, 0x5a,	\
242 	0x30, 0x81, 0xcd, 0x31, 0x3a, 0x30, 0x38, 0x06,	\
243 	0x03, 0x55, 0x04, 0x03, 0x0c, 0x31, 0x46, 0x49,	\
244 	0x44, 0x4f, 0x32, 0x20, 0x45, 0x6e, 0x74, 0x65,	\
245 	0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x20, 0x41,	\
246 	0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69,	\
247 	0x6f, 0x6e, 0x20, 0x42, 0x41, 0x54, 0x43, 0x48,	\
248 	0x00, 0x22, 0x00, 0x02, 0x09, 0x20, 0x4b, 0x45,	\
249 	0x59, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x65, 0x32,	\
250 	0x35, 0x36, 0x76, 0x31, 0x31, 0x25, 0x30, 0x23,	\
251 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,	\
252 	0x01, 0x09, 0x01, 0x16, 0x16, 0x74, 0x6f, 0x6f,	\
253 	0x6c, 0x73, 0x40, 0x66, 0x69, 0x64, 0x6f, 0x61,	\
254 	0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x2e,	\
255 	0x6f, 0x72, 0x67, 0x31, 0x16, 0x30, 0x14, 0x06,	\
256 	0x00, 0x22, 0x00, 0x02, 0x0a, 0x03, 0x55, 0x04,	\
257 	0x0a, 0x0c, 0x0d, 0x46, 0x49, 0x44, 0x4f, 0x20,	\
258 	0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65,	\
259 	0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04,	\
260 	0x0b, 0x0c, 0x19, 0x41, 0x75, 0x74, 0x68, 0x65,	\
261 	0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72,	\
262 	0x20, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61,	\
263 	0x74, 0x69, 0x6f, 0x6e, 0x31, 0x0b, 0x30, 0x09,	\
264 	0x00, 0x22, 0x00, 0x02, 0x0b, 0x06, 0x03, 0x55,	\
265 	0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x0b,	\
266 	0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c,	\
267 	0x02, 0x4d, 0x59, 0x31, 0x12, 0x30, 0x10, 0x06,	\
268 	0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x57, 0x61,	\
269 	0x6b, 0x65, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30,	\
270 	0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,	\
271 	0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,	\
272 	0x00, 0x22, 0x00, 0x02, 0x0c, 0x48, 0xce, 0x3d,	\
273 	0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xad,	\
274 	0x51, 0xdc, 0x74, 0x2c, 0x37, 0x7f, 0x78, 0x38,	\
275 	0x2d, 0x2a, 0x3f, 0x40, 0xe9, 0xe3, 0xae, 0xb5,	\
276 	0x9e, 0x45, 0x93, 0xf2, 0x82, 0xc6, 0xc4, 0x82,	\
277 	0xfb, 0xd6, 0xd7, 0x1b, 0xda, 0x7c, 0xec, 0x0c,	\
278 	0x5c, 0x8e, 0x8a, 0xd3, 0xdd, 0x0a, 0xf5, 0x56,	\
279 	0x43, 0xf0, 0xfc, 0x0b, 0x0d, 0xd7, 0xe9, 0x0a,	\
280 	0x00, 0x22, 0x00, 0x02, 0x0d, 0xeb, 0x0e, 0xbc,	\
281 	0x4f, 0x12, 0x27, 0xd7, 0xbc, 0xb0, 0xa9, 0x15,	\
282 	0x1f, 0x49, 0x6e, 0x10, 0xa3, 0x2c, 0x30, 0x2a,	\
283 	0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04,	\
284 	0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55,	\
285 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x1e, 0xd3,	\
286 	0xe9, 0x9a, 0xaf, 0x89, 0x9a, 0xb7, 0x10, 0x61,	\
287 	0xa3, 0xae, 0x74, 0x7f, 0x3a, 0x96, 0x96, 0xda,	\
288 	0x00, 0x22, 0x00, 0x02, 0x0e, 0xce, 0x61, 0x30,	\
289 	0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,	\
290 	0x04, 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 0x45,	\
291 	0x02, 0x21, 0x00, 0x8e, 0xd7, 0x9c, 0xbe, 0x8f,	\
292 	0x99, 0xe0, 0xcf, 0x88, 0x04, 0x7e, 0xc0, 0xe1,	\
293 	0x5a, 0xaa, 0x4a, 0xa3, 0xd7, 0xfc, 0x53, 0x9f,	\
294 	0x8f, 0x13, 0x66, 0xe7, 0x03, 0x8f, 0xb8, 0x6d,	\
295 	0x8b, 0xb1, 0x44, 0x02, 0x20, 0x16, 0x68, 0xa5,	\
296 	0x00, 0x22, 0x00, 0x02, 0x0f, 0xf9, 0x62, 0x9a,	\
297 	0xc9, 0xf9, 0x27, 0x88, 0x38, 0x91, 0x69, 0x2f,	\
298 	0x1f, 0xdf, 0xb0, 0xe3, 0x49, 0x0c, 0xaa, 0x3d,	\
299 	0x4c, 0x10, 0xf4, 0x9c, 0xee, 0xd8, 0xd8, 0x28,	\
300 	0x01, 0x26, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00,	\
301 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	\
302 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	\
303 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
304 
305 static const unsigned char cdh[32] = {
306 	0xf9, 0x64, 0x57, 0xe7, 0x2d, 0x97, 0xf6, 0xbb,
307 	0xdd, 0xd7, 0xfb, 0x06, 0x37, 0x62, 0xea, 0x26,
308 	0x20, 0x44, 0x8e, 0x69, 0x7c, 0x03, 0xf2, 0x31,
309 	0x2f, 0x99, 0xdc, 0xaf, 0x3e, 0x8a, 0x91, 0x6b,
310 };
311 
312 static const unsigned char authdata[198] = {
313 	0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
314 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
315 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
316 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
317 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x04, 0xf8,
318 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
319 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
320 	0x40, 0x19, 0x6a, 0xa6, 0xa4, 0xff, 0xa7, 0x1d,
321 	0x38, 0xf2, 0xa6, 0x87, 0x98, 0xf7, 0xf7, 0xc0,
322 	0x95, 0x57, 0x78, 0xda, 0xec, 0xb9, 0x73, 0xb7,
323 	0xbb, 0x97, 0x40, 0x31, 0x0d, 0xec, 0xc1, 0x5b,
324 	0x20, 0x84, 0x87, 0xae, 0xa8, 0xb7, 0xd0, 0x94,
325 	0xd6, 0xfc, 0x1d, 0x37, 0xbf, 0xaa, 0x33, 0x12,
326 	0x35, 0x29, 0xf5, 0x09, 0x76, 0x91, 0x20, 0x94,
327 	0x42, 0xc4, 0x52, 0x8b, 0x18, 0xca, 0xe1, 0x3d,
328 	0x12, 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01,
329 	0x21, 0x58, 0x20, 0xf8, 0x28, 0x2e, 0x88, 0x10,
330 	0xfe, 0xa4, 0xda, 0x50, 0x6c, 0xef, 0x2d, 0x48,
331 	0x0d, 0xba, 0x71, 0xaf, 0xb8, 0x76, 0x78, 0xb8,
332 	0xc3, 0x32, 0x80, 0x0d, 0x8c, 0x1f, 0xba, 0xb4,
333 	0xbf, 0xa0, 0xa1, 0x22, 0x58, 0x20, 0xc3, 0x88,
334 	0x0f, 0x7e, 0x87, 0x05, 0x98, 0x32, 0x21, 0xf3,
335 	0x2d, 0xaf, 0x23, 0x8c, 0x08, 0x49, 0x6b, 0x30,
336 	0x6d, 0x8a, 0x53, 0x8a, 0xb2, 0xed, 0xc7, 0xe8,
337 	0xdf, 0x8a, 0x54, 0xf3, 0x0f, 0x8d
338 };
339 
340 static const unsigned char authdata_dupkeys[200] = {
341 	0x58, 0xc6, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
342 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
343 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
344 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
345 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
346 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
347 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
348 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
349 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
350 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
351 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
352 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
353 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
354 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
355 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
356 	0x25, 0xa6, 0x01, 0x02, 0x01, 0x02, 0x03, 0x26,
357 	0x20, 0x01, 0x21, 0x58, 0x20, 0x17, 0x5b, 0x27,
358 	0xa6, 0x56, 0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55,
359 	0x42, 0x78, 0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd,
360 	0x1b, 0xb9, 0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22,
361 	0x64, 0xf5, 0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20,
362 	0x87, 0x5f, 0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f,
363 	0xeb, 0xe3, 0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6,
364 	0x1c, 0x31, 0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1,
365 	0xfe, 0x5d, 0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
366 };
367 
368 static const unsigned char authdata_unsorted_keys[198] = {
369 	0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
370 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
371 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
372 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
373 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
374 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
375 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
376 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
377 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
378 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
379 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
380 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
381 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
382 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
383 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
384 	0x25, 0xa5, 0x03, 0x26, 0x01, 0x02, 0x20, 0x01,
385 	0x21, 0x58, 0x20, 0x17, 0x5b, 0x27, 0xa6, 0x56,
386 	0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55, 0x42, 0x78,
387 	0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd, 0x1b, 0xb9,
388 	0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22, 0x64, 0xf5,
389 	0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20, 0x87, 0x5f,
390 	0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f, 0xeb, 0xe3,
391 	0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6, 0x1c, 0x31,
392 	0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1, 0xfe, 0x5d,
393 	0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
394 };
395 
396 const unsigned char authdata_tpm_rs256[362] = {
397 	0x59, 0x01, 0x67, 0x49, 0x96, 0x0d, 0xe5, 0x88,
398 	0x0e, 0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64,
399 	0x76, 0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2,
400 	0x86, 0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83,
401 	0x1d, 0x97, 0x63, 0x45, 0x00, 0x00, 0x00, 0x00,
402 	0x08, 0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81,
403 	0xb6, 0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96,
404 	0x00, 0x20, 0x89, 0x99, 0x6d, 0x5a, 0x00, 0x29,
405 	0xe5, 0x3e, 0x6a, 0x1c, 0x72, 0x6d, 0x71, 0x4a,
406 	0x4f, 0x03, 0x9b, 0x68, 0x17, 0xdb, 0x29, 0x1a,
407 	0x6b, 0x02, 0x6c, 0x26, 0xf9, 0xbd, 0xc3, 0x0e,
408 	0x38, 0x1a, 0xa4, 0x01, 0x03, 0x03, 0x39, 0x01,
409 	0x00, 0x20, 0x59, 0x01, 0x00, 0xc5, 0xb6, 0x9c,
410 	0x06, 0x1d, 0xcf, 0xb9, 0xf2, 0x5e, 0x99, 0x7d,
411 	0x6d, 0x73, 0xd8, 0x36, 0xc1, 0x4a, 0x90, 0x05,
412 	0x4d, 0x82, 0x57, 0xc1, 0xb6, 0x6a, 0xd1, 0x43,
413 	0x03, 0x85, 0xf8, 0x52, 0x4f, 0xd2, 0x27, 0x91,
414 	0x0b, 0xb5, 0x93, 0xa0, 0x68, 0xf8, 0x80, 0x1b,
415 	0xaa, 0x65, 0x97, 0x45, 0x11, 0x86, 0x34, 0xd6,
416 	0x67, 0xf8, 0xd5, 0x12, 0x79, 0x84, 0xee, 0x70,
417 	0x99, 0x00, 0x63, 0xa8, 0xb4, 0x43, 0x0b, 0x4c,
418 	0x57, 0x4a, 0xd6, 0x9b, 0x75, 0x63, 0x8a, 0x46,
419 	0x57, 0xdb, 0x14, 0xc8, 0x71, 0xd1, 0xb3, 0x07,
420 	0x68, 0x58, 0xbc, 0x55, 0x84, 0x80, 0x2a, 0xd2,
421 	0x36, 0x9f, 0xc1, 0x64, 0xa0, 0x11, 0x4b, 0xc9,
422 	0x32, 0x31, 0x3a, 0xd6, 0x87, 0x26, 0x1a, 0x3a,
423 	0x78, 0x3d, 0x89, 0xdb, 0x00, 0x28, 0x3b, 0xae,
424 	0x2b, 0x1b, 0x56, 0xe2, 0x8c, 0x4c, 0x63, 0xac,
425 	0x6e, 0x6c, 0xf7, 0xb5, 0x7d, 0x4d, 0x0b, 0x9f,
426 	0x06, 0xa0, 0x10, 0x35, 0x38, 0x20, 0x4d, 0xcc,
427 	0x07, 0xd7, 0x00, 0x4e, 0x86, 0xba, 0xfe, 0x8b,
428 	0xe4, 0x3f, 0x4a, 0xd6, 0xca, 0xbf, 0x67, 0x40,
429 	0x1a, 0xa4, 0xda, 0x82, 0x52, 0x15, 0xb8, 0x14,
430 	0x3a, 0x7c, 0xa9, 0x02, 0xc1, 0x01, 0x69, 0xc6,
431 	0x51, 0xd4, 0xbc, 0x1f, 0x95, 0xb2, 0xee, 0x1f,
432 	0xdd, 0xb5, 0x73, 0x16, 0x5e, 0x29, 0x3f, 0x47,
433 	0xac, 0x65, 0xfb, 0x63, 0x5c, 0xb9, 0xc8, 0x13,
434 	0x2d, 0xec, 0x85, 0xde, 0x71, 0x0d, 0x84, 0x93,
435 	0x74, 0x76, 0x91, 0xdd, 0x1d, 0x6d, 0x3d, 0xc7,
436 	0x36, 0x19, 0x19, 0x86, 0xde, 0x7c, 0xca, 0xd6,
437 	0xc6, 0x65, 0x7e, 0x4b, 0x24, 0x9c, 0xce, 0x92,
438 	0x6b, 0x1c, 0xe0, 0xa0, 0xa9, 0x6c, 0xc3, 0xed,
439 	0x4f, 0x2a, 0x54, 0x07, 0x00, 0x32, 0x5e, 0x1b,
440 	0x94, 0x37, 0xcd, 0xe2, 0x32, 0xa8, 0xd5, 0x2c,
441 	0xfb, 0x03, 0x9d, 0x79, 0xdf, 0x21, 0x43, 0x01,
442 	0x00, 0x01
443 };
444 
445 static const unsigned char authdata_tpm_es256[166] =  {
446 	0x58, 0xa4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
447 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
448 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
449 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
450 	0x97, 0x63, 0x45, 0x00, 0x00, 0x00, 0x00, 0x08,
451 	0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81, 0xb6,
452 	0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96, 0x00,
453 	0x20, 0xa8, 0xdf, 0x03, 0xf7, 0xbf, 0x39, 0x51,
454 	0x94, 0x95, 0x8f, 0xa4, 0x84, 0x97, 0x30, 0xbc,
455 	0x3c, 0x7e, 0x1c, 0x99, 0x91, 0x4d, 0xae, 0x6d,
456 	0xfb, 0xdf, 0x53, 0xb5, 0xb6, 0x1f, 0x3a, 0x4e,
457 	0x6a, 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01,
458 	0x21, 0x58, 0x20, 0xfb, 0xd6, 0xba, 0x74, 0xe6,
459 	0x6e, 0x5c, 0x87, 0xef, 0x89, 0xa2, 0xe8, 0x3d,
460 	0x0b, 0xe9, 0x69, 0x2c, 0x07, 0x07, 0x7a, 0x8a,
461 	0x1e, 0xce, 0x12, 0xea, 0x3b, 0xb3, 0xf1, 0xf3,
462 	0xd9, 0xc3, 0xe6, 0x22, 0x58, 0x20, 0x3c, 0x68,
463 	0x51, 0x94, 0x54, 0x8d, 0xeb, 0x9f, 0xb2, 0x2c,
464 	0x66, 0x75, 0xb6, 0xb7, 0x55, 0x22, 0x0d, 0x87,
465 	0x59, 0xc4, 0x39, 0x91, 0x62, 0x17, 0xc2, 0xc3,
466 	0x53, 0xa5, 0x26, 0x97, 0x4f, 0x2d
467 };
468 
469 static const unsigned char x509[742] = {
470 	0x30, 0x82, 0x02, 0xe2, 0x30, 0x81, 0xcb, 0x02,
471 	0x01, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
472 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
473 	0x00, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06,
474 	0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x59, 0x75,
475 	0x62, 0x69, 0x63, 0x6f, 0x20, 0x55, 0x32, 0x46,
476 	0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41,
477 	0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x35,
478 	0x31, 0x35, 0x31, 0x32, 0x35, 0x38, 0x35, 0x34,
479 	0x5a, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31,
480 	0x34, 0x31, 0x32, 0x35, 0x38, 0x35, 0x34, 0x5a,
481 	0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03,
482 	0x55, 0x04, 0x03, 0x13, 0x12, 0x59, 0x75, 0x62,
483 	0x69, 0x63, 0x6f, 0x20, 0x55, 0x32, 0x46, 0x20,
484 	0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x45, 0x30,
485 	0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,
486 	0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
487 	0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,
488 	0x00, 0x04, 0xdb, 0x0a, 0xdb, 0xf5, 0x21, 0xc7,
489 	0x5c, 0xce, 0x63, 0xdc, 0xa6, 0xe1, 0xe8, 0x25,
490 	0x06, 0x0d, 0x94, 0xe6, 0x27, 0x54, 0x19, 0x4f,
491 	0x9d, 0x24, 0xaf, 0x26, 0x1a, 0xbe, 0xad, 0x99,
492 	0x44, 0x1f, 0x95, 0xa3, 0x71, 0x91, 0x0a, 0x3a,
493 	0x20, 0xe7, 0x3e, 0x91, 0x5e, 0x13, 0xe8, 0xbe,
494 	0x38, 0x05, 0x7a, 0xd5, 0x7a, 0xa3, 0x7e, 0x76,
495 	0x90, 0x8f, 0xaf, 0xe2, 0x8a, 0x94, 0xb6, 0x30,
496 	0xeb, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
497 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
498 	0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x95, 0x40,
499 	0x6b, 0x50, 0x61, 0x7d, 0xad, 0x84, 0xa3, 0xb4,
500 	0xeb, 0x88, 0x0f, 0xe3, 0x30, 0x0f, 0x2d, 0xa2,
501 	0x0a, 0x00, 0xd9, 0x25, 0x04, 0xee, 0x72, 0xfa,
502 	0x67, 0xdf, 0x58, 0x51, 0x0f, 0x0b, 0x47, 0x02,
503 	0x9c, 0x3e, 0x41, 0x29, 0x4a, 0x93, 0xac, 0x29,
504 	0x85, 0x89, 0x2d, 0xa4, 0x7a, 0x81, 0x32, 0x28,
505 	0x57, 0x71, 0x01, 0xef, 0xa8, 0x42, 0x88, 0x16,
506 	0x96, 0x37, 0x91, 0xd5, 0xdf, 0xe0, 0x8f, 0xc9,
507 	0x3c, 0x8d, 0xb0, 0xcd, 0x89, 0x70, 0x82, 0xec,
508 	0x79, 0xd3, 0xc6, 0x78, 0x73, 0x29, 0x32, 0xe5,
509 	0xab, 0x6c, 0xbd, 0x56, 0x9f, 0xd5, 0x45, 0x91,
510 	0xce, 0xc1, 0xdd, 0x8d, 0x64, 0xdc, 0xe9, 0x9c,
511 	0x1f, 0x5e, 0x3c, 0xd2, 0xaf, 0x51, 0xa5, 0x82,
512 	0x18, 0xaf, 0xe0, 0x37, 0xe7, 0x32, 0x9e, 0x76,
513 	0x05, 0x77, 0x02, 0x7b, 0xe6, 0x24, 0xa0, 0x31,
514 	0x56, 0x1b, 0xfd, 0x19, 0xc5, 0x71, 0xd3, 0xf0,
515 	0x9e, 0xc0, 0x73, 0x05, 0x4e, 0xbc, 0x85, 0xb8,
516 	0x53, 0x9e, 0xef, 0xc5, 0xbc, 0x9c, 0x56, 0xa3,
517 	0xba, 0xd9, 0x27, 0x6a, 0xbb, 0xa9, 0x7a, 0x40,
518 	0xd7, 0x47, 0x8b, 0x55, 0x72, 0x6b, 0xe3, 0xfe,
519 	0x28, 0x49, 0x71, 0x24, 0xf4, 0x8f, 0xf4, 0x20,
520 	0x81, 0xea, 0x38, 0xff, 0x7c, 0x0a, 0x4f, 0xdf,
521 	0x02, 0x82, 0x39, 0x81, 0x82, 0x3b, 0xca, 0x09,
522 	0xdd, 0xca, 0xaa, 0x0f, 0x27, 0xf5, 0xa4, 0x83,
523 	0x55, 0x6c, 0x9a, 0x39, 0x9b, 0x15, 0x3a, 0x16,
524 	0x63, 0xdc, 0x5b, 0xf9, 0xac, 0x5b, 0xbc, 0xf7,
525 	0x9f, 0xbe, 0x0f, 0x8a, 0xa2, 0x3c, 0x31, 0x13,
526 	0xa3, 0x32, 0x48, 0xca, 0x58, 0x87, 0xf8, 0x7b,
527 	0xa0, 0xa1, 0x0a, 0x6a, 0x60, 0x96, 0x93, 0x5f,
528 	0x5d, 0x26, 0x9e, 0x63, 0x1d, 0x09, 0xae, 0x9a,
529 	0x41, 0xe5, 0xbd, 0x08, 0x47, 0xfe, 0xe5, 0x09,
530 	0x9b, 0x20, 0xfd, 0x12, 0xe2, 0xe6, 0x40, 0x7f,
531 	0xba, 0x4a, 0x61, 0x33, 0x66, 0x0d, 0x0e, 0x73,
532 	0xdb, 0xb0, 0xd5, 0xa2, 0x9a, 0x9a, 0x17, 0x0d,
533 	0x34, 0x30, 0x85, 0x6a, 0x42, 0x46, 0x9e, 0xff,
534 	0x34, 0x8f, 0x5f, 0x87, 0x6c, 0x35, 0xe7, 0xa8,
535 	0x4d, 0x35, 0xeb, 0xc1, 0x41, 0xaa, 0x8a, 0xd2,
536 	0xda, 0x19, 0xaa, 0x79, 0xa2, 0x5f, 0x35, 0x2c,
537 	0xa0, 0xfd, 0x25, 0xd3, 0xf7, 0x9d, 0x25, 0x18,
538 	0x2d, 0xfa, 0xb4, 0xbc, 0xbb, 0x07, 0x34, 0x3c,
539 	0x8d, 0x81, 0xbd, 0xf4, 0xe9, 0x37, 0xdb, 0x39,
540 	0xe9, 0xd1, 0x45, 0x5b, 0x20, 0x41, 0x2f, 0x2d,
541 	0x27, 0x22, 0xdc, 0x92, 0x74, 0x8a, 0x92, 0xd5,
542 	0x83, 0xfd, 0x09, 0xfb, 0x13, 0x9b, 0xe3, 0x39,
543 	0x7a, 0x6b, 0x5c, 0xfa, 0xe6, 0x76, 0x9e, 0xe0,
544 	0xe4, 0xe3, 0xef, 0xad, 0xbc, 0xfd, 0x42, 0x45,
545 	0x9a, 0xd4, 0x94, 0xd1, 0x7e, 0x8d, 0xa7, 0xd8,
546 	0x05, 0xd5, 0xd3, 0x62, 0xcf, 0x15, 0xcf, 0x94,
547 	0x7d, 0x1f, 0x5b, 0x58, 0x20, 0x44, 0x20, 0x90,
548 	0x71, 0xbe, 0x66, 0xe9, 0x9a, 0xab, 0x74, 0x32,
549 	0x70, 0x53, 0x1d, 0x69, 0xed, 0x87, 0x66, 0xf4,
550 	0x09, 0x4f, 0xca, 0x25, 0x30, 0xc2, 0x63, 0x79,
551 	0x00, 0x3c, 0xb1, 0x9b, 0x39, 0x3f, 0x00, 0xe0,
552 	0xa8, 0x88, 0xef, 0x7a, 0x51, 0x5b, 0xe7, 0xbd,
553 	0x49, 0x64, 0xda, 0x41, 0x7b, 0x24, 0xc3, 0x71,
554 	0x22, 0xfd, 0xd1, 0xd1, 0x20, 0xb3, 0x3f, 0x97,
555 	0xd3, 0x97, 0xb2, 0xaa, 0x18, 0x1c, 0x9e, 0x03,
556 	0x77, 0x7b, 0x5b, 0x7e, 0xf9, 0xa3, 0xa0, 0xd6,
557 	0x20, 0x81, 0x2c, 0x38, 0x8f, 0x9d, 0x25, 0xde,
558 	0xe9, 0xc8, 0xf5, 0xdd, 0x6a, 0x47, 0x9c, 0x65,
559 	0x04, 0x5a, 0x56, 0xe6, 0xc2, 0xeb, 0xf2, 0x02,
560 	0x97, 0xe1, 0xb9, 0xd8, 0xe1, 0x24, 0x76, 0x9f,
561 	0x23, 0x62, 0x39, 0x03, 0x4b, 0xc8, 0xf7, 0x34,
562 	0x07, 0x49, 0xd6, 0xe7, 0x4d, 0x9a,
563 };
564 
565 const unsigned char sig[71] = {
566 	0x30, 0x45, 0x02, 0x21, 0x00, 0x89, 0xec, 0x44,
567 	0xbc, 0xa9, 0x4a, 0x8d, 0xf8, 0x38, 0xa1, 0x86,
568 	0x39, 0x8f, 0xbd, 0xca, 0x4f, 0x0c, 0xe4, 0x60,
569 	0xa1, 0x62, 0xb7, 0x93, 0x9a, 0x42, 0x8a, 0xcc,
570 	0x74, 0x6c, 0x9e, 0x6e, 0xc2, 0x02, 0x20, 0x64,
571 	0x04, 0x4a, 0xfb, 0x7c, 0xcf, 0x94, 0x12, 0xef,
572 	0x17, 0xc5, 0x4f, 0x48, 0xb6, 0xbc, 0x72, 0xc8,
573 	0x39, 0x6d, 0x64, 0xb6, 0x23, 0xe3, 0xc8, 0xcb,
574 	0x62, 0xd8, 0x6b, 0x90, 0x32, 0xc7, 0x99,
575 };
576 
577 const unsigned char pubkey[64] = {
578 	0xf8, 0x28, 0x2e, 0x88, 0x10, 0xfe, 0xa4, 0xda,
579 	0x50, 0x6c, 0xef, 0x2d, 0x48, 0x0d, 0xba, 0x71,
580 	0xaf, 0xb8, 0x76, 0x78, 0xb8, 0xc3, 0x32, 0x80,
581 	0x0d, 0x8c, 0x1f, 0xba, 0xb4, 0xbf, 0xa0, 0xa1,
582 	0xc3, 0x88, 0x0f, 0x7e, 0x87, 0x05, 0x98, 0x32,
583 	0x21, 0xf3, 0x2d, 0xaf, 0x23, 0x8c, 0x08, 0x49,
584 	0x6b, 0x30, 0x6d, 0x8a, 0x53, 0x8a, 0xb2, 0xed,
585 	0xc7, 0xe8, 0xdf, 0x8a, 0x54, 0xf3, 0x0f, 0x8d,
586 };
587 
588 const unsigned char pubkey_tpm_rs256[259] = {
589 	0xc5, 0xb6, 0x9c, 0x06, 0x1d, 0xcf, 0xb9, 0xf2,
590 	0x5e, 0x99, 0x7d, 0x6d, 0x73, 0xd8, 0x36, 0xc1,
591 	0x4a, 0x90, 0x05, 0x4d, 0x82, 0x57, 0xc1, 0xb6,
592 	0x6a, 0xd1, 0x43, 0x03, 0x85, 0xf8, 0x52, 0x4f,
593 	0xd2, 0x27, 0x91, 0x0b, 0xb5, 0x93, 0xa0, 0x68,
594 	0xf8, 0x80, 0x1b, 0xaa, 0x65, 0x97, 0x45, 0x11,
595 	0x86, 0x34, 0xd6, 0x67, 0xf8, 0xd5, 0x12, 0x79,
596 	0x84, 0xee, 0x70, 0x99, 0x00, 0x63, 0xa8, 0xb4,
597 	0x43, 0x0b, 0x4c, 0x57, 0x4a, 0xd6, 0x9b, 0x75,
598 	0x63, 0x8a, 0x46, 0x57, 0xdb, 0x14, 0xc8, 0x71,
599 	0xd1, 0xb3, 0x07, 0x68, 0x58, 0xbc, 0x55, 0x84,
600 	0x80, 0x2a, 0xd2, 0x36, 0x9f, 0xc1, 0x64, 0xa0,
601 	0x11, 0x4b, 0xc9, 0x32, 0x31, 0x3a, 0xd6, 0x87,
602 	0x26, 0x1a, 0x3a, 0x78, 0x3d, 0x89, 0xdb, 0x00,
603 	0x28, 0x3b, 0xae, 0x2b, 0x1b, 0x56, 0xe2, 0x8c,
604 	0x4c, 0x63, 0xac, 0x6e, 0x6c, 0xf7, 0xb5, 0x7d,
605 	0x4d, 0x0b, 0x9f, 0x06, 0xa0, 0x10, 0x35, 0x38,
606 	0x20, 0x4d, 0xcc, 0x07, 0xd7, 0x00, 0x4e, 0x86,
607 	0xba, 0xfe, 0x8b, 0xe4, 0x3f, 0x4a, 0xd6, 0xca,
608 	0xbf, 0x67, 0x40, 0x1a, 0xa4, 0xda, 0x82, 0x52,
609 	0x15, 0xb8, 0x14, 0x3a, 0x7c, 0xa9, 0x02, 0xc1,
610 	0x01, 0x69, 0xc6, 0x51, 0xd4, 0xbc, 0x1f, 0x95,
611 	0xb2, 0xee, 0x1f, 0xdd, 0xb5, 0x73, 0x16, 0x5e,
612 	0x29, 0x3f, 0x47, 0xac, 0x65, 0xfb, 0x63, 0x5c,
613 	0xb9, 0xc8, 0x13, 0x2d, 0xec, 0x85, 0xde, 0x71,
614 	0x0d, 0x84, 0x93, 0x74, 0x76, 0x91, 0xdd, 0x1d,
615 	0x6d, 0x3d, 0xc7, 0x36, 0x19, 0x19, 0x86, 0xde,
616 	0x7c, 0xca, 0xd6, 0xc6, 0x65, 0x7e, 0x4b, 0x24,
617 	0x9c, 0xce, 0x92, 0x6b, 0x1c, 0xe0, 0xa0, 0xa9,
618 	0x6c, 0xc3, 0xed, 0x4f, 0x2a, 0x54, 0x07, 0x00,
619 	0x32, 0x5e, 0x1b, 0x94, 0x37, 0xcd, 0xe2, 0x32,
620 	0xa8, 0xd5, 0x2c, 0xfb, 0x03, 0x9d, 0x79, 0xdf,
621 	0x01, 0x00, 0x01,
622 };
623 
624 const unsigned char pubkey_tpm_es256[64] = {
625 	0xfb, 0xd6, 0xba, 0x74, 0xe6, 0x6e, 0x5c, 0x87,
626 	0xef, 0x89, 0xa2, 0xe8, 0x3d, 0x0b, 0xe9, 0x69,
627 	0x2c, 0x07, 0x07, 0x7a, 0x8a, 0x1e, 0xce, 0x12,
628 	0xea, 0x3b, 0xb3, 0xf1, 0xf3, 0xd9, 0xc3, 0xe6,
629 	0x3c, 0x68, 0x51, 0x94, 0x54, 0x8d, 0xeb, 0x9f,
630 	0xb2, 0x2c, 0x66, 0x75, 0xb6, 0xb7, 0x55, 0x22,
631 	0x0d, 0x87, 0x59, 0xc4, 0x39, 0x91, 0x62, 0x17,
632 	0xc2, 0xc3, 0x53, 0xa5, 0x26, 0x97, 0x4f, 0x2d
633 };
634 
635 const unsigned char id[64] = {
636 	0x19, 0x6a, 0xa6, 0xa4, 0xff, 0xa7, 0x1d, 0x38,
637 	0xf2, 0xa6, 0x87, 0x98, 0xf7, 0xf7, 0xc0, 0x95,
638 	0x57, 0x78, 0xda, 0xec, 0xb9, 0x73, 0xb7, 0xbb,
639 	0x97, 0x40, 0x31, 0x0d, 0xec, 0xc1, 0x5b, 0x20,
640 	0x84, 0x87, 0xae, 0xa8, 0xb7, 0xd0, 0x94, 0xd6,
641 	0xfc, 0x1d, 0x37, 0xbf, 0xaa, 0x33, 0x12, 0x35,
642 	0x29, 0xf5, 0x09, 0x76, 0x91, 0x20, 0x94, 0x42,
643 	0xc4, 0x52, 0x8b, 0x18, 0xca, 0xe1, 0x3d, 0x12,
644 };
645 
646 const unsigned char id_tpm_rs256[32] = {
647 	0x89, 0x99, 0x6d, 0x5a, 0x00, 0x29, 0xe5, 0x3e,
648 	0x6a, 0x1c, 0x72, 0x6d, 0x71, 0x4a, 0x4f, 0x03,
649 	0x9b, 0x68, 0x17, 0xdb, 0x29, 0x1a, 0x6b, 0x02,
650 	0x6c, 0x26, 0xf9, 0xbd, 0xc3, 0x0e, 0x38, 0x1a
651 };
652 
653 const unsigned char id_tpm_es256[32] = {
654 	0xa8, 0xdf, 0x03, 0xf7, 0xbf, 0x39, 0x51, 0x94,
655 	0x95, 0x8f, 0xa4, 0x84, 0x97, 0x30, 0xbc, 0x3c,
656 	0x7e, 0x1c, 0x99, 0x91, 0x4d, 0xae, 0x6d, 0xfb,
657 	0xdf, 0x53, 0xb5, 0xb6, 0x1f, 0x3a, 0x4e, 0x6a
658 };
659 
660 const unsigned char attstmt_tpm_rs256[4034] = {
661 	0xa6, 0x63, 0x61, 0x6c, 0x67, 0x39, 0xff, 0xfe,
662 	0x63, 0x73, 0x69, 0x67, 0x59, 0x01, 0x00, 0x1c,
663 	0x09, 0x0d, 0x35, 0x97, 0x22, 0xfc, 0xfe, 0xc0,
664 	0x58, 0x49, 0x9e, 0xd4, 0x7e, 0x6a, 0x7d, 0xdb,
665 	0x6d, 0x20, 0x95, 0x5c, 0x0b, 0xd0, 0xd5, 0x72,
666 	0x4f, 0x15, 0x22, 0x38, 0x97, 0xb2, 0x4b, 0xd0,
667 	0xef, 0x31, 0x7c, 0xf2, 0x42, 0x19, 0x41, 0xa1,
668 	0xe2, 0xc5, 0xca, 0xc6, 0x74, 0x95, 0xcf, 0xf9,
669 	0x41, 0x75, 0x0b, 0x56, 0x39, 0x82, 0x78, 0xf6,
670 	0x59, 0xf1, 0x09, 0x96, 0x9e, 0x38, 0x7f, 0x14,
671 	0x9b, 0xf5, 0x36, 0xbb, 0x92, 0x32, 0xc4, 0x64,
672 	0xe8, 0xff, 0xb4, 0xc7, 0xcf, 0xcd, 0x17, 0x48,
673 	0x0f, 0x83, 0xd9, 0x44, 0x03, 0x35, 0x26, 0xad,
674 	0x01, 0xb7, 0x57, 0x06, 0xb3, 0x9c, 0xa0, 0x6e,
675 	0x2f, 0x58, 0xcb, 0x5c, 0xaa, 0x7c, 0xea, 0x7e,
676 	0x3f, 0xbc, 0x76, 0xc9, 0x0e, 0x52, 0x39, 0x81,
677 	0xa9, 0x9e, 0x37, 0x14, 0x1f, 0x50, 0x6a, 0x4f,
678 	0xd7, 0xfc, 0xd4, 0xfa, 0xf2, 0x18, 0x60, 0xd5,
679 	0xc3, 0x57, 0x7d, 0x6d, 0x05, 0x28, 0x25, 0xc3,
680 	0xde, 0x86, 0x85, 0x06, 0x71, 0xfb, 0x84, 0xa2,
681 	0x07, 0xb6, 0x77, 0xc9, 0x68, 0x41, 0x53, 0x32,
682 	0x4c, 0xa8, 0x4b, 0xf7, 0x08, 0x84, 0x62, 0x6c,
683 	0x8a, 0xb6, 0xcf, 0xc1, 0xde, 0x6b, 0x61, 0xc8,
684 	0xdd, 0xc0, 0x13, 0x70, 0x22, 0x28, 0xe1, 0x0f,
685 	0x46, 0x02, 0xc6, 0xb1, 0xfa, 0x30, 0xcb, 0xec,
686 	0xd1, 0x82, 0xfa, 0x51, 0xcb, 0x71, 0x5e, 0x1f,
687 	0x1b, 0x5f, 0xe0, 0xb0, 0x02, 0x8a, 0x7c, 0x78,
688 	0xd1, 0xb7, 0x4d, 0x56, 0xb0, 0x92, 0x3e, 0xda,
689 	0xc7, 0xb1, 0x74, 0xcf, 0x6a, 0x40, 0xeb, 0x98,
690 	0x1c, 0x2e, 0xf2, 0x86, 0x76, 0xf8, 0x2e, 0x6a,
691 	0x9f, 0x77, 0x51, 0x64, 0xce, 0xdc, 0x12, 0x85,
692 	0x84, 0x6b, 0x01, 0xc8, 0xeb, 0xbc, 0x57, 0x6c,
693 	0x32, 0x26, 0xcb, 0xb2, 0x84, 0x02, 0x2a, 0x33,
694 	0x15, 0xd9, 0xe3, 0x15, 0xfc, 0x3a, 0x24, 0x63,
695 	0x76, 0x65, 0x72, 0x63, 0x32, 0x2e, 0x30, 0x63,
696 	0x78, 0x35, 0x63, 0x82, 0x59, 0x05, 0xc4, 0x30,
697 	0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8, 0xa0,
698 	0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x78, 0xd9,
699 	0xa8, 0xb2, 0x64, 0xf9, 0x4d, 0x28, 0x82, 0xc0,
700 	0xd3, 0x1b, 0x40, 0x3c, 0xc8, 0xd9, 0x30, 0x0d,
701 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
702 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41, 0x31,
703 	0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03,
704 	0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53, 0x54,
705 	0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44, 0x2d,
706 	0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34, 0x41,
707 	0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37, 0x41,
708 	0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30, 0x30,
709 	0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31, 0x41,
710 	0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36, 0x30,
711 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x37,
712 	0x31, 0x35, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33,
713 	0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x33, 0x32,
714 	0x31, 0x32, 0x30, 0x32, 0x39, 0x31, 0x35, 0x5a,
715 	0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
716 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
717 	0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
718 	0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
719 	0x01, 0x01, 0x00, 0xca, 0xbe, 0x77, 0x9f, 0x45,
720 	0x97, 0x17, 0x8d, 0x01, 0xe1, 0x18, 0xcc, 0xf0,
721 	0xb5, 0xed, 0x9a, 0xb7, 0x36, 0xac, 0x05, 0x26,
722 	0xbe, 0x35, 0xd9, 0x5c, 0x00, 0x5c, 0x5d, 0x8b,
723 	0x6f, 0x2a, 0xb8, 0xf6, 0x02, 0x4f, 0x33, 0xfe,
724 	0x84, 0x45, 0x4c, 0x4f, 0x7a, 0xdb, 0xa9, 0x6a,
725 	0x62, 0x0f, 0x19, 0x35, 0x5d, 0xd2, 0x34, 0x1a,
726 	0x9d, 0x73, 0x55, 0xe5, 0x3e, 0x04, 0xa2, 0xd6,
727 	0xbe, 0xe7, 0x5a, 0xb9, 0x16, 0x6c, 0x55, 0x18,
728 	0xa8, 0x4b, 0xb2, 0x37, 0xb9, 0xa3, 0x87, 0xfc,
729 	0x76, 0xa8, 0x55, 0xc9, 0xe7, 0x30, 0xe5, 0x0e,
730 	0x3c, 0x7b, 0x74, 0xd2, 0x1e, 0xa8, 0x05, 0xd5,
731 	0xe2, 0xe3, 0xcb, 0xaf, 0x63, 0x33, 0x12, 0xaa,
732 	0xfd, 0x31, 0x32, 0x71, 0x4f, 0x41, 0x96, 0x05,
733 	0xb5, 0x69, 0x73, 0x45, 0xbe, 0x6f, 0x90, 0xd9,
734 	0x10, 0x36, 0xaf, 0x7a, 0x1c, 0xf1, 0x6d, 0x14,
735 	0xb0, 0x1e, 0xbb, 0xae, 0x1c, 0x35, 0xec, 0x1c,
736 	0xb5, 0x0e, 0xf6, 0x33, 0x98, 0x13, 0x4e, 0x44,
737 	0x7b, 0x5c, 0x97, 0x47, 0xed, 0x4f, 0xfe, 0xbd,
738 	0x08, 0xd2, 0xa9, 0xc6, 0xbe, 0x8c, 0x04, 0x9e,
739 	0xdc, 0x3d, 0xbe, 0x98, 0xe9, 0x2a, 0xb1, 0xf4,
740 	0xfa, 0x45, 0xf9, 0xc8, 0x9a, 0x55, 0x85, 0x26,
741 	0xfc, 0x5f, 0xad, 0x00, 0x8b, 0xc8, 0x41, 0xf2,
742 	0x86, 0x4e, 0xba, 0x55, 0x1c, 0xb2, 0x89, 0xe8,
743 	0x85, 0x6e, 0x1e, 0x02, 0x9f, 0x55, 0x70, 0xbe,
744 	0xfd, 0xe7, 0x9f, 0xba, 0x59, 0xa0, 0x2e, 0x9a,
745 	0x74, 0x11, 0xe7, 0xad, 0xa9, 0xc7, 0x7b, 0x58,
746 	0xc4, 0x16, 0xd3, 0x35, 0xcb, 0x61, 0x00, 0xec,
747 	0x36, 0x4a, 0xa3, 0x51, 0xa3, 0xdd, 0x61, 0xb6,
748 	0xd6, 0x29, 0xcb, 0x76, 0xe1, 0xab, 0x51, 0x3a,
749 	0xe8, 0xbf, 0xdb, 0x09, 0x4a, 0x39, 0x96, 0xd9,
750 	0xac, 0x8f, 0x6c, 0x62, 0xe0, 0x03, 0x23, 0x24,
751 	0xbe, 0xd4, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01,
752 	0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01, 0xef,
753 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
754 	0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
755 	0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
756 	0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x6d,
757 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01, 0xff,
758 	0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06, 0x09,
759 	0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15,
760 	0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b,
761 	0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30,
762 	0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43, 0x00,
763 	0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20, 0x00,
764 	0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00,
765 	0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00,
766 	0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61, 0x00,
767 	0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00,
768 	0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00,
769 	0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00,
770 	0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10, 0x06,
771 	0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30, 0x07,
772 	0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30,
773 	0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01, 0x01,
774 	0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b, 0x30,
775 	0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05, 0x67,
776 	0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69, 0x64,
777 	0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44, 0x32,
778 	0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05, 0x67,
779 	0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53, 0x54,
780 	0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41, 0x48,
781 	0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
782 	0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b, 0x69,
783 	0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30, 0x30,
784 	0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
785 	0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb8,
786 	0x5f, 0xd5, 0x67, 0xca, 0x92, 0xc4, 0x0e, 0xcf,
787 	0x0c, 0xd8, 0x1f, 0x6d, 0x3f, 0x03, 0x55, 0x6f,
788 	0x38, 0xa6, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
789 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd4, 0x04,
790 	0x64, 0xfc, 0x6e, 0x50, 0x0a, 0x56, 0x48, 0x0f,
791 	0x05, 0xa9, 0x00, 0xb7, 0x1d, 0x5e, 0x57, 0x08,
792 	0xd5, 0xdc, 0x30, 0x81, 0xb2, 0x06, 0x08, 0x2b,
793 	0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
794 	0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81, 0x9f,
795 	0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
796 	0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74, 0x74,
797 	0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63, 0x73,
798 	0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73, 0x61,
799 	0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
800 	0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x63,
801 	0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64,
802 	0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
803 	0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d, 0x2d,
804 	0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31, 0x61,
805 	0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62, 0x35,
806 	0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30, 0x63,
807 	0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65, 0x37,
808 	0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34, 0x33,
809 	0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f, 0x61,
810 	0x62, 0x64, 0x36, 0x31, 0x35, 0x66, 0x32, 0x2d,
811 	0x31, 0x35, 0x38, 0x61, 0x2d, 0x34, 0x35, 0x38,
812 	0x65, 0x2d, 0x61, 0x31, 0x35, 0x35, 0x2d, 0x37,
813 	0x63, 0x34, 0x63, 0x38, 0x63, 0x62, 0x31, 0x33,
814 	0x63, 0x36, 0x35, 0x2e, 0x63, 0x65, 0x72, 0x30,
815 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
816 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
817 	0x02, 0x01, 0x00, 0xa2, 0x10, 0xc5, 0xbf, 0x41,
818 	0xa6, 0xba, 0x8c, 0x72, 0xca, 0x0f, 0x3e, 0x5e,
819 	0x7f, 0xe2, 0xcb, 0x60, 0xb8, 0x3f, 0xfb, 0xde,
820 	0x03, 0xe2, 0xfe, 0x20, 0x29, 0xdf, 0x11, 0xf5,
821 	0xb0, 0x50, 0x6d, 0x32, 0xe8, 0x1b, 0x05, 0xad,
822 	0x6b, 0x60, 0xb5, 0xed, 0xf3, 0xa4, 0x4a, 0xea,
823 	0x09, 0xe5, 0x65, 0x7e, 0xe0, 0xd5, 0x3a, 0x6a,
824 	0xdb, 0x64, 0xb7, 0x07, 0x8f, 0xa1, 0x63, 0xb3,
825 	0x89, 0x8a, 0xac, 0x49, 0x97, 0xa0, 0x9a, 0xa3,
826 	0xd3, 0x3a, 0xc2, 0x13, 0xb2, 0xbb, 0xab, 0x0d,
827 	0xf2, 0x35, 0xc5, 0x03, 0xde, 0x1c, 0xad, 0x6a,
828 	0x03, 0x0a, 0x4c, 0xe1, 0x37, 0x8f, 0xbc, 0x13,
829 	0xc0, 0x9a, 0x17, 0xd4, 0x2e, 0x36, 0x17, 0x51,
830 	0x12, 0xb0, 0x79, 0xbf, 0x9b, 0xb3, 0xb0, 0x74,
831 	0x25, 0x81, 0x7e, 0x21, 0x31, 0xb7, 0xc2, 0x5e,
832 	0xfb, 0x36, 0xab, 0xf3, 0x7a, 0x5f, 0xa4, 0x5e,
833 	0x8f, 0x0c, 0xbd, 0xcf, 0xf5, 0x50, 0xe7, 0x0c,
834 	0x51, 0x55, 0x48, 0xe6, 0x15, 0xb6, 0xd4, 0xaf,
835 	0x95, 0x72, 0x56, 0x94, 0xf7, 0x0e, 0xd6, 0x90,
836 	0xe3, 0xd3, 0x5d, 0xbd, 0x93, 0xa1, 0xbd, 0x6c,
837 	0xe4, 0xf2, 0x39, 0x4d, 0x54, 0x74, 0xcf, 0xf5,
838 	0xeb, 0x70, 0xdb, 0x4f, 0x52, 0xcd, 0x39, 0x8f,
839 	0x11, 0x54, 0x28, 0x06, 0x29, 0x8f, 0x23, 0xde,
840 	0x9e, 0x2f, 0x7b, 0xb6, 0x5f, 0xa3, 0x89, 0x04,
841 	0x99, 0x0a, 0xf1, 0x2d, 0xf9, 0x66, 0xd3, 0x13,
842 	0x45, 0xbd, 0x6c, 0x22, 0x57, 0xf5, 0xb1, 0xb9,
843 	0xdf, 0x5b, 0x7b, 0x1a, 0x3a, 0xdd, 0x6b, 0xc7,
844 	0x35, 0x88, 0xed, 0xc4, 0x09, 0x70, 0x4e, 0x5f,
845 	0xb5, 0x3e, 0xd1, 0x0b, 0xd0, 0xca, 0xef, 0x0b,
846 	0xe9, 0x8b, 0x6f, 0xc3, 0x16, 0xc3, 0x3d, 0x79,
847 	0x06, 0xef, 0x81, 0xf0, 0x60, 0x0b, 0x32, 0xe3,
848 	0x86, 0x6b, 0x92, 0x38, 0x90, 0x62, 0xed, 0x84,
849 	0x3a, 0xb7, 0x45, 0x43, 0x2e, 0xd0, 0x3a, 0x71,
850 	0x9e, 0x80, 0xcc, 0x9c, 0xac, 0x27, 0x10, 0x91,
851 	0xb7, 0xb2, 0xbd, 0x41, 0x40, 0xa7, 0xb7, 0xcf,
852 	0xe7, 0x38, 0xca, 0x68, 0xdd, 0x62, 0x09, 0xff,
853 	0x68, 0xce, 0xba, 0xe2, 0x07, 0x49, 0x09, 0xe7,
854 	0x1f, 0xdf, 0xe6, 0x26, 0xe5, 0x0f, 0xa9, 0xbf,
855 	0x2a, 0x5b, 0x67, 0x92, 0xa1, 0x10, 0x53, 0xb2,
856 	0x7a, 0x07, 0x29, 0x9d, 0xfd, 0x6d, 0xb6, 0x3b,
857 	0x45, 0xc1, 0x94, 0xcb, 0x1c, 0xc3, 0xce, 0xf6,
858 	0x8a, 0x1a, 0x81, 0x66, 0xb0, 0xa5, 0x14, 0xc7,
859 	0x9e, 0x1f, 0x6e, 0xb6, 0xff, 0x8b, 0x90, 0x87,
860 	0x3a, 0x3f, 0xa8, 0xc2, 0x2d, 0x8f, 0x6f, 0xdb,
861 	0xb4, 0xc4, 0x14, 0x3c, 0x1d, 0x12, 0x1d, 0x6d,
862 	0xcf, 0xa6, 0x04, 0x6a, 0xa8, 0x13, 0x5e, 0xf2,
863 	0x5e, 0x77, 0x80, 0x6b, 0x85, 0x83, 0xfe, 0xbb,
864 	0xeb, 0x70, 0xcb, 0x5f, 0xe4, 0x95, 0xaa, 0x0f,
865 	0x61, 0x36, 0x7c, 0xbb, 0x22, 0x1e, 0xba, 0x98,
866 	0x43, 0x52, 0x33, 0xae, 0xed, 0x5d, 0x10, 0x2c,
867 	0xb3, 0xa9, 0x31, 0x8e, 0x60, 0x54, 0xaf, 0x40,
868 	0x6d, 0x2e, 0x18, 0xc2, 0x6a, 0xf4, 0x7b, 0x9a,
869 	0x73, 0x0f, 0x58, 0x69, 0x23, 0xbb, 0xc4, 0x84,
870 	0x53, 0x30, 0xe2, 0xd6, 0x1e, 0x10, 0xc1, 0xec,
871 	0x82, 0x13, 0xab, 0x53, 0x86, 0xa2, 0xb9, 0xda,
872 	0xbb, 0x3a, 0xa2, 0xbe, 0xb0, 0x10, 0x99, 0x0e,
873 	0xe5, 0x9c, 0xc9, 0xf1, 0xce, 0x76, 0x46, 0xea,
874 	0x86, 0xaa, 0x36, 0x83, 0x99, 0x09, 0x9b, 0x30,
875 	0xd3, 0x26, 0xc7, 0xdf, 0x66, 0xc7, 0xf0, 0xdd,
876 	0x08, 0x09, 0x15, 0x15, 0x21, 0x49, 0x46, 0xd8,
877 	0x8a, 0x66, 0xca, 0x62, 0x9c, 0x79, 0x1d, 0x81,
878 	0xea, 0x5d, 0x82, 0xb0, 0xa6, 0x6b, 0x5c, 0xf5,
879 	0xb8, 0x8c, 0xf6, 0x16, 0x01, 0x2c, 0xf8, 0x27,
880 	0xf8, 0xcf, 0x88, 0xfe, 0xf3, 0xa4, 0xfc, 0x17,
881 	0x97, 0xe7, 0x07, 0x59, 0x06, 0xef, 0x30, 0x82,
882 	0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3, 0xa0, 0x03,
883 	0x02, 0x01, 0x02, 0x02, 0x13, 0x33, 0x00, 0x00,
884 	0x02, 0x39, 0xf9, 0xbb, 0x6a, 0x1d, 0x49, 0x64,
885 	0x47, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x39,
886 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
887 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
888 	0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
889 	0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
890 	0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
891 	0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e,
892 	0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e,
893 	0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52,
894 	0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e,
895 	0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
896 	0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
897 	0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f,
898 	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x36,
899 	0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
900 	0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
901 	0x66, 0x74, 0x20, 0x54, 0x50, 0x4d, 0x20, 0x52,
902 	0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74,
903 	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
904 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
905 	0x79, 0x20, 0x32, 0x30, 0x31, 0x34, 0x30, 0x1e,
906 	0x17, 0x0d, 0x31, 0x39, 0x30, 0x33, 0x32, 0x31,
907 	0x32, 0x30, 0x32, 0x39, 0x31, 0x35, 0x5a, 0x17,
908 	0x0d, 0x32, 0x35, 0x30, 0x33, 0x32, 0x31, 0x32,
909 	0x30, 0x32, 0x39, 0x31, 0x35, 0x5a, 0x30, 0x41,
910 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
911 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
912 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
913 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
914 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
915 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
916 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
917 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
918 	0x30, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06,
919 	0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
920 	0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f,
921 	0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
922 	0x01, 0x00, 0xdb, 0xe2, 0x23, 0xf9, 0x86, 0x8f,
923 	0xa9, 0x71, 0x9f, 0x8b, 0xf9, 0x7c, 0xe9, 0x45,
924 	0x2d, 0x59, 0x56, 0x5e, 0x96, 0xf4, 0xdd, 0x9a,
925 	0x12, 0xcd, 0x90, 0x1a, 0x0c, 0xb5, 0x03, 0xbf,
926 	0x09, 0xbe, 0xbf, 0xf7, 0x55, 0x52, 0xe8, 0x39,
927 	0x4c, 0xbe, 0x2a, 0x28, 0x88, 0x78, 0x39, 0xa7,
928 	0xcb, 0xf9, 0x4c, 0x55, 0xd2, 0x31, 0x96, 0x3b,
929 	0x48, 0xa2, 0xf3, 0xf6, 0xd3, 0x1a, 0x81, 0x7f,
930 	0x90, 0x62, 0xab, 0xec, 0x5a, 0xc7, 0xa0, 0x7f,
931 	0x81, 0x32, 0x27, 0x9b, 0x29, 0x75, 0x7d, 0x1e,
932 	0x96, 0xc5, 0xfa, 0x0e, 0x7c, 0xe0, 0x60, 0x96,
933 	0x7a, 0xca, 0x94, 0xba, 0xe6, 0xb2, 0x69, 0xdd,
934 	0xc4, 0x7d, 0xbb, 0xd3, 0xc4, 0xb4, 0x6e, 0x00,
935 	0x86, 0x1f, 0x9d, 0x25, 0xe8, 0xae, 0xc7, 0x10,
936 	0x84, 0xdc, 0xc0, 0x34, 0x24, 0x6e, 0xf7, 0xfc,
937 	0xdd, 0x3d, 0x32, 0x7a, 0x43, 0x96, 0xd6, 0xc8,
938 	0x7b, 0xf4, 0x9b, 0x3d, 0xa7, 0x1e, 0xba, 0x4d,
939 	0xd0, 0x3b, 0x3d, 0x84, 0x9a, 0xd1, 0x25, 0x22,
940 	0x5d, 0x00, 0x44, 0xb0, 0x59, 0xb7, 0x40, 0xc5,
941 	0xa3, 0x53, 0x53, 0xaf, 0x8f, 0x9e, 0xfd, 0x8f,
942 	0x1e, 0x02, 0xd3, 0x4f, 0xf7, 0x09, 0xce, 0xc5,
943 	0xc6, 0x71, 0x5c, 0xe9, 0xe8, 0x7a, 0xb5, 0x6b,
944 	0xa4, 0xbf, 0x0b, 0xd9, 0xb6, 0xfa, 0x24, 0xb0,
945 	0xcd, 0x52, 0x22, 0x1d, 0x7e, 0xe8, 0x15, 0x2f,
946 	0x1e, 0x5e, 0xa2, 0xec, 0xd3, 0xa8, 0x02, 0x77,
947 	0xb9, 0x55, 0x9a, 0xcf, 0xcc, 0xd7, 0x08, 0x20,
948 	0xa5, 0xda, 0x39, 0x9a, 0x30, 0x76, 0x90, 0x37,
949 	0xa7, 0x60, 0xdf, 0x18, 0x12, 0x65, 0x17, 0xaa,
950 	0xdd, 0x48, 0xd5, 0x12, 0x1d, 0x4c, 0x83, 0x5d,
951 	0x81, 0x07, 0x1d, 0x18, 0x81, 0x40, 0x55, 0x60,
952 	0x8f, 0xa3, 0x6b, 0x34, 0x1e, 0xd5, 0xe6, 0xcf,
953 	0x52, 0x73, 0x77, 0x4a, 0x50, 0x4f, 0x1b, 0x0f,
954 	0x39, 0xc3, 0x0d, 0x16, 0xf9, 0xbb, 0x4c, 0x77,
955 	0xf6, 0x4e, 0xac, 0x9c, 0xfe, 0xe8, 0xbb, 0x52,
956 	0xa5, 0x0a, 0x0e, 0x9b, 0xf0, 0x0d, 0xef, 0xfb,
957 	0x6f, 0x89, 0x34, 0x7d, 0x47, 0xec, 0x14, 0x6a,
958 	0xf4, 0x0a, 0xe1, 0x60, 0x44, 0x73, 0x7b, 0xa0,
959 	0xab, 0x5b, 0x8c, 0x43, 0xa6, 0x05, 0x42, 0x61,
960 	0x46, 0xaa, 0x1c, 0xf5, 0xec, 0x2c, 0x86, 0x85,
961 	0x21, 0x99, 0xdf, 0x45, 0x8e, 0xf4, 0xd1, 0x1e,
962 	0xfb, 0xcd, 0x9b, 0x94, 0x32, 0xe0, 0xa0, 0xcc,
963 	0x4f, 0xad, 0xae, 0x44, 0x8b, 0x86, 0x27, 0x91,
964 	0xfe, 0x60, 0x9f, 0xf2, 0x63, 0x30, 0x6c, 0x5d,
965 	0x8d, 0xbc, 0xab, 0xd4, 0xf5, 0xa2, 0xb2, 0x74,
966 	0xe8, 0xd4, 0x95, 0xf2, 0xd6, 0x03, 0x8b, 0xc9,
967 	0xa3, 0x52, 0xe7, 0x63, 0x05, 0x64, 0x50, 0xe5,
968 	0x0a, 0x6a, 0xa0, 0x6c, 0x50, 0xcd, 0x37, 0x98,
969 	0xa8, 0x87, 0x02, 0x38, 0x5b, 0x6c, 0x02, 0x69,
970 	0x3d, 0x1f, 0x95, 0x74, 0x4d, 0x46, 0x76, 0x2a,
971 	0x9d, 0x62, 0xd4, 0xc7, 0x1b, 0xf9, 0x31, 0xa6,
972 	0x51, 0xee, 0x7b, 0xc8, 0xe4, 0x6e, 0x3a, 0xcf,
973 	0x4f, 0x4f, 0x49, 0x8a, 0xf5, 0x4f, 0x25, 0x93,
974 	0x23, 0x02, 0xef, 0x79, 0xa6, 0x27, 0xbe, 0x5a,
975 	0xe7, 0x74, 0xb7, 0xd7, 0xa8, 0xc1, 0xae, 0x55,
976 	0x88, 0xa4, 0xc7, 0x4d, 0xb7, 0x62, 0xf0, 0xf9,
977 	0x5b, 0xbf, 0x47, 0x5b, 0xfe, 0xcc, 0x0b, 0x89,
978 	0x19, 0x65, 0x4b, 0x6f, 0xdf, 0x4f, 0x7d, 0x4d,
979 	0x96, 0x42, 0x0d, 0x2a, 0xa1, 0xbd, 0x3e, 0x70,
980 	0x92, 0xba, 0xc8, 0x59, 0xd5, 0x1d, 0x3a, 0x98,
981 	0x53, 0x75, 0xa6, 0x32, 0xc8, 0x72, 0x03, 0x46,
982 	0x5f, 0x5c, 0x13, 0xa4, 0xdb, 0xc7, 0x55, 0x35,
983 	0x22, 0x0d, 0xc6, 0x17, 0x85, 0xbd, 0x46, 0x4b,
984 	0xfa, 0x1e, 0x49, 0xc2, 0xfe, 0x1e, 0xf9, 0x62,
985 	0x89, 0x56, 0x84, 0xdf, 0xa0, 0xfb, 0xfd, 0x93,
986 	0xa4, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
987 	0x82, 0x01, 0x8e, 0x30, 0x82, 0x01, 0x8a, 0x30,
988 	0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
989 	0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x84, 0x30,
990 	0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x14,
991 	0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
992 	0x01, 0x82, 0x37, 0x15, 0x24, 0x06, 0x05, 0x67,
993 	0x81, 0x05, 0x08, 0x03, 0x30, 0x16, 0x06, 0x03,
994 	0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30, 0x0d, 0x30,
995 	0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
996 	0x82, 0x37, 0x15, 0x1f, 0x30, 0x12, 0x06, 0x03,
997 	0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
998 	0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
999 	0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
1000 	0x16, 0x04, 0x14, 0xb8, 0x5f, 0xd5, 0x67, 0xca,
1001 	0x92, 0xc4, 0x0e, 0xcf, 0x0c, 0xd8, 0x1f, 0x6d,
1002 	0x3f, 0x03, 0x55, 0x6f, 0x38, 0xa6, 0x51, 0x30,
1003 	0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
1004 	0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c, 0x0a, 0xce,
1005 	0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94, 0xd1, 0xae,
1006 	0x55, 0xc1, 0x52, 0xec, 0x71, 0x74, 0xa4, 0x56,
1007 	0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
1008 	0x69, 0x30, 0x67, 0x30, 0x65, 0xa0, 0x63, 0xa0,
1009 	0x61, 0x86, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x3a,
1010 	0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69,
1011 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e,
1012 	0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f,
1013 	0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x4d,
1014 	0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
1015 	0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32,
1016 	0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30,
1017 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
1018 	0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75,
1019 	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25,
1020 	0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63,
1021 	0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08, 0x2b, 0x06,
1022 	0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x71,
1023 	0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
1024 	0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x61,
1025 	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
1026 	0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
1027 	0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
1028 	0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x2f,
1029 	0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69,
1030 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x25,
1031 	0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32, 0x30,
1032 	0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43,
1033 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
1034 	0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75, 0x74,
1035 	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25, 0x32,
1036 	0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63, 0x72,
1037 	0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
1038 	0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
1039 	0x03, 0x82, 0x02, 0x01, 0x00, 0x41, 0xaa, 0xfe,
1040 	0x28, 0x6c, 0xf7, 0x6b, 0x53, 0xde, 0x77, 0xc0,
1041 	0x80, 0x50, 0x94, 0xd9, 0xdb, 0x46, 0x8e, 0x6a,
1042 	0x93, 0xa9, 0x10, 0x37, 0x27, 0x1f, 0xf5, 0x70,
1043 	0xf1, 0xa8, 0xcf, 0xa1, 0x45, 0x86, 0x2a, 0xdd,
1044 	0x8f, 0xb8, 0xb5, 0xc1, 0xe6, 0xcf, 0x8a, 0xfa,
1045 	0x32, 0xa1, 0x4b, 0xb7, 0xa4, 0xbf, 0x0a, 0x48,
1046 	0xcb, 0x42, 0x63, 0x71, 0xc1, 0x96, 0xb9, 0x3a,
1047 	0x37, 0x84, 0x0e, 0x24, 0x39, 0xeb, 0x58, 0xce,
1048 	0x3d, 0xb7, 0xa9, 0x44, 0x92, 0x59, 0xb9, 0xff,
1049 	0xdb, 0x18, 0xbe, 0x6a, 0x5e, 0xe7, 0xce, 0xef,
1050 	0xb8, 0x40, 0x53, 0xaf, 0xc1, 0x9b, 0xfb, 0x42,
1051 	0x99, 0x7e, 0x9d, 0x05, 0x2b, 0x71, 0x0a, 0x7a,
1052 	0x7a, 0x44, 0xd1, 0x31, 0xca, 0xf0, 0x5f, 0x74,
1053 	0x85, 0xa9, 0xe2, 0xbc, 0xc8, 0x0c, 0xad, 0x57,
1054 	0xd1, 0xe9, 0x48, 0x90, 0x88, 0x57, 0x86, 0xd7,
1055 	0xc5, 0xc9, 0xe6, 0xb2, 0x5e, 0x5f, 0x13, 0xdc,
1056 	0x10, 0x7f, 0xdf, 0x63, 0x8a, 0xd5, 0x9e, 0x90,
1057 	0xc2, 0x75, 0x53, 0x1e, 0x68, 0x17, 0x2b, 0x03,
1058 	0x29, 0x15, 0x03, 0xc5, 0x8c, 0x66, 0x3e, 0xae,
1059 	0xbd, 0x4a, 0x32, 0x7e, 0x59, 0x89, 0x0b, 0x84,
1060 	0xc2, 0xd9, 0x90, 0xfa, 0x02, 0x22, 0x90, 0x8d,
1061 	0x9c, 0xb6, 0x0c, 0x4d, 0xe1, 0x28, 0x76, 0xd7,
1062 	0x82, 0xc3, 0x36, 0xc2, 0xa3, 0x2a, 0x52, 0xe5,
1063 	0xfe, 0x3c, 0x8f, 0xe3, 0x4b, 0xda, 0x6a, 0xdb,
1064 	0xc0, 0x7a, 0x3c, 0x57, 0xfa, 0x85, 0x8f, 0xfb,
1065 	0x62, 0xc3, 0xa1, 0x38, 0xce, 0x84, 0xf2, 0xba,
1066 	0x12, 0xf4, 0x30, 0x2a, 0x4a, 0x94, 0xa9, 0x35,
1067 	0x2c, 0x7d, 0x11, 0xc7, 0x68, 0x1f, 0x47, 0xaa,
1068 	0x57, 0x43, 0x06, 0x70, 0x79, 0x8c, 0xb6, 0x3b,
1069 	0x5d, 0x57, 0xf3, 0xf3, 0xc0, 0x2c, 0xc5, 0xde,
1070 	0x41, 0x99, 0xf6, 0xdd, 0x55, 0x8a, 0xe4, 0x13,
1071 	0xca, 0xc9, 0xec, 0x69, 0x93, 0x13, 0x48, 0xf0,
1072 	0x5f, 0xda, 0x2e, 0xfd, 0xfb, 0xa9, 0x1b, 0x92,
1073 	0xde, 0x49, 0x71, 0x37, 0x8c, 0x3f, 0xc2, 0x08,
1074 	0x0a, 0x83, 0x25, 0xf1, 0x6e, 0x0a, 0xe3, 0x55,
1075 	0x85, 0x96, 0x9a, 0x2d, 0xa2, 0xc0, 0xa1, 0xee,
1076 	0xfe, 0x23, 0x3b, 0x69, 0x22, 0x03, 0xfd, 0xcc,
1077 	0x8a, 0xdd, 0xb4, 0x53, 0x8d, 0x84, 0xa6, 0xac,
1078 	0xe0, 0x1e, 0x07, 0xe5, 0xd7, 0xf9, 0xcb, 0xb9,
1079 	0xe3, 0x9a, 0xb7, 0x84, 0x70, 0xa1, 0x93, 0xd6,
1080 	0x02, 0x1e, 0xfe, 0xdb, 0x28, 0x7c, 0xf7, 0xd4,
1081 	0x62, 0x6f, 0x80, 0x75, 0xc8, 0xd8, 0x35, 0x26,
1082 	0x0c, 0xcb, 0x84, 0xed, 0xbb, 0x95, 0xdf, 0x7f,
1083 	0xd5, 0xbb, 0x00, 0x96, 0x97, 0x32, 0xe7, 0xba,
1084 	0xe8, 0x29, 0xb5, 0x1a, 0x51, 0x81, 0xbb, 0x04,
1085 	0xd1, 0x21, 0x76, 0x34, 0x6d, 0x1e, 0x93, 0x96,
1086 	0x1f, 0x96, 0x53, 0x5f, 0x5c, 0x9e, 0xf3, 0x9d,
1087 	0x82, 0x1c, 0x39, 0x36, 0x59, 0xae, 0xc9, 0x3c,
1088 	0x53, 0x4a, 0x67, 0x65, 0x6e, 0xbf, 0xa6, 0xac,
1089 	0x3e, 0xda, 0xb2, 0xa7, 0x63, 0x07, 0x17, 0xe1,
1090 	0x5b, 0xda, 0x6a, 0x31, 0x9f, 0xfb, 0xb4, 0xea,
1091 	0xa1, 0x97, 0x08, 0x6e, 0xb2, 0x68, 0xf3, 0x72,
1092 	0x76, 0x99, 0xe8, 0x00, 0x46, 0x88, 0x26, 0xe1,
1093 	0x3c, 0x07, 0x2b, 0x78, 0x49, 0xda, 0x79, 0x3a,
1094 	0xbd, 0x6f, 0xca, 0x5c, 0xa0, 0xa8, 0xed, 0x34,
1095 	0xcc, 0xdb, 0x13, 0xe2, 0x51, 0x9b, 0x3d, 0x03,
1096 	0xac, 0xc7, 0xf6, 0x32, 0xe1, 0x11, 0x5d, 0xe1,
1097 	0xc5, 0xfd, 0x9e, 0x7a, 0xcd, 0x06, 0xb9, 0xe6,
1098 	0xfc, 0xe0, 0x03, 0x31, 0xf4, 0x4a, 0xa9, 0x3b,
1099 	0x79, 0x01, 0xb0, 0x64, 0x68, 0x9f, 0x6e, 0x76,
1100 	0xa1, 0xcc, 0xec, 0x17, 0x41, 0x9d, 0xd4, 0x5b,
1101 	0x4e, 0x9d, 0xe5, 0x46, 0xd4, 0x6b, 0x60, 0x2a,
1102 	0x23, 0xb5, 0x7a, 0x89, 0x7c, 0x27, 0x96, 0x65,
1103 	0x97, 0x56, 0xec, 0x98, 0xe3, 0x67, 0x70, 0x75,
1104 	0x62, 0x41, 0x72, 0x65, 0x61, 0x59, 0x01, 0x36,
1105 	0x00, 0x01, 0x00, 0x0b, 0x00, 0x06, 0x04, 0x72,
1106 	0x00, 0x20, 0x9d, 0xff, 0xcb, 0xf3, 0x6c, 0x38,
1107 	0x3a, 0xe6, 0x99, 0xfb, 0x98, 0x68, 0xdc, 0x6d,
1108 	0xcb, 0x89, 0xd7, 0x15, 0x38, 0x84, 0xbe, 0x28,
1109 	0x03, 0x92, 0x2c, 0x12, 0x41, 0x58, 0xbf, 0xad,
1110 	0x22, 0xae, 0x00, 0x10, 0x00, 0x10, 0x08, 0x00,
1111 	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc5, 0xb6,
1112 	0x9c, 0x06, 0x1d, 0xcf, 0xb9, 0xf2, 0x5e, 0x99,
1113 	0x7d, 0x6d, 0x73, 0xd8, 0x36, 0xc1, 0x4a, 0x90,
1114 	0x05, 0x4d, 0x82, 0x57, 0xc1, 0xb6, 0x6a, 0xd1,
1115 	0x43, 0x03, 0x85, 0xf8, 0x52, 0x4f, 0xd2, 0x27,
1116 	0x91, 0x0b, 0xb5, 0x93, 0xa0, 0x68, 0xf8, 0x80,
1117 	0x1b, 0xaa, 0x65, 0x97, 0x45, 0x11, 0x86, 0x34,
1118 	0xd6, 0x67, 0xf8, 0xd5, 0x12, 0x79, 0x84, 0xee,
1119 	0x70, 0x99, 0x00, 0x63, 0xa8, 0xb4, 0x43, 0x0b,
1120 	0x4c, 0x57, 0x4a, 0xd6, 0x9b, 0x75, 0x63, 0x8a,
1121 	0x46, 0x57, 0xdb, 0x14, 0xc8, 0x71, 0xd1, 0xb3,
1122 	0x07, 0x68, 0x58, 0xbc, 0x55, 0x84, 0x80, 0x2a,
1123 	0xd2, 0x36, 0x9f, 0xc1, 0x64, 0xa0, 0x11, 0x4b,
1124 	0xc9, 0x32, 0x31, 0x3a, 0xd6, 0x87, 0x26, 0x1a,
1125 	0x3a, 0x78, 0x3d, 0x89, 0xdb, 0x00, 0x28, 0x3b,
1126 	0xae, 0x2b, 0x1b, 0x56, 0xe2, 0x8c, 0x4c, 0x63,
1127 	0xac, 0x6e, 0x6c, 0xf7, 0xb5, 0x7d, 0x4d, 0x0b,
1128 	0x9f, 0x06, 0xa0, 0x10, 0x35, 0x38, 0x20, 0x4d,
1129 	0xcc, 0x07, 0xd7, 0x00, 0x4e, 0x86, 0xba, 0xfe,
1130 	0x8b, 0xe4, 0x3f, 0x4a, 0xd6, 0xca, 0xbf, 0x67,
1131 	0x40, 0x1a, 0xa4, 0xda, 0x82, 0x52, 0x15, 0xb8,
1132 	0x14, 0x3a, 0x7c, 0xa9, 0x02, 0xc1, 0x01, 0x69,
1133 	0xc6, 0x51, 0xd4, 0xbc, 0x1f, 0x95, 0xb2, 0xee,
1134 	0x1f, 0xdd, 0xb5, 0x73, 0x16, 0x5e, 0x29, 0x3f,
1135 	0x47, 0xac, 0x65, 0xfb, 0x63, 0x5c, 0xb9, 0xc8,
1136 	0x13, 0x2d, 0xec, 0x85, 0xde, 0x71, 0x0d, 0x84,
1137 	0x93, 0x74, 0x76, 0x91, 0xdd, 0x1d, 0x6d, 0x3d,
1138 	0xc7, 0x36, 0x19, 0x19, 0x86, 0xde, 0x7c, 0xca,
1139 	0xd6, 0xc6, 0x65, 0x7e, 0x4b, 0x24, 0x9c, 0xce,
1140 	0x92, 0x6b, 0x1c, 0xe0, 0xa0, 0xa9, 0x6c, 0xc3,
1141 	0xed, 0x4f, 0x2a, 0x54, 0x07, 0x00, 0x32, 0x5e,
1142 	0x1b, 0x94, 0x37, 0xcd, 0xe2, 0x32, 0xa8, 0xd5,
1143 	0x2c, 0xfb, 0x03, 0x9d, 0x79, 0xdf, 0x68, 0x63,
1144 	0x65, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x58,
1145 	0xa1, 0xff, 0x54, 0x43, 0x47, 0x80, 0x17, 0x00,
1146 	0x22, 0x00, 0x0b, 0xdb, 0x1f, 0x74, 0x21, 0x4f,
1147 	0xa9, 0x0d, 0x90, 0x64, 0xa2, 0x33, 0xbe, 0x3f,
1148 	0xf1, 0x95, 0xb0, 0x4e, 0x3f, 0x02, 0xdc, 0xad,
1149 	0xb0, 0x05, 0x13, 0xe6, 0x32, 0x5f, 0xed, 0x90,
1150 	0x2c, 0xad, 0xc0, 0x00, 0x14, 0x58, 0x52, 0x07,
1151 	0x5d, 0x64, 0x6c, 0x1f, 0xd1, 0x13, 0x7f, 0xc3,
1152 	0x74, 0xf6, 0x4b, 0xe3, 0xa0, 0x2e, 0xb7, 0x71,
1153 	0xda, 0x00, 0x00, 0x00, 0x00, 0x29, 0x3c, 0x64,
1154 	0xdf, 0x95, 0x38, 0xba, 0x73, 0xe3, 0x57, 0x61,
1155 	0xa0, 0x01, 0x24, 0x01, 0x08, 0xc9, 0xd6, 0xea,
1156 	0x60, 0xe4, 0x00, 0x22, 0x00, 0x0b, 0xe1, 0x86,
1157 	0xbb, 0x79, 0x27, 0xe5, 0x01, 0x19, 0x90, 0xb3,
1158 	0xe9, 0x08, 0xb0, 0xee, 0xfa, 0x3a, 0x67, 0xa9,
1159 	0xf3, 0xc8, 0x9e, 0x03, 0x41, 0x07, 0x75, 0x60,
1160 	0xbc, 0x94, 0x0c, 0x2a, 0xb7, 0xad, 0x00, 0x22,
1161 	0x00, 0x0b, 0x35, 0xb1, 0x72, 0xd6, 0x3c, 0xe9,
1162 	0x85, 0xe8, 0x66, 0xed, 0x10, 0x7a, 0x5c, 0xa3,
1163 	0xe6, 0xd9, 0x4d, 0xf0, 0x52, 0x69, 0x26, 0x14,
1164 	0xb4, 0x36, 0x7e, 0xad, 0x76, 0x9e, 0x58, 0x68,
1165 	0x3e, 0x91
1166 };
1167 
1168 const unsigned char attstmt_tpm_es256[3841] = {
1169 	0xa6, 0x63, 0x61, 0x6c, 0x67, 0x39, 0xff, 0xfe,
1170 	0x63, 0x73, 0x69, 0x67, 0x59, 0x01, 0x00, 0x6d,
1171 	0x11, 0x61, 0x1f, 0x45, 0xb9, 0x7f, 0x65, 0x6f,
1172 	0x97, 0x46, 0xfe, 0xbb, 0x8a, 0x98, 0x07, 0xa3,
1173 	0xbc, 0x67, 0x5c, 0xd7, 0x65, 0xa4, 0xf4, 0x6c,
1174 	0x5b, 0x37, 0x75, 0xa4, 0x7f, 0x08, 0x52, 0xeb,
1175 	0x1e, 0x12, 0xe2, 0x78, 0x8c, 0x7d, 0x94, 0xab,
1176 	0x7b, 0xed, 0x05, 0x17, 0x67, 0x7e, 0xaa, 0x02,
1177 	0x89, 0x6d, 0xe8, 0x6d, 0x43, 0x30, 0x99, 0xc6,
1178 	0xf9, 0x59, 0xe5, 0x82, 0x3c, 0x56, 0x4e, 0x77,
1179 	0x11, 0x25, 0xe4, 0x43, 0x6a, 0xae, 0x92, 0x4f,
1180 	0x60, 0x92, 0x50, 0xf9, 0x65, 0x0e, 0x44, 0x38,
1181 	0x3d, 0xf7, 0xaf, 0x66, 0x89, 0xc7, 0xe6, 0xe6,
1182 	0x01, 0x07, 0x9e, 0x90, 0xfd, 0x6d, 0xaa, 0x35,
1183 	0x51, 0x51, 0xbf, 0x54, 0x13, 0x95, 0xc2, 0x17,
1184 	0xfa, 0x32, 0x0f, 0xa7, 0x82, 0x17, 0x58, 0x6c,
1185 	0x3d, 0xea, 0x88, 0xd8, 0x64, 0xc7, 0xf8, 0xc2,
1186 	0xd6, 0x1c, 0xbb, 0xea, 0x1e, 0xb3, 0xd9, 0x4c,
1187 	0xa7, 0xce, 0x18, 0x1e, 0xcb, 0x42, 0x5f, 0xbf,
1188 	0x44, 0xe7, 0xf1, 0x22, 0xe0, 0x5b, 0xeb, 0xff,
1189 	0xb6, 0x1e, 0x6f, 0x60, 0x12, 0x16, 0x63, 0xfe,
1190 	0xab, 0x5e, 0x31, 0x13, 0xdb, 0x72, 0xc6, 0x9a,
1191 	0xf8, 0x8f, 0x19, 0x6b, 0x2e, 0xaf, 0x7d, 0xca,
1192 	0x9f, 0xbc, 0x6b, 0x1a, 0x8b, 0x5e, 0xe3, 0x9e,
1193 	0xaa, 0x8c, 0x79, 0x9c, 0x4e, 0xed, 0xe4, 0xff,
1194 	0x3d, 0x12, 0x79, 0x90, 0x09, 0x61, 0x97, 0x67,
1195 	0xbf, 0x04, 0xac, 0x37, 0xea, 0xa9, 0x1f, 0x9f,
1196 	0x52, 0x64, 0x0b, 0xeb, 0xc3, 0x61, 0xd4, 0x13,
1197 	0xb0, 0x84, 0xf1, 0x3c, 0x74, 0x83, 0xcc, 0xa8,
1198 	0x1c, 0x14, 0xe6, 0x9d, 0xfe, 0xec, 0xee, 0xa1,
1199 	0xd2, 0xc2, 0x0a, 0xa6, 0x36, 0x08, 0xbb, 0x17,
1200 	0xa5, 0x7b, 0x53, 0x34, 0x0e, 0xc9, 0x09, 0xe5,
1201 	0x10, 0xa6, 0x85, 0x01, 0x71, 0x66, 0xff, 0xd0,
1202 	0x6d, 0x4b, 0x93, 0xdb, 0x81, 0x25, 0x01, 0x63,
1203 	0x76, 0x65, 0x72, 0x63, 0x32, 0x2e, 0x30, 0x63,
1204 	0x78, 0x35, 0x63, 0x82, 0x59, 0x05, 0xc4, 0x30,
1205 	0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8, 0xa0,
1206 	0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x30, 0xcd,
1207 	0xf2, 0x7e, 0x81, 0xc0, 0x43, 0x85, 0xa2, 0xd7,
1208 	0x29, 0xef, 0xf7, 0x9f, 0xa5, 0x2b, 0x30, 0x0d,
1209 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
1210 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41, 0x31,
1211 	0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03,
1212 	0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53, 0x54,
1213 	0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44, 0x2d,
1214 	0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34, 0x41,
1215 	0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37, 0x41,
1216 	0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30, 0x30,
1217 	0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31, 0x41,
1218 	0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36, 0x30,
1219 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31,
1220 	0x30, 0x32, 0x31, 0x35, 0x30, 0x36, 0x35, 0x33,
1221 	0x5a, 0x17, 0x0d, 0x32, 0x37, 0x30, 0x36, 0x30,
1222 	0x33, 0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a,
1223 	0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
1224 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
1225 	0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
1226 	0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
1227 	0x01, 0x01, 0x00, 0xdb, 0xd5, 0x9a, 0xfc, 0x09,
1228 	0xa7, 0xc4, 0xa5, 0x5f, 0xbe, 0x5f, 0xa2, 0xeb,
1229 	0xd6, 0x8e, 0xed, 0xc5, 0x67, 0xa6, 0xa7, 0xd9,
1230 	0xb2, 0x46, 0xc6, 0xe0, 0xae, 0x0c, 0x02, 0x25,
1231 	0x0a, 0xf2, 0xc5, 0x96, 0xdc, 0xb7, 0x0e, 0xb9,
1232 	0x86, 0xd3, 0x51, 0xbb, 0x63, 0xf0, 0x4f, 0x8a,
1233 	0x5e, 0xd7, 0xf7, 0xff, 0xbb, 0x29, 0xbd, 0x58,
1234 	0xcf, 0x75, 0x02, 0x39, 0xcb, 0x80, 0xf1, 0xd4,
1235 	0xb6, 0x75, 0x67, 0x2f, 0x27, 0x4d, 0x0c, 0xcc,
1236 	0x18, 0x59, 0x87, 0xfa, 0x51, 0xd1, 0x80, 0xb5,
1237 	0x1a, 0xac, 0xac, 0x29, 0x51, 0xcf, 0x27, 0xaa,
1238 	0x74, 0xac, 0x3e, 0x59, 0x56, 0x67, 0xe4, 0x42,
1239 	0xe8, 0x30, 0x35, 0xb2, 0xf6, 0x27, 0x91, 0x62,
1240 	0x60, 0x42, 0x42, 0x12, 0xde, 0xfe, 0xdd, 0xee,
1241 	0xe8, 0xa8, 0x82, 0xf9, 0xb1, 0x08, 0xd5, 0x8d,
1242 	0x57, 0x9a, 0x29, 0xb9, 0xb4, 0xe9, 0x19, 0x1e,
1243 	0x33, 0x7d, 0x37, 0xa0, 0xce, 0x2e, 0x53, 0x13,
1244 	0x39, 0xb6, 0x12, 0x61, 0x63, 0xbf, 0xd3, 0x42,
1245 	0xeb, 0x6f, 0xed, 0xc1, 0x8e, 0x26, 0xba, 0x7d,
1246 	0x8b, 0x37, 0x7c, 0xbb, 0x42, 0x1e, 0x56, 0x76,
1247 	0xda, 0xdb, 0x35, 0x6b, 0x80, 0xe1, 0x8e, 0x00,
1248 	0xac, 0xd2, 0xfc, 0x22, 0x96, 0x14, 0x0c, 0xf4,
1249 	0xe4, 0xc5, 0xad, 0x14, 0xb7, 0x4d, 0x46, 0x63,
1250 	0x30, 0x79, 0x3a, 0x7c, 0x33, 0xb5, 0xe5, 0x2e,
1251 	0xbb, 0x5f, 0xca, 0xf2, 0x75, 0xe3, 0x4e, 0x99,
1252 	0x64, 0x1b, 0x26, 0x99, 0x60, 0x1a, 0x79, 0xcc,
1253 	0x30, 0x2c, 0xb3, 0x4c, 0x59, 0xf7, 0x77, 0x59,
1254 	0xd5, 0x90, 0x70, 0x21, 0x79, 0x8c, 0x1f, 0x79,
1255 	0x0a, 0x12, 0x8b, 0x3b, 0x37, 0x2d, 0x97, 0x39,
1256 	0x89, 0x92, 0x0c, 0x44, 0x7c, 0xe9, 0x9f, 0xce,
1257 	0x6d, 0xad, 0xc5, 0xae, 0xea, 0x8e, 0x50, 0x22,
1258 	0x37, 0xe0, 0xd1, 0x9e, 0xd6, 0xe6, 0xa8, 0xcc,
1259 	0x21, 0xfb, 0xff, 0x02, 0x03, 0x01, 0x00, 0x01,
1260 	0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01, 0xef,
1261 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
1262 	0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
1263 	0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
1264 	0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x6d,
1265 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01, 0xff,
1266 	0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06, 0x09,
1267 	0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15,
1268 	0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b,
1269 	0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30,
1270 	0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43, 0x00,
1271 	0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20, 0x00,
1272 	0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00,
1273 	0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00,
1274 	0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61, 0x00,
1275 	0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00,
1276 	0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00,
1277 	0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00,
1278 	0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10, 0x06,
1279 	0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30, 0x07,
1280 	0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30,
1281 	0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01, 0x01,
1282 	0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b, 0x30,
1283 	0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05, 0x67,
1284 	0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69, 0x64,
1285 	0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44, 0x32,
1286 	0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05, 0x67,
1287 	0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53, 0x54,
1288 	0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41, 0x48,
1289 	0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
1290 	0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b, 0x69,
1291 	0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30, 0x30,
1292 	0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
1293 	0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x45,
1294 	0x1a, 0xec, 0xfc, 0x91, 0x70, 0xf8, 0x83, 0x8b,
1295 	0x9c, 0x47, 0x2f, 0x0b, 0x9f, 0x07, 0xf3, 0x2f,
1296 	0x7c, 0xa2, 0x8a, 0x30, 0x1d, 0x06, 0x03, 0x55,
1297 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x55, 0xa6,
1298 	0xee, 0xe3, 0x28, 0xdd, 0x40, 0x7f, 0x21, 0xd2,
1299 	0x7b, 0x8c, 0x69, 0x2f, 0x8c, 0x08, 0x29, 0xbc,
1300 	0x95, 0xb8, 0x30, 0x81, 0xb2, 0x06, 0x08, 0x2b,
1301 	0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
1302 	0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81, 0x9f,
1303 	0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
1304 	0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74, 0x74,
1305 	0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63, 0x73,
1306 	0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73, 0x61,
1307 	0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
1308 	0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x63,
1309 	0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64,
1310 	0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
1311 	0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d, 0x2d,
1312 	0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31, 0x61,
1313 	0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62, 0x35,
1314 	0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30, 0x63,
1315 	0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65, 0x37,
1316 	0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34, 0x33,
1317 	0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f, 0x62,
1318 	0x36, 0x63, 0x30, 0x64, 0x39, 0x38, 0x64, 0x2d,
1319 	0x35, 0x37, 0x38, 0x61, 0x2d, 0x34, 0x62, 0x66,
1320 	0x62, 0x2d, 0x61, 0x32, 0x64, 0x33, 0x2d, 0x65,
1321 	0x64, 0x66, 0x65, 0x35, 0x66, 0x38, 0x32, 0x30,
1322 	0x36, 0x30, 0x31, 0x2e, 0x63, 0x65, 0x72, 0x30,
1323 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
1324 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
1325 	0x02, 0x01, 0x00, 0x2a, 0x08, 0x30, 0x1f, 0xfd,
1326 	0x8f, 0x80, 0x9b, 0x4b, 0x37, 0x82, 0x61, 0x86,
1327 	0x36, 0x57, 0x90, 0xb5, 0x1d, 0x1f, 0xa3, 0xae,
1328 	0x68, 0xac, 0xa7, 0x96, 0x6a, 0x25, 0x5e, 0xc5,
1329 	0x82, 0x7c, 0x36, 0x64, 0x58, 0x11, 0xcb, 0xa5,
1330 	0xee, 0xbf, 0xc4, 0xdb, 0xa0, 0xc7, 0x82, 0x3b,
1331 	0xa3, 0x85, 0x9b, 0xc4, 0xee, 0x07, 0x36, 0xd7,
1332 	0xc7, 0xb6, 0x23, 0xed, 0xc2, 0x73, 0xab, 0xbe,
1333 	0xbe, 0xee, 0x63, 0x17, 0xf9, 0xd7, 0x7a, 0x23,
1334 	0x7b, 0xf8, 0x09, 0x7a, 0xaa, 0x7f, 0x67, 0xc3,
1335 	0x04, 0x84, 0x71, 0x9b, 0x06, 0x9c, 0x07, 0x42,
1336 	0x4b, 0x65, 0x41, 0x56, 0x58, 0x14, 0x92, 0xb0,
1337 	0xb9, 0xaf, 0xa1, 0x39, 0xd4, 0x08, 0x2d, 0x71,
1338 	0xd5, 0x6c, 0x56, 0xb9, 0x2b, 0x1e, 0xf3, 0x93,
1339 	0xa5, 0xe9, 0xb2, 0x9b, 0x4d, 0x05, 0x2b, 0xbc,
1340 	0xd2, 0x20, 0x57, 0x3b, 0xa4, 0x01, 0x68, 0x8c,
1341 	0x23, 0x20, 0x7d, 0xbb, 0x71, 0xe4, 0x2a, 0x24,
1342 	0xba, 0x75, 0x0c, 0x89, 0x54, 0x22, 0xeb, 0x0e,
1343 	0xb2, 0xf4, 0xc2, 0x1f, 0x02, 0xb7, 0xe3, 0x06,
1344 	0x41, 0x15, 0x6b, 0xf3, 0xc8, 0x2d, 0x5b, 0xc2,
1345 	0x21, 0x82, 0x3e, 0xe8, 0x95, 0x40, 0x39, 0x9e,
1346 	0x91, 0x68, 0x33, 0x0c, 0x3d, 0x45, 0xef, 0x99,
1347 	0x79, 0xe6, 0x32, 0xc9, 0x00, 0x84, 0x36, 0xfb,
1348 	0x0a, 0x8d, 0x41, 0x1c, 0x32, 0x64, 0x06, 0x9e,
1349 	0x0f, 0xb5, 0x04, 0xcc, 0x08, 0xb1, 0xb6, 0x2b,
1350 	0xcf, 0x36, 0x0f, 0x73, 0x14, 0x8e, 0x25, 0x44,
1351 	0xb3, 0x0c, 0x34, 0x14, 0x96, 0x0c, 0x8a, 0x65,
1352 	0xa1, 0xde, 0x8e, 0xc8, 0x9d, 0xbe, 0x66, 0xdf,
1353 	0x06, 0x91, 0xca, 0x15, 0x0f, 0x92, 0xd5, 0x2a,
1354 	0x0b, 0xdc, 0x4c, 0x6a, 0xf3, 0x16, 0x4a, 0x3e,
1355 	0xb9, 0x76, 0xbc, 0xfe, 0x62, 0xd4, 0xa8, 0xcd,
1356 	0x94, 0x78, 0x0d, 0xdd, 0x94, 0xfd, 0x5e, 0x63,
1357 	0x57, 0x27, 0x05, 0x9c, 0xd0, 0x80, 0x91, 0x91,
1358 	0x79, 0xe8, 0x5e, 0x18, 0x64, 0x22, 0xe4, 0x2c,
1359 	0x13, 0x65, 0xa4, 0x51, 0x5a, 0x1e, 0x3b, 0x71,
1360 	0x2e, 0x70, 0x9f, 0xc4, 0xa5, 0x20, 0xcd, 0xef,
1361 	0xd8, 0x3f, 0xa4, 0xf5, 0x89, 0x8a, 0xa5, 0x4f,
1362 	0x76, 0x2d, 0x49, 0x56, 0x00, 0x8d, 0xde, 0x40,
1363 	0xba, 0x24, 0x46, 0x51, 0x38, 0xad, 0xdb, 0xc4,
1364 	0x04, 0xf4, 0x6e, 0xc0, 0x29, 0x48, 0x07, 0x6a,
1365 	0x1b, 0x26, 0x32, 0x0a, 0xfb, 0xea, 0x71, 0x2a,
1366 	0x11, 0xfc, 0x98, 0x7c, 0x44, 0x87, 0xbc, 0x06,
1367 	0x3a, 0x4d, 0xbd, 0x91, 0x63, 0x4f, 0x26, 0x48,
1368 	0x54, 0x47, 0x1b, 0xbd, 0xf0, 0xf1, 0x56, 0x05,
1369 	0xc5, 0x0f, 0x8f, 0x20, 0xa5, 0xcc, 0xfb, 0x76,
1370 	0xb0, 0xbd, 0x83, 0xde, 0x7f, 0x39, 0x4f, 0xcf,
1371 	0x61, 0x74, 0x52, 0xa7, 0x1d, 0xf6, 0xb5, 0x5e,
1372 	0x4a, 0x82, 0x20, 0xc1, 0x94, 0xaa, 0x2c, 0x33,
1373 	0xd6, 0x0a, 0xf9, 0x8f, 0x92, 0xc6, 0x29, 0x80,
1374 	0xf5, 0xa2, 0xb1, 0xff, 0xb6, 0x2b, 0xaa, 0x04,
1375 	0x00, 0x72, 0xb4, 0x12, 0xbb, 0xb1, 0xf1, 0x3c,
1376 	0x88, 0xa3, 0xab, 0x49, 0x17, 0x90, 0x80, 0x59,
1377 	0xa2, 0x96, 0x41, 0x69, 0x74, 0x33, 0x8a, 0x28,
1378 	0x33, 0x7e, 0xb3, 0x19, 0x92, 0x28, 0xc1, 0xf0,
1379 	0xd1, 0x82, 0xd5, 0x42, 0xff, 0xe7, 0xa5, 0x3f,
1380 	0x1e, 0xb6, 0x4a, 0x23, 0xcc, 0x6a, 0x7f, 0x15,
1381 	0x15, 0x52, 0x25, 0xb1, 0xca, 0x21, 0x95, 0x11,
1382 	0x53, 0x3e, 0x1f, 0x50, 0x33, 0x12, 0x7a, 0x62,
1383 	0xce, 0xcc, 0x71, 0xc2, 0x5f, 0x34, 0x47, 0xc6,
1384 	0x7c, 0x71, 0xfa, 0xa0, 0x54, 0x00, 0xb2, 0xdf,
1385 	0xc5, 0x54, 0xac, 0x6c, 0x53, 0xef, 0x64, 0x6b,
1386 	0x08, 0x82, 0xd8, 0x16, 0x1e, 0xca, 0x40, 0xf3,
1387 	0x1f, 0xdf, 0x56, 0x63, 0x10, 0xbc, 0xd7, 0xa0,
1388 	0xeb, 0xee, 0xd1, 0x95, 0xe5, 0xef, 0xf1, 0x6a,
1389 	0x83, 0x2d, 0x5a, 0x59, 0x06, 0xef, 0x30, 0x82,
1390 	0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3, 0xa0, 0x03,
1391 	0x02, 0x01, 0x02, 0x02, 0x13, 0x33, 0x00, 0x00,
1392 	0x05, 0x23, 0xbf, 0xe8, 0xa1, 0x1a, 0x2a, 0x68,
1393 	0xbd, 0x09, 0x00, 0x00, 0x00, 0x00, 0x05, 0x23,
1394 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
1395 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
1396 	0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
1397 	0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
1398 	0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
1399 	0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e,
1400 	0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e,
1401 	0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52,
1402 	0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e,
1403 	0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
1404 	0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
1405 	0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f,
1406 	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x36,
1407 	0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
1408 	0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
1409 	0x66, 0x74, 0x20, 0x54, 0x50, 0x4d, 0x20, 0x52,
1410 	0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74,
1411 	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
1412 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
1413 	0x79, 0x20, 0x32, 0x30, 0x31, 0x34, 0x30, 0x1e,
1414 	0x17, 0x0d, 0x32, 0x31, 0x30, 0x36, 0x30, 0x33,
1415 	0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a, 0x17,
1416 	0x0d, 0x32, 0x37, 0x30, 0x36, 0x30, 0x33, 0x31,
1417 	0x39, 0x34, 0x30, 0x31, 0x36, 0x5a, 0x30, 0x41,
1418 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
1419 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
1420 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
1421 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
1422 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
1423 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
1424 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
1425 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
1426 	0x30, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06,
1427 	0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
1428 	0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f,
1429 	0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
1430 	0x01, 0x00, 0xdb, 0x03, 0x34, 0x82, 0xfa, 0x81,
1431 	0x1c, 0x84, 0x0b, 0xa0, 0x0e, 0x60, 0xd8, 0x9d,
1432 	0x84, 0xf4, 0x81, 0xc4, 0xe9, 0xff, 0xcf, 0xe9,
1433 	0xa3, 0x57, 0x53, 0x60, 0xa8, 0x19, 0xce, 0xbe,
1434 	0xe1, 0x97, 0xee, 0x5d, 0x8c, 0x9f, 0xe4, 0xbd,
1435 	0xef, 0xbd, 0x94, 0x14, 0xe4, 0x74, 0x41, 0x02,
1436 	0xe9, 0x03, 0x19, 0x9f, 0xdd, 0x48, 0x2d, 0xbd,
1437 	0xca, 0x26, 0x47, 0x2c, 0x01, 0x31, 0x5f, 0x34,
1438 	0xef, 0x59, 0x35, 0x48, 0x36, 0x3d, 0x1e, 0xdf,
1439 	0xd8, 0x13, 0xf0, 0xd0, 0x67, 0xc1, 0xb0, 0x47,
1440 	0x67, 0xa2, 0xd6, 0x62, 0xc8, 0xe1, 0x00, 0x36,
1441 	0x8b, 0x45, 0xf6, 0x3b, 0x96, 0x60, 0xa0, 0x45,
1442 	0x26, 0xcb, 0xc7, 0x0b, 0x5b, 0x97, 0xd1, 0xaf,
1443 	0x54, 0x25, 0x7a, 0x67, 0xe4, 0x2a, 0xd8, 0x9d,
1444 	0x53, 0x05, 0xbd, 0x12, 0xac, 0xa2, 0x8e, 0x95,
1445 	0xb4, 0x2a, 0xca, 0x89, 0x93, 0x64, 0x97, 0x25,
1446 	0xdc, 0x1f, 0xa9, 0xe0, 0x55, 0x07, 0x38, 0x1d,
1447 	0xee, 0x02, 0x90, 0x22, 0xf5, 0xad, 0x4e, 0x5c,
1448 	0xf8, 0xc5, 0x1f, 0x9e, 0x84, 0x7e, 0x13, 0x47,
1449 	0x52, 0xa2, 0x36, 0xf9, 0xf6, 0xbf, 0x76, 0x9e,
1450 	0x0f, 0xdd, 0x14, 0x99, 0xb9, 0xd8, 0x5a, 0x42,
1451 	0x3d, 0xd8, 0xbf, 0xdd, 0xb4, 0x9b, 0xbf, 0x6a,
1452 	0x9f, 0x89, 0x13, 0x75, 0xaf, 0x96, 0xd2, 0x72,
1453 	0xdf, 0xb3, 0x80, 0x6f, 0x84, 0x1a, 0x9d, 0x06,
1454 	0x55, 0x09, 0x29, 0xea, 0xa7, 0x05, 0x31, 0xec,
1455 	0x47, 0x3a, 0xcf, 0x3f, 0x9c, 0x2c, 0xbd, 0xd0,
1456 	0x7d, 0xe4, 0x75, 0x5b, 0x33, 0xbe, 0x12, 0x86,
1457 	0x09, 0xcf, 0x66, 0x9a, 0xeb, 0xf8, 0xf8, 0x72,
1458 	0x91, 0x88, 0x4a, 0x5e, 0x89, 0x62, 0x6a, 0x94,
1459 	0xdc, 0x48, 0x37, 0x13, 0xd8, 0x91, 0x02, 0xe3,
1460 	0x42, 0x41, 0x7c, 0x2f, 0xe3, 0xb6, 0x0f, 0xb4,
1461 	0x96, 0x06, 0x80, 0xca, 0x28, 0x01, 0x6f, 0x4b,
1462 	0xcd, 0x28, 0xd4, 0x2c, 0x94, 0x7e, 0x40, 0x7e,
1463 	0xdf, 0x01, 0xe5, 0xf2, 0x33, 0xd4, 0xda, 0xf4,
1464 	0x1a, 0x17, 0xf7, 0x5d, 0xcb, 0x66, 0x2c, 0x2a,
1465 	0xeb, 0xe1, 0xb1, 0x4a, 0xc3, 0x85, 0x63, 0xb2,
1466 	0xac, 0xd0, 0x3f, 0x1a, 0x8d, 0xa5, 0x0c, 0xee,
1467 	0x4f, 0xde, 0x74, 0x9c, 0xe0, 0x5a, 0x10, 0xc7,
1468 	0xb8, 0xe4, 0xec, 0xe7, 0x73, 0xa6, 0x41, 0x42,
1469 	0x37, 0xe1, 0xdf, 0xb9, 0xc7, 0xb5, 0x14, 0xa8,
1470 	0x80, 0x95, 0xa0, 0x12, 0x67, 0x99, 0xf5, 0xba,
1471 	0x25, 0x0a, 0x74, 0x86, 0x71, 0x9c, 0x7f, 0x59,
1472 	0x97, 0xd2, 0x3f, 0x10, 0xfe, 0x6a, 0xb9, 0xe4,
1473 	0x47, 0x36, 0xfb, 0x0f, 0x50, 0xee, 0xfc, 0x87,
1474 	0x99, 0x7e, 0x36, 0x64, 0x1b, 0xc7, 0x13, 0xb3,
1475 	0x33, 0x18, 0x71, 0xa4, 0xc3, 0xb0, 0xfc, 0x45,
1476 	0x37, 0x11, 0x40, 0xb3, 0xde, 0x2c, 0x9f, 0x0a,
1477 	0xcd, 0xaf, 0x5e, 0xfb, 0xd5, 0x9c, 0xea, 0xd7,
1478 	0x24, 0x19, 0x3a, 0x92, 0x80, 0xa5, 0x63, 0xc5,
1479 	0x3e, 0xdd, 0x51, 0xd0, 0x9f, 0xb8, 0x5e, 0xd5,
1480 	0xf1, 0xfe, 0xa5, 0x93, 0xfb, 0x7f, 0xd9, 0xb8,
1481 	0xb7, 0x0e, 0x0d, 0x12, 0x71, 0xf0, 0x52, 0x9d,
1482 	0xe9, 0xd0, 0xd2, 0x8b, 0x38, 0x8b, 0x85, 0x83,
1483 	0x98, 0x24, 0x88, 0xe8, 0x42, 0x30, 0x83, 0x12,
1484 	0xef, 0x09, 0x96, 0x2f, 0x21, 0x81, 0x05, 0x30,
1485 	0x0c, 0xbb, 0xba, 0x21, 0x39, 0x16, 0x12, 0xe8,
1486 	0x4b, 0x7b, 0x7a, 0x66, 0xb8, 0x22, 0x2c, 0x71,
1487 	0xaf, 0x59, 0xa1, 0xfc, 0x61, 0xf1, 0xb4, 0x5e,
1488 	0xfc, 0x43, 0x19, 0x45, 0x6e, 0xa3, 0x45, 0xe4,
1489 	0xcb, 0x66, 0x5f, 0xe0, 0x57, 0xf6, 0x0a, 0x30,
1490 	0xa3, 0xd6, 0x51, 0x24, 0xc9, 0x07, 0x55, 0x82,
1491 	0x4a, 0x66, 0x0e, 0x9d, 0xb2, 0x2f, 0x84, 0x56,
1492 	0x6c, 0x3e, 0x71, 0xef, 0x9b, 0x35, 0x4d, 0x72,
1493 	0xdc, 0x46, 0x2a, 0xe3, 0x7b, 0x13, 0x20, 0xbf,
1494 	0xab, 0x77, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
1495 	0x82, 0x01, 0x8e, 0x30, 0x82, 0x01, 0x8a, 0x30,
1496 	0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
1497 	0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x84, 0x30,
1498 	0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x14,
1499 	0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
1500 	0x01, 0x82, 0x37, 0x15, 0x24, 0x06, 0x05, 0x67,
1501 	0x81, 0x05, 0x08, 0x03, 0x30, 0x16, 0x06, 0x03,
1502 	0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30, 0x0d, 0x30,
1503 	0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
1504 	0x82, 0x37, 0x15, 0x1f, 0x30, 0x12, 0x06, 0x03,
1505 	0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
1506 	0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
1507 	0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
1508 	0x16, 0x04, 0x14, 0x45, 0x1a, 0xec, 0xfc, 0x91,
1509 	0x70, 0xf8, 0x83, 0x8b, 0x9c, 0x47, 0x2f, 0x0b,
1510 	0x9f, 0x07, 0xf3, 0x2f, 0x7c, 0xa2, 0x8a, 0x30,
1511 	0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
1512 	0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c, 0x0a, 0xce,
1513 	0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94, 0xd1, 0xae,
1514 	0x55, 0xc1, 0x52, 0xec, 0x71, 0x74, 0xa4, 0x56,
1515 	0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
1516 	0x69, 0x30, 0x67, 0x30, 0x65, 0xa0, 0x63, 0xa0,
1517 	0x61, 0x86, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x3a,
1518 	0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69,
1519 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e,
1520 	0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f,
1521 	0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x4d,
1522 	0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
1523 	0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32,
1524 	0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30,
1525 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
1526 	0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75,
1527 	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25,
1528 	0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63,
1529 	0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08, 0x2b, 0x06,
1530 	0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x71,
1531 	0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
1532 	0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x61,
1533 	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
1534 	0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
1535 	0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
1536 	0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x2f,
1537 	0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69,
1538 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x25,
1539 	0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32, 0x30,
1540 	0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43,
1541 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
1542 	0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75, 0x74,
1543 	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25, 0x32,
1544 	0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63, 0x72,
1545 	0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
1546 	0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
1547 	0x03, 0x82, 0x02, 0x01, 0x00, 0x48, 0x24, 0x32,
1548 	0xe8, 0xd6, 0x38, 0xda, 0x65, 0xec, 0x1b, 0x18,
1549 	0x8e, 0x37, 0x07, 0xd5, 0x18, 0x5a, 0xc8, 0xb9,
1550 	0xbb, 0x24, 0x8a, 0x4d, 0xa1, 0x3c, 0x9e, 0x46,
1551 	0x76, 0xcf, 0xa5, 0xdf, 0xd7, 0x61, 0xba, 0x05,
1552 	0x89, 0x3c, 0x13, 0xc2, 0x1f, 0x71, 0xe3, 0xec,
1553 	0x5d, 0x54, 0x9e, 0xd9, 0x01, 0x5a, 0x10, 0x3b,
1554 	0x17, 0x75, 0xde, 0xa1, 0x45, 0xbf, 0x1d, 0x1b,
1555 	0x41, 0x21, 0x42, 0x68, 0x22, 0x6b, 0xbb, 0xcb,
1556 	0x11, 0x04, 0xd2, 0xae, 0x86, 0xcf, 0x73, 0x5a,
1557 	0xf2, 0x80, 0x18, 0x00, 0xf0, 0xd6, 0x6c, 0x5a,
1558 	0x1e, 0xb3, 0x4d, 0x30, 0x02, 0x4a, 0x6a, 0x03,
1559 	0x36, 0x42, 0xde, 0xb2, 0x52, 0x55, 0xff, 0x71,
1560 	0xeb, 0x7b, 0x8b, 0x55, 0x6c, 0xdf, 0x05, 0x35,
1561 	0x47, 0x70, 0x53, 0xfb, 0x6c, 0xba, 0x06, 0xb2,
1562 	0x61, 0x86, 0xdc, 0x2a, 0x64, 0x81, 0x24, 0x79,
1563 	0x46, 0x73, 0x04, 0x55, 0x59, 0xed, 0xd6, 0x06,
1564 	0x61, 0x15, 0xf9, 0x8d, 0x78, 0x39, 0x7b, 0x84,
1565 	0x7a, 0x40, 0x45, 0x13, 0x1a, 0x91, 0x71, 0x8f,
1566 	0xd1, 0x4f, 0x78, 0x10, 0x68, 0x9b, 0x15, 0x79,
1567 	0x3f, 0x79, 0x2d, 0x9b, 0xc7, 0x5d, 0xa3, 0xcf,
1568 	0xa9, 0x14, 0xb0, 0xc4, 0xdb, 0xa9, 0x45, 0x6a,
1569 	0x6e, 0x60, 0x45, 0x0b, 0x14, 0x25, 0xc7, 0x74,
1570 	0xd0, 0x36, 0xaf, 0xc5, 0xbd, 0x4f, 0x7b, 0xc0,
1571 	0x04, 0x43, 0x85, 0xbb, 0x06, 0x36, 0x77, 0x26,
1572 	0x02, 0x23, 0x0b, 0xf8, 0x57, 0x8f, 0x1f, 0x27,
1573 	0x30, 0x95, 0xff, 0x83, 0x23, 0x2b, 0x49, 0x33,
1574 	0x43, 0x62, 0x87, 0x5d, 0x27, 0x12, 0x1a, 0x68,
1575 	0x7b, 0xba, 0x2d, 0xf6, 0xed, 0x2c, 0x26, 0xb5,
1576 	0xbb, 0xe2, 0x6f, 0xc2, 0x61, 0x17, 0xfc, 0x72,
1577 	0x14, 0x57, 0x2c, 0x2c, 0x5a, 0x92, 0x13, 0x41,
1578 	0xc4, 0x7e, 0xb5, 0x64, 0x5b, 0x86, 0x57, 0x13,
1579 	0x14, 0xff, 0xf5, 0x04, 0xb9, 0x3d, 0x2d, 0xc3,
1580 	0xe9, 0x75, 0x1f, 0x68, 0x0b, 0xb5, 0x76, 0xe1,
1581 	0x7d, 0xe3, 0xb0, 0x14, 0xa8, 0x45, 0x05, 0x98,
1582 	0x81, 0x32, 0xc1, 0xf5, 0x49, 0x4d, 0x58, 0xa4,
1583 	0xee, 0xd8, 0x84, 0xba, 0x65, 0x07, 0x8d, 0xf7,
1584 	0x9a, 0xff, 0x7d, 0xa5, 0xbc, 0x9a, 0xed, 0x4a,
1585 	0x5d, 0xa4, 0x97, 0x4b, 0x4d, 0x31, 0x90, 0xb5,
1586 	0x7d, 0x28, 0x77, 0x25, 0x88, 0x1c, 0xbf, 0x78,
1587 	0x22, 0xb2, 0xb5, 0x5c, 0x9a, 0xc9, 0x63, 0x17,
1588 	0x96, 0xe9, 0xc2, 0x52, 0x30, 0xb8, 0x9b, 0x37,
1589 	0x69, 0x1a, 0x6a, 0x66, 0x76, 0x18, 0xac, 0xc0,
1590 	0x48, 0xee, 0x46, 0x5b, 0xbe, 0x6a, 0xd5, 0x72,
1591 	0x07, 0xdc, 0x7d, 0x05, 0xbe, 0x76, 0x7d, 0xa5,
1592 	0x5e, 0x53, 0xb5, 0x47, 0x80, 0x58, 0xf0, 0xaf,
1593 	0x6f, 0x4e, 0xc0, 0xf1, 0x1e, 0x37, 0x64, 0x15,
1594 	0x42, 0x96, 0x18, 0x3a, 0x89, 0xc8, 0x14, 0x48,
1595 	0x89, 0x5c, 0x12, 0x88, 0x98, 0x0b, 0x7b, 0x4e,
1596 	0xce, 0x1c, 0xda, 0xd5, 0xa4, 0xd3, 0x32, 0x32,
1597 	0x74, 0x5b, 0xcc, 0xfd, 0x2b, 0x02, 0xfb, 0xae,
1598 	0xd0, 0x5a, 0x4c, 0xc9, 0xc1, 0x35, 0x19, 0x90,
1599 	0x5f, 0xca, 0x14, 0xeb, 0x4c, 0x17, 0xd7, 0xe3,
1600 	0xe2, 0x5d, 0xb4, 0x49, 0xaa, 0xf0, 0x50, 0x87,
1601 	0xc3, 0x20, 0x00, 0xda, 0xe9, 0x04, 0x80, 0x64,
1602 	0xac, 0x9f, 0xcd, 0x26, 0x41, 0x48, 0xe8, 0x4c,
1603 	0x46, 0xcc, 0x5b, 0xd7, 0xca, 0x4c, 0x1b, 0x43,
1604 	0x43, 0x1e, 0xbd, 0x94, 0xe7, 0xa7, 0xa6, 0x86,
1605 	0xe5, 0xd1, 0x78, 0x29, 0xa2, 0x40, 0xc5, 0xc5,
1606 	0x47, 0xb6, 0x6d, 0x53, 0xde, 0xac, 0x97, 0x74,
1607 	0x24, 0x57, 0xcc, 0x05, 0x93, 0xfd, 0x52, 0x35,
1608 	0x29, 0xd5, 0xe0, 0xfa, 0x23, 0x0d, 0xd7, 0xaa,
1609 	0x8b, 0x07, 0x4b, 0xf6, 0x64, 0xc7, 0xad, 0x3c,
1610 	0xa1, 0xb5, 0xc5, 0x70, 0xaf, 0x46, 0xfe, 0x9a,
1611 	0x82, 0x4d, 0x75, 0xb8, 0x6d, 0x67, 0x70, 0x75,
1612 	0x62, 0x41, 0x72, 0x65, 0x61, 0x58, 0x76, 0x00,
1613 	0x23, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x72, 0x00,
1614 	0x20, 0x9d, 0xff, 0xcb, 0xf3, 0x6c, 0x38, 0x3a,
1615 	0xe6, 0x99, 0xfb, 0x98, 0x68, 0xdc, 0x6d, 0xcb,
1616 	0x89, 0xd7, 0x15, 0x38, 0x84, 0xbe, 0x28, 0x03,
1617 	0x92, 0x2c, 0x12, 0x41, 0x58, 0xbf, 0xad, 0x22,
1618 	0xae, 0x00, 0x10, 0x00, 0x10, 0x00, 0x03, 0x00,
1619 	0x10, 0x00, 0x20, 0xfb, 0xd6, 0xba, 0x74, 0xe6,
1620 	0x6e, 0x5c, 0x87, 0xef, 0x89, 0xa2, 0xe8, 0x3d,
1621 	0x0b, 0xe9, 0x69, 0x2c, 0x07, 0x07, 0x7a, 0x8a,
1622 	0x1e, 0xce, 0x12, 0xea, 0x3b, 0xb3, 0xf1, 0xf3,
1623 	0xd9, 0xc3, 0xe6, 0x00, 0x20, 0x3c, 0x68, 0x51,
1624 	0x94, 0x54, 0x8d, 0xeb, 0x9f, 0xb2, 0x2c, 0x66,
1625 	0x75, 0xb6, 0xb7, 0x55, 0x22, 0x0d, 0x87, 0x59,
1626 	0xc4, 0x39, 0x91, 0x62, 0x17, 0xc2, 0xc3, 0x53,
1627 	0xa5, 0x26, 0x97, 0x4f, 0x2d, 0x68, 0x63, 0x65,
1628 	0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x58, 0xa1,
1629 	0xff, 0x54, 0x43, 0x47, 0x80, 0x17, 0x00, 0x22,
1630 	0x00, 0x0b, 0x73, 0xbe, 0xb7, 0x40, 0x82, 0xc0,
1631 	0x49, 0x9a, 0xf7, 0xf2, 0xd0, 0x79, 0x6c, 0x88,
1632 	0xf3, 0x56, 0x7b, 0x7a, 0x7d, 0xcd, 0x70, 0xd1,
1633 	0xbc, 0x41, 0x88, 0x48, 0x51, 0x03, 0xf3, 0x58,
1634 	0x3e, 0xb8, 0x00, 0x14, 0x9f, 0x57, 0x39, 0x67,
1635 	0xa8, 0x7b, 0xd8, 0xf6, 0x9e, 0x75, 0xc9, 0x85,
1636 	0xab, 0xe3, 0x55, 0xc7, 0x9c, 0xf6, 0xd8, 0x4f,
1637 	0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x1c, 0x12,
1638 	0xfd, 0xc6, 0x05, 0xc6, 0x2b, 0xf5, 0xe9, 0x88,
1639 	0x01, 0x1f, 0x70, 0x8d, 0x98, 0x2a, 0x04, 0x21,
1640 	0x30, 0x00, 0x22, 0x00, 0x0b, 0xf4, 0xfd, 0x9a,
1641 	0x33, 0x55, 0x21, 0x08, 0x27, 0x48, 0x55, 0x01,
1642 	0x56, 0xf9, 0x0b, 0x4e, 0x47, 0x55, 0x08, 0x2e,
1643 	0x3c, 0x91, 0x3d, 0x6e, 0x53, 0xcf, 0x08, 0xe9,
1644 	0x0a, 0x4b, 0xc9, 0x7e, 0x99, 0x00, 0x22, 0x00,
1645 	0x0b, 0x51, 0xd3, 0x38, 0xfe, 0xaa, 0xda, 0xc6,
1646 	0x68, 0x84, 0x39, 0xe7, 0xb1, 0x03, 0x22, 0x5e,
1647 	0xc4, 0xd3, 0xf1, 0x0c, 0xec, 0x35, 0x5d, 0x50,
1648 	0xa3, 0x9d, 0xab, 0xa1, 0x7b, 0x61, 0x51, 0x8f,
1649 	0x4e
1650 };
1651 
1652 const unsigned char x509_0_tpm_es256[1476] = {
1653 	0x30, 0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8,
1654 	0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x30,
1655 	0xcd, 0xf2, 0x7e, 0x81, 0xc0, 0x43, 0x85, 0xa2,
1656 	0xd7, 0x29, 0xef, 0xf7, 0x9f, 0xa5, 0x2b, 0x30,
1657 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
1658 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41,
1659 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
1660 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
1661 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
1662 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
1663 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
1664 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
1665 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
1666 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
1667 	0x30, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x31,
1668 	0x31, 0x30, 0x32, 0x31, 0x35, 0x30, 0x36, 0x35,
1669 	0x33, 0x5a, 0x17, 0x0d, 0x32, 0x37, 0x30, 0x36,
1670 	0x30, 0x33, 0x31, 0x39, 0x34, 0x30, 0x31, 0x36,
1671 	0x5a, 0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30,
1672 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
1673 	0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
1674 	0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
1675 	0x82, 0x01, 0x01, 0x00, 0xdb, 0xd5, 0x9a, 0xfc,
1676 	0x09, 0xa7, 0xc4, 0xa5, 0x5f, 0xbe, 0x5f, 0xa2,
1677 	0xeb, 0xd6, 0x8e, 0xed, 0xc5, 0x67, 0xa6, 0xa7,
1678 	0xd9, 0xb2, 0x46, 0xc6, 0xe0, 0xae, 0x0c, 0x02,
1679 	0x25, 0x0a, 0xf2, 0xc5, 0x96, 0xdc, 0xb7, 0x0e,
1680 	0xb9, 0x86, 0xd3, 0x51, 0xbb, 0x63, 0xf0, 0x4f,
1681 	0x8a, 0x5e, 0xd7, 0xf7, 0xff, 0xbb, 0x29, 0xbd,
1682 	0x58, 0xcf, 0x75, 0x02, 0x39, 0xcb, 0x80, 0xf1,
1683 	0xd4, 0xb6, 0x75, 0x67, 0x2f, 0x27, 0x4d, 0x0c,
1684 	0xcc, 0x18, 0x59, 0x87, 0xfa, 0x51, 0xd1, 0x80,
1685 	0xb5, 0x1a, 0xac, 0xac, 0x29, 0x51, 0xcf, 0x27,
1686 	0xaa, 0x74, 0xac, 0x3e, 0x59, 0x56, 0x67, 0xe4,
1687 	0x42, 0xe8, 0x30, 0x35, 0xb2, 0xf6, 0x27, 0x91,
1688 	0x62, 0x60, 0x42, 0x42, 0x12, 0xde, 0xfe, 0xdd,
1689 	0xee, 0xe8, 0xa8, 0x82, 0xf9, 0xb1, 0x08, 0xd5,
1690 	0x8d, 0x57, 0x9a, 0x29, 0xb9, 0xb4, 0xe9, 0x19,
1691 	0x1e, 0x33, 0x7d, 0x37, 0xa0, 0xce, 0x2e, 0x53,
1692 	0x13, 0x39, 0xb6, 0x12, 0x61, 0x63, 0xbf, 0xd3,
1693 	0x42, 0xeb, 0x6f, 0xed, 0xc1, 0x8e, 0x26, 0xba,
1694 	0x7d, 0x8b, 0x37, 0x7c, 0xbb, 0x42, 0x1e, 0x56,
1695 	0x76, 0xda, 0xdb, 0x35, 0x6b, 0x80, 0xe1, 0x8e,
1696 	0x00, 0xac, 0xd2, 0xfc, 0x22, 0x96, 0x14, 0x0c,
1697 	0xf4, 0xe4, 0xc5, 0xad, 0x14, 0xb7, 0x4d, 0x46,
1698 	0x63, 0x30, 0x79, 0x3a, 0x7c, 0x33, 0xb5, 0xe5,
1699 	0x2e, 0xbb, 0x5f, 0xca, 0xf2, 0x75, 0xe3, 0x4e,
1700 	0x99, 0x64, 0x1b, 0x26, 0x99, 0x60, 0x1a, 0x79,
1701 	0xcc, 0x30, 0x2c, 0xb3, 0x4c, 0x59, 0xf7, 0x77,
1702 	0x59, 0xd5, 0x90, 0x70, 0x21, 0x79, 0x8c, 0x1f,
1703 	0x79, 0x0a, 0x12, 0x8b, 0x3b, 0x37, 0x2d, 0x97,
1704 	0x39, 0x89, 0x92, 0x0c, 0x44, 0x7c, 0xe9, 0x9f,
1705 	0xce, 0x6d, 0xad, 0xc5, 0xae, 0xea, 0x8e, 0x50,
1706 	0x22, 0x37, 0xe0, 0xd1, 0x9e, 0xd6, 0xe6, 0xa8,
1707 	0xcc, 0x21, 0xfb, 0xff, 0x02, 0x03, 0x01, 0x00,
1708 	0x01, 0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01,
1709 	0xef, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
1710 	0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07,
1711 	0x80, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
1712 	0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30,
1713 	0x6d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01,
1714 	0xff, 0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06,
1715 	0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37,
1716 	0x15, 0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08,
1717 	0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02,
1718 	0x30, 0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43,
1719 	0x00, 0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20,
1720 	0x00, 0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73,
1721 	0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
1722 	0x00, 0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61,
1723 	0x00, 0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72,
1724 	0x00, 0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49,
1725 	0x00, 0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74,
1726 	0x00, 0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10,
1727 	0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30,
1728 	0x07, 0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03,
1729 	0x30, 0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01,
1730 	0x01, 0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b,
1731 	0x30, 0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
1732 	0x67, 0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69,
1733 	0x64, 0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44,
1734 	0x32, 0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05,
1735 	0x67, 0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53,
1736 	0x54, 0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41,
1737 	0x48, 0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06,
1738 	0x05, 0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b,
1739 	0x69, 0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30,
1740 	0x30, 0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55,
1741 	0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
1742 	0x45, 0x1a, 0xec, 0xfc, 0x91, 0x70, 0xf8, 0x83,
1743 	0x8b, 0x9c, 0x47, 0x2f, 0x0b, 0x9f, 0x07, 0xf3,
1744 	0x2f, 0x7c, 0xa2, 0x8a, 0x30, 0x1d, 0x06, 0x03,
1745 	0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x55,
1746 	0xa6, 0xee, 0xe3, 0x28, 0xdd, 0x40, 0x7f, 0x21,
1747 	0xd2, 0x7b, 0x8c, 0x69, 0x2f, 0x8c, 0x08, 0x29,
1748 	0xbc, 0x95, 0xb8, 0x30, 0x81, 0xb2, 0x06, 0x08,
1749 	0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
1750 	0x04, 0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81,
1751 	0x9f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
1752 	0x07, 0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74,
1753 	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63,
1754 	0x73, 0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73,
1755 	0x61, 0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69,
1756 	0x73, 0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e,
1757 	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e,
1758 	0x64, 0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74,
1759 	0x2f, 0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d,
1760 	0x2d, 0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31,
1761 	0x61, 0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62,
1762 	0x35, 0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30,
1763 	0x63, 0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65,
1764 	0x37, 0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34,
1765 	0x33, 0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f,
1766 	0x62, 0x36, 0x63, 0x30, 0x64, 0x39, 0x38, 0x64,
1767 	0x2d, 0x35, 0x37, 0x38, 0x61, 0x2d, 0x34, 0x62,
1768 	0x66, 0x62, 0x2d, 0x61, 0x32, 0x64, 0x33, 0x2d,
1769 	0x65, 0x64, 0x66, 0x65, 0x35, 0x66, 0x38, 0x32,
1770 	0x30, 0x36, 0x30, 0x31, 0x2e, 0x63, 0x65, 0x72,
1771 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
1772 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
1773 	0x82, 0x02, 0x01, 0x00, 0x2a, 0x08, 0x30, 0x1f,
1774 	0xfd, 0x8f, 0x80, 0x9b, 0x4b, 0x37, 0x82, 0x61,
1775 	0x86, 0x36, 0x57, 0x90, 0xb5, 0x1d, 0x1f, 0xa3,
1776 	0xae, 0x68, 0xac, 0xa7, 0x96, 0x6a, 0x25, 0x5e,
1777 	0xc5, 0x82, 0x7c, 0x36, 0x64, 0x58, 0x11, 0xcb,
1778 	0xa5, 0xee, 0xbf, 0xc4, 0xdb, 0xa0, 0xc7, 0x82,
1779 	0x3b, 0xa3, 0x85, 0x9b, 0xc4, 0xee, 0x07, 0x36,
1780 	0xd7, 0xc7, 0xb6, 0x23, 0xed, 0xc2, 0x73, 0xab,
1781 	0xbe, 0xbe, 0xee, 0x63, 0x17, 0xf9, 0xd7, 0x7a,
1782 	0x23, 0x7b, 0xf8, 0x09, 0x7a, 0xaa, 0x7f, 0x67,
1783 	0xc3, 0x04, 0x84, 0x71, 0x9b, 0x06, 0x9c, 0x07,
1784 	0x42, 0x4b, 0x65, 0x41, 0x56, 0x58, 0x14, 0x92,
1785 	0xb0, 0xb9, 0xaf, 0xa1, 0x39, 0xd4, 0x08, 0x2d,
1786 	0x71, 0xd5, 0x6c, 0x56, 0xb9, 0x2b, 0x1e, 0xf3,
1787 	0x93, 0xa5, 0xe9, 0xb2, 0x9b, 0x4d, 0x05, 0x2b,
1788 	0xbc, 0xd2, 0x20, 0x57, 0x3b, 0xa4, 0x01, 0x68,
1789 	0x8c, 0x23, 0x20, 0x7d, 0xbb, 0x71, 0xe4, 0x2a,
1790 	0x24, 0xba, 0x75, 0x0c, 0x89, 0x54, 0x22, 0xeb,
1791 	0x0e, 0xb2, 0xf4, 0xc2, 0x1f, 0x02, 0xb7, 0xe3,
1792 	0x06, 0x41, 0x15, 0x6b, 0xf3, 0xc8, 0x2d, 0x5b,
1793 	0xc2, 0x21, 0x82, 0x3e, 0xe8, 0x95, 0x40, 0x39,
1794 	0x9e, 0x91, 0x68, 0x33, 0x0c, 0x3d, 0x45, 0xef,
1795 	0x99, 0x79, 0xe6, 0x32, 0xc9, 0x00, 0x84, 0x36,
1796 	0xfb, 0x0a, 0x8d, 0x41, 0x1c, 0x32, 0x64, 0x06,
1797 	0x9e, 0x0f, 0xb5, 0x04, 0xcc, 0x08, 0xb1, 0xb6,
1798 	0x2b, 0xcf, 0x36, 0x0f, 0x73, 0x14, 0x8e, 0x25,
1799 	0x44, 0xb3, 0x0c, 0x34, 0x14, 0x96, 0x0c, 0x8a,
1800 	0x65, 0xa1, 0xde, 0x8e, 0xc8, 0x9d, 0xbe, 0x66,
1801 	0xdf, 0x06, 0x91, 0xca, 0x15, 0x0f, 0x92, 0xd5,
1802 	0x2a, 0x0b, 0xdc, 0x4c, 0x6a, 0xf3, 0x16, 0x4a,
1803 	0x3e, 0xb9, 0x76, 0xbc, 0xfe, 0x62, 0xd4, 0xa8,
1804 	0xcd, 0x94, 0x78, 0x0d, 0xdd, 0x94, 0xfd, 0x5e,
1805 	0x63, 0x57, 0x27, 0x05, 0x9c, 0xd0, 0x80, 0x91,
1806 	0x91, 0x79, 0xe8, 0x5e, 0x18, 0x64, 0x22, 0xe4,
1807 	0x2c, 0x13, 0x65, 0xa4, 0x51, 0x5a, 0x1e, 0x3b,
1808 	0x71, 0x2e, 0x70, 0x9f, 0xc4, 0xa5, 0x20, 0xcd,
1809 	0xef, 0xd8, 0x3f, 0xa4, 0xf5, 0x89, 0x8a, 0xa5,
1810 	0x4f, 0x76, 0x2d, 0x49, 0x56, 0x00, 0x8d, 0xde,
1811 	0x40, 0xba, 0x24, 0x46, 0x51, 0x38, 0xad, 0xdb,
1812 	0xc4, 0x04, 0xf4, 0x6e, 0xc0, 0x29, 0x48, 0x07,
1813 	0x6a, 0x1b, 0x26, 0x32, 0x0a, 0xfb, 0xea, 0x71,
1814 	0x2a, 0x11, 0xfc, 0x98, 0x7c, 0x44, 0x87, 0xbc,
1815 	0x06, 0x3a, 0x4d, 0xbd, 0x91, 0x63, 0x4f, 0x26,
1816 	0x48, 0x54, 0x47, 0x1b, 0xbd, 0xf0, 0xf1, 0x56,
1817 	0x05, 0xc5, 0x0f, 0x8f, 0x20, 0xa5, 0xcc, 0xfb,
1818 	0x76, 0xb0, 0xbd, 0x83, 0xde, 0x7f, 0x39, 0x4f,
1819 	0xcf, 0x61, 0x74, 0x52, 0xa7, 0x1d, 0xf6, 0xb5,
1820 	0x5e, 0x4a, 0x82, 0x20, 0xc1, 0x94, 0xaa, 0x2c,
1821 	0x33, 0xd6, 0x0a, 0xf9, 0x8f, 0x92, 0xc6, 0x29,
1822 	0x80, 0xf5, 0xa2, 0xb1, 0xff, 0xb6, 0x2b, 0xaa,
1823 	0x04, 0x00, 0x72, 0xb4, 0x12, 0xbb, 0xb1, 0xf1,
1824 	0x3c, 0x88, 0xa3, 0xab, 0x49, 0x17, 0x90, 0x80,
1825 	0x59, 0xa2, 0x96, 0x41, 0x69, 0x74, 0x33, 0x8a,
1826 	0x28, 0x33, 0x7e, 0xb3, 0x19, 0x92, 0x28, 0xc1,
1827 	0xf0, 0xd1, 0x82, 0xd5, 0x42, 0xff, 0xe7, 0xa5,
1828 	0x3f, 0x1e, 0xb6, 0x4a, 0x23, 0xcc, 0x6a, 0x7f,
1829 	0x15, 0x15, 0x52, 0x25, 0xb1, 0xca, 0x21, 0x95,
1830 	0x11, 0x53, 0x3e, 0x1f, 0x50, 0x33, 0x12, 0x7a,
1831 	0x62, 0xce, 0xcc, 0x71, 0xc2, 0x5f, 0x34, 0x47,
1832 	0xc6, 0x7c, 0x71, 0xfa, 0xa0, 0x54, 0x00, 0xb2,
1833 	0xdf, 0xc5, 0x54, 0xac, 0x6c, 0x53, 0xef, 0x64,
1834 	0x6b, 0x08, 0x82, 0xd8, 0x16, 0x1e, 0xca, 0x40,
1835 	0xf3, 0x1f, 0xdf, 0x56, 0x63, 0x10, 0xbc, 0xd7,
1836 	0xa0, 0xeb, 0xee, 0xd1, 0x95, 0xe5, 0xef, 0xf1,
1837 	0x6a, 0x83, 0x2d, 0x5a
1838 };
1839 
1840 const unsigned char x509_1_tpm_es256[1775] = {
1841 	0x30, 0x82, 0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3,
1842 	0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x13, 0x33,
1843 	0x00, 0x00, 0x05, 0x23, 0xbf, 0xe8, 0xa1, 0x1a,
1844 	0x2a, 0x68, 0xbd, 0x09, 0x00, 0x00, 0x00, 0x00,
1845 	0x05, 0x23, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
1846 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
1847 	0x00, 0x30, 0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09,
1848 	0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
1849 	0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
1850 	0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68,
1851 	0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10,
1852 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,
1853 	0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64,
1854 	0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
1855 	0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f,
1856 	0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72,
1857 	0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1858 	0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04,
1859 	0x03, 0x13, 0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f,
1860 	0x73, 0x6f, 0x66, 0x74, 0x20, 0x54, 0x50, 0x4d,
1861 	0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
1862 	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
1863 	0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
1864 	0x69, 0x74, 0x79, 0x20, 0x32, 0x30, 0x31, 0x34,
1865 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x36,
1866 	0x30, 0x33, 0x31, 0x39, 0x34, 0x30, 0x31, 0x36,
1867 	0x5a, 0x17, 0x0d, 0x32, 0x37, 0x30, 0x36, 0x30,
1868 	0x33, 0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a,
1869 	0x30, 0x41, 0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03,
1870 	0x55, 0x04, 0x03, 0x13, 0x36, 0x45, 0x55, 0x53,
1871 	0x2d, 0x53, 0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59,
1872 	0x49, 0x44, 0x2d, 0x31, 0x41, 0x44, 0x42, 0x39,
1873 	0x39, 0x34, 0x41, 0x42, 0x35, 0x38, 0x42, 0x45,
1874 	0x35, 0x37, 0x41, 0x30, 0x43, 0x43, 0x39, 0x42,
1875 	0x39, 0x30, 0x30, 0x45, 0x37, 0x38, 0x35, 0x31,
1876 	0x45, 0x31, 0x41, 0x34, 0x33, 0x43, 0x30, 0x38,
1877 	0x36, 0x36, 0x30, 0x30, 0x82, 0x02, 0x22, 0x30,
1878 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
1879 	0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
1880 	0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02,
1881 	0x82, 0x02, 0x01, 0x00, 0xdb, 0x03, 0x34, 0x82,
1882 	0xfa, 0x81, 0x1c, 0x84, 0x0b, 0xa0, 0x0e, 0x60,
1883 	0xd8, 0x9d, 0x84, 0xf4, 0x81, 0xc4, 0xe9, 0xff,
1884 	0xcf, 0xe9, 0xa3, 0x57, 0x53, 0x60, 0xa8, 0x19,
1885 	0xce, 0xbe, 0xe1, 0x97, 0xee, 0x5d, 0x8c, 0x9f,
1886 	0xe4, 0xbd, 0xef, 0xbd, 0x94, 0x14, 0xe4, 0x74,
1887 	0x41, 0x02, 0xe9, 0x03, 0x19, 0x9f, 0xdd, 0x48,
1888 	0x2d, 0xbd, 0xca, 0x26, 0x47, 0x2c, 0x01, 0x31,
1889 	0x5f, 0x34, 0xef, 0x59, 0x35, 0x48, 0x36, 0x3d,
1890 	0x1e, 0xdf, 0xd8, 0x13, 0xf0, 0xd0, 0x67, 0xc1,
1891 	0xb0, 0x47, 0x67, 0xa2, 0xd6, 0x62, 0xc8, 0xe1,
1892 	0x00, 0x36, 0x8b, 0x45, 0xf6, 0x3b, 0x96, 0x60,
1893 	0xa0, 0x45, 0x26, 0xcb, 0xc7, 0x0b, 0x5b, 0x97,
1894 	0xd1, 0xaf, 0x54, 0x25, 0x7a, 0x67, 0xe4, 0x2a,
1895 	0xd8, 0x9d, 0x53, 0x05, 0xbd, 0x12, 0xac, 0xa2,
1896 	0x8e, 0x95, 0xb4, 0x2a, 0xca, 0x89, 0x93, 0x64,
1897 	0x97, 0x25, 0xdc, 0x1f, 0xa9, 0xe0, 0x55, 0x07,
1898 	0x38, 0x1d, 0xee, 0x02, 0x90, 0x22, 0xf5, 0xad,
1899 	0x4e, 0x5c, 0xf8, 0xc5, 0x1f, 0x9e, 0x84, 0x7e,
1900 	0x13, 0x47, 0x52, 0xa2, 0x36, 0xf9, 0xf6, 0xbf,
1901 	0x76, 0x9e, 0x0f, 0xdd, 0x14, 0x99, 0xb9, 0xd8,
1902 	0x5a, 0x42, 0x3d, 0xd8, 0xbf, 0xdd, 0xb4, 0x9b,
1903 	0xbf, 0x6a, 0x9f, 0x89, 0x13, 0x75, 0xaf, 0x96,
1904 	0xd2, 0x72, 0xdf, 0xb3, 0x80, 0x6f, 0x84, 0x1a,
1905 	0x9d, 0x06, 0x55, 0x09, 0x29, 0xea, 0xa7, 0x05,
1906 	0x31, 0xec, 0x47, 0x3a, 0xcf, 0x3f, 0x9c, 0x2c,
1907 	0xbd, 0xd0, 0x7d, 0xe4, 0x75, 0x5b, 0x33, 0xbe,
1908 	0x12, 0x86, 0x09, 0xcf, 0x66, 0x9a, 0xeb, 0xf8,
1909 	0xf8, 0x72, 0x91, 0x88, 0x4a, 0x5e, 0x89, 0x62,
1910 	0x6a, 0x94, 0xdc, 0x48, 0x37, 0x13, 0xd8, 0x91,
1911 	0x02, 0xe3, 0x42, 0x41, 0x7c, 0x2f, 0xe3, 0xb6,
1912 	0x0f, 0xb4, 0x96, 0x06, 0x80, 0xca, 0x28, 0x01,
1913 	0x6f, 0x4b, 0xcd, 0x28, 0xd4, 0x2c, 0x94, 0x7e,
1914 	0x40, 0x7e, 0xdf, 0x01, 0xe5, 0xf2, 0x33, 0xd4,
1915 	0xda, 0xf4, 0x1a, 0x17, 0xf7, 0x5d, 0xcb, 0x66,
1916 	0x2c, 0x2a, 0xeb, 0xe1, 0xb1, 0x4a, 0xc3, 0x85,
1917 	0x63, 0xb2, 0xac, 0xd0, 0x3f, 0x1a, 0x8d, 0xa5,
1918 	0x0c, 0xee, 0x4f, 0xde, 0x74, 0x9c, 0xe0, 0x5a,
1919 	0x10, 0xc7, 0xb8, 0xe4, 0xec, 0xe7, 0x73, 0xa6,
1920 	0x41, 0x42, 0x37, 0xe1, 0xdf, 0xb9, 0xc7, 0xb5,
1921 	0x14, 0xa8, 0x80, 0x95, 0xa0, 0x12, 0x67, 0x99,
1922 	0xf5, 0xba, 0x25, 0x0a, 0x74, 0x86, 0x71, 0x9c,
1923 	0x7f, 0x59, 0x97, 0xd2, 0x3f, 0x10, 0xfe, 0x6a,
1924 	0xb9, 0xe4, 0x47, 0x36, 0xfb, 0x0f, 0x50, 0xee,
1925 	0xfc, 0x87, 0x99, 0x7e, 0x36, 0x64, 0x1b, 0xc7,
1926 	0x13, 0xb3, 0x33, 0x18, 0x71, 0xa4, 0xc3, 0xb0,
1927 	0xfc, 0x45, 0x37, 0x11, 0x40, 0xb3, 0xde, 0x2c,
1928 	0x9f, 0x0a, 0xcd, 0xaf, 0x5e, 0xfb, 0xd5, 0x9c,
1929 	0xea, 0xd7, 0x24, 0x19, 0x3a, 0x92, 0x80, 0xa5,
1930 	0x63, 0xc5, 0x3e, 0xdd, 0x51, 0xd0, 0x9f, 0xb8,
1931 	0x5e, 0xd5, 0xf1, 0xfe, 0xa5, 0x93, 0xfb, 0x7f,
1932 	0xd9, 0xb8, 0xb7, 0x0e, 0x0d, 0x12, 0x71, 0xf0,
1933 	0x52, 0x9d, 0xe9, 0xd0, 0xd2, 0x8b, 0x38, 0x8b,
1934 	0x85, 0x83, 0x98, 0x24, 0x88, 0xe8, 0x42, 0x30,
1935 	0x83, 0x12, 0xef, 0x09, 0x96, 0x2f, 0x21, 0x81,
1936 	0x05, 0x30, 0x0c, 0xbb, 0xba, 0x21, 0x39, 0x16,
1937 	0x12, 0xe8, 0x4b, 0x7b, 0x7a, 0x66, 0xb8, 0x22,
1938 	0x2c, 0x71, 0xaf, 0x59, 0xa1, 0xfc, 0x61, 0xf1,
1939 	0xb4, 0x5e, 0xfc, 0x43, 0x19, 0x45, 0x6e, 0xa3,
1940 	0x45, 0xe4, 0xcb, 0x66, 0x5f, 0xe0, 0x57, 0xf6,
1941 	0x0a, 0x30, 0xa3, 0xd6, 0x51, 0x24, 0xc9, 0x07,
1942 	0x55, 0x82, 0x4a, 0x66, 0x0e, 0x9d, 0xb2, 0x2f,
1943 	0x84, 0x56, 0x6c, 0x3e, 0x71, 0xef, 0x9b, 0x35,
1944 	0x4d, 0x72, 0xdc, 0x46, 0x2a, 0xe3, 0x7b, 0x13,
1945 	0x20, 0xbf, 0xab, 0x77, 0x02, 0x03, 0x01, 0x00,
1946 	0x01, 0xa3, 0x82, 0x01, 0x8e, 0x30, 0x82, 0x01,
1947 	0x8a, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
1948 	0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02,
1949 	0x84, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25,
1950 	0x04, 0x14, 0x30, 0x12, 0x06, 0x09, 0x2b, 0x06,
1951 	0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x24, 0x06,
1952 	0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30, 0x16,
1953 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30,
1954 	0x0d, 0x30, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01,
1955 	0x04, 0x01, 0x82, 0x37, 0x15, 0x1f, 0x30, 0x12,
1956 	0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
1957 	0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
1958 	0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
1959 	0x0e, 0x04, 0x16, 0x04, 0x14, 0x45, 0x1a, 0xec,
1960 	0xfc, 0x91, 0x70, 0xf8, 0x83, 0x8b, 0x9c, 0x47,
1961 	0x2f, 0x0b, 0x9f, 0x07, 0xf3, 0x2f, 0x7c, 0xa2,
1962 	0x8a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
1963 	0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c,
1964 	0x0a, 0xce, 0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94,
1965 	0xd1, 0xae, 0x55, 0xc1, 0x52, 0xec, 0x71, 0x74,
1966 	0xa4, 0x56, 0x30, 0x70, 0x06, 0x03, 0x55, 0x1d,
1967 	0x1f, 0x04, 0x69, 0x30, 0x67, 0x30, 0x65, 0xa0,
1968 	0x63, 0xa0, 0x61, 0x86, 0x5f, 0x68, 0x74, 0x74,
1969 	0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
1970 	0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
1971 	0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b,
1972 	0x69, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c,
1973 	0x2f, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
1974 	0x66, 0x74, 0x25, 0x32, 0x30, 0x54, 0x50, 0x4d,
1975 	0x25, 0x32, 0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25,
1976 	0x32, 0x30, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
1977 	0x69, 0x63, 0x61, 0x74, 0x65, 0x25, 0x32, 0x30,
1978 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
1979 	0x79, 0x25, 0x32, 0x30, 0x32, 0x30, 0x31, 0x34,
1980 	0x2e, 0x63, 0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08,
1981 	0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
1982 	0x04, 0x71, 0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08,
1983 	0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02,
1984 	0x86, 0x61, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
1985 	0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63,
1986 	0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63,
1987 	0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70,
1988 	0x73, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f,
1989 	0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
1990 	0x74, 0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25,
1991 	0x32, 0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32,
1992 	0x30, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
1993 	0x63, 0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41,
1994 	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
1995 	0x25, 0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e,
1996 	0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a,
1997 	0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
1998 	0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x48,
1999 	0x24, 0x32, 0xe8, 0xd6, 0x38, 0xda, 0x65, 0xec,
2000 	0x1b, 0x18, 0x8e, 0x37, 0x07, 0xd5, 0x18, 0x5a,
2001 	0xc8, 0xb9, 0xbb, 0x24, 0x8a, 0x4d, 0xa1, 0x3c,
2002 	0x9e, 0x46, 0x76, 0xcf, 0xa5, 0xdf, 0xd7, 0x61,
2003 	0xba, 0x05, 0x89, 0x3c, 0x13, 0xc2, 0x1f, 0x71,
2004 	0xe3, 0xec, 0x5d, 0x54, 0x9e, 0xd9, 0x01, 0x5a,
2005 	0x10, 0x3b, 0x17, 0x75, 0xde, 0xa1, 0x45, 0xbf,
2006 	0x1d, 0x1b, 0x41, 0x21, 0x42, 0x68, 0x22, 0x6b,
2007 	0xbb, 0xcb, 0x11, 0x04, 0xd2, 0xae, 0x86, 0xcf,
2008 	0x73, 0x5a, 0xf2, 0x80, 0x18, 0x00, 0xf0, 0xd6,
2009 	0x6c, 0x5a, 0x1e, 0xb3, 0x4d, 0x30, 0x02, 0x4a,
2010 	0x6a, 0x03, 0x36, 0x42, 0xde, 0xb2, 0x52, 0x55,
2011 	0xff, 0x71, 0xeb, 0x7b, 0x8b, 0x55, 0x6c, 0xdf,
2012 	0x05, 0x35, 0x47, 0x70, 0x53, 0xfb, 0x6c, 0xba,
2013 	0x06, 0xb2, 0x61, 0x86, 0xdc, 0x2a, 0x64, 0x81,
2014 	0x24, 0x79, 0x46, 0x73, 0x04, 0x55, 0x59, 0xed,
2015 	0xd6, 0x06, 0x61, 0x15, 0xf9, 0x8d, 0x78, 0x39,
2016 	0x7b, 0x84, 0x7a, 0x40, 0x45, 0x13, 0x1a, 0x91,
2017 	0x71, 0x8f, 0xd1, 0x4f, 0x78, 0x10, 0x68, 0x9b,
2018 	0x15, 0x79, 0x3f, 0x79, 0x2d, 0x9b, 0xc7, 0x5d,
2019 	0xa3, 0xcf, 0xa9, 0x14, 0xb0, 0xc4, 0xdb, 0xa9,
2020 	0x45, 0x6a, 0x6e, 0x60, 0x45, 0x0b, 0x14, 0x25,
2021 	0xc7, 0x74, 0xd0, 0x36, 0xaf, 0xc5, 0xbd, 0x4f,
2022 	0x7b, 0xc0, 0x04, 0x43, 0x85, 0xbb, 0x06, 0x36,
2023 	0x77, 0x26, 0x02, 0x23, 0x0b, 0xf8, 0x57, 0x8f,
2024 	0x1f, 0x27, 0x30, 0x95, 0xff, 0x83, 0x23, 0x2b,
2025 	0x49, 0x33, 0x43, 0x62, 0x87, 0x5d, 0x27, 0x12,
2026 	0x1a, 0x68, 0x7b, 0xba, 0x2d, 0xf6, 0xed, 0x2c,
2027 	0x26, 0xb5, 0xbb, 0xe2, 0x6f, 0xc2, 0x61, 0x17,
2028 	0xfc, 0x72, 0x14, 0x57, 0x2c, 0x2c, 0x5a, 0x92,
2029 	0x13, 0x41, 0xc4, 0x7e, 0xb5, 0x64, 0x5b, 0x86,
2030 	0x57, 0x13, 0x14, 0xff, 0xf5, 0x04, 0xb9, 0x3d,
2031 	0x2d, 0xc3, 0xe9, 0x75, 0x1f, 0x68, 0x0b, 0xb5,
2032 	0x76, 0xe1, 0x7d, 0xe3, 0xb0, 0x14, 0xa8, 0x45,
2033 	0x05, 0x98, 0x81, 0x32, 0xc1, 0xf5, 0x49, 0x4d,
2034 	0x58, 0xa4, 0xee, 0xd8, 0x84, 0xba, 0x65, 0x07,
2035 	0x8d, 0xf7, 0x9a, 0xff, 0x7d, 0xa5, 0xbc, 0x9a,
2036 	0xed, 0x4a, 0x5d, 0xa4, 0x97, 0x4b, 0x4d, 0x31,
2037 	0x90, 0xb5, 0x7d, 0x28, 0x77, 0x25, 0x88, 0x1c,
2038 	0xbf, 0x78, 0x22, 0xb2, 0xb5, 0x5c, 0x9a, 0xc9,
2039 	0x63, 0x17, 0x96, 0xe9, 0xc2, 0x52, 0x30, 0xb8,
2040 	0x9b, 0x37, 0x69, 0x1a, 0x6a, 0x66, 0x76, 0x18,
2041 	0xac, 0xc0, 0x48, 0xee, 0x46, 0x5b, 0xbe, 0x6a,
2042 	0xd5, 0x72, 0x07, 0xdc, 0x7d, 0x05, 0xbe, 0x76,
2043 	0x7d, 0xa5, 0x5e, 0x53, 0xb5, 0x47, 0x80, 0x58,
2044 	0xf0, 0xaf, 0x6f, 0x4e, 0xc0, 0xf1, 0x1e, 0x37,
2045 	0x64, 0x15, 0x42, 0x96, 0x18, 0x3a, 0x89, 0xc8,
2046 	0x14, 0x48, 0x89, 0x5c, 0x12, 0x88, 0x98, 0x0b,
2047 	0x7b, 0x4e, 0xce, 0x1c, 0xda, 0xd5, 0xa4, 0xd3,
2048 	0x32, 0x32, 0x74, 0x5b, 0xcc, 0xfd, 0x2b, 0x02,
2049 	0xfb, 0xae, 0xd0, 0x5a, 0x4c, 0xc9, 0xc1, 0x35,
2050 	0x19, 0x90, 0x5f, 0xca, 0x14, 0xeb, 0x4c, 0x17,
2051 	0xd7, 0xe3, 0xe2, 0x5d, 0xb4, 0x49, 0xaa, 0xf0,
2052 	0x50, 0x87, 0xc3, 0x20, 0x00, 0xda, 0xe9, 0x04,
2053 	0x80, 0x64, 0xac, 0x9f, 0xcd, 0x26, 0x41, 0x48,
2054 	0xe8, 0x4c, 0x46, 0xcc, 0x5b, 0xd7, 0xca, 0x4c,
2055 	0x1b, 0x43, 0x43, 0x1e, 0xbd, 0x94, 0xe7, 0xa7,
2056 	0xa6, 0x86, 0xe5, 0xd1, 0x78, 0x29, 0xa2, 0x40,
2057 	0xc5, 0xc5, 0x47, 0xb6, 0x6d, 0x53, 0xde, 0xac,
2058 	0x97, 0x74, 0x24, 0x57, 0xcc, 0x05, 0x93, 0xfd,
2059 	0x52, 0x35, 0x29, 0xd5, 0xe0, 0xfa, 0x23, 0x0d,
2060 	0xd7, 0xaa, 0x8b, 0x07, 0x4b, 0xf6, 0x64, 0xc7,
2061 	0xad, 0x3c, 0xa1, 0xb5, 0xc5, 0x70, 0xaf, 0x46,
2062 	0xfe, 0x9a, 0x82, 0x4d, 0x75, 0xb8, 0x6d
2063 };
2064 
2065 static const uint8_t x509_entattest[] = {
2066 	0x30, 0x82, 0x02, 0x9a, 0x30, 0x82, 0x02, 0x40,
2067 	0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01,
2068 	0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,
2069 	0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0xb0, 0x31,
2070 	0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03,
2071 	0x0c, 0x26, 0x46, 0x49, 0x44, 0x4f, 0x32, 0x20,
2072 	0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69,
2073 	0x73, 0x65, 0x20, 0x41, 0x74, 0x74, 0x65, 0x73,
2074 	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54,
2075 	0x45, 0x53, 0x54, 0x20, 0x52, 0x4f, 0x4f, 0x54,
2076 	0x31, 0x25, 0x30, 0x23, 0x06, 0x09, 0x2a, 0x86,
2077 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16,
2078 	0x16, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x40, 0x66,
2079 	0x69, 0x64, 0x6f, 0x61, 0x6c, 0x6c, 0x69, 0x61,
2080 	0x6e, 0x63, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31,
2081 	0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
2082 	0x0c, 0x0d, 0x46, 0x49, 0x44, 0x4f, 0x20, 0x41,
2083 	0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x31,
2084 	0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b,
2085 	0x0c, 0x03, 0x43, 0x57, 0x47, 0x31, 0x0b, 0x30,
2086 	0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
2087 	0x55, 0x53, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
2088 	0x55, 0x04, 0x08, 0x0c, 0x02, 0x43, 0x41, 0x31,
2089 	0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x07,
2090 	0x0c, 0x0d, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61,
2091 	0x69, 0x6e, 0x20, 0x56, 0x69, 0x65, 0x77, 0x30,
2092 	0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x35, 0x31,
2093 	0x33, 0x31, 0x33, 0x31, 0x39, 0x30, 0x38, 0x5a,
2094 	0x17, 0x0d, 0x32, 0x36, 0x31, 0x31, 0x30, 0x33,
2095 	0x31, 0x33, 0x31, 0x39, 0x30, 0x38, 0x5a, 0x30,
2096 	0x81, 0xcd, 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03,
2097 	0x55, 0x04, 0x03, 0x0c, 0x31, 0x46, 0x49, 0x44,
2098 	0x4f, 0x32, 0x20, 0x45, 0x6e, 0x74, 0x65, 0x72,
2099 	0x70, 0x72, 0x69, 0x73, 0x65, 0x20, 0x41, 0x74,
2100 	0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
2101 	0x6e, 0x20, 0x42, 0x41, 0x54, 0x43, 0x48, 0x20,
2102 	0x4b, 0x45, 0x59, 0x20, 0x70, 0x72, 0x69, 0x6d,
2103 	0x65, 0x32, 0x35, 0x36, 0x76, 0x31, 0x31, 0x25,
2104 	0x30, 0x23, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
2105 	0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x16, 0x74,
2106 	0x6f, 0x6f, 0x6c, 0x73, 0x40, 0x66, 0x69, 0x64,
2107 	0x6f, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63,
2108 	0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x16, 0x30,
2109 	0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0d,
2110 	0x46, 0x49, 0x44, 0x4f, 0x20, 0x41, 0x6c, 0x6c,
2111 	0x69, 0x61, 0x6e, 0x63, 0x65, 0x31, 0x22, 0x30,
2112 	0x20, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x19,
2113 	0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
2114 	0x63, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x41, 0x74,
2115 	0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
2116 	0x6e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
2117 	0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x0b,
2118 	0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c,
2119 	0x02, 0x4d, 0x59, 0x31, 0x12, 0x30, 0x10, 0x06,
2120 	0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x57, 0x61,
2121 	0x6b, 0x65, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x30,
2122 	0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,
2123 	0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
2124 	0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,
2125 	0x00, 0x04, 0xad, 0x51, 0xdc, 0x74, 0x2c, 0x37,
2126 	0x7f, 0x78, 0x38, 0x2d, 0x2a, 0x3f, 0x40, 0xe9,
2127 	0xe3, 0xae, 0xb5, 0x9e, 0x45, 0x93, 0xf2, 0x82,
2128 	0xc6, 0xc4, 0x82, 0xfb, 0xd6, 0xd7, 0x1b, 0xda,
2129 	0x7c, 0xec, 0x0c, 0x5c, 0x8e, 0x8a, 0xd3, 0xdd,
2130 	0x0a, 0xf5, 0x56, 0x43, 0xf0, 0xfc, 0x0b, 0x0d,
2131 	0xd7, 0xe9, 0x0a, 0xeb, 0x0e, 0xbc, 0x4f, 0x12,
2132 	0x27, 0xd7, 0xbc, 0xb0, 0xa9, 0x15, 0x1f, 0x49,
2133 	0x6e, 0x10, 0xa3, 0x2c, 0x30, 0x2a, 0x30, 0x09,
2134 	0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30,
2135 	0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
2136 	0x04, 0x16, 0x04, 0x14, 0x1e, 0xd3, 0xe9, 0x9a,
2137 	0xaf, 0x89, 0x9a, 0xb7, 0x10, 0x61, 0xa3, 0xae,
2138 	0x74, 0x7f, 0x3a, 0x96, 0x96, 0xda, 0xce, 0x61,
2139 	0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,
2140 	0x3d, 0x04, 0x03, 0x02, 0x03, 0x48, 0x00, 0x30,
2141 	0x45, 0x02, 0x21, 0x00, 0x8e, 0xd7, 0x9c, 0xbe,
2142 	0x8f, 0x99, 0xe0, 0xcf, 0x88, 0x04, 0x7e, 0xc0,
2143 	0xe1, 0x5a, 0xaa, 0x4a, 0xa3, 0xd7, 0xfc, 0x53,
2144 	0x9f, 0x8f, 0x13, 0x66, 0xe7, 0x03, 0x8f, 0xb8,
2145 	0x6d, 0x8b, 0xb1, 0x44, 0x02, 0x20, 0x16, 0x68,
2146 	0xa5, 0xf9, 0x62, 0x9a, 0xc9, 0xf9, 0x27, 0x88,
2147 	0x38, 0x91, 0x69, 0x2f, 0x1f, 0xdf, 0xb0, 0xe3,
2148 	0x49, 0x0c, 0xaa, 0x3d, 0x4c, 0x10, 0xf4, 0x9c,
2149 	0xee, 0xd8, 0xd8, 0x28, 0x01, 0x26
2150 };
2151 
2152 /*
2153  * Security Key By Yubico
2154  * 5.1.X
2155  * f8a011f3-8c0a-4d15-8006-17111f9edc7d
2156  */
2157 const unsigned char aaguid[16] = {
2158 	0xf8, 0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15,
2159 	0x80, 0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d,
2160 };
2161 
2162 /*
2163  * Windows Hello by Microsoft
2164  */
2165 const unsigned char aaguid_tpm[16] = {
2166 	0x08, 0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81,
2167 	0xb6, 0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96,
2168 };
2169 
2170 const char rp_id[] = "localhost";
2171 const char rp_name[] = "sweet home localhost";
2172 
2173 static fido_cred_t *
alloc_cred(void)2174 alloc_cred(void)
2175 {
2176 	fido_cred_t *c;
2177 
2178 	c = fido_cred_new();
2179 	assert(c != NULL);
2180 
2181 	return (c);
2182 }
2183 
2184 static void
free_cred(fido_cred_t * c)2185 free_cred(fido_cred_t *c)
2186 {
2187 	fido_cred_free(&c);
2188 	assert(c == NULL);
2189 }
2190 
2191 static fido_dev_t *
alloc_dev(void)2192 alloc_dev(void)
2193 {
2194 	fido_dev_t *d;
2195 
2196 	d = fido_dev_new();
2197 	assert(d != NULL);
2198 
2199 	return (d);
2200 }
2201 
2202 static void
free_dev(fido_dev_t * d)2203 free_dev(fido_dev_t *d)
2204 {
2205 	fido_dev_free(&d);
2206 	assert(d == NULL);
2207 }
2208 
2209 static void
empty_cred(void)2210 empty_cred(void)
2211 {
2212 	fido_cred_t *c;
2213 	fido_dev_t *d;
2214 
2215 	c = alloc_cred();
2216 	assert(fido_cred_authdata_len(c) == 0);
2217 	assert(fido_cred_authdata_ptr(c) == NULL);
2218 	assert(fido_cred_authdata_raw_len(c) == 0);
2219 	assert(fido_cred_authdata_raw_ptr(c) == NULL);
2220 	assert(fido_cred_clientdata_hash_len(c) == 0);
2221 	assert(fido_cred_clientdata_hash_ptr(c) == NULL);
2222 	assert(fido_cred_flags(c) == 0);
2223 	assert(fido_cred_fmt(c) == NULL);
2224 	assert(fido_cred_id_len(c) == 0);
2225 	assert(fido_cred_id_ptr(c) == NULL);
2226 	assert(fido_cred_prot(c) == 0);
2227 	assert(fido_cred_pubkey_len(c) == 0);
2228 	assert(fido_cred_pubkey_ptr(c) == NULL);
2229 	assert(fido_cred_rp_id(c) == NULL);
2230 	assert(fido_cred_rp_name(c) == NULL);
2231 	assert(fido_cred_sig_len(c) == 0);
2232 	assert(fido_cred_sig_ptr(c) == NULL);
2233 	assert(fido_cred_x5c_len(c) == 0);
2234 	assert(fido_cred_x5c_ptr(c) == NULL);
2235 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2236 
2237 	d = alloc_dev();
2238 	setup_dummy_io(d);
2239 
2240 	fido_dev_force_u2f(d);
2241 	assert(fido_dev_make_cred(d, c, NULL) == FIDO_ERR_INVALID_ARGUMENT);
2242 	assert(fido_dev_make_cred(d, c, "") == FIDO_ERR_UNSUPPORTED_OPTION);
2243 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2244 
2245 	fido_dev_force_fido2(d);
2246 	assert(fido_dev_make_cred(d, c, NULL) == FIDO_ERR_INVALID_ARGUMENT);
2247 	assert(fido_dev_make_cred(d, c, "") == FIDO_ERR_INVALID_ARGUMENT);
2248 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2249 
2250 	free_cred(c);
2251 	free_dev(d);
2252 }
2253 
2254 static void
valid_cred(void)2255 valid_cred(void)
2256 {
2257 	fido_cred_t *c;
2258 
2259 	c = alloc_cred();
2260 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2261 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2262 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2263 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2264 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2265 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2266 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2267 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2268 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2269 	assert(fido_cred_verify(c) == FIDO_OK);
2270 	assert(fido_cred_prot(c) == 0);
2271 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2272 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2273 	assert(fido_cred_id_len(c) == sizeof(id));
2274 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2275 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2276 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2277 	free_cred(c);
2278 }
2279 
2280 static void
no_cdh(void)2281 no_cdh(void)
2282 {
2283 	fido_cred_t *c;
2284 
2285 	c = alloc_cred();
2286 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2287 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2288 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2289 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2290 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2291 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2292 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2293 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2294 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2295 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2296 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2297 	assert(fido_cred_id_len(c) == sizeof(id));
2298 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2299 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2300 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2301 	free_cred(c);
2302 }
2303 
2304 static void
no_rp_id(void)2305 no_rp_id(void)
2306 {
2307 	fido_cred_t *c;
2308 
2309 	c = alloc_cred();
2310 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2311 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2312 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2313 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2314 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2315 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2316 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2317 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2318 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2319 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2320 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2321 	assert(fido_cred_id_len(c) == sizeof(id));
2322 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2323 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2324 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2325 	free_cred(c);
2326 }
2327 
2328 static void
no_rp_name(void)2329 no_rp_name(void)
2330 {
2331 	fido_cred_t *c;
2332 
2333 	c = alloc_cred();
2334 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2335 	assert(fido_cred_set_rp(c, rp_id, NULL) == FIDO_OK);
2336 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2337 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2338 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2339 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2340 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2341 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2342 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2343 	assert(fido_cred_verify(c) == FIDO_OK);
2344 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2345 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2346 	assert(fido_cred_id_len(c) == sizeof(id));
2347 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2348 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2349 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2350 	free_cred(c);
2351 }
2352 
2353 static void
no_authdata(void)2354 no_authdata(void)
2355 {
2356 	fido_cred_t *c;
2357 	unsigned char *unset;
2358 
2359 	unset = calloc(1, sizeof(aaguid));
2360 	assert(unset != NULL);
2361 
2362 	c = alloc_cred();
2363 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2364 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2365 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2366 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2367 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2368 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2369 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2370 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2371 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2372 	assert(fido_cred_pubkey_len(c) == 0);
2373 	assert(fido_cred_pubkey_ptr(c) == NULL);
2374 	assert(fido_cred_id_len(c) == 0);
2375 	assert(fido_cred_id_ptr(c) == NULL);
2376 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2377 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
2378 	free_cred(c);
2379 	free(unset);
2380 }
2381 
2382 static void
no_x509(void)2383 no_x509(void)
2384 {
2385 	fido_cred_t *c;
2386 
2387 	c = alloc_cred();
2388 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2389 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2390 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2391 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2392 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2393 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2394 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2395 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2396 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2397 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2398 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2399 	assert(fido_cred_id_len(c) == sizeof(id));
2400 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2401 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2402 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2403 	free_cred(c);
2404 }
2405 
2406 static void
no_sig(void)2407 no_sig(void)
2408 {
2409 	fido_cred_t *c;
2410 
2411 	c = alloc_cred();
2412 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2413 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2414 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2415 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2416 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2417 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2418 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2419 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2420 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2421 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2422 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2423 	assert(fido_cred_id_len(c) == sizeof(id));
2424 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2425 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2426 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2427 	free_cred(c);
2428 }
2429 
2430 static void
no_fmt(void)2431 no_fmt(void)
2432 {
2433 	fido_cred_t *c;
2434 
2435 	c = alloc_cred();
2436 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2437 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2438 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2439 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2440 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2441 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2442 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2443 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2444 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2445 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2446 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2447 	assert(fido_cred_id_len(c) == sizeof(id));
2448 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2449 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2450 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2451 	free_cred(c);
2452 }
2453 
2454 static void
wrong_options(void)2455 wrong_options(void)
2456 {
2457 	fido_cred_t *c;
2458 
2459 	c = alloc_cred();
2460 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2461 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2462 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2463 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2464 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2465 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2466 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2467 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2468 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2469 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
2470 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2471 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2472 	assert(fido_cred_id_len(c) == sizeof(id));
2473 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2474 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2475 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2476 	free_cred(c);
2477 }
2478 
2479 static void
junk_cdh(void)2480 junk_cdh(void)
2481 {
2482 	fido_cred_t *c;
2483 	unsigned char *junk;
2484 
2485 	junk = malloc(sizeof(cdh));
2486 	assert(junk != NULL);
2487 	memcpy(junk, cdh, sizeof(cdh));
2488 	junk[0] = (unsigned char)~junk[0];
2489 
2490 	c = alloc_cred();
2491 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2492 	assert(fido_cred_set_clientdata_hash(c, junk, sizeof(cdh)) == FIDO_OK);
2493 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2494 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2495 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2496 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2497 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2498 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2499 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2500 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
2501 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2502 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2503 	assert(fido_cred_id_len(c) == sizeof(id));
2504 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2505 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2506 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2507 	free_cred(c);
2508 	free(junk);
2509 }
2510 
2511 static void
junk_fmt(void)2512 junk_fmt(void)
2513 {
2514 	fido_cred_t *c;
2515 
2516 	c = alloc_cred();
2517 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2518 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2519 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2520 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2521 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2522 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2523 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2524 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2525 	assert(fido_cred_set_fmt(c, "junk") == FIDO_ERR_INVALID_ARGUMENT);
2526 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2527 	free_cred(c);
2528 }
2529 
2530 static void
junk_rp_id(void)2531 junk_rp_id(void)
2532 {
2533 	fido_cred_t *c;
2534 
2535 	c = alloc_cred();
2536 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2537 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2538 	assert(fido_cred_set_rp(c, "potato", rp_name) == FIDO_OK);
2539 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2540 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2541 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2542 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2543 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2544 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2545 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
2546 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2547 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2548 	assert(fido_cred_id_len(c) == sizeof(id));
2549 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2550 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2551 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2552 	free_cred(c);
2553 }
2554 
2555 static void
junk_rp_name(void)2556 junk_rp_name(void)
2557 {
2558 	fido_cred_t *c;
2559 
2560 	c = alloc_cred();
2561 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2562 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2563 	assert(fido_cred_set_rp(c, rp_id, "potato") == FIDO_OK);
2564 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2565 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2566 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2567 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2568 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2569 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2570 	assert(fido_cred_verify(c) == FIDO_OK);
2571 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2572 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2573 	assert(fido_cred_id_len(c) == sizeof(id));
2574 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2575 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2576 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2577 	free_cred(c);
2578 }
2579 
2580 static void
junk_authdata(void)2581 junk_authdata(void)
2582 {
2583 	fido_cred_t *c;
2584 	unsigned char *junk;
2585 	unsigned char *unset;
2586 
2587 	junk = malloc(sizeof(authdata));
2588 	assert(junk != NULL);
2589 	memcpy(junk, authdata, sizeof(authdata));
2590 	junk[0] = (unsigned char)~junk[0];
2591 
2592 	unset = calloc(1, sizeof(aaguid));
2593 	assert(unset != NULL);
2594 
2595 	c = alloc_cred();
2596 	assert(fido_cred_set_authdata(c, junk,
2597 	    sizeof(authdata)) == FIDO_ERR_INVALID_ARGUMENT);
2598 	assert(fido_cred_authdata_len(c) == 0);
2599 	assert(fido_cred_authdata_ptr(c) == NULL);
2600 	assert(fido_cred_authdata_raw_len(c) == 0);
2601 	assert(fido_cred_authdata_raw_ptr(c) == NULL);
2602 	assert(fido_cred_flags(c) == 0);
2603 	assert(fido_cred_fmt(c) == NULL);
2604 	assert(fido_cred_id_len(c) == 0);
2605 	assert(fido_cred_id_ptr(c) == NULL);
2606 	assert(fido_cred_pubkey_len(c) == 0);
2607 	assert(fido_cred_pubkey_ptr(c) == NULL);
2608 	assert(fido_cred_rp_id(c) == NULL);
2609 	assert(fido_cred_rp_name(c) == NULL);
2610 	assert(fido_cred_sig_len(c) == 0);
2611 	assert(fido_cred_sig_ptr(c) == NULL);
2612 	assert(fido_cred_x5c_len(c) == 0);
2613 	assert(fido_cred_x5c_ptr(c) == NULL);
2614 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2615 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
2616 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2617 	free_cred(c);
2618 	free(junk);
2619 	free(unset);
2620 }
2621 
2622 static void
junk_sig(void)2623 junk_sig(void)
2624 {
2625 	fido_cred_t *c;
2626 	unsigned char *junk;
2627 
2628 	junk = malloc(sizeof(sig));
2629 	assert(junk != NULL);
2630 	memcpy(junk, sig, sizeof(sig));
2631 	junk[0] = (unsigned char)~junk[0];
2632 
2633 	c = alloc_cred();
2634 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2635 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2636 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2637 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2638 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2639 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2640 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2641 	assert(fido_cred_set_sig(c, junk, sizeof(sig)) == FIDO_OK);
2642 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2643 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
2644 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2645 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2646 	assert(fido_cred_id_len(c) == sizeof(id));
2647 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2648 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2649 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2650 	free_cred(c);
2651 	free(junk);
2652 }
2653 
2654 static void
junk_x509(void)2655 junk_x509(void)
2656 {
2657 	fido_cred_t *c;
2658 	unsigned char *junk;
2659 
2660 	junk = malloc(sizeof(x509));
2661 	assert(junk != NULL);
2662 	memcpy(junk, x509, sizeof(x509));
2663 	junk[0] = (unsigned char)~junk[0];
2664 
2665 	c = alloc_cred();
2666 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2667 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2668 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2669 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2670 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2671 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2672 	assert(fido_cred_set_x509(c, junk, sizeof(x509)) == FIDO_OK);
2673 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2674 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2675 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
2676 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2677 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2678 	assert(fido_cred_id_len(c) == sizeof(id));
2679 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2680 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2681 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2682 	free_cred(c);
2683 	free(junk);
2684 }
2685 
2686 /* github issue #6 */
2687 static void
invalid_type(void)2688 invalid_type(void)
2689 {
2690 	fido_cred_t *c;
2691 	unsigned char *unset;
2692 
2693 	unset = calloc(1, sizeof(aaguid));
2694 	assert(unset != NULL);
2695 
2696 	c = alloc_cred();
2697 	assert(fido_cred_set_type(c, COSE_RS256) == FIDO_OK);
2698 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2699 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2700 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_ERR_INVALID_ARGUMENT);
2701 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2702 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2703 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2704 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2705 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2706 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2707 	assert(fido_cred_pubkey_len(c) == 0);
2708 	assert(fido_cred_pubkey_ptr(c) == NULL);
2709 	assert(fido_cred_id_len(c) == 0);
2710 	assert(fido_cred_id_ptr(c) == NULL);
2711 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2712 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
2713 	free_cred(c);
2714 	free(unset);
2715 }
2716 
2717 /* cbor_serialize_alloc misuse */
2718 static void
bad_cbor_serialize(void)2719 bad_cbor_serialize(void)
2720 {
2721 	fido_cred_t *c;
2722 
2723 	c = alloc_cred();
2724 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2725 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2726 	assert(fido_cred_authdata_len(c) == sizeof(authdata));
2727 	free_cred(c);
2728 }
2729 
2730 static void
duplicate_keys(void)2731 duplicate_keys(void)
2732 {
2733 	fido_cred_t *c;
2734 
2735 	c = alloc_cred();
2736 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2737 	assert(fido_cred_set_authdata(c, authdata_dupkeys,
2738 	    sizeof(authdata_dupkeys)) == FIDO_ERR_INVALID_ARGUMENT);
2739 	free_cred(c);
2740 }
2741 
2742 static void
unsorted_keys(void)2743 unsorted_keys(void)
2744 {
2745 	fido_cred_t *c;
2746 
2747 	c = alloc_cred();
2748 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2749 	assert(fido_cred_set_authdata(c, authdata_unsorted_keys,
2750 	    sizeof(authdata_unsorted_keys)) == FIDO_ERR_INVALID_ARGUMENT);
2751 	free_cred(c);
2752 }
2753 
2754 static void
wrong_credprot(void)2755 wrong_credprot(void)
2756 {
2757 	fido_cred_t *c;
2758 
2759 	c = alloc_cred();
2760 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2761 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2762 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2763 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
2764 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
2765 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
2766 	assert(fido_cred_set_prot(c, FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID) == FIDO_OK);
2767 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2768 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
2769 	free_cred(c);
2770 }
2771 
2772 static void
raw_authdata(void)2773 raw_authdata(void)
2774 {
2775 	fido_cred_t *c;
2776 	cbor_item_t *item;
2777 	struct cbor_load_result cbor_result;
2778 	const unsigned char *ptr;
2779 	unsigned char *cbor;
2780 	size_t len;
2781 	size_t cbor_len;
2782 	size_t alloclen;
2783 
2784 	c = alloc_cred();
2785 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2786 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2787 	assert((ptr = fido_cred_authdata_ptr(c)) != NULL);
2788 	assert((len = fido_cred_authdata_len(c)) != 0);
2789 	assert((item = cbor_load(ptr, len, &cbor_result)) != NULL);
2790 	assert(cbor_result.read == len);
2791 	assert(cbor_isa_bytestring(item));
2792 	assert((ptr = fido_cred_authdata_raw_ptr(c)) != NULL);
2793 	assert((len = fido_cred_authdata_raw_len(c)) != 0);
2794 	assert(cbor_bytestring_length(item) == len);
2795 	assert(memcmp(ptr, cbor_bytestring_handle(item), len) == 0);
2796 	assert((len = fido_cred_authdata_len(c)) != 0);
2797 	assert((cbor_len = cbor_serialize_alloc(item, &cbor, &alloclen)) == len);
2798 	assert((ptr = cbor_bytestring_handle(item)) != NULL);
2799 	assert((len = cbor_bytestring_length(item)) != 0);
2800 	assert(fido_cred_set_authdata_raw(c, ptr, len) == FIDO_OK);
2801 	assert((ptr = fido_cred_authdata_ptr(c)) != NULL);
2802 	assert((len = fido_cred_authdata_len(c)) != 0);
2803 	assert(len == cbor_len);
2804 	assert(memcmp(cbor, ptr, len) == 0);
2805 	assert(cbor_len == sizeof(authdata));
2806 	assert(memcmp(cbor, authdata, cbor_len) == 0);
2807 	cbor_decref(&item);
2808 	free(cbor);
2809 	free_cred(c);
2810 }
2811 
2812 static void
fmt_none(void)2813 fmt_none(void)
2814 {
2815 	fido_cred_t *c;
2816 
2817 	c = alloc_cred();
2818 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2819 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2820 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2821 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
2822 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2823 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
2824 	assert(fido_cred_set_fmt(c, "none") == FIDO_OK);
2825 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
2826 	assert(fido_cred_prot(c) == 0);
2827 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
2828 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2829 	assert(fido_cred_id_len(c) == sizeof(id));
2830 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2831 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2832 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2833 	free_cred(c);
2834 }
2835 
2836 static void
valid_tpm_rs256_cred(bool xfail)2837 valid_tpm_rs256_cred(bool xfail)
2838 {
2839 	fido_cred_t *c;
2840 
2841 	c = alloc_cred();
2842 	assert(fido_cred_set_type(c, COSE_RS256) == FIDO_OK);
2843 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
2844 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2845 	assert(fido_cred_set_authdata(c, authdata_tpm_rs256, sizeof(authdata_tpm_rs256)) == FIDO_OK);
2846 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2847 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2848 	assert(fido_cred_set_fmt(c, "tpm") == FIDO_OK);
2849 	assert(fido_cred_set_attstmt(c, attstmt_tpm_rs256, sizeof(attstmt_tpm_rs256)) == FIDO_OK);
2850 	// XXX: RHEL9 has deprecated SHA-1 for signing.
2851 	assert(fido_cred_verify(c) == (xfail ? FIDO_ERR_INVALID_SIG : FIDO_OK));
2852 	assert(fido_cred_prot(c) == 0);
2853 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_rs256));
2854 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_rs256, sizeof(pubkey_tpm_rs256)) == 0);
2855 	assert(fido_cred_id_len(c) == sizeof(id_tpm_rs256));
2856 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_rs256, sizeof(id_tpm_rs256)) == 0);
2857 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
2858 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
2859 	free_cred(c);
2860 }
2861 
2862 static void
valid_tpm_es256_cred(bool xfail)2863 valid_tpm_es256_cred(bool xfail)
2864 {
2865 	fido_cred_t *c;
2866 
2867 	c = alloc_cred();
2868 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2869 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
2870 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2871 	assert(fido_cred_set_authdata(c, authdata_tpm_es256, sizeof(authdata_tpm_es256)) == FIDO_OK);
2872 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2873 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2874 	assert(fido_cred_set_fmt(c, "tpm") == FIDO_OK);
2875 	assert(fido_cred_set_attstmt(c, attstmt_tpm_es256, sizeof(attstmt_tpm_es256)) == FIDO_OK);
2876 	assert(fido_cred_x5c_list_count(c) == 2);
2877 	assert(fido_cred_x5c_list_len(c, 0) == sizeof(x509_0_tpm_es256));
2878 	assert(memcmp(fido_cred_x5c_list_ptr(c, 0), x509_0_tpm_es256, sizeof(x509_0_tpm_es256)) == 0);
2879 	assert(fido_cred_x5c_list_len(c, 1) == sizeof(x509_1_tpm_es256));
2880 	assert(memcmp(fido_cred_x5c_list_ptr(c, 1), x509_1_tpm_es256, sizeof(x509_1_tpm_es256)) == 0);
2881 	assert(fido_cred_x5c_list_len(c, 2) == 0);
2882 	assert(fido_cred_x5c_list_ptr(c, 2) == NULL);
2883 	// XXX: RHEL9 has deprecated SHA-1 for signing.
2884 	assert(fido_cred_verify(c) == (xfail ? FIDO_ERR_INVALID_SIG : FIDO_OK));
2885 	assert(fido_cred_prot(c) == 0);
2886 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_es256));
2887 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_es256, sizeof(pubkey_tpm_es256)) == 0);
2888 	assert(fido_cred_id_len(c) == sizeof(id_tpm_es256));
2889 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_es256, sizeof(id_tpm_es256)) == 0);
2890 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
2891 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
2892 	free_cred(c);
2893 }
2894 
2895 static void
push_kv(cbor_item_t * map,const char * key,cbor_item_t * value)2896 push_kv(cbor_item_t *map, const char *key, cbor_item_t *value)
2897 {
2898 	struct cbor_pair kv;
2899 	cbor_item_t *tmp;
2900 
2901 	memset(&kv, 0, sizeof(kv));
2902 	assert(map != NULL && key != NULL && value != NULL);
2903 	assert((tmp = cbor_build_string(key)) != NULL);
2904 	/* XXX transfers ownership */
2905 	kv.key = cbor_move(tmp);
2906 	kv.value = cbor_move(value);
2907 	assert(cbor_map_add(map, kv));
2908 }
2909 
2910 static void
attestation_object(void)2911 attestation_object(void)
2912 {
2913 	struct cbor_load_result cbor;
2914 	unsigned char *attobj = NULL;
2915 	size_t len, alloclen = 0;
2916 	cbor_item_t *map;
2917 	fido_cred_t *c;
2918 
2919 	assert((map = cbor_new_definite_map(3)) != NULL);
2920 	push_kv(map, "fmt", cbor_build_string("tpm"));
2921 	push_kv(map, "attStmt", cbor_load(attstmt_tpm_es256,
2922 	    sizeof(attstmt_tpm_es256), &cbor));
2923 	push_kv(map, "authData", cbor_load(authdata_tpm_es256,
2924 	    sizeof(authdata_tpm_es256), &cbor));
2925 	assert((len = cbor_serialize_alloc(map, &attobj, &alloclen)));
2926 	cbor_decref(&map);
2927 
2928 	c = alloc_cred();
2929 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2930 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
2931 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2932 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2933 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2934 	assert(fido_cred_set_attobj(c, attobj, len) == FIDO_OK);
2935 	assert(strcmp(fido_cred_fmt(c), "tpm") == 0);
2936 	assert(fido_cred_attstmt_len(c) == sizeof(attstmt_tpm_es256));
2937 	assert(memcmp(fido_cred_attstmt_ptr(c), attstmt_tpm_es256, sizeof(attstmt_tpm_es256)) == 0);
2938 	assert(fido_cred_authdata_len(c) == sizeof(authdata_tpm_es256));
2939 	assert(memcmp(fido_cred_authdata_ptr(c), authdata_tpm_es256, sizeof(authdata_tpm_es256)) == 0);
2940 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_es256));
2941 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_es256, sizeof(pubkey_tpm_es256)) == 0);
2942 	assert(fido_cred_id_len(c) == sizeof(id_tpm_es256));
2943 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_es256, sizeof(id_tpm_es256)) == 0);
2944 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
2945 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
2946 	free_cred(c);
2947 	free(attobj);
2948 }
2949 
2950 static void
makecred(void)2951 makecred(void)
2952 {
2953 	const uint8_t makecred_wiredata[] = {
2954 		WIREDATA_CTAP_CBOR_INFO,
2955 		REGRESS_WIREDATA_MAKECRED,
2956 	};
2957 	uint8_t *wiredata;
2958 	fido_cred_t *c;
2959 	fido_dev_t *dev;
2960 
2961 	assert((dev = fido_dev_new()));
2962 	wiredata = wiredata_setup(makecred_wiredata, sizeof(makecred_wiredata));
2963 	setup_dummy_io(dev);
2964 	assert(fido_dev_open(dev, "dummy") == FIDO_OK);
2965 
2966 	c = alloc_cred();
2967 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
2968 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
2969 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
2970 	assert(fido_dev_make_cred(dev, c, NULL) == FIDO_OK);
2971 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
2972 	assert(fido_cred_authdata_len(c) == sizeof(authdata));
2973 	assert(memcmp(fido_cred_authdata_ptr(c), authdata, sizeof(authdata)) == 0);
2974 	assert(fido_cred_id_len(c) == sizeof(id));
2975 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
2976 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
2977 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
2978 	assert(fido_cred_x5c_len(c) == sizeof(x509));
2979 	assert(memcmp(fido_cred_x5c_ptr(c), x509, sizeof(x509)) == 0);
2980 	assert(fido_cred_sig_len(c) == sizeof(sig));
2981 	assert(memcmp(fido_cred_sig_ptr(c), sig, sizeof(sig)) == 0);
2982 	assert(fido_cred_verify(c) == FIDO_OK);
2983 	assert(!fido_cred_entattest(c));
2984 
2985 	fido_cred_free(&c);
2986 	wiredata_clear(&wiredata);
2987 	assert(fido_dev_close(dev) == FIDO_OK);
2988 	fido_dev_free(&dev);
2989 }
2990 
2991 static void
entattest(void)2992 entattest(void)
2993 {
2994 	const uint8_t makecred_wiredata[] = {
2995 		WIREDATA_CTAP_CBOR_INFO,
2996 		REGRESS_WIREDATA_MAKECRED_ENTATTEST,
2997 	};
2998 	uint8_t *wiredata;
2999 	fido_cred_t *c;
3000 	fido_dev_t *dev;
3001 
3002 	assert((dev = fido_dev_new()));
3003 	wiredata = wiredata_setup(makecred_wiredata, sizeof(makecred_wiredata));
3004 	setup_dummy_io(dev);
3005 	assert(fido_dev_open(dev, "dummy") == FIDO_OK);
3006 
3007 	c = alloc_cred();
3008 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
3009 	assert(fido_cred_set_entattest(c, 3) == FIDO_ERR_INVALID_ARGUMENT);
3010 	assert(fido_cred_set_entattest(c, FIDO_ENTATTEST_VENDOR) == FIDO_OK);
3011 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
3012 	assert(fido_cred_set_rp(c, "ep.fidoalliance.co.nz", NULL) == FIDO_OK);
3013 	assert(fido_dev_make_cred(dev, c, NULL) == FIDO_OK);
3014 	assert(fido_cred_x5c_len(c) == sizeof(x509_entattest));
3015 	assert(memcmp(fido_cred_x5c_ptr(c), x509_entattest, sizeof(x509_entattest)) == 0);
3016 	assert(fido_cred_verify(c) == FIDO_OK);
3017 	assert(fido_cred_entattest(c));
3018 
3019 	fido_cred_free(&c);
3020 	wiredata_clear(&wiredata);
3021 	assert(fido_dev_close(dev) == FIDO_OK);
3022 	fido_dev_free(&dev);
3023 }
3024 
3025 int
main(void)3026 main(void)
3027 {
3028 	bool xfail = getenv("FIDO_REGRESS_RS1_XFAIL") != NULL;
3029 
3030 	fido_init(0);
3031 
3032 	empty_cred();
3033 	valid_cred();
3034 	no_cdh();
3035 	no_rp_id();
3036 	no_rp_name();
3037 	no_authdata();
3038 	no_x509();
3039 	no_sig();
3040 	no_fmt();
3041 	junk_cdh();
3042 	junk_fmt();
3043 	junk_rp_id();
3044 	junk_rp_name();
3045 	junk_authdata();
3046 	junk_x509();
3047 	junk_sig();
3048 	wrong_options();
3049 	invalid_type();
3050 	bad_cbor_serialize();
3051 	duplicate_keys();
3052 	unsorted_keys();
3053 	wrong_credprot();
3054 	raw_authdata();
3055 	fmt_none();
3056 	valid_tpm_rs256_cred(xfail);
3057 	valid_tpm_es256_cred(xfail);
3058 	attestation_object();
3059 	makecred();
3060 	entattest();
3061 
3062 	exit(0);
3063 }
3064