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