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