xref: /freebsd/contrib/libfido2/regress/cred.c (revision 60a517b66a69b8c011b04063ef63a938738719bd)
10afa8e06SEd Maste /*
2f540a430SEd Maste  * Copyright (c) 2018-2021 Yubico AB. All rights reserved.
30afa8e06SEd Maste  * Use of this source code is governed by a BSD-style
40afa8e06SEd Maste  * license that can be found in the LICENSE file.
52ccfa855SEd Maste  * SPDX-License-Identifier: BSD-2-Clause
60afa8e06SEd Maste  */
70afa8e06SEd Maste 
82ccfa855SEd Maste #undef NDEBUG
92ccfa855SEd Maste 
100afa8e06SEd Maste #include <assert.h>
110afa8e06SEd Maste #include <string.h>
12*60a517b6SEd Maste #include <stdlib.h>
13*60a517b6SEd Maste #include <stdbool.h>
140afa8e06SEd Maste 
152ccfa855SEd Maste #define _FIDO_INTERNAL
162ccfa855SEd Maste 
172ccfa855SEd Maste #include <fido.h>
182ccfa855SEd Maste 
192ccfa855SEd Maste static int fake_dev_handle;
200afa8e06SEd Maste 
210afa8e06SEd Maste static const unsigned char cdh[32] = {
220afa8e06SEd Maste 	0xf9, 0x64, 0x57, 0xe7, 0x2d, 0x97, 0xf6, 0xbb,
230afa8e06SEd Maste 	0xdd, 0xd7, 0xfb, 0x06, 0x37, 0x62, 0xea, 0x26,
240afa8e06SEd Maste 	0x20, 0x44, 0x8e, 0x69, 0x7c, 0x03, 0xf2, 0x31,
250afa8e06SEd Maste 	0x2f, 0x99, 0xdc, 0xaf, 0x3e, 0x8a, 0x91, 0x6b,
260afa8e06SEd Maste };
270afa8e06SEd Maste 
280afa8e06SEd Maste static const unsigned char authdata[198] = {
290afa8e06SEd Maste 	0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
300afa8e06SEd Maste 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
310afa8e06SEd Maste 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
320afa8e06SEd Maste 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
330afa8e06SEd Maste 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
340afa8e06SEd Maste 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
350afa8e06SEd Maste 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
360afa8e06SEd Maste 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
370afa8e06SEd Maste 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
380afa8e06SEd Maste 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
390afa8e06SEd Maste 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
400afa8e06SEd Maste 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
410afa8e06SEd Maste 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
420afa8e06SEd Maste 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
430afa8e06SEd Maste 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
440afa8e06SEd Maste 	0x25, 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01,
450afa8e06SEd Maste 	0x21, 0x58, 0x20, 0x17, 0x5b, 0x27, 0xa6, 0x56,
460afa8e06SEd Maste 	0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55, 0x42, 0x78,
470afa8e06SEd Maste 	0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd, 0x1b, 0xb9,
480afa8e06SEd Maste 	0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22, 0x64, 0xf5,
490afa8e06SEd Maste 	0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20, 0x87, 0x5f,
500afa8e06SEd Maste 	0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f, 0xeb, 0xe3,
510afa8e06SEd Maste 	0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6, 0x1c, 0x31,
520afa8e06SEd Maste 	0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1, 0xfe, 0x5d,
530afa8e06SEd Maste 	0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
540afa8e06SEd Maste };
550afa8e06SEd Maste 
560afa8e06SEd Maste static const unsigned char authdata_dupkeys[200] = {
570afa8e06SEd Maste 	0x58, 0xc6, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
580afa8e06SEd Maste 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
590afa8e06SEd Maste 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
600afa8e06SEd Maste 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
610afa8e06SEd Maste 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
620afa8e06SEd Maste 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
630afa8e06SEd Maste 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
640afa8e06SEd Maste 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
650afa8e06SEd Maste 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
660afa8e06SEd Maste 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
670afa8e06SEd Maste 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
680afa8e06SEd Maste 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
690afa8e06SEd Maste 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
700afa8e06SEd Maste 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
710afa8e06SEd Maste 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
720afa8e06SEd Maste 	0x25, 0xa6, 0x01, 0x02, 0x01, 0x02, 0x03, 0x26,
730afa8e06SEd Maste 	0x20, 0x01, 0x21, 0x58, 0x20, 0x17, 0x5b, 0x27,
740afa8e06SEd Maste 	0xa6, 0x56, 0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55,
750afa8e06SEd Maste 	0x42, 0x78, 0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd,
760afa8e06SEd Maste 	0x1b, 0xb9, 0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22,
770afa8e06SEd Maste 	0x64, 0xf5, 0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20,
780afa8e06SEd Maste 	0x87, 0x5f, 0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f,
790afa8e06SEd Maste 	0xeb, 0xe3, 0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6,
800afa8e06SEd Maste 	0x1c, 0x31, 0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1,
810afa8e06SEd Maste 	0xfe, 0x5d, 0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
820afa8e06SEd Maste };
830afa8e06SEd Maste 
840afa8e06SEd Maste static const unsigned char authdata_unsorted_keys[198] = {
850afa8e06SEd Maste 	0x58, 0xc4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
860afa8e06SEd Maste 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
870afa8e06SEd Maste 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
880afa8e06SEd Maste 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
890afa8e06SEd Maste 	0x97, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf8,
900afa8e06SEd Maste 	0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15, 0x80,
910afa8e06SEd Maste 	0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d, 0x00,
920afa8e06SEd Maste 	0x40, 0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde,
930afa8e06SEd Maste 	0xc5, 0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d,
940afa8e06SEd Maste 	0x53, 0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e,
950afa8e06SEd Maste 	0x7f, 0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda,
960afa8e06SEd Maste 	0x68, 0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83,
970afa8e06SEd Maste 	0x2c, 0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76,
980afa8e06SEd Maste 	0x90, 0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6,
990afa8e06SEd Maste 	0x3c, 0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f,
1000afa8e06SEd Maste 	0x25, 0xa5, 0x03, 0x26, 0x01, 0x02, 0x20, 0x01,
1010afa8e06SEd Maste 	0x21, 0x58, 0x20, 0x17, 0x5b, 0x27, 0xa6, 0x56,
1020afa8e06SEd Maste 	0xb2, 0x26, 0x0c, 0x26, 0x0c, 0x55, 0x42, 0x78,
1030afa8e06SEd Maste 	0x17, 0x5d, 0x4c, 0xf8, 0xa2, 0xfd, 0x1b, 0xb9,
1040afa8e06SEd Maste 	0x54, 0xdf, 0xd5, 0xeb, 0xbf, 0x22, 0x64, 0xf5,
1050afa8e06SEd Maste 	0x21, 0x9a, 0xc6, 0x22, 0x58, 0x20, 0x87, 0x5f,
1060afa8e06SEd Maste 	0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f, 0xeb, 0xe3,
1070afa8e06SEd Maste 	0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6, 0x1c, 0x31,
1080afa8e06SEd Maste 	0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1, 0xfe, 0x5d,
1090afa8e06SEd Maste 	0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
1100afa8e06SEd Maste };
1110afa8e06SEd Maste 
1123e696dfbSEd Maste const unsigned char authdata_tpm_rs256[362] = {
113f540a430SEd Maste 	0x59, 0x01, 0x67, 0x49, 0x96, 0x0d, 0xe5, 0x88,
114f540a430SEd Maste 	0x0e, 0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64,
115f540a430SEd Maste 	0x76, 0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2,
116f540a430SEd Maste 	0x86, 0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83,
117f540a430SEd Maste 	0x1d, 0x97, 0x63, 0x45, 0x00, 0x00, 0x00, 0x00,
118f540a430SEd Maste 	0x08, 0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81,
119f540a430SEd Maste 	0xb6, 0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96,
120f540a430SEd Maste 	0x00, 0x20, 0x89, 0x99, 0x6d, 0x5a, 0x00, 0x29,
121f540a430SEd Maste 	0xe5, 0x3e, 0x6a, 0x1c, 0x72, 0x6d, 0x71, 0x4a,
122f540a430SEd Maste 	0x4f, 0x03, 0x9b, 0x68, 0x17, 0xdb, 0x29, 0x1a,
123f540a430SEd Maste 	0x6b, 0x02, 0x6c, 0x26, 0xf9, 0xbd, 0xc3, 0x0e,
124f540a430SEd Maste 	0x38, 0x1a, 0xa4, 0x01, 0x03, 0x03, 0x39, 0x01,
125f540a430SEd Maste 	0x00, 0x20, 0x59, 0x01, 0x00, 0xc5, 0xb6, 0x9c,
126f540a430SEd Maste 	0x06, 0x1d, 0xcf, 0xb9, 0xf2, 0x5e, 0x99, 0x7d,
127f540a430SEd Maste 	0x6d, 0x73, 0xd8, 0x36, 0xc1, 0x4a, 0x90, 0x05,
128f540a430SEd Maste 	0x4d, 0x82, 0x57, 0xc1, 0xb6, 0x6a, 0xd1, 0x43,
129f540a430SEd Maste 	0x03, 0x85, 0xf8, 0x52, 0x4f, 0xd2, 0x27, 0x91,
130f540a430SEd Maste 	0x0b, 0xb5, 0x93, 0xa0, 0x68, 0xf8, 0x80, 0x1b,
131f540a430SEd Maste 	0xaa, 0x65, 0x97, 0x45, 0x11, 0x86, 0x34, 0xd6,
132f540a430SEd Maste 	0x67, 0xf8, 0xd5, 0x12, 0x79, 0x84, 0xee, 0x70,
133f540a430SEd Maste 	0x99, 0x00, 0x63, 0xa8, 0xb4, 0x43, 0x0b, 0x4c,
134f540a430SEd Maste 	0x57, 0x4a, 0xd6, 0x9b, 0x75, 0x63, 0x8a, 0x46,
135f540a430SEd Maste 	0x57, 0xdb, 0x14, 0xc8, 0x71, 0xd1, 0xb3, 0x07,
136f540a430SEd Maste 	0x68, 0x58, 0xbc, 0x55, 0x84, 0x80, 0x2a, 0xd2,
137f540a430SEd Maste 	0x36, 0x9f, 0xc1, 0x64, 0xa0, 0x11, 0x4b, 0xc9,
138f540a430SEd Maste 	0x32, 0x31, 0x3a, 0xd6, 0x87, 0x26, 0x1a, 0x3a,
139f540a430SEd Maste 	0x78, 0x3d, 0x89, 0xdb, 0x00, 0x28, 0x3b, 0xae,
140f540a430SEd Maste 	0x2b, 0x1b, 0x56, 0xe2, 0x8c, 0x4c, 0x63, 0xac,
141f540a430SEd Maste 	0x6e, 0x6c, 0xf7, 0xb5, 0x7d, 0x4d, 0x0b, 0x9f,
142f540a430SEd Maste 	0x06, 0xa0, 0x10, 0x35, 0x38, 0x20, 0x4d, 0xcc,
143f540a430SEd Maste 	0x07, 0xd7, 0x00, 0x4e, 0x86, 0xba, 0xfe, 0x8b,
144f540a430SEd Maste 	0xe4, 0x3f, 0x4a, 0xd6, 0xca, 0xbf, 0x67, 0x40,
145f540a430SEd Maste 	0x1a, 0xa4, 0xda, 0x82, 0x52, 0x15, 0xb8, 0x14,
146f540a430SEd Maste 	0x3a, 0x7c, 0xa9, 0x02, 0xc1, 0x01, 0x69, 0xc6,
147f540a430SEd Maste 	0x51, 0xd4, 0xbc, 0x1f, 0x95, 0xb2, 0xee, 0x1f,
148f540a430SEd Maste 	0xdd, 0xb5, 0x73, 0x16, 0x5e, 0x29, 0x3f, 0x47,
149f540a430SEd Maste 	0xac, 0x65, 0xfb, 0x63, 0x5c, 0xb9, 0xc8, 0x13,
150f540a430SEd Maste 	0x2d, 0xec, 0x85, 0xde, 0x71, 0x0d, 0x84, 0x93,
151f540a430SEd Maste 	0x74, 0x76, 0x91, 0xdd, 0x1d, 0x6d, 0x3d, 0xc7,
152f540a430SEd Maste 	0x36, 0x19, 0x19, 0x86, 0xde, 0x7c, 0xca, 0xd6,
153f540a430SEd Maste 	0xc6, 0x65, 0x7e, 0x4b, 0x24, 0x9c, 0xce, 0x92,
154f540a430SEd Maste 	0x6b, 0x1c, 0xe0, 0xa0, 0xa9, 0x6c, 0xc3, 0xed,
155f540a430SEd Maste 	0x4f, 0x2a, 0x54, 0x07, 0x00, 0x32, 0x5e, 0x1b,
156f540a430SEd Maste 	0x94, 0x37, 0xcd, 0xe2, 0x32, 0xa8, 0xd5, 0x2c,
157f540a430SEd Maste 	0xfb, 0x03, 0x9d, 0x79, 0xdf, 0x21, 0x43, 0x01,
158f540a430SEd Maste 	0x00, 0x01
159f540a430SEd Maste };
160f540a430SEd Maste 
1613e696dfbSEd Maste static const unsigned char authdata_tpm_es256[166] =  {
1623e696dfbSEd Maste 	0x58, 0xa4, 0x49, 0x96, 0x0d, 0xe5, 0x88, 0x0e,
1633e696dfbSEd Maste 	0x8c, 0x68, 0x74, 0x34, 0x17, 0x0f, 0x64, 0x76,
1643e696dfbSEd Maste 	0x60, 0x5b, 0x8f, 0xe4, 0xae, 0xb9, 0xa2, 0x86,
1653e696dfbSEd Maste 	0x32, 0xc7, 0x99, 0x5c, 0xf3, 0xba, 0x83, 0x1d,
1663e696dfbSEd Maste 	0x97, 0x63, 0x45, 0x00, 0x00, 0x00, 0x00, 0x08,
1673e696dfbSEd Maste 	0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81, 0xb6,
1683e696dfbSEd Maste 	0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96, 0x00,
1693e696dfbSEd Maste 	0x20, 0xa8, 0xdf, 0x03, 0xf7, 0xbf, 0x39, 0x51,
1703e696dfbSEd Maste 	0x94, 0x95, 0x8f, 0xa4, 0x84, 0x97, 0x30, 0xbc,
1713e696dfbSEd Maste 	0x3c, 0x7e, 0x1c, 0x99, 0x91, 0x4d, 0xae, 0x6d,
1723e696dfbSEd Maste 	0xfb, 0xdf, 0x53, 0xb5, 0xb6, 0x1f, 0x3a, 0x4e,
1733e696dfbSEd Maste 	0x6a, 0xa5, 0x01, 0x02, 0x03, 0x26, 0x20, 0x01,
1743e696dfbSEd Maste 	0x21, 0x58, 0x20, 0xfb, 0xd6, 0xba, 0x74, 0xe6,
1753e696dfbSEd Maste 	0x6e, 0x5c, 0x87, 0xef, 0x89, 0xa2, 0xe8, 0x3d,
1763e696dfbSEd Maste 	0x0b, 0xe9, 0x69, 0x2c, 0x07, 0x07, 0x7a, 0x8a,
1773e696dfbSEd Maste 	0x1e, 0xce, 0x12, 0xea, 0x3b, 0xb3, 0xf1, 0xf3,
1783e696dfbSEd Maste 	0xd9, 0xc3, 0xe6, 0x22, 0x58, 0x20, 0x3c, 0x68,
1793e696dfbSEd Maste 	0x51, 0x94, 0x54, 0x8d, 0xeb, 0x9f, 0xb2, 0x2c,
1803e696dfbSEd Maste 	0x66, 0x75, 0xb6, 0xb7, 0x55, 0x22, 0x0d, 0x87,
1813e696dfbSEd Maste 	0x59, 0xc4, 0x39, 0x91, 0x62, 0x17, 0xc2, 0xc3,
1823e696dfbSEd Maste 	0x53, 0xa5, 0x26, 0x97, 0x4f, 0x2d
1833e696dfbSEd Maste };
1843e696dfbSEd Maste 
1850afa8e06SEd Maste static const unsigned char x509[742] = {
1860afa8e06SEd Maste 	0x30, 0x82, 0x02, 0xe2, 0x30, 0x81, 0xcb, 0x02,
1870afa8e06SEd Maste 	0x01, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
1880afa8e06SEd Maste 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
1890afa8e06SEd Maste 	0x00, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06,
1900afa8e06SEd Maste 	0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x59, 0x75,
1910afa8e06SEd Maste 	0x62, 0x69, 0x63, 0x6f, 0x20, 0x55, 0x32, 0x46,
1920afa8e06SEd Maste 	0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41,
1930afa8e06SEd Maste 	0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x35,
1940afa8e06SEd Maste 	0x31, 0x35, 0x31, 0x32, 0x35, 0x38, 0x35, 0x34,
1950afa8e06SEd Maste 	0x5a, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31,
1960afa8e06SEd Maste 	0x34, 0x31, 0x32, 0x35, 0x38, 0x35, 0x34, 0x5a,
1970afa8e06SEd Maste 	0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03,
1980afa8e06SEd Maste 	0x55, 0x04, 0x03, 0x13, 0x12, 0x59, 0x75, 0x62,
1990afa8e06SEd Maste 	0x69, 0x63, 0x6f, 0x20, 0x55, 0x32, 0x46, 0x20,
2000afa8e06SEd Maste 	0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x45, 0x30,
2010afa8e06SEd Maste 	0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48,
2020afa8e06SEd Maste 	0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
2030afa8e06SEd Maste 	0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42,
2040afa8e06SEd Maste 	0x00, 0x04, 0xdb, 0x0a, 0xdb, 0xf5, 0x21, 0xc7,
2050afa8e06SEd Maste 	0x5c, 0xce, 0x63, 0xdc, 0xa6, 0xe1, 0xe8, 0x25,
2060afa8e06SEd Maste 	0x06, 0x0d, 0x94, 0xe6, 0x27, 0x54, 0x19, 0x4f,
2070afa8e06SEd Maste 	0x9d, 0x24, 0xaf, 0x26, 0x1a, 0xbe, 0xad, 0x99,
2080afa8e06SEd Maste 	0x44, 0x1f, 0x95, 0xa3, 0x71, 0x91, 0x0a, 0x3a,
2090afa8e06SEd Maste 	0x20, 0xe7, 0x3e, 0x91, 0x5e, 0x13, 0xe8, 0xbe,
2100afa8e06SEd Maste 	0x38, 0x05, 0x7a, 0xd5, 0x7a, 0xa3, 0x7e, 0x76,
2110afa8e06SEd Maste 	0x90, 0x8f, 0xaf, 0xe2, 0x8a, 0x94, 0xb6, 0x30,
2120afa8e06SEd Maste 	0xeb, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
2130afa8e06SEd Maste 	0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
2140afa8e06SEd Maste 	0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x95, 0x40,
2150afa8e06SEd Maste 	0x6b, 0x50, 0x61, 0x7d, 0xad, 0x84, 0xa3, 0xb4,
2160afa8e06SEd Maste 	0xeb, 0x88, 0x0f, 0xe3, 0x30, 0x0f, 0x2d, 0xa2,
2170afa8e06SEd Maste 	0x0a, 0x00, 0xd9, 0x25, 0x04, 0xee, 0x72, 0xfa,
2180afa8e06SEd Maste 	0x67, 0xdf, 0x58, 0x51, 0x0f, 0x0b, 0x47, 0x02,
2190afa8e06SEd Maste 	0x9c, 0x3e, 0x41, 0x29, 0x4a, 0x93, 0xac, 0x29,
2200afa8e06SEd Maste 	0x85, 0x89, 0x2d, 0xa4, 0x7a, 0x81, 0x32, 0x28,
2210afa8e06SEd Maste 	0x57, 0x71, 0x01, 0xef, 0xa8, 0x42, 0x88, 0x16,
2220afa8e06SEd Maste 	0x96, 0x37, 0x91, 0xd5, 0xdf, 0xe0, 0x8f, 0xc9,
2230afa8e06SEd Maste 	0x3c, 0x8d, 0xb0, 0xcd, 0x89, 0x70, 0x82, 0xec,
2240afa8e06SEd Maste 	0x79, 0xd3, 0xc6, 0x78, 0x73, 0x29, 0x32, 0xe5,
2250afa8e06SEd Maste 	0xab, 0x6c, 0xbd, 0x56, 0x9f, 0xd5, 0x45, 0x91,
2260afa8e06SEd Maste 	0xce, 0xc1, 0xdd, 0x8d, 0x64, 0xdc, 0xe9, 0x9c,
2270afa8e06SEd Maste 	0x1f, 0x5e, 0x3c, 0xd2, 0xaf, 0x51, 0xa5, 0x82,
2280afa8e06SEd Maste 	0x18, 0xaf, 0xe0, 0x37, 0xe7, 0x32, 0x9e, 0x76,
2290afa8e06SEd Maste 	0x05, 0x77, 0x02, 0x7b, 0xe6, 0x24, 0xa0, 0x31,
2300afa8e06SEd Maste 	0x56, 0x1b, 0xfd, 0x19, 0xc5, 0x71, 0xd3, 0xf0,
2310afa8e06SEd Maste 	0x9e, 0xc0, 0x73, 0x05, 0x4e, 0xbc, 0x85, 0xb8,
2320afa8e06SEd Maste 	0x53, 0x9e, 0xef, 0xc5, 0xbc, 0x9c, 0x56, 0xa3,
2330afa8e06SEd Maste 	0xba, 0xd9, 0x27, 0x6a, 0xbb, 0xa9, 0x7a, 0x40,
2340afa8e06SEd Maste 	0xd7, 0x47, 0x8b, 0x55, 0x72, 0x6b, 0xe3, 0xfe,
2350afa8e06SEd Maste 	0x28, 0x49, 0x71, 0x24, 0xf4, 0x8f, 0xf4, 0x20,
2360afa8e06SEd Maste 	0x81, 0xea, 0x38, 0xff, 0x7c, 0x0a, 0x4f, 0xdf,
2370afa8e06SEd Maste 	0x02, 0x82, 0x39, 0x81, 0x82, 0x3b, 0xca, 0x09,
2380afa8e06SEd Maste 	0xdd, 0xca, 0xaa, 0x0f, 0x27, 0xf5, 0xa4, 0x83,
2390afa8e06SEd Maste 	0x55, 0x6c, 0x9a, 0x39, 0x9b, 0x15, 0x3a, 0x16,
2400afa8e06SEd Maste 	0x63, 0xdc, 0x5b, 0xf9, 0xac, 0x5b, 0xbc, 0xf7,
2410afa8e06SEd Maste 	0x9f, 0xbe, 0x0f, 0x8a, 0xa2, 0x3c, 0x31, 0x13,
2420afa8e06SEd Maste 	0xa3, 0x32, 0x48, 0xca, 0x58, 0x87, 0xf8, 0x7b,
2430afa8e06SEd Maste 	0xa0, 0xa1, 0x0a, 0x6a, 0x60, 0x96, 0x93, 0x5f,
2440afa8e06SEd Maste 	0x5d, 0x26, 0x9e, 0x63, 0x1d, 0x09, 0xae, 0x9a,
2450afa8e06SEd Maste 	0x41, 0xe5, 0xbd, 0x08, 0x47, 0xfe, 0xe5, 0x09,
2460afa8e06SEd Maste 	0x9b, 0x20, 0xfd, 0x12, 0xe2, 0xe6, 0x40, 0x7f,
2470afa8e06SEd Maste 	0xba, 0x4a, 0x61, 0x33, 0x66, 0x0d, 0x0e, 0x73,
2480afa8e06SEd Maste 	0xdb, 0xb0, 0xd5, 0xa2, 0x9a, 0x9a, 0x17, 0x0d,
2490afa8e06SEd Maste 	0x34, 0x30, 0x85, 0x6a, 0x42, 0x46, 0x9e, 0xff,
2500afa8e06SEd Maste 	0x34, 0x8f, 0x5f, 0x87, 0x6c, 0x35, 0xe7, 0xa8,
2510afa8e06SEd Maste 	0x4d, 0x35, 0xeb, 0xc1, 0x41, 0xaa, 0x8a, 0xd2,
2520afa8e06SEd Maste 	0xda, 0x19, 0xaa, 0x79, 0xa2, 0x5f, 0x35, 0x2c,
2530afa8e06SEd Maste 	0xa0, 0xfd, 0x25, 0xd3, 0xf7, 0x9d, 0x25, 0x18,
2540afa8e06SEd Maste 	0x2d, 0xfa, 0xb4, 0xbc, 0xbb, 0x07, 0x34, 0x3c,
2550afa8e06SEd Maste 	0x8d, 0x81, 0xbd, 0xf4, 0xe9, 0x37, 0xdb, 0x39,
2560afa8e06SEd Maste 	0xe9, 0xd1, 0x45, 0x5b, 0x20, 0x41, 0x2f, 0x2d,
2570afa8e06SEd Maste 	0x27, 0x22, 0xdc, 0x92, 0x74, 0x8a, 0x92, 0xd5,
2580afa8e06SEd Maste 	0x83, 0xfd, 0x09, 0xfb, 0x13, 0x9b, 0xe3, 0x39,
2590afa8e06SEd Maste 	0x7a, 0x6b, 0x5c, 0xfa, 0xe6, 0x76, 0x9e, 0xe0,
2600afa8e06SEd Maste 	0xe4, 0xe3, 0xef, 0xad, 0xbc, 0xfd, 0x42, 0x45,
2610afa8e06SEd Maste 	0x9a, 0xd4, 0x94, 0xd1, 0x7e, 0x8d, 0xa7, 0xd8,
2620afa8e06SEd Maste 	0x05, 0xd5, 0xd3, 0x62, 0xcf, 0x15, 0xcf, 0x94,
2630afa8e06SEd Maste 	0x7d, 0x1f, 0x5b, 0x58, 0x20, 0x44, 0x20, 0x90,
2640afa8e06SEd Maste 	0x71, 0xbe, 0x66, 0xe9, 0x9a, 0xab, 0x74, 0x32,
2650afa8e06SEd Maste 	0x70, 0x53, 0x1d, 0x69, 0xed, 0x87, 0x66, 0xf4,
2660afa8e06SEd Maste 	0x09, 0x4f, 0xca, 0x25, 0x30, 0xc2, 0x63, 0x79,
2670afa8e06SEd Maste 	0x00, 0x3c, 0xb1, 0x9b, 0x39, 0x3f, 0x00, 0xe0,
2680afa8e06SEd Maste 	0xa8, 0x88, 0xef, 0x7a, 0x51, 0x5b, 0xe7, 0xbd,
2690afa8e06SEd Maste 	0x49, 0x64, 0xda, 0x41, 0x7b, 0x24, 0xc3, 0x71,
2700afa8e06SEd Maste 	0x22, 0xfd, 0xd1, 0xd1, 0x20, 0xb3, 0x3f, 0x97,
2710afa8e06SEd Maste 	0xd3, 0x97, 0xb2, 0xaa, 0x18, 0x1c, 0x9e, 0x03,
2720afa8e06SEd Maste 	0x77, 0x7b, 0x5b, 0x7e, 0xf9, 0xa3, 0xa0, 0xd6,
2730afa8e06SEd Maste 	0x20, 0x81, 0x2c, 0x38, 0x8f, 0x9d, 0x25, 0xde,
2740afa8e06SEd Maste 	0xe9, 0xc8, 0xf5, 0xdd, 0x6a, 0x47, 0x9c, 0x65,
2750afa8e06SEd Maste 	0x04, 0x5a, 0x56, 0xe6, 0xc2, 0xeb, 0xf2, 0x02,
2760afa8e06SEd Maste 	0x97, 0xe1, 0xb9, 0xd8, 0xe1, 0x24, 0x76, 0x9f,
2770afa8e06SEd Maste 	0x23, 0x62, 0x39, 0x03, 0x4b, 0xc8, 0xf7, 0x34,
2780afa8e06SEd Maste 	0x07, 0x49, 0xd6, 0xe7, 0x4d, 0x9a,
2790afa8e06SEd Maste };
2800afa8e06SEd Maste 
2810afa8e06SEd Maste const unsigned char sig[70] = {
2820afa8e06SEd Maste 	0x30, 0x44, 0x02, 0x20, 0x54, 0x92, 0x28, 0x3b,
2830afa8e06SEd Maste 	0x83, 0x33, 0x47, 0x56, 0x68, 0x79, 0xb2, 0x0c,
2840afa8e06SEd Maste 	0x84, 0x80, 0xcc, 0x67, 0x27, 0x8b, 0xfa, 0x48,
2850afa8e06SEd Maste 	0x43, 0x0d, 0x3c, 0xb4, 0x02, 0x36, 0x87, 0x97,
2860afa8e06SEd Maste 	0x3e, 0xdf, 0x2f, 0x65, 0x02, 0x20, 0x1b, 0x56,
2870afa8e06SEd Maste 	0x17, 0x06, 0xe2, 0x26, 0x0f, 0x6a, 0xe9, 0xa9,
2880afa8e06SEd Maste 	0x70, 0x99, 0x62, 0xeb, 0x3a, 0x04, 0x1a, 0xc4,
2890afa8e06SEd Maste 	0xa7, 0x03, 0x28, 0x56, 0x7c, 0xed, 0x47, 0x08,
2900afa8e06SEd Maste 	0x68, 0x73, 0x6a, 0xb6, 0x89, 0x0d,
2910afa8e06SEd Maste };
2920afa8e06SEd Maste 
2930afa8e06SEd Maste const unsigned char pubkey[64] = {
2940afa8e06SEd Maste 	0x17, 0x5b, 0x27, 0xa6, 0x56, 0xb2, 0x26, 0x0c,
2950afa8e06SEd Maste 	0x26, 0x0c, 0x55, 0x42, 0x78, 0x17, 0x5d, 0x4c,
2960afa8e06SEd Maste 	0xf8, 0xa2, 0xfd, 0x1b, 0xb9, 0x54, 0xdf, 0xd5,
2970afa8e06SEd Maste 	0xeb, 0xbf, 0x22, 0x64, 0xf5, 0x21, 0x9a, 0xc6,
2980afa8e06SEd Maste 	0x87, 0x5f, 0x90, 0xe6, 0xfd, 0x71, 0x27, 0x9f,
2990afa8e06SEd Maste 	0xeb, 0xe3, 0x03, 0x44, 0xbc, 0x8d, 0x49, 0xc6,
3000afa8e06SEd Maste 	0x1c, 0x31, 0x3b, 0x72, 0xae, 0xd4, 0x53, 0xb1,
3010afa8e06SEd Maste 	0xfe, 0x5d, 0xe1, 0x30, 0xfc, 0x2b, 0x1e, 0xd2,
3020afa8e06SEd Maste };
3030afa8e06SEd Maste 
3043e696dfbSEd Maste const unsigned char pubkey_tpm_rs256[259] = {
305f540a430SEd Maste 	0xc5, 0xb6, 0x9c, 0x06, 0x1d, 0xcf, 0xb9, 0xf2,
306f540a430SEd Maste 	0x5e, 0x99, 0x7d, 0x6d, 0x73, 0xd8, 0x36, 0xc1,
307f540a430SEd Maste 	0x4a, 0x90, 0x05, 0x4d, 0x82, 0x57, 0xc1, 0xb6,
308f540a430SEd Maste 	0x6a, 0xd1, 0x43, 0x03, 0x85, 0xf8, 0x52, 0x4f,
309f540a430SEd Maste 	0xd2, 0x27, 0x91, 0x0b, 0xb5, 0x93, 0xa0, 0x68,
310f540a430SEd Maste 	0xf8, 0x80, 0x1b, 0xaa, 0x65, 0x97, 0x45, 0x11,
311f540a430SEd Maste 	0x86, 0x34, 0xd6, 0x67, 0xf8, 0xd5, 0x12, 0x79,
312f540a430SEd Maste 	0x84, 0xee, 0x70, 0x99, 0x00, 0x63, 0xa8, 0xb4,
313f540a430SEd Maste 	0x43, 0x0b, 0x4c, 0x57, 0x4a, 0xd6, 0x9b, 0x75,
314f540a430SEd Maste 	0x63, 0x8a, 0x46, 0x57, 0xdb, 0x14, 0xc8, 0x71,
315f540a430SEd Maste 	0xd1, 0xb3, 0x07, 0x68, 0x58, 0xbc, 0x55, 0x84,
316f540a430SEd Maste 	0x80, 0x2a, 0xd2, 0x36, 0x9f, 0xc1, 0x64, 0xa0,
317f540a430SEd Maste 	0x11, 0x4b, 0xc9, 0x32, 0x31, 0x3a, 0xd6, 0x87,
318f540a430SEd Maste 	0x26, 0x1a, 0x3a, 0x78, 0x3d, 0x89, 0xdb, 0x00,
319f540a430SEd Maste 	0x28, 0x3b, 0xae, 0x2b, 0x1b, 0x56, 0xe2, 0x8c,
320f540a430SEd Maste 	0x4c, 0x63, 0xac, 0x6e, 0x6c, 0xf7, 0xb5, 0x7d,
321f540a430SEd Maste 	0x4d, 0x0b, 0x9f, 0x06, 0xa0, 0x10, 0x35, 0x38,
322f540a430SEd Maste 	0x20, 0x4d, 0xcc, 0x07, 0xd7, 0x00, 0x4e, 0x86,
323f540a430SEd Maste 	0xba, 0xfe, 0x8b, 0xe4, 0x3f, 0x4a, 0xd6, 0xca,
324f540a430SEd Maste 	0xbf, 0x67, 0x40, 0x1a, 0xa4, 0xda, 0x82, 0x52,
325f540a430SEd Maste 	0x15, 0xb8, 0x14, 0x3a, 0x7c, 0xa9, 0x02, 0xc1,
326f540a430SEd Maste 	0x01, 0x69, 0xc6, 0x51, 0xd4, 0xbc, 0x1f, 0x95,
327f540a430SEd Maste 	0xb2, 0xee, 0x1f, 0xdd, 0xb5, 0x73, 0x16, 0x5e,
328f540a430SEd Maste 	0x29, 0x3f, 0x47, 0xac, 0x65, 0xfb, 0x63, 0x5c,
329f540a430SEd Maste 	0xb9, 0xc8, 0x13, 0x2d, 0xec, 0x85, 0xde, 0x71,
330f540a430SEd Maste 	0x0d, 0x84, 0x93, 0x74, 0x76, 0x91, 0xdd, 0x1d,
331f540a430SEd Maste 	0x6d, 0x3d, 0xc7, 0x36, 0x19, 0x19, 0x86, 0xde,
332f540a430SEd Maste 	0x7c, 0xca, 0xd6, 0xc6, 0x65, 0x7e, 0x4b, 0x24,
333f540a430SEd Maste 	0x9c, 0xce, 0x92, 0x6b, 0x1c, 0xe0, 0xa0, 0xa9,
334f540a430SEd Maste 	0x6c, 0xc3, 0xed, 0x4f, 0x2a, 0x54, 0x07, 0x00,
335f540a430SEd Maste 	0x32, 0x5e, 0x1b, 0x94, 0x37, 0xcd, 0xe2, 0x32,
336f540a430SEd Maste 	0xa8, 0xd5, 0x2c, 0xfb, 0x03, 0x9d, 0x79, 0xdf,
337f540a430SEd Maste 	0x01, 0x00, 0x01,
338f540a430SEd Maste };
339f540a430SEd Maste 
3403e696dfbSEd Maste const unsigned char pubkey_tpm_es256[64] = {
3413e696dfbSEd Maste 	0xfb, 0xd6, 0xba, 0x74, 0xe6, 0x6e, 0x5c, 0x87,
3423e696dfbSEd Maste 	0xef, 0x89, 0xa2, 0xe8, 0x3d, 0x0b, 0xe9, 0x69,
3433e696dfbSEd Maste 	0x2c, 0x07, 0x07, 0x7a, 0x8a, 0x1e, 0xce, 0x12,
3443e696dfbSEd Maste 	0xea, 0x3b, 0xb3, 0xf1, 0xf3, 0xd9, 0xc3, 0xe6,
3453e696dfbSEd Maste 	0x3c, 0x68, 0x51, 0x94, 0x54, 0x8d, 0xeb, 0x9f,
3463e696dfbSEd Maste 	0xb2, 0x2c, 0x66, 0x75, 0xb6, 0xb7, 0x55, 0x22,
3473e696dfbSEd Maste 	0x0d, 0x87, 0x59, 0xc4, 0x39, 0x91, 0x62, 0x17,
3483e696dfbSEd Maste 	0xc2, 0xc3, 0x53, 0xa5, 0x26, 0x97, 0x4f, 0x2d
3493e696dfbSEd Maste };
3503e696dfbSEd Maste 
3510afa8e06SEd Maste const unsigned char id[64] = {
3520afa8e06SEd Maste 	0x53, 0xfb, 0xdf, 0xaa, 0xce, 0x63, 0xde, 0xc5,
3530afa8e06SEd Maste 	0xfe, 0x47, 0xe6, 0x52, 0xeb, 0xf3, 0x5d, 0x53,
3540afa8e06SEd Maste 	0xa8, 0xbf, 0x9d, 0xd6, 0x09, 0x6b, 0x5e, 0x7f,
3550afa8e06SEd Maste 	0xe0, 0x0d, 0x51, 0x30, 0x85, 0x6a, 0xda, 0x68,
3560afa8e06SEd Maste 	0x70, 0x85, 0xb0, 0xdb, 0x08, 0x0b, 0x83, 0x2c,
3570afa8e06SEd Maste 	0xef, 0x44, 0xe2, 0x36, 0x88, 0xee, 0x76, 0x90,
3580afa8e06SEd Maste 	0x6e, 0x7b, 0x50, 0x3e, 0x9a, 0xa0, 0xd6, 0x3c,
3590afa8e06SEd Maste 	0x34, 0xe3, 0x83, 0xe7, 0xd1, 0xbd, 0x9f, 0x25,
3600afa8e06SEd Maste };
3610afa8e06SEd Maste 
3623e696dfbSEd Maste const unsigned char id_tpm_rs256[32] = {
363f540a430SEd Maste 	0x89, 0x99, 0x6d, 0x5a, 0x00, 0x29, 0xe5, 0x3e,
364f540a430SEd Maste 	0x6a, 0x1c, 0x72, 0x6d, 0x71, 0x4a, 0x4f, 0x03,
365f540a430SEd Maste 	0x9b, 0x68, 0x17, 0xdb, 0x29, 0x1a, 0x6b, 0x02,
366f540a430SEd Maste 	0x6c, 0x26, 0xf9, 0xbd, 0xc3, 0x0e, 0x38, 0x1a
367f540a430SEd Maste };
368f540a430SEd Maste 
3693e696dfbSEd Maste const unsigned char id_tpm_es256[32] = {
3703e696dfbSEd Maste 	0xa8, 0xdf, 0x03, 0xf7, 0xbf, 0x39, 0x51, 0x94,
3713e696dfbSEd Maste 	0x95, 0x8f, 0xa4, 0x84, 0x97, 0x30, 0xbc, 0x3c,
3723e696dfbSEd Maste 	0x7e, 0x1c, 0x99, 0x91, 0x4d, 0xae, 0x6d, 0xfb,
3733e696dfbSEd Maste 	0xdf, 0x53, 0xb5, 0xb6, 0x1f, 0x3a, 0x4e, 0x6a
3743e696dfbSEd Maste };
3753e696dfbSEd Maste 
3763e696dfbSEd Maste const unsigned char attstmt_tpm_rs256[4034] = {
377f540a430SEd Maste 	0xa6, 0x63, 0x61, 0x6c, 0x67, 0x39, 0xff, 0xfe,
378f540a430SEd Maste 	0x63, 0x73, 0x69, 0x67, 0x59, 0x01, 0x00, 0x1c,
379f540a430SEd Maste 	0x09, 0x0d, 0x35, 0x97, 0x22, 0xfc, 0xfe, 0xc0,
380f540a430SEd Maste 	0x58, 0x49, 0x9e, 0xd4, 0x7e, 0x6a, 0x7d, 0xdb,
381f540a430SEd Maste 	0x6d, 0x20, 0x95, 0x5c, 0x0b, 0xd0, 0xd5, 0x72,
382f540a430SEd Maste 	0x4f, 0x15, 0x22, 0x38, 0x97, 0xb2, 0x4b, 0xd0,
383f540a430SEd Maste 	0xef, 0x31, 0x7c, 0xf2, 0x42, 0x19, 0x41, 0xa1,
384f540a430SEd Maste 	0xe2, 0xc5, 0xca, 0xc6, 0x74, 0x95, 0xcf, 0xf9,
385f540a430SEd Maste 	0x41, 0x75, 0x0b, 0x56, 0x39, 0x82, 0x78, 0xf6,
386f540a430SEd Maste 	0x59, 0xf1, 0x09, 0x96, 0x9e, 0x38, 0x7f, 0x14,
387f540a430SEd Maste 	0x9b, 0xf5, 0x36, 0xbb, 0x92, 0x32, 0xc4, 0x64,
388f540a430SEd Maste 	0xe8, 0xff, 0xb4, 0xc7, 0xcf, 0xcd, 0x17, 0x48,
389f540a430SEd Maste 	0x0f, 0x83, 0xd9, 0x44, 0x03, 0x35, 0x26, 0xad,
390f540a430SEd Maste 	0x01, 0xb7, 0x57, 0x06, 0xb3, 0x9c, 0xa0, 0x6e,
391f540a430SEd Maste 	0x2f, 0x58, 0xcb, 0x5c, 0xaa, 0x7c, 0xea, 0x7e,
392f540a430SEd Maste 	0x3f, 0xbc, 0x76, 0xc9, 0x0e, 0x52, 0x39, 0x81,
393f540a430SEd Maste 	0xa9, 0x9e, 0x37, 0x14, 0x1f, 0x50, 0x6a, 0x4f,
394f540a430SEd Maste 	0xd7, 0xfc, 0xd4, 0xfa, 0xf2, 0x18, 0x60, 0xd5,
395f540a430SEd Maste 	0xc3, 0x57, 0x7d, 0x6d, 0x05, 0x28, 0x25, 0xc3,
396f540a430SEd Maste 	0xde, 0x86, 0x85, 0x06, 0x71, 0xfb, 0x84, 0xa2,
397f540a430SEd Maste 	0x07, 0xb6, 0x77, 0xc9, 0x68, 0x41, 0x53, 0x32,
398f540a430SEd Maste 	0x4c, 0xa8, 0x4b, 0xf7, 0x08, 0x84, 0x62, 0x6c,
399f540a430SEd Maste 	0x8a, 0xb6, 0xcf, 0xc1, 0xde, 0x6b, 0x61, 0xc8,
400f540a430SEd Maste 	0xdd, 0xc0, 0x13, 0x70, 0x22, 0x28, 0xe1, 0x0f,
401f540a430SEd Maste 	0x46, 0x02, 0xc6, 0xb1, 0xfa, 0x30, 0xcb, 0xec,
402f540a430SEd Maste 	0xd1, 0x82, 0xfa, 0x51, 0xcb, 0x71, 0x5e, 0x1f,
403f540a430SEd Maste 	0x1b, 0x5f, 0xe0, 0xb0, 0x02, 0x8a, 0x7c, 0x78,
404f540a430SEd Maste 	0xd1, 0xb7, 0x4d, 0x56, 0xb0, 0x92, 0x3e, 0xda,
405f540a430SEd Maste 	0xc7, 0xb1, 0x74, 0xcf, 0x6a, 0x40, 0xeb, 0x98,
406f540a430SEd Maste 	0x1c, 0x2e, 0xf2, 0x86, 0x76, 0xf8, 0x2e, 0x6a,
407f540a430SEd Maste 	0x9f, 0x77, 0x51, 0x64, 0xce, 0xdc, 0x12, 0x85,
408f540a430SEd Maste 	0x84, 0x6b, 0x01, 0xc8, 0xeb, 0xbc, 0x57, 0x6c,
409f540a430SEd Maste 	0x32, 0x26, 0xcb, 0xb2, 0x84, 0x02, 0x2a, 0x33,
410f540a430SEd Maste 	0x15, 0xd9, 0xe3, 0x15, 0xfc, 0x3a, 0x24, 0x63,
411f540a430SEd Maste 	0x76, 0x65, 0x72, 0x63, 0x32, 0x2e, 0x30, 0x63,
412f540a430SEd Maste 	0x78, 0x35, 0x63, 0x82, 0x59, 0x05, 0xc4, 0x30,
413f540a430SEd Maste 	0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8, 0xa0,
414f540a430SEd Maste 	0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x78, 0xd9,
415f540a430SEd Maste 	0xa8, 0xb2, 0x64, 0xf9, 0x4d, 0x28, 0x82, 0xc0,
416f540a430SEd Maste 	0xd3, 0x1b, 0x40, 0x3c, 0xc8, 0xd9, 0x30, 0x0d,
417f540a430SEd Maste 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
418f540a430SEd Maste 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41, 0x31,
419f540a430SEd Maste 	0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03,
420f540a430SEd Maste 	0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53, 0x54,
421f540a430SEd Maste 	0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44, 0x2d,
422f540a430SEd Maste 	0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34, 0x41,
423f540a430SEd Maste 	0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37, 0x41,
424f540a430SEd Maste 	0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30, 0x30,
425f540a430SEd Maste 	0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31, 0x41,
426f540a430SEd Maste 	0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36, 0x30,
427f540a430SEd Maste 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x37,
428f540a430SEd Maste 	0x31, 0x35, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33,
429f540a430SEd Maste 	0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x33, 0x32,
430f540a430SEd Maste 	0x31, 0x32, 0x30, 0x32, 0x39, 0x31, 0x35, 0x5a,
431f540a430SEd Maste 	0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
432f540a430SEd Maste 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
433f540a430SEd Maste 	0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
434f540a430SEd Maste 	0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
435f540a430SEd Maste 	0x01, 0x01, 0x00, 0xca, 0xbe, 0x77, 0x9f, 0x45,
436f540a430SEd Maste 	0x97, 0x17, 0x8d, 0x01, 0xe1, 0x18, 0xcc, 0xf0,
437f540a430SEd Maste 	0xb5, 0xed, 0x9a, 0xb7, 0x36, 0xac, 0x05, 0x26,
438f540a430SEd Maste 	0xbe, 0x35, 0xd9, 0x5c, 0x00, 0x5c, 0x5d, 0x8b,
439f540a430SEd Maste 	0x6f, 0x2a, 0xb8, 0xf6, 0x02, 0x4f, 0x33, 0xfe,
440f540a430SEd Maste 	0x84, 0x45, 0x4c, 0x4f, 0x7a, 0xdb, 0xa9, 0x6a,
441f540a430SEd Maste 	0x62, 0x0f, 0x19, 0x35, 0x5d, 0xd2, 0x34, 0x1a,
442f540a430SEd Maste 	0x9d, 0x73, 0x55, 0xe5, 0x3e, 0x04, 0xa2, 0xd6,
443f540a430SEd Maste 	0xbe, 0xe7, 0x5a, 0xb9, 0x16, 0x6c, 0x55, 0x18,
444f540a430SEd Maste 	0xa8, 0x4b, 0xb2, 0x37, 0xb9, 0xa3, 0x87, 0xfc,
445f540a430SEd Maste 	0x76, 0xa8, 0x55, 0xc9, 0xe7, 0x30, 0xe5, 0x0e,
446f540a430SEd Maste 	0x3c, 0x7b, 0x74, 0xd2, 0x1e, 0xa8, 0x05, 0xd5,
447f540a430SEd Maste 	0xe2, 0xe3, 0xcb, 0xaf, 0x63, 0x33, 0x12, 0xaa,
448f540a430SEd Maste 	0xfd, 0x31, 0x32, 0x71, 0x4f, 0x41, 0x96, 0x05,
449f540a430SEd Maste 	0xb5, 0x69, 0x73, 0x45, 0xbe, 0x6f, 0x90, 0xd9,
450f540a430SEd Maste 	0x10, 0x36, 0xaf, 0x7a, 0x1c, 0xf1, 0x6d, 0x14,
451f540a430SEd Maste 	0xb0, 0x1e, 0xbb, 0xae, 0x1c, 0x35, 0xec, 0x1c,
452f540a430SEd Maste 	0xb5, 0x0e, 0xf6, 0x33, 0x98, 0x13, 0x4e, 0x44,
453f540a430SEd Maste 	0x7b, 0x5c, 0x97, 0x47, 0xed, 0x4f, 0xfe, 0xbd,
454f540a430SEd Maste 	0x08, 0xd2, 0xa9, 0xc6, 0xbe, 0x8c, 0x04, 0x9e,
455f540a430SEd Maste 	0xdc, 0x3d, 0xbe, 0x98, 0xe9, 0x2a, 0xb1, 0xf4,
456f540a430SEd Maste 	0xfa, 0x45, 0xf9, 0xc8, 0x9a, 0x55, 0x85, 0x26,
457f540a430SEd Maste 	0xfc, 0x5f, 0xad, 0x00, 0x8b, 0xc8, 0x41, 0xf2,
458f540a430SEd Maste 	0x86, 0x4e, 0xba, 0x55, 0x1c, 0xb2, 0x89, 0xe8,
459f540a430SEd Maste 	0x85, 0x6e, 0x1e, 0x02, 0x9f, 0x55, 0x70, 0xbe,
460f540a430SEd Maste 	0xfd, 0xe7, 0x9f, 0xba, 0x59, 0xa0, 0x2e, 0x9a,
461f540a430SEd Maste 	0x74, 0x11, 0xe7, 0xad, 0xa9, 0xc7, 0x7b, 0x58,
462f540a430SEd Maste 	0xc4, 0x16, 0xd3, 0x35, 0xcb, 0x61, 0x00, 0xec,
463f540a430SEd Maste 	0x36, 0x4a, 0xa3, 0x51, 0xa3, 0xdd, 0x61, 0xb6,
464f540a430SEd Maste 	0xd6, 0x29, 0xcb, 0x76, 0xe1, 0xab, 0x51, 0x3a,
465f540a430SEd Maste 	0xe8, 0xbf, 0xdb, 0x09, 0x4a, 0x39, 0x96, 0xd9,
466f540a430SEd Maste 	0xac, 0x8f, 0x6c, 0x62, 0xe0, 0x03, 0x23, 0x24,
467f540a430SEd Maste 	0xbe, 0xd4, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01,
468f540a430SEd Maste 	0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01, 0xef,
469f540a430SEd Maste 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
470f540a430SEd Maste 	0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
471f540a430SEd Maste 	0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
472f540a430SEd Maste 	0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x6d,
473f540a430SEd Maste 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01, 0xff,
474f540a430SEd Maste 	0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06, 0x09,
475f540a430SEd Maste 	0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15,
476f540a430SEd Maste 	0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b,
477f540a430SEd Maste 	0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30,
478f540a430SEd Maste 	0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43, 0x00,
479f540a430SEd Maste 	0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20, 0x00,
480f540a430SEd Maste 	0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00,
481f540a430SEd Maste 	0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00,
482f540a430SEd Maste 	0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61, 0x00,
483f540a430SEd Maste 	0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00,
484f540a430SEd Maste 	0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00,
485f540a430SEd Maste 	0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00,
486f540a430SEd Maste 	0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10, 0x06,
487f540a430SEd Maste 	0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30, 0x07,
488f540a430SEd Maste 	0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30,
489f540a430SEd Maste 	0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01, 0x01,
490f540a430SEd Maste 	0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b, 0x30,
491f540a430SEd Maste 	0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05, 0x67,
492f540a430SEd Maste 	0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69, 0x64,
493f540a430SEd Maste 	0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44, 0x32,
494f540a430SEd Maste 	0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05, 0x67,
495f540a430SEd Maste 	0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53, 0x54,
496f540a430SEd Maste 	0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41, 0x48,
497f540a430SEd Maste 	0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
498f540a430SEd Maste 	0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b, 0x69,
499f540a430SEd Maste 	0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30, 0x30,
500f540a430SEd Maste 	0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
501f540a430SEd Maste 	0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb8,
502f540a430SEd Maste 	0x5f, 0xd5, 0x67, 0xca, 0x92, 0xc4, 0x0e, 0xcf,
503f540a430SEd Maste 	0x0c, 0xd8, 0x1f, 0x6d, 0x3f, 0x03, 0x55, 0x6f,
504f540a430SEd Maste 	0x38, 0xa6, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
505f540a430SEd Maste 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd4, 0x04,
506f540a430SEd Maste 	0x64, 0xfc, 0x6e, 0x50, 0x0a, 0x56, 0x48, 0x0f,
507f540a430SEd Maste 	0x05, 0xa9, 0x00, 0xb7, 0x1d, 0x5e, 0x57, 0x08,
508f540a430SEd Maste 	0xd5, 0xdc, 0x30, 0x81, 0xb2, 0x06, 0x08, 0x2b,
509f540a430SEd Maste 	0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
510f540a430SEd Maste 	0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81, 0x9f,
511f540a430SEd Maste 	0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
512f540a430SEd Maste 	0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74, 0x74,
513f540a430SEd Maste 	0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63, 0x73,
514f540a430SEd Maste 	0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73, 0x61,
515f540a430SEd Maste 	0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
516f540a430SEd Maste 	0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x63,
517f540a430SEd Maste 	0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64,
518f540a430SEd Maste 	0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
519f540a430SEd Maste 	0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d, 0x2d,
520f540a430SEd Maste 	0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31, 0x61,
521f540a430SEd Maste 	0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62, 0x35,
522f540a430SEd Maste 	0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30, 0x63,
523f540a430SEd Maste 	0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65, 0x37,
524f540a430SEd Maste 	0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34, 0x33,
525f540a430SEd Maste 	0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f, 0x61,
526f540a430SEd Maste 	0x62, 0x64, 0x36, 0x31, 0x35, 0x66, 0x32, 0x2d,
527f540a430SEd Maste 	0x31, 0x35, 0x38, 0x61, 0x2d, 0x34, 0x35, 0x38,
528f540a430SEd Maste 	0x65, 0x2d, 0x61, 0x31, 0x35, 0x35, 0x2d, 0x37,
529f540a430SEd Maste 	0x63, 0x34, 0x63, 0x38, 0x63, 0x62, 0x31, 0x33,
530f540a430SEd Maste 	0x63, 0x36, 0x35, 0x2e, 0x63, 0x65, 0x72, 0x30,
531f540a430SEd Maste 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
532f540a430SEd Maste 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
533f540a430SEd Maste 	0x02, 0x01, 0x00, 0xa2, 0x10, 0xc5, 0xbf, 0x41,
534f540a430SEd Maste 	0xa6, 0xba, 0x8c, 0x72, 0xca, 0x0f, 0x3e, 0x5e,
535f540a430SEd Maste 	0x7f, 0xe2, 0xcb, 0x60, 0xb8, 0x3f, 0xfb, 0xde,
536f540a430SEd Maste 	0x03, 0xe2, 0xfe, 0x20, 0x29, 0xdf, 0x11, 0xf5,
537f540a430SEd Maste 	0xb0, 0x50, 0x6d, 0x32, 0xe8, 0x1b, 0x05, 0xad,
538f540a430SEd Maste 	0x6b, 0x60, 0xb5, 0xed, 0xf3, 0xa4, 0x4a, 0xea,
539f540a430SEd Maste 	0x09, 0xe5, 0x65, 0x7e, 0xe0, 0xd5, 0x3a, 0x6a,
540f540a430SEd Maste 	0xdb, 0x64, 0xb7, 0x07, 0x8f, 0xa1, 0x63, 0xb3,
541f540a430SEd Maste 	0x89, 0x8a, 0xac, 0x49, 0x97, 0xa0, 0x9a, 0xa3,
542f540a430SEd Maste 	0xd3, 0x3a, 0xc2, 0x13, 0xb2, 0xbb, 0xab, 0x0d,
543f540a430SEd Maste 	0xf2, 0x35, 0xc5, 0x03, 0xde, 0x1c, 0xad, 0x6a,
544f540a430SEd Maste 	0x03, 0x0a, 0x4c, 0xe1, 0x37, 0x8f, 0xbc, 0x13,
545f540a430SEd Maste 	0xc0, 0x9a, 0x17, 0xd4, 0x2e, 0x36, 0x17, 0x51,
546f540a430SEd Maste 	0x12, 0xb0, 0x79, 0xbf, 0x9b, 0xb3, 0xb0, 0x74,
547f540a430SEd Maste 	0x25, 0x81, 0x7e, 0x21, 0x31, 0xb7, 0xc2, 0x5e,
548f540a430SEd Maste 	0xfb, 0x36, 0xab, 0xf3, 0x7a, 0x5f, 0xa4, 0x5e,
549f540a430SEd Maste 	0x8f, 0x0c, 0xbd, 0xcf, 0xf5, 0x50, 0xe7, 0x0c,
550f540a430SEd Maste 	0x51, 0x55, 0x48, 0xe6, 0x15, 0xb6, 0xd4, 0xaf,
551f540a430SEd Maste 	0x95, 0x72, 0x56, 0x94, 0xf7, 0x0e, 0xd6, 0x90,
552f540a430SEd Maste 	0xe3, 0xd3, 0x5d, 0xbd, 0x93, 0xa1, 0xbd, 0x6c,
553f540a430SEd Maste 	0xe4, 0xf2, 0x39, 0x4d, 0x54, 0x74, 0xcf, 0xf5,
554f540a430SEd Maste 	0xeb, 0x70, 0xdb, 0x4f, 0x52, 0xcd, 0x39, 0x8f,
555f540a430SEd Maste 	0x11, 0x54, 0x28, 0x06, 0x29, 0x8f, 0x23, 0xde,
556f540a430SEd Maste 	0x9e, 0x2f, 0x7b, 0xb6, 0x5f, 0xa3, 0x89, 0x04,
557f540a430SEd Maste 	0x99, 0x0a, 0xf1, 0x2d, 0xf9, 0x66, 0xd3, 0x13,
558f540a430SEd Maste 	0x45, 0xbd, 0x6c, 0x22, 0x57, 0xf5, 0xb1, 0xb9,
559f540a430SEd Maste 	0xdf, 0x5b, 0x7b, 0x1a, 0x3a, 0xdd, 0x6b, 0xc7,
560f540a430SEd Maste 	0x35, 0x88, 0xed, 0xc4, 0x09, 0x70, 0x4e, 0x5f,
561f540a430SEd Maste 	0xb5, 0x3e, 0xd1, 0x0b, 0xd0, 0xca, 0xef, 0x0b,
562f540a430SEd Maste 	0xe9, 0x8b, 0x6f, 0xc3, 0x16, 0xc3, 0x3d, 0x79,
563f540a430SEd Maste 	0x06, 0xef, 0x81, 0xf0, 0x60, 0x0b, 0x32, 0xe3,
564f540a430SEd Maste 	0x86, 0x6b, 0x92, 0x38, 0x90, 0x62, 0xed, 0x84,
565f540a430SEd Maste 	0x3a, 0xb7, 0x45, 0x43, 0x2e, 0xd0, 0x3a, 0x71,
566f540a430SEd Maste 	0x9e, 0x80, 0xcc, 0x9c, 0xac, 0x27, 0x10, 0x91,
567f540a430SEd Maste 	0xb7, 0xb2, 0xbd, 0x41, 0x40, 0xa7, 0xb7, 0xcf,
568f540a430SEd Maste 	0xe7, 0x38, 0xca, 0x68, 0xdd, 0x62, 0x09, 0xff,
569f540a430SEd Maste 	0x68, 0xce, 0xba, 0xe2, 0x07, 0x49, 0x09, 0xe7,
570f540a430SEd Maste 	0x1f, 0xdf, 0xe6, 0x26, 0xe5, 0x0f, 0xa9, 0xbf,
571f540a430SEd Maste 	0x2a, 0x5b, 0x67, 0x92, 0xa1, 0x10, 0x53, 0xb2,
572f540a430SEd Maste 	0x7a, 0x07, 0x29, 0x9d, 0xfd, 0x6d, 0xb6, 0x3b,
573f540a430SEd Maste 	0x45, 0xc1, 0x94, 0xcb, 0x1c, 0xc3, 0xce, 0xf6,
574f540a430SEd Maste 	0x8a, 0x1a, 0x81, 0x66, 0xb0, 0xa5, 0x14, 0xc7,
575f540a430SEd Maste 	0x9e, 0x1f, 0x6e, 0xb6, 0xff, 0x8b, 0x90, 0x87,
576f540a430SEd Maste 	0x3a, 0x3f, 0xa8, 0xc2, 0x2d, 0x8f, 0x6f, 0xdb,
577f540a430SEd Maste 	0xb4, 0xc4, 0x14, 0x3c, 0x1d, 0x12, 0x1d, 0x6d,
578f540a430SEd Maste 	0xcf, 0xa6, 0x04, 0x6a, 0xa8, 0x13, 0x5e, 0xf2,
579f540a430SEd Maste 	0x5e, 0x77, 0x80, 0x6b, 0x85, 0x83, 0xfe, 0xbb,
580f540a430SEd Maste 	0xeb, 0x70, 0xcb, 0x5f, 0xe4, 0x95, 0xaa, 0x0f,
581f540a430SEd Maste 	0x61, 0x36, 0x7c, 0xbb, 0x22, 0x1e, 0xba, 0x98,
582f540a430SEd Maste 	0x43, 0x52, 0x33, 0xae, 0xed, 0x5d, 0x10, 0x2c,
583f540a430SEd Maste 	0xb3, 0xa9, 0x31, 0x8e, 0x60, 0x54, 0xaf, 0x40,
584f540a430SEd Maste 	0x6d, 0x2e, 0x18, 0xc2, 0x6a, 0xf4, 0x7b, 0x9a,
585f540a430SEd Maste 	0x73, 0x0f, 0x58, 0x69, 0x23, 0xbb, 0xc4, 0x84,
586f540a430SEd Maste 	0x53, 0x30, 0xe2, 0xd6, 0x1e, 0x10, 0xc1, 0xec,
587f540a430SEd Maste 	0x82, 0x13, 0xab, 0x53, 0x86, 0xa2, 0xb9, 0xda,
588f540a430SEd Maste 	0xbb, 0x3a, 0xa2, 0xbe, 0xb0, 0x10, 0x99, 0x0e,
589f540a430SEd Maste 	0xe5, 0x9c, 0xc9, 0xf1, 0xce, 0x76, 0x46, 0xea,
590f540a430SEd Maste 	0x86, 0xaa, 0x36, 0x83, 0x99, 0x09, 0x9b, 0x30,
591f540a430SEd Maste 	0xd3, 0x26, 0xc7, 0xdf, 0x66, 0xc7, 0xf0, 0xdd,
592f540a430SEd Maste 	0x08, 0x09, 0x15, 0x15, 0x21, 0x49, 0x46, 0xd8,
593f540a430SEd Maste 	0x8a, 0x66, 0xca, 0x62, 0x9c, 0x79, 0x1d, 0x81,
594f540a430SEd Maste 	0xea, 0x5d, 0x82, 0xb0, 0xa6, 0x6b, 0x5c, 0xf5,
595f540a430SEd Maste 	0xb8, 0x8c, 0xf6, 0x16, 0x01, 0x2c, 0xf8, 0x27,
596f540a430SEd Maste 	0xf8, 0xcf, 0x88, 0xfe, 0xf3, 0xa4, 0xfc, 0x17,
597f540a430SEd Maste 	0x97, 0xe7, 0x07, 0x59, 0x06, 0xef, 0x30, 0x82,
598f540a430SEd Maste 	0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3, 0xa0, 0x03,
599f540a430SEd Maste 	0x02, 0x01, 0x02, 0x02, 0x13, 0x33, 0x00, 0x00,
600f540a430SEd Maste 	0x02, 0x39, 0xf9, 0xbb, 0x6a, 0x1d, 0x49, 0x64,
601f540a430SEd Maste 	0x47, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x39,
602f540a430SEd Maste 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
603f540a430SEd Maste 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
604f540a430SEd Maste 	0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
605f540a430SEd Maste 	0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
606f540a430SEd Maste 	0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
607f540a430SEd Maste 	0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e,
608f540a430SEd Maste 	0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e,
609f540a430SEd Maste 	0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52,
610f540a430SEd Maste 	0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e,
611f540a430SEd Maste 	0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
612f540a430SEd Maste 	0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
613f540a430SEd Maste 	0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f,
614f540a430SEd Maste 	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x36,
615f540a430SEd Maste 	0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
616f540a430SEd Maste 	0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
617f540a430SEd Maste 	0x66, 0x74, 0x20, 0x54, 0x50, 0x4d, 0x20, 0x52,
618f540a430SEd Maste 	0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74,
619f540a430SEd Maste 	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
620f540a430SEd Maste 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
621f540a430SEd Maste 	0x79, 0x20, 0x32, 0x30, 0x31, 0x34, 0x30, 0x1e,
622f540a430SEd Maste 	0x17, 0x0d, 0x31, 0x39, 0x30, 0x33, 0x32, 0x31,
623f540a430SEd Maste 	0x32, 0x30, 0x32, 0x39, 0x31, 0x35, 0x5a, 0x17,
624f540a430SEd Maste 	0x0d, 0x32, 0x35, 0x30, 0x33, 0x32, 0x31, 0x32,
625f540a430SEd Maste 	0x30, 0x32, 0x39, 0x31, 0x35, 0x5a, 0x30, 0x41,
626f540a430SEd Maste 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
627f540a430SEd Maste 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
628f540a430SEd Maste 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
629f540a430SEd Maste 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
630f540a430SEd Maste 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
631f540a430SEd Maste 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
632f540a430SEd Maste 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
633f540a430SEd Maste 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
634f540a430SEd Maste 	0x30, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06,
635f540a430SEd Maste 	0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
636f540a430SEd Maste 	0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f,
637f540a430SEd Maste 	0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
638f540a430SEd Maste 	0x01, 0x00, 0xdb, 0xe2, 0x23, 0xf9, 0x86, 0x8f,
639f540a430SEd Maste 	0xa9, 0x71, 0x9f, 0x8b, 0xf9, 0x7c, 0xe9, 0x45,
640f540a430SEd Maste 	0x2d, 0x59, 0x56, 0x5e, 0x96, 0xf4, 0xdd, 0x9a,
641f540a430SEd Maste 	0x12, 0xcd, 0x90, 0x1a, 0x0c, 0xb5, 0x03, 0xbf,
642f540a430SEd Maste 	0x09, 0xbe, 0xbf, 0xf7, 0x55, 0x52, 0xe8, 0x39,
643f540a430SEd Maste 	0x4c, 0xbe, 0x2a, 0x28, 0x88, 0x78, 0x39, 0xa7,
644f540a430SEd Maste 	0xcb, 0xf9, 0x4c, 0x55, 0xd2, 0x31, 0x96, 0x3b,
645f540a430SEd Maste 	0x48, 0xa2, 0xf3, 0xf6, 0xd3, 0x1a, 0x81, 0x7f,
646f540a430SEd Maste 	0x90, 0x62, 0xab, 0xec, 0x5a, 0xc7, 0xa0, 0x7f,
647f540a430SEd Maste 	0x81, 0x32, 0x27, 0x9b, 0x29, 0x75, 0x7d, 0x1e,
648f540a430SEd Maste 	0x96, 0xc5, 0xfa, 0x0e, 0x7c, 0xe0, 0x60, 0x96,
649f540a430SEd Maste 	0x7a, 0xca, 0x94, 0xba, 0xe6, 0xb2, 0x69, 0xdd,
650f540a430SEd Maste 	0xc4, 0x7d, 0xbb, 0xd3, 0xc4, 0xb4, 0x6e, 0x00,
651f540a430SEd Maste 	0x86, 0x1f, 0x9d, 0x25, 0xe8, 0xae, 0xc7, 0x10,
652f540a430SEd Maste 	0x84, 0xdc, 0xc0, 0x34, 0x24, 0x6e, 0xf7, 0xfc,
653f540a430SEd Maste 	0xdd, 0x3d, 0x32, 0x7a, 0x43, 0x96, 0xd6, 0xc8,
654f540a430SEd Maste 	0x7b, 0xf4, 0x9b, 0x3d, 0xa7, 0x1e, 0xba, 0x4d,
655f540a430SEd Maste 	0xd0, 0x3b, 0x3d, 0x84, 0x9a, 0xd1, 0x25, 0x22,
656f540a430SEd Maste 	0x5d, 0x00, 0x44, 0xb0, 0x59, 0xb7, 0x40, 0xc5,
657f540a430SEd Maste 	0xa3, 0x53, 0x53, 0xaf, 0x8f, 0x9e, 0xfd, 0x8f,
658f540a430SEd Maste 	0x1e, 0x02, 0xd3, 0x4f, 0xf7, 0x09, 0xce, 0xc5,
659f540a430SEd Maste 	0xc6, 0x71, 0x5c, 0xe9, 0xe8, 0x7a, 0xb5, 0x6b,
660f540a430SEd Maste 	0xa4, 0xbf, 0x0b, 0xd9, 0xb6, 0xfa, 0x24, 0xb0,
661f540a430SEd Maste 	0xcd, 0x52, 0x22, 0x1d, 0x7e, 0xe8, 0x15, 0x2f,
662f540a430SEd Maste 	0x1e, 0x5e, 0xa2, 0xec, 0xd3, 0xa8, 0x02, 0x77,
663f540a430SEd Maste 	0xb9, 0x55, 0x9a, 0xcf, 0xcc, 0xd7, 0x08, 0x20,
664f540a430SEd Maste 	0xa5, 0xda, 0x39, 0x9a, 0x30, 0x76, 0x90, 0x37,
665f540a430SEd Maste 	0xa7, 0x60, 0xdf, 0x18, 0x12, 0x65, 0x17, 0xaa,
666f540a430SEd Maste 	0xdd, 0x48, 0xd5, 0x12, 0x1d, 0x4c, 0x83, 0x5d,
667f540a430SEd Maste 	0x81, 0x07, 0x1d, 0x18, 0x81, 0x40, 0x55, 0x60,
668f540a430SEd Maste 	0x8f, 0xa3, 0x6b, 0x34, 0x1e, 0xd5, 0xe6, 0xcf,
669f540a430SEd Maste 	0x52, 0x73, 0x77, 0x4a, 0x50, 0x4f, 0x1b, 0x0f,
670f540a430SEd Maste 	0x39, 0xc3, 0x0d, 0x16, 0xf9, 0xbb, 0x4c, 0x77,
671f540a430SEd Maste 	0xf6, 0x4e, 0xac, 0x9c, 0xfe, 0xe8, 0xbb, 0x52,
672f540a430SEd Maste 	0xa5, 0x0a, 0x0e, 0x9b, 0xf0, 0x0d, 0xef, 0xfb,
673f540a430SEd Maste 	0x6f, 0x89, 0x34, 0x7d, 0x47, 0xec, 0x14, 0x6a,
674f540a430SEd Maste 	0xf4, 0x0a, 0xe1, 0x60, 0x44, 0x73, 0x7b, 0xa0,
675f540a430SEd Maste 	0xab, 0x5b, 0x8c, 0x43, 0xa6, 0x05, 0x42, 0x61,
676f540a430SEd Maste 	0x46, 0xaa, 0x1c, 0xf5, 0xec, 0x2c, 0x86, 0x85,
677f540a430SEd Maste 	0x21, 0x99, 0xdf, 0x45, 0x8e, 0xf4, 0xd1, 0x1e,
678f540a430SEd Maste 	0xfb, 0xcd, 0x9b, 0x94, 0x32, 0xe0, 0xa0, 0xcc,
679f540a430SEd Maste 	0x4f, 0xad, 0xae, 0x44, 0x8b, 0x86, 0x27, 0x91,
680f540a430SEd Maste 	0xfe, 0x60, 0x9f, 0xf2, 0x63, 0x30, 0x6c, 0x5d,
681f540a430SEd Maste 	0x8d, 0xbc, 0xab, 0xd4, 0xf5, 0xa2, 0xb2, 0x74,
682f540a430SEd Maste 	0xe8, 0xd4, 0x95, 0xf2, 0xd6, 0x03, 0x8b, 0xc9,
683f540a430SEd Maste 	0xa3, 0x52, 0xe7, 0x63, 0x05, 0x64, 0x50, 0xe5,
684f540a430SEd Maste 	0x0a, 0x6a, 0xa0, 0x6c, 0x50, 0xcd, 0x37, 0x98,
685f540a430SEd Maste 	0xa8, 0x87, 0x02, 0x38, 0x5b, 0x6c, 0x02, 0x69,
686f540a430SEd Maste 	0x3d, 0x1f, 0x95, 0x74, 0x4d, 0x46, 0x76, 0x2a,
687f540a430SEd Maste 	0x9d, 0x62, 0xd4, 0xc7, 0x1b, 0xf9, 0x31, 0xa6,
688f540a430SEd Maste 	0x51, 0xee, 0x7b, 0xc8, 0xe4, 0x6e, 0x3a, 0xcf,
689f540a430SEd Maste 	0x4f, 0x4f, 0x49, 0x8a, 0xf5, 0x4f, 0x25, 0x93,
690f540a430SEd Maste 	0x23, 0x02, 0xef, 0x79, 0xa6, 0x27, 0xbe, 0x5a,
691f540a430SEd Maste 	0xe7, 0x74, 0xb7, 0xd7, 0xa8, 0xc1, 0xae, 0x55,
692f540a430SEd Maste 	0x88, 0xa4, 0xc7, 0x4d, 0xb7, 0x62, 0xf0, 0xf9,
693f540a430SEd Maste 	0x5b, 0xbf, 0x47, 0x5b, 0xfe, 0xcc, 0x0b, 0x89,
694f540a430SEd Maste 	0x19, 0x65, 0x4b, 0x6f, 0xdf, 0x4f, 0x7d, 0x4d,
695f540a430SEd Maste 	0x96, 0x42, 0x0d, 0x2a, 0xa1, 0xbd, 0x3e, 0x70,
696f540a430SEd Maste 	0x92, 0xba, 0xc8, 0x59, 0xd5, 0x1d, 0x3a, 0x98,
697f540a430SEd Maste 	0x53, 0x75, 0xa6, 0x32, 0xc8, 0x72, 0x03, 0x46,
698f540a430SEd Maste 	0x5f, 0x5c, 0x13, 0xa4, 0xdb, 0xc7, 0x55, 0x35,
699f540a430SEd Maste 	0x22, 0x0d, 0xc6, 0x17, 0x85, 0xbd, 0x46, 0x4b,
700f540a430SEd Maste 	0xfa, 0x1e, 0x49, 0xc2, 0xfe, 0x1e, 0xf9, 0x62,
701f540a430SEd Maste 	0x89, 0x56, 0x84, 0xdf, 0xa0, 0xfb, 0xfd, 0x93,
702f540a430SEd Maste 	0xa4, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
703f540a430SEd Maste 	0x82, 0x01, 0x8e, 0x30, 0x82, 0x01, 0x8a, 0x30,
704f540a430SEd Maste 	0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
705f540a430SEd Maste 	0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x84, 0x30,
706f540a430SEd Maste 	0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x14,
707f540a430SEd Maste 	0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
708f540a430SEd Maste 	0x01, 0x82, 0x37, 0x15, 0x24, 0x06, 0x05, 0x67,
709f540a430SEd Maste 	0x81, 0x05, 0x08, 0x03, 0x30, 0x16, 0x06, 0x03,
710f540a430SEd Maste 	0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30, 0x0d, 0x30,
711f540a430SEd Maste 	0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
712f540a430SEd Maste 	0x82, 0x37, 0x15, 0x1f, 0x30, 0x12, 0x06, 0x03,
713f540a430SEd Maste 	0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
714f540a430SEd Maste 	0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
715f540a430SEd Maste 	0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
716f540a430SEd Maste 	0x16, 0x04, 0x14, 0xb8, 0x5f, 0xd5, 0x67, 0xca,
717f540a430SEd Maste 	0x92, 0xc4, 0x0e, 0xcf, 0x0c, 0xd8, 0x1f, 0x6d,
718f540a430SEd Maste 	0x3f, 0x03, 0x55, 0x6f, 0x38, 0xa6, 0x51, 0x30,
719f540a430SEd Maste 	0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
720f540a430SEd Maste 	0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c, 0x0a, 0xce,
721f540a430SEd Maste 	0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94, 0xd1, 0xae,
722f540a430SEd Maste 	0x55, 0xc1, 0x52, 0xec, 0x71, 0x74, 0xa4, 0x56,
723f540a430SEd Maste 	0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
724f540a430SEd Maste 	0x69, 0x30, 0x67, 0x30, 0x65, 0xa0, 0x63, 0xa0,
725f540a430SEd Maste 	0x61, 0x86, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x3a,
726f540a430SEd Maste 	0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69,
727f540a430SEd Maste 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e,
728f540a430SEd Maste 	0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f,
729f540a430SEd Maste 	0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x4d,
730f540a430SEd Maste 	0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
731f540a430SEd Maste 	0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32,
732f540a430SEd Maste 	0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30,
733f540a430SEd Maste 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
734f540a430SEd Maste 	0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75,
735f540a430SEd Maste 	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25,
736f540a430SEd Maste 	0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63,
737f540a430SEd Maste 	0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08, 0x2b, 0x06,
738f540a430SEd Maste 	0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x71,
739f540a430SEd Maste 	0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
740f540a430SEd Maste 	0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x61,
741f540a430SEd Maste 	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
742f540a430SEd Maste 	0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
743f540a430SEd Maste 	0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
744f540a430SEd Maste 	0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x2f,
745f540a430SEd Maste 	0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69,
746f540a430SEd Maste 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x25,
747f540a430SEd Maste 	0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32, 0x30,
748f540a430SEd Maste 	0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43,
749f540a430SEd Maste 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
750f540a430SEd Maste 	0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75, 0x74,
751f540a430SEd Maste 	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25, 0x32,
752f540a430SEd Maste 	0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63, 0x72,
753f540a430SEd Maste 	0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
754f540a430SEd Maste 	0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
755f540a430SEd Maste 	0x03, 0x82, 0x02, 0x01, 0x00, 0x41, 0xaa, 0xfe,
756f540a430SEd Maste 	0x28, 0x6c, 0xf7, 0x6b, 0x53, 0xde, 0x77, 0xc0,
757f540a430SEd Maste 	0x80, 0x50, 0x94, 0xd9, 0xdb, 0x46, 0x8e, 0x6a,
758f540a430SEd Maste 	0x93, 0xa9, 0x10, 0x37, 0x27, 0x1f, 0xf5, 0x70,
759f540a430SEd Maste 	0xf1, 0xa8, 0xcf, 0xa1, 0x45, 0x86, 0x2a, 0xdd,
760f540a430SEd Maste 	0x8f, 0xb8, 0xb5, 0xc1, 0xe6, 0xcf, 0x8a, 0xfa,
761f540a430SEd Maste 	0x32, 0xa1, 0x4b, 0xb7, 0xa4, 0xbf, 0x0a, 0x48,
762f540a430SEd Maste 	0xcb, 0x42, 0x63, 0x71, 0xc1, 0x96, 0xb9, 0x3a,
763f540a430SEd Maste 	0x37, 0x84, 0x0e, 0x24, 0x39, 0xeb, 0x58, 0xce,
764f540a430SEd Maste 	0x3d, 0xb7, 0xa9, 0x44, 0x92, 0x59, 0xb9, 0xff,
765f540a430SEd Maste 	0xdb, 0x18, 0xbe, 0x6a, 0x5e, 0xe7, 0xce, 0xef,
766f540a430SEd Maste 	0xb8, 0x40, 0x53, 0xaf, 0xc1, 0x9b, 0xfb, 0x42,
767f540a430SEd Maste 	0x99, 0x7e, 0x9d, 0x05, 0x2b, 0x71, 0x0a, 0x7a,
768f540a430SEd Maste 	0x7a, 0x44, 0xd1, 0x31, 0xca, 0xf0, 0x5f, 0x74,
769f540a430SEd Maste 	0x85, 0xa9, 0xe2, 0xbc, 0xc8, 0x0c, 0xad, 0x57,
770f540a430SEd Maste 	0xd1, 0xe9, 0x48, 0x90, 0x88, 0x57, 0x86, 0xd7,
771f540a430SEd Maste 	0xc5, 0xc9, 0xe6, 0xb2, 0x5e, 0x5f, 0x13, 0xdc,
772f540a430SEd Maste 	0x10, 0x7f, 0xdf, 0x63, 0x8a, 0xd5, 0x9e, 0x90,
773f540a430SEd Maste 	0xc2, 0x75, 0x53, 0x1e, 0x68, 0x17, 0x2b, 0x03,
774f540a430SEd Maste 	0x29, 0x15, 0x03, 0xc5, 0x8c, 0x66, 0x3e, 0xae,
775f540a430SEd Maste 	0xbd, 0x4a, 0x32, 0x7e, 0x59, 0x89, 0x0b, 0x84,
776f540a430SEd Maste 	0xc2, 0xd9, 0x90, 0xfa, 0x02, 0x22, 0x90, 0x8d,
777f540a430SEd Maste 	0x9c, 0xb6, 0x0c, 0x4d, 0xe1, 0x28, 0x76, 0xd7,
778f540a430SEd Maste 	0x82, 0xc3, 0x36, 0xc2, 0xa3, 0x2a, 0x52, 0xe5,
779f540a430SEd Maste 	0xfe, 0x3c, 0x8f, 0xe3, 0x4b, 0xda, 0x6a, 0xdb,
780f540a430SEd Maste 	0xc0, 0x7a, 0x3c, 0x57, 0xfa, 0x85, 0x8f, 0xfb,
781f540a430SEd Maste 	0x62, 0xc3, 0xa1, 0x38, 0xce, 0x84, 0xf2, 0xba,
782f540a430SEd Maste 	0x12, 0xf4, 0x30, 0x2a, 0x4a, 0x94, 0xa9, 0x35,
783f540a430SEd Maste 	0x2c, 0x7d, 0x11, 0xc7, 0x68, 0x1f, 0x47, 0xaa,
784f540a430SEd Maste 	0x57, 0x43, 0x06, 0x70, 0x79, 0x8c, 0xb6, 0x3b,
785f540a430SEd Maste 	0x5d, 0x57, 0xf3, 0xf3, 0xc0, 0x2c, 0xc5, 0xde,
786f540a430SEd Maste 	0x41, 0x99, 0xf6, 0xdd, 0x55, 0x8a, 0xe4, 0x13,
787f540a430SEd Maste 	0xca, 0xc9, 0xec, 0x69, 0x93, 0x13, 0x48, 0xf0,
788f540a430SEd Maste 	0x5f, 0xda, 0x2e, 0xfd, 0xfb, 0xa9, 0x1b, 0x92,
789f540a430SEd Maste 	0xde, 0x49, 0x71, 0x37, 0x8c, 0x3f, 0xc2, 0x08,
790f540a430SEd Maste 	0x0a, 0x83, 0x25, 0xf1, 0x6e, 0x0a, 0xe3, 0x55,
791f540a430SEd Maste 	0x85, 0x96, 0x9a, 0x2d, 0xa2, 0xc0, 0xa1, 0xee,
792f540a430SEd Maste 	0xfe, 0x23, 0x3b, 0x69, 0x22, 0x03, 0xfd, 0xcc,
793f540a430SEd Maste 	0x8a, 0xdd, 0xb4, 0x53, 0x8d, 0x84, 0xa6, 0xac,
794f540a430SEd Maste 	0xe0, 0x1e, 0x07, 0xe5, 0xd7, 0xf9, 0xcb, 0xb9,
795f540a430SEd Maste 	0xe3, 0x9a, 0xb7, 0x84, 0x70, 0xa1, 0x93, 0xd6,
796f540a430SEd Maste 	0x02, 0x1e, 0xfe, 0xdb, 0x28, 0x7c, 0xf7, 0xd4,
797f540a430SEd Maste 	0x62, 0x6f, 0x80, 0x75, 0xc8, 0xd8, 0x35, 0x26,
798f540a430SEd Maste 	0x0c, 0xcb, 0x84, 0xed, 0xbb, 0x95, 0xdf, 0x7f,
799f540a430SEd Maste 	0xd5, 0xbb, 0x00, 0x96, 0x97, 0x32, 0xe7, 0xba,
800f540a430SEd Maste 	0xe8, 0x29, 0xb5, 0x1a, 0x51, 0x81, 0xbb, 0x04,
801f540a430SEd Maste 	0xd1, 0x21, 0x76, 0x34, 0x6d, 0x1e, 0x93, 0x96,
802f540a430SEd Maste 	0x1f, 0x96, 0x53, 0x5f, 0x5c, 0x9e, 0xf3, 0x9d,
803f540a430SEd Maste 	0x82, 0x1c, 0x39, 0x36, 0x59, 0xae, 0xc9, 0x3c,
804f540a430SEd Maste 	0x53, 0x4a, 0x67, 0x65, 0x6e, 0xbf, 0xa6, 0xac,
805f540a430SEd Maste 	0x3e, 0xda, 0xb2, 0xa7, 0x63, 0x07, 0x17, 0xe1,
806f540a430SEd Maste 	0x5b, 0xda, 0x6a, 0x31, 0x9f, 0xfb, 0xb4, 0xea,
807f540a430SEd Maste 	0xa1, 0x97, 0x08, 0x6e, 0xb2, 0x68, 0xf3, 0x72,
808f540a430SEd Maste 	0x76, 0x99, 0xe8, 0x00, 0x46, 0x88, 0x26, 0xe1,
809f540a430SEd Maste 	0x3c, 0x07, 0x2b, 0x78, 0x49, 0xda, 0x79, 0x3a,
810f540a430SEd Maste 	0xbd, 0x6f, 0xca, 0x5c, 0xa0, 0xa8, 0xed, 0x34,
811f540a430SEd Maste 	0xcc, 0xdb, 0x13, 0xe2, 0x51, 0x9b, 0x3d, 0x03,
812f540a430SEd Maste 	0xac, 0xc7, 0xf6, 0x32, 0xe1, 0x11, 0x5d, 0xe1,
813f540a430SEd Maste 	0xc5, 0xfd, 0x9e, 0x7a, 0xcd, 0x06, 0xb9, 0xe6,
814f540a430SEd Maste 	0xfc, 0xe0, 0x03, 0x31, 0xf4, 0x4a, 0xa9, 0x3b,
815f540a430SEd Maste 	0x79, 0x01, 0xb0, 0x64, 0x68, 0x9f, 0x6e, 0x76,
816f540a430SEd Maste 	0xa1, 0xcc, 0xec, 0x17, 0x41, 0x9d, 0xd4, 0x5b,
817f540a430SEd Maste 	0x4e, 0x9d, 0xe5, 0x46, 0xd4, 0x6b, 0x60, 0x2a,
818f540a430SEd Maste 	0x23, 0xb5, 0x7a, 0x89, 0x7c, 0x27, 0x96, 0x65,
819f540a430SEd Maste 	0x97, 0x56, 0xec, 0x98, 0xe3, 0x67, 0x70, 0x75,
820f540a430SEd Maste 	0x62, 0x41, 0x72, 0x65, 0x61, 0x59, 0x01, 0x36,
821f540a430SEd Maste 	0x00, 0x01, 0x00, 0x0b, 0x00, 0x06, 0x04, 0x72,
822f540a430SEd Maste 	0x00, 0x20, 0x9d, 0xff, 0xcb, 0xf3, 0x6c, 0x38,
823f540a430SEd Maste 	0x3a, 0xe6, 0x99, 0xfb, 0x98, 0x68, 0xdc, 0x6d,
824f540a430SEd Maste 	0xcb, 0x89, 0xd7, 0x15, 0x38, 0x84, 0xbe, 0x28,
825f540a430SEd Maste 	0x03, 0x92, 0x2c, 0x12, 0x41, 0x58, 0xbf, 0xad,
826f540a430SEd Maste 	0x22, 0xae, 0x00, 0x10, 0x00, 0x10, 0x08, 0x00,
827f540a430SEd Maste 	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc5, 0xb6,
828f540a430SEd Maste 	0x9c, 0x06, 0x1d, 0xcf, 0xb9, 0xf2, 0x5e, 0x99,
829f540a430SEd Maste 	0x7d, 0x6d, 0x73, 0xd8, 0x36, 0xc1, 0x4a, 0x90,
830f540a430SEd Maste 	0x05, 0x4d, 0x82, 0x57, 0xc1, 0xb6, 0x6a, 0xd1,
831f540a430SEd Maste 	0x43, 0x03, 0x85, 0xf8, 0x52, 0x4f, 0xd2, 0x27,
832f540a430SEd Maste 	0x91, 0x0b, 0xb5, 0x93, 0xa0, 0x68, 0xf8, 0x80,
833f540a430SEd Maste 	0x1b, 0xaa, 0x65, 0x97, 0x45, 0x11, 0x86, 0x34,
834f540a430SEd Maste 	0xd6, 0x67, 0xf8, 0xd5, 0x12, 0x79, 0x84, 0xee,
835f540a430SEd Maste 	0x70, 0x99, 0x00, 0x63, 0xa8, 0xb4, 0x43, 0x0b,
836f540a430SEd Maste 	0x4c, 0x57, 0x4a, 0xd6, 0x9b, 0x75, 0x63, 0x8a,
837f540a430SEd Maste 	0x46, 0x57, 0xdb, 0x14, 0xc8, 0x71, 0xd1, 0xb3,
838f540a430SEd Maste 	0x07, 0x68, 0x58, 0xbc, 0x55, 0x84, 0x80, 0x2a,
839f540a430SEd Maste 	0xd2, 0x36, 0x9f, 0xc1, 0x64, 0xa0, 0x11, 0x4b,
840f540a430SEd Maste 	0xc9, 0x32, 0x31, 0x3a, 0xd6, 0x87, 0x26, 0x1a,
841f540a430SEd Maste 	0x3a, 0x78, 0x3d, 0x89, 0xdb, 0x00, 0x28, 0x3b,
842f540a430SEd Maste 	0xae, 0x2b, 0x1b, 0x56, 0xe2, 0x8c, 0x4c, 0x63,
843f540a430SEd Maste 	0xac, 0x6e, 0x6c, 0xf7, 0xb5, 0x7d, 0x4d, 0x0b,
844f540a430SEd Maste 	0x9f, 0x06, 0xa0, 0x10, 0x35, 0x38, 0x20, 0x4d,
845f540a430SEd Maste 	0xcc, 0x07, 0xd7, 0x00, 0x4e, 0x86, 0xba, 0xfe,
846f540a430SEd Maste 	0x8b, 0xe4, 0x3f, 0x4a, 0xd6, 0xca, 0xbf, 0x67,
847f540a430SEd Maste 	0x40, 0x1a, 0xa4, 0xda, 0x82, 0x52, 0x15, 0xb8,
848f540a430SEd Maste 	0x14, 0x3a, 0x7c, 0xa9, 0x02, 0xc1, 0x01, 0x69,
849f540a430SEd Maste 	0xc6, 0x51, 0xd4, 0xbc, 0x1f, 0x95, 0xb2, 0xee,
850f540a430SEd Maste 	0x1f, 0xdd, 0xb5, 0x73, 0x16, 0x5e, 0x29, 0x3f,
851f540a430SEd Maste 	0x47, 0xac, 0x65, 0xfb, 0x63, 0x5c, 0xb9, 0xc8,
852f540a430SEd Maste 	0x13, 0x2d, 0xec, 0x85, 0xde, 0x71, 0x0d, 0x84,
853f540a430SEd Maste 	0x93, 0x74, 0x76, 0x91, 0xdd, 0x1d, 0x6d, 0x3d,
854f540a430SEd Maste 	0xc7, 0x36, 0x19, 0x19, 0x86, 0xde, 0x7c, 0xca,
855f540a430SEd Maste 	0xd6, 0xc6, 0x65, 0x7e, 0x4b, 0x24, 0x9c, 0xce,
856f540a430SEd Maste 	0x92, 0x6b, 0x1c, 0xe0, 0xa0, 0xa9, 0x6c, 0xc3,
857f540a430SEd Maste 	0xed, 0x4f, 0x2a, 0x54, 0x07, 0x00, 0x32, 0x5e,
858f540a430SEd Maste 	0x1b, 0x94, 0x37, 0xcd, 0xe2, 0x32, 0xa8, 0xd5,
859f540a430SEd Maste 	0x2c, 0xfb, 0x03, 0x9d, 0x79, 0xdf, 0x68, 0x63,
860f540a430SEd Maste 	0x65, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x58,
861f540a430SEd Maste 	0xa1, 0xff, 0x54, 0x43, 0x47, 0x80, 0x17, 0x00,
862f540a430SEd Maste 	0x22, 0x00, 0x0b, 0xdb, 0x1f, 0x74, 0x21, 0x4f,
863f540a430SEd Maste 	0xa9, 0x0d, 0x90, 0x64, 0xa2, 0x33, 0xbe, 0x3f,
864f540a430SEd Maste 	0xf1, 0x95, 0xb0, 0x4e, 0x3f, 0x02, 0xdc, 0xad,
865f540a430SEd Maste 	0xb0, 0x05, 0x13, 0xe6, 0x32, 0x5f, 0xed, 0x90,
866f540a430SEd Maste 	0x2c, 0xad, 0xc0, 0x00, 0x14, 0x58, 0x52, 0x07,
867f540a430SEd Maste 	0x5d, 0x64, 0x6c, 0x1f, 0xd1, 0x13, 0x7f, 0xc3,
868f540a430SEd Maste 	0x74, 0xf6, 0x4b, 0xe3, 0xa0, 0x2e, 0xb7, 0x71,
869f540a430SEd Maste 	0xda, 0x00, 0x00, 0x00, 0x00, 0x29, 0x3c, 0x64,
870f540a430SEd Maste 	0xdf, 0x95, 0x38, 0xba, 0x73, 0xe3, 0x57, 0x61,
871f540a430SEd Maste 	0xa0, 0x01, 0x24, 0x01, 0x08, 0xc9, 0xd6, 0xea,
872f540a430SEd Maste 	0x60, 0xe4, 0x00, 0x22, 0x00, 0x0b, 0xe1, 0x86,
873f540a430SEd Maste 	0xbb, 0x79, 0x27, 0xe5, 0x01, 0x19, 0x90, 0xb3,
874f540a430SEd Maste 	0xe9, 0x08, 0xb0, 0xee, 0xfa, 0x3a, 0x67, 0xa9,
875f540a430SEd Maste 	0xf3, 0xc8, 0x9e, 0x03, 0x41, 0x07, 0x75, 0x60,
876f540a430SEd Maste 	0xbc, 0x94, 0x0c, 0x2a, 0xb7, 0xad, 0x00, 0x22,
877f540a430SEd Maste 	0x00, 0x0b, 0x35, 0xb1, 0x72, 0xd6, 0x3c, 0xe9,
878f540a430SEd Maste 	0x85, 0xe8, 0x66, 0xed, 0x10, 0x7a, 0x5c, 0xa3,
879f540a430SEd Maste 	0xe6, 0xd9, 0x4d, 0xf0, 0x52, 0x69, 0x26, 0x14,
880f540a430SEd Maste 	0xb4, 0x36, 0x7e, 0xad, 0x76, 0x9e, 0x58, 0x68,
881f540a430SEd Maste 	0x3e, 0x91
882f540a430SEd Maste };
883f540a430SEd Maste 
8843e696dfbSEd Maste const unsigned char attstmt_tpm_es256[3841] = {
8853e696dfbSEd Maste 	0xa6, 0x63, 0x61, 0x6c, 0x67, 0x39, 0xff, 0xfe,
8863e696dfbSEd Maste 	0x63, 0x73, 0x69, 0x67, 0x59, 0x01, 0x00, 0x6d,
8873e696dfbSEd Maste 	0x11, 0x61, 0x1f, 0x45, 0xb9, 0x7f, 0x65, 0x6f,
8883e696dfbSEd Maste 	0x97, 0x46, 0xfe, 0xbb, 0x8a, 0x98, 0x07, 0xa3,
8893e696dfbSEd Maste 	0xbc, 0x67, 0x5c, 0xd7, 0x65, 0xa4, 0xf4, 0x6c,
8903e696dfbSEd Maste 	0x5b, 0x37, 0x75, 0xa4, 0x7f, 0x08, 0x52, 0xeb,
8913e696dfbSEd Maste 	0x1e, 0x12, 0xe2, 0x78, 0x8c, 0x7d, 0x94, 0xab,
8923e696dfbSEd Maste 	0x7b, 0xed, 0x05, 0x17, 0x67, 0x7e, 0xaa, 0x02,
8933e696dfbSEd Maste 	0x89, 0x6d, 0xe8, 0x6d, 0x43, 0x30, 0x99, 0xc6,
8943e696dfbSEd Maste 	0xf9, 0x59, 0xe5, 0x82, 0x3c, 0x56, 0x4e, 0x77,
8953e696dfbSEd Maste 	0x11, 0x25, 0xe4, 0x43, 0x6a, 0xae, 0x92, 0x4f,
8963e696dfbSEd Maste 	0x60, 0x92, 0x50, 0xf9, 0x65, 0x0e, 0x44, 0x38,
8973e696dfbSEd Maste 	0x3d, 0xf7, 0xaf, 0x66, 0x89, 0xc7, 0xe6, 0xe6,
8983e696dfbSEd Maste 	0x01, 0x07, 0x9e, 0x90, 0xfd, 0x6d, 0xaa, 0x35,
8993e696dfbSEd Maste 	0x51, 0x51, 0xbf, 0x54, 0x13, 0x95, 0xc2, 0x17,
9003e696dfbSEd Maste 	0xfa, 0x32, 0x0f, 0xa7, 0x82, 0x17, 0x58, 0x6c,
9013e696dfbSEd Maste 	0x3d, 0xea, 0x88, 0xd8, 0x64, 0xc7, 0xf8, 0xc2,
9023e696dfbSEd Maste 	0xd6, 0x1c, 0xbb, 0xea, 0x1e, 0xb3, 0xd9, 0x4c,
9033e696dfbSEd Maste 	0xa7, 0xce, 0x18, 0x1e, 0xcb, 0x42, 0x5f, 0xbf,
9043e696dfbSEd Maste 	0x44, 0xe7, 0xf1, 0x22, 0xe0, 0x5b, 0xeb, 0xff,
9053e696dfbSEd Maste 	0xb6, 0x1e, 0x6f, 0x60, 0x12, 0x16, 0x63, 0xfe,
9063e696dfbSEd Maste 	0xab, 0x5e, 0x31, 0x13, 0xdb, 0x72, 0xc6, 0x9a,
9073e696dfbSEd Maste 	0xf8, 0x8f, 0x19, 0x6b, 0x2e, 0xaf, 0x7d, 0xca,
9083e696dfbSEd Maste 	0x9f, 0xbc, 0x6b, 0x1a, 0x8b, 0x5e, 0xe3, 0x9e,
9093e696dfbSEd Maste 	0xaa, 0x8c, 0x79, 0x9c, 0x4e, 0xed, 0xe4, 0xff,
9103e696dfbSEd Maste 	0x3d, 0x12, 0x79, 0x90, 0x09, 0x61, 0x97, 0x67,
9113e696dfbSEd Maste 	0xbf, 0x04, 0xac, 0x37, 0xea, 0xa9, 0x1f, 0x9f,
9123e696dfbSEd Maste 	0x52, 0x64, 0x0b, 0xeb, 0xc3, 0x61, 0xd4, 0x13,
9133e696dfbSEd Maste 	0xb0, 0x84, 0xf1, 0x3c, 0x74, 0x83, 0xcc, 0xa8,
9143e696dfbSEd Maste 	0x1c, 0x14, 0xe6, 0x9d, 0xfe, 0xec, 0xee, 0xa1,
9153e696dfbSEd Maste 	0xd2, 0xc2, 0x0a, 0xa6, 0x36, 0x08, 0xbb, 0x17,
9163e696dfbSEd Maste 	0xa5, 0x7b, 0x53, 0x34, 0x0e, 0xc9, 0x09, 0xe5,
9173e696dfbSEd Maste 	0x10, 0xa6, 0x85, 0x01, 0x71, 0x66, 0xff, 0xd0,
9183e696dfbSEd Maste 	0x6d, 0x4b, 0x93, 0xdb, 0x81, 0x25, 0x01, 0x63,
9193e696dfbSEd Maste 	0x76, 0x65, 0x72, 0x63, 0x32, 0x2e, 0x30, 0x63,
9203e696dfbSEd Maste 	0x78, 0x35, 0x63, 0x82, 0x59, 0x05, 0xc4, 0x30,
9213e696dfbSEd Maste 	0x82, 0x05, 0xc0, 0x30, 0x82, 0x03, 0xa8, 0xa0,
9223e696dfbSEd Maste 	0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x30, 0xcd,
9233e696dfbSEd Maste 	0xf2, 0x7e, 0x81, 0xc0, 0x43, 0x85, 0xa2, 0xd7,
9243e696dfbSEd Maste 	0x29, 0xef, 0xf7, 0x9f, 0xa5, 0x2b, 0x30, 0x0d,
9253e696dfbSEd Maste 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
9263e696dfbSEd Maste 	0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x41, 0x31,
9273e696dfbSEd Maste 	0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03,
9283e696dfbSEd Maste 	0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53, 0x54,
9293e696dfbSEd Maste 	0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44, 0x2d,
9303e696dfbSEd Maste 	0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34, 0x41,
9313e696dfbSEd Maste 	0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37, 0x41,
9323e696dfbSEd Maste 	0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30, 0x30,
9333e696dfbSEd Maste 	0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31, 0x41,
9343e696dfbSEd Maste 	0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36, 0x30,
9353e696dfbSEd Maste 	0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31,
9363e696dfbSEd Maste 	0x30, 0x32, 0x31, 0x35, 0x30, 0x36, 0x35, 0x33,
9373e696dfbSEd Maste 	0x5a, 0x17, 0x0d, 0x32, 0x37, 0x30, 0x36, 0x30,
9383e696dfbSEd Maste 	0x33, 0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a,
9393e696dfbSEd Maste 	0x30, 0x00, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
9403e696dfbSEd Maste 	0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
9413e696dfbSEd Maste 	0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
9423e696dfbSEd Maste 	0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
9433e696dfbSEd Maste 	0x01, 0x01, 0x00, 0xdb, 0xd5, 0x9a, 0xfc, 0x09,
9443e696dfbSEd Maste 	0xa7, 0xc4, 0xa5, 0x5f, 0xbe, 0x5f, 0xa2, 0xeb,
9453e696dfbSEd Maste 	0xd6, 0x8e, 0xed, 0xc5, 0x67, 0xa6, 0xa7, 0xd9,
9463e696dfbSEd Maste 	0xb2, 0x46, 0xc6, 0xe0, 0xae, 0x0c, 0x02, 0x25,
9473e696dfbSEd Maste 	0x0a, 0xf2, 0xc5, 0x96, 0xdc, 0xb7, 0x0e, 0xb9,
9483e696dfbSEd Maste 	0x86, 0xd3, 0x51, 0xbb, 0x63, 0xf0, 0x4f, 0x8a,
9493e696dfbSEd Maste 	0x5e, 0xd7, 0xf7, 0xff, 0xbb, 0x29, 0xbd, 0x58,
9503e696dfbSEd Maste 	0xcf, 0x75, 0x02, 0x39, 0xcb, 0x80, 0xf1, 0xd4,
9513e696dfbSEd Maste 	0xb6, 0x75, 0x67, 0x2f, 0x27, 0x4d, 0x0c, 0xcc,
9523e696dfbSEd Maste 	0x18, 0x59, 0x87, 0xfa, 0x51, 0xd1, 0x80, 0xb5,
9533e696dfbSEd Maste 	0x1a, 0xac, 0xac, 0x29, 0x51, 0xcf, 0x27, 0xaa,
9543e696dfbSEd Maste 	0x74, 0xac, 0x3e, 0x59, 0x56, 0x67, 0xe4, 0x42,
9553e696dfbSEd Maste 	0xe8, 0x30, 0x35, 0xb2, 0xf6, 0x27, 0x91, 0x62,
9563e696dfbSEd Maste 	0x60, 0x42, 0x42, 0x12, 0xde, 0xfe, 0xdd, 0xee,
9573e696dfbSEd Maste 	0xe8, 0xa8, 0x82, 0xf9, 0xb1, 0x08, 0xd5, 0x8d,
9583e696dfbSEd Maste 	0x57, 0x9a, 0x29, 0xb9, 0xb4, 0xe9, 0x19, 0x1e,
9593e696dfbSEd Maste 	0x33, 0x7d, 0x37, 0xa0, 0xce, 0x2e, 0x53, 0x13,
9603e696dfbSEd Maste 	0x39, 0xb6, 0x12, 0x61, 0x63, 0xbf, 0xd3, 0x42,
9613e696dfbSEd Maste 	0xeb, 0x6f, 0xed, 0xc1, 0x8e, 0x26, 0xba, 0x7d,
9623e696dfbSEd Maste 	0x8b, 0x37, 0x7c, 0xbb, 0x42, 0x1e, 0x56, 0x76,
9633e696dfbSEd Maste 	0xda, 0xdb, 0x35, 0x6b, 0x80, 0xe1, 0x8e, 0x00,
9643e696dfbSEd Maste 	0xac, 0xd2, 0xfc, 0x22, 0x96, 0x14, 0x0c, 0xf4,
9653e696dfbSEd Maste 	0xe4, 0xc5, 0xad, 0x14, 0xb7, 0x4d, 0x46, 0x63,
9663e696dfbSEd Maste 	0x30, 0x79, 0x3a, 0x7c, 0x33, 0xb5, 0xe5, 0x2e,
9673e696dfbSEd Maste 	0xbb, 0x5f, 0xca, 0xf2, 0x75, 0xe3, 0x4e, 0x99,
9683e696dfbSEd Maste 	0x64, 0x1b, 0x26, 0x99, 0x60, 0x1a, 0x79, 0xcc,
9693e696dfbSEd Maste 	0x30, 0x2c, 0xb3, 0x4c, 0x59, 0xf7, 0x77, 0x59,
9703e696dfbSEd Maste 	0xd5, 0x90, 0x70, 0x21, 0x79, 0x8c, 0x1f, 0x79,
9713e696dfbSEd Maste 	0x0a, 0x12, 0x8b, 0x3b, 0x37, 0x2d, 0x97, 0x39,
9723e696dfbSEd Maste 	0x89, 0x92, 0x0c, 0x44, 0x7c, 0xe9, 0x9f, 0xce,
9733e696dfbSEd Maste 	0x6d, 0xad, 0xc5, 0xae, 0xea, 0x8e, 0x50, 0x22,
9743e696dfbSEd Maste 	0x37, 0xe0, 0xd1, 0x9e, 0xd6, 0xe6, 0xa8, 0xcc,
9753e696dfbSEd Maste 	0x21, 0xfb, 0xff, 0x02, 0x03, 0x01, 0x00, 0x01,
9763e696dfbSEd Maste 	0xa3, 0x82, 0x01, 0xf3, 0x30, 0x82, 0x01, 0xef,
9773e696dfbSEd Maste 	0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
9783e696dfbSEd Maste 	0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80,
9793e696dfbSEd Maste 	0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
9803e696dfbSEd Maste 	0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x6d,
9813e696dfbSEd Maste 	0x06, 0x03, 0x55, 0x1d, 0x20, 0x01, 0x01, 0xff,
9823e696dfbSEd Maste 	0x04, 0x63, 0x30, 0x61, 0x30, 0x5f, 0x06, 0x09,
9833e696dfbSEd Maste 	0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15,
9843e696dfbSEd Maste 	0x1f, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b,
9853e696dfbSEd Maste 	0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30,
9863e696dfbSEd Maste 	0x44, 0x1e, 0x42, 0x00, 0x54, 0x00, 0x43, 0x00,
9873e696dfbSEd Maste 	0x50, 0x00, 0x41, 0x00, 0x20, 0x00, 0x20, 0x00,
9883e696dfbSEd Maste 	0x54, 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00,
9893e696dfbSEd Maste 	0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00,
9903e696dfbSEd Maste 	0x20, 0x00, 0x50, 0x00, 0x6c, 0x00, 0x61, 0x00,
9913e696dfbSEd Maste 	0x74, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00,
9923e696dfbSEd Maste 	0x6d, 0x00, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00,
9933e696dfbSEd Maste 	0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00,
9943e696dfbSEd Maste 	0x69, 0x00, 0x74, 0x00, 0x79, 0x30, 0x10, 0x06,
9953e696dfbSEd Maste 	0x03, 0x55, 0x1d, 0x25, 0x04, 0x09, 0x30, 0x07,
9963e696dfbSEd Maste 	0x06, 0x05, 0x67, 0x81, 0x05, 0x08, 0x03, 0x30,
9973e696dfbSEd Maste 	0x59, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x01, 0x01,
9983e696dfbSEd Maste 	0xff, 0x04, 0x4f, 0x30, 0x4d, 0xa4, 0x4b, 0x30,
9993e696dfbSEd Maste 	0x49, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05, 0x67,
10003e696dfbSEd Maste 	0x81, 0x05, 0x02, 0x01, 0x0c, 0x0b, 0x69, 0x64,
10013e696dfbSEd Maste 	0x3a, 0x35, 0x33, 0x35, 0x34, 0x34, 0x44, 0x32,
10023e696dfbSEd Maste 	0x30, 0x31, 0x17, 0x30, 0x15, 0x06, 0x05, 0x67,
10033e696dfbSEd Maste 	0x81, 0x05, 0x02, 0x02, 0x0c, 0x0c, 0x53, 0x54,
10043e696dfbSEd Maste 	0x33, 0x33, 0x48, 0x54, 0x50, 0x48, 0x41, 0x48,
10053e696dfbSEd Maste 	0x42, 0x34, 0x31, 0x16, 0x30, 0x14, 0x06, 0x05,
10063e696dfbSEd Maste 	0x67, 0x81, 0x05, 0x02, 0x03, 0x0c, 0x0b, 0x69,
10073e696dfbSEd Maste 	0x64, 0x3a, 0x30, 0x30, 0x34, 0x39, 0x30, 0x30,
10083e696dfbSEd Maste 	0x30, 0x34, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
10093e696dfbSEd Maste 	0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x45,
10103e696dfbSEd Maste 	0x1a, 0xec, 0xfc, 0x91, 0x70, 0xf8, 0x83, 0x8b,
10113e696dfbSEd Maste 	0x9c, 0x47, 0x2f, 0x0b, 0x9f, 0x07, 0xf3, 0x2f,
10123e696dfbSEd Maste 	0x7c, 0xa2, 0x8a, 0x30, 0x1d, 0x06, 0x03, 0x55,
10133e696dfbSEd Maste 	0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x55, 0xa6,
10143e696dfbSEd Maste 	0xee, 0xe3, 0x28, 0xdd, 0x40, 0x7f, 0x21, 0xd2,
10153e696dfbSEd Maste 	0x7b, 0x8c, 0x69, 0x2f, 0x8c, 0x08, 0x29, 0xbc,
10163e696dfbSEd Maste 	0x95, 0xb8, 0x30, 0x81, 0xb2, 0x06, 0x08, 0x2b,
10173e696dfbSEd Maste 	0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
10183e696dfbSEd Maste 	0x81, 0xa5, 0x30, 0x81, 0xa2, 0x30, 0x81, 0x9f,
10193e696dfbSEd Maste 	0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
10203e696dfbSEd Maste 	0x30, 0x02, 0x86, 0x81, 0x92, 0x68, 0x74, 0x74,
10213e696dfbSEd Maste 	0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x7a, 0x63, 0x73,
10223e696dfbSEd Maste 	0x70, 0x72, 0x6f, 0x64, 0x65, 0x75, 0x73, 0x61,
10233e696dfbSEd Maste 	0x69, 0x6b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
10243e696dfbSEd Maste 	0x68, 0x2e, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x63,
10253e696dfbSEd Maste 	0x6f, 0x72, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64,
10263e696dfbSEd Maste 	0x6f, 0x77, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
10273e696dfbSEd Maste 	0x65, 0x75, 0x73, 0x2d, 0x73, 0x74, 0x6d, 0x2d,
10283e696dfbSEd Maste 	0x6b, 0x65, 0x79, 0x69, 0x64, 0x2d, 0x31, 0x61,
10293e696dfbSEd Maste 	0x64, 0x62, 0x39, 0x39, 0x34, 0x61, 0x62, 0x35,
10303e696dfbSEd Maste 	0x38, 0x62, 0x65, 0x35, 0x37, 0x61, 0x30, 0x63,
10313e696dfbSEd Maste 	0x63, 0x39, 0x62, 0x39, 0x30, 0x30, 0x65, 0x37,
10323e696dfbSEd Maste 	0x38, 0x35, 0x31, 0x65, 0x31, 0x61, 0x34, 0x33,
10333e696dfbSEd Maste 	0x63, 0x30, 0x38, 0x36, 0x36, 0x30, 0x2f, 0x62,
10343e696dfbSEd Maste 	0x36, 0x63, 0x30, 0x64, 0x39, 0x38, 0x64, 0x2d,
10353e696dfbSEd Maste 	0x35, 0x37, 0x38, 0x61, 0x2d, 0x34, 0x62, 0x66,
10363e696dfbSEd Maste 	0x62, 0x2d, 0x61, 0x32, 0x64, 0x33, 0x2d, 0x65,
10373e696dfbSEd Maste 	0x64, 0x66, 0x65, 0x35, 0x66, 0x38, 0x32, 0x30,
10383e696dfbSEd Maste 	0x36, 0x30, 0x31, 0x2e, 0x63, 0x65, 0x72, 0x30,
10393e696dfbSEd Maste 	0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
10403e696dfbSEd Maste 	0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
10413e696dfbSEd Maste 	0x02, 0x01, 0x00, 0x2a, 0x08, 0x30, 0x1f, 0xfd,
10423e696dfbSEd Maste 	0x8f, 0x80, 0x9b, 0x4b, 0x37, 0x82, 0x61, 0x86,
10433e696dfbSEd Maste 	0x36, 0x57, 0x90, 0xb5, 0x1d, 0x1f, 0xa3, 0xae,
10443e696dfbSEd Maste 	0x68, 0xac, 0xa7, 0x96, 0x6a, 0x25, 0x5e, 0xc5,
10453e696dfbSEd Maste 	0x82, 0x7c, 0x36, 0x64, 0x58, 0x11, 0xcb, 0xa5,
10463e696dfbSEd Maste 	0xee, 0xbf, 0xc4, 0xdb, 0xa0, 0xc7, 0x82, 0x3b,
10473e696dfbSEd Maste 	0xa3, 0x85, 0x9b, 0xc4, 0xee, 0x07, 0x36, 0xd7,
10483e696dfbSEd Maste 	0xc7, 0xb6, 0x23, 0xed, 0xc2, 0x73, 0xab, 0xbe,
10493e696dfbSEd Maste 	0xbe, 0xee, 0x63, 0x17, 0xf9, 0xd7, 0x7a, 0x23,
10503e696dfbSEd Maste 	0x7b, 0xf8, 0x09, 0x7a, 0xaa, 0x7f, 0x67, 0xc3,
10513e696dfbSEd Maste 	0x04, 0x84, 0x71, 0x9b, 0x06, 0x9c, 0x07, 0x42,
10523e696dfbSEd Maste 	0x4b, 0x65, 0x41, 0x56, 0x58, 0x14, 0x92, 0xb0,
10533e696dfbSEd Maste 	0xb9, 0xaf, 0xa1, 0x39, 0xd4, 0x08, 0x2d, 0x71,
10543e696dfbSEd Maste 	0xd5, 0x6c, 0x56, 0xb9, 0x2b, 0x1e, 0xf3, 0x93,
10553e696dfbSEd Maste 	0xa5, 0xe9, 0xb2, 0x9b, 0x4d, 0x05, 0x2b, 0xbc,
10563e696dfbSEd Maste 	0xd2, 0x20, 0x57, 0x3b, 0xa4, 0x01, 0x68, 0x8c,
10573e696dfbSEd Maste 	0x23, 0x20, 0x7d, 0xbb, 0x71, 0xe4, 0x2a, 0x24,
10583e696dfbSEd Maste 	0xba, 0x75, 0x0c, 0x89, 0x54, 0x22, 0xeb, 0x0e,
10593e696dfbSEd Maste 	0xb2, 0xf4, 0xc2, 0x1f, 0x02, 0xb7, 0xe3, 0x06,
10603e696dfbSEd Maste 	0x41, 0x15, 0x6b, 0xf3, 0xc8, 0x2d, 0x5b, 0xc2,
10613e696dfbSEd Maste 	0x21, 0x82, 0x3e, 0xe8, 0x95, 0x40, 0x39, 0x9e,
10623e696dfbSEd Maste 	0x91, 0x68, 0x33, 0x0c, 0x3d, 0x45, 0xef, 0x99,
10633e696dfbSEd Maste 	0x79, 0xe6, 0x32, 0xc9, 0x00, 0x84, 0x36, 0xfb,
10643e696dfbSEd Maste 	0x0a, 0x8d, 0x41, 0x1c, 0x32, 0x64, 0x06, 0x9e,
10653e696dfbSEd Maste 	0x0f, 0xb5, 0x04, 0xcc, 0x08, 0xb1, 0xb6, 0x2b,
10663e696dfbSEd Maste 	0xcf, 0x36, 0x0f, 0x73, 0x14, 0x8e, 0x25, 0x44,
10673e696dfbSEd Maste 	0xb3, 0x0c, 0x34, 0x14, 0x96, 0x0c, 0x8a, 0x65,
10683e696dfbSEd Maste 	0xa1, 0xde, 0x8e, 0xc8, 0x9d, 0xbe, 0x66, 0xdf,
10693e696dfbSEd Maste 	0x06, 0x91, 0xca, 0x15, 0x0f, 0x92, 0xd5, 0x2a,
10703e696dfbSEd Maste 	0x0b, 0xdc, 0x4c, 0x6a, 0xf3, 0x16, 0x4a, 0x3e,
10713e696dfbSEd Maste 	0xb9, 0x76, 0xbc, 0xfe, 0x62, 0xd4, 0xa8, 0xcd,
10723e696dfbSEd Maste 	0x94, 0x78, 0x0d, 0xdd, 0x94, 0xfd, 0x5e, 0x63,
10733e696dfbSEd Maste 	0x57, 0x27, 0x05, 0x9c, 0xd0, 0x80, 0x91, 0x91,
10743e696dfbSEd Maste 	0x79, 0xe8, 0x5e, 0x18, 0x64, 0x22, 0xe4, 0x2c,
10753e696dfbSEd Maste 	0x13, 0x65, 0xa4, 0x51, 0x5a, 0x1e, 0x3b, 0x71,
10763e696dfbSEd Maste 	0x2e, 0x70, 0x9f, 0xc4, 0xa5, 0x20, 0xcd, 0xef,
10773e696dfbSEd Maste 	0xd8, 0x3f, 0xa4, 0xf5, 0x89, 0x8a, 0xa5, 0x4f,
10783e696dfbSEd Maste 	0x76, 0x2d, 0x49, 0x56, 0x00, 0x8d, 0xde, 0x40,
10793e696dfbSEd Maste 	0xba, 0x24, 0x46, 0x51, 0x38, 0xad, 0xdb, 0xc4,
10803e696dfbSEd Maste 	0x04, 0xf4, 0x6e, 0xc0, 0x29, 0x48, 0x07, 0x6a,
10813e696dfbSEd Maste 	0x1b, 0x26, 0x32, 0x0a, 0xfb, 0xea, 0x71, 0x2a,
10823e696dfbSEd Maste 	0x11, 0xfc, 0x98, 0x7c, 0x44, 0x87, 0xbc, 0x06,
10833e696dfbSEd Maste 	0x3a, 0x4d, 0xbd, 0x91, 0x63, 0x4f, 0x26, 0x48,
10843e696dfbSEd Maste 	0x54, 0x47, 0x1b, 0xbd, 0xf0, 0xf1, 0x56, 0x05,
10853e696dfbSEd Maste 	0xc5, 0x0f, 0x8f, 0x20, 0xa5, 0xcc, 0xfb, 0x76,
10863e696dfbSEd Maste 	0xb0, 0xbd, 0x83, 0xde, 0x7f, 0x39, 0x4f, 0xcf,
10873e696dfbSEd Maste 	0x61, 0x74, 0x52, 0xa7, 0x1d, 0xf6, 0xb5, 0x5e,
10883e696dfbSEd Maste 	0x4a, 0x82, 0x20, 0xc1, 0x94, 0xaa, 0x2c, 0x33,
10893e696dfbSEd Maste 	0xd6, 0x0a, 0xf9, 0x8f, 0x92, 0xc6, 0x29, 0x80,
10903e696dfbSEd Maste 	0xf5, 0xa2, 0xb1, 0xff, 0xb6, 0x2b, 0xaa, 0x04,
10913e696dfbSEd Maste 	0x00, 0x72, 0xb4, 0x12, 0xbb, 0xb1, 0xf1, 0x3c,
10923e696dfbSEd Maste 	0x88, 0xa3, 0xab, 0x49, 0x17, 0x90, 0x80, 0x59,
10933e696dfbSEd Maste 	0xa2, 0x96, 0x41, 0x69, 0x74, 0x33, 0x8a, 0x28,
10943e696dfbSEd Maste 	0x33, 0x7e, 0xb3, 0x19, 0x92, 0x28, 0xc1, 0xf0,
10953e696dfbSEd Maste 	0xd1, 0x82, 0xd5, 0x42, 0xff, 0xe7, 0xa5, 0x3f,
10963e696dfbSEd Maste 	0x1e, 0xb6, 0x4a, 0x23, 0xcc, 0x6a, 0x7f, 0x15,
10973e696dfbSEd Maste 	0x15, 0x52, 0x25, 0xb1, 0xca, 0x21, 0x95, 0x11,
10983e696dfbSEd Maste 	0x53, 0x3e, 0x1f, 0x50, 0x33, 0x12, 0x7a, 0x62,
10993e696dfbSEd Maste 	0xce, 0xcc, 0x71, 0xc2, 0x5f, 0x34, 0x47, 0xc6,
11003e696dfbSEd Maste 	0x7c, 0x71, 0xfa, 0xa0, 0x54, 0x00, 0xb2, 0xdf,
11013e696dfbSEd Maste 	0xc5, 0x54, 0xac, 0x6c, 0x53, 0xef, 0x64, 0x6b,
11023e696dfbSEd Maste 	0x08, 0x82, 0xd8, 0x16, 0x1e, 0xca, 0x40, 0xf3,
11033e696dfbSEd Maste 	0x1f, 0xdf, 0x56, 0x63, 0x10, 0xbc, 0xd7, 0xa0,
11043e696dfbSEd Maste 	0xeb, 0xee, 0xd1, 0x95, 0xe5, 0xef, 0xf1, 0x6a,
11053e696dfbSEd Maste 	0x83, 0x2d, 0x5a, 0x59, 0x06, 0xef, 0x30, 0x82,
11063e696dfbSEd Maste 	0x06, 0xeb, 0x30, 0x82, 0x04, 0xd3, 0xa0, 0x03,
11073e696dfbSEd Maste 	0x02, 0x01, 0x02, 0x02, 0x13, 0x33, 0x00, 0x00,
11083e696dfbSEd Maste 	0x05, 0x23, 0xbf, 0xe8, 0xa1, 0x1a, 0x2a, 0x68,
11093e696dfbSEd Maste 	0xbd, 0x09, 0x00, 0x00, 0x00, 0x00, 0x05, 0x23,
11103e696dfbSEd Maste 	0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
11113e696dfbSEd Maste 	0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
11123e696dfbSEd Maste 	0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
11133e696dfbSEd Maste 	0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
11143e696dfbSEd Maste 	0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
11153e696dfbSEd Maste 	0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e,
11163e696dfbSEd Maste 	0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e,
11173e696dfbSEd Maste 	0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52,
11183e696dfbSEd Maste 	0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e,
11193e696dfbSEd Maste 	0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
11203e696dfbSEd Maste 	0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
11213e696dfbSEd Maste 	0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f,
11223e696dfbSEd Maste 	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x36,
11233e696dfbSEd Maste 	0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
11243e696dfbSEd Maste 	0x2d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
11253e696dfbSEd Maste 	0x66, 0x74, 0x20, 0x54, 0x50, 0x4d, 0x20, 0x52,
11263e696dfbSEd Maste 	0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74,
11273e696dfbSEd Maste 	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
11283e696dfbSEd Maste 	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
11293e696dfbSEd Maste 	0x79, 0x20, 0x32, 0x30, 0x31, 0x34, 0x30, 0x1e,
11303e696dfbSEd Maste 	0x17, 0x0d, 0x32, 0x31, 0x30, 0x36, 0x30, 0x33,
11313e696dfbSEd Maste 	0x31, 0x39, 0x34, 0x30, 0x31, 0x36, 0x5a, 0x17,
11323e696dfbSEd Maste 	0x0d, 0x32, 0x37, 0x30, 0x36, 0x30, 0x33, 0x31,
11333e696dfbSEd Maste 	0x39, 0x34, 0x30, 0x31, 0x36, 0x5a, 0x30, 0x41,
11343e696dfbSEd Maste 	0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04,
11353e696dfbSEd Maste 	0x03, 0x13, 0x36, 0x45, 0x55, 0x53, 0x2d, 0x53,
11363e696dfbSEd Maste 	0x54, 0x4d, 0x2d, 0x4b, 0x45, 0x59, 0x49, 0x44,
11373e696dfbSEd Maste 	0x2d, 0x31, 0x41, 0x44, 0x42, 0x39, 0x39, 0x34,
11383e696dfbSEd Maste 	0x41, 0x42, 0x35, 0x38, 0x42, 0x45, 0x35, 0x37,
11393e696dfbSEd Maste 	0x41, 0x30, 0x43, 0x43, 0x39, 0x42, 0x39, 0x30,
11403e696dfbSEd Maste 	0x30, 0x45, 0x37, 0x38, 0x35, 0x31, 0x45, 0x31,
11413e696dfbSEd Maste 	0x41, 0x34, 0x33, 0x43, 0x30, 0x38, 0x36, 0x36,
11423e696dfbSEd Maste 	0x30, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06,
11433e696dfbSEd Maste 	0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
11443e696dfbSEd Maste 	0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f,
11453e696dfbSEd Maste 	0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
11463e696dfbSEd Maste 	0x01, 0x00, 0xdb, 0x03, 0x34, 0x82, 0xfa, 0x81,
11473e696dfbSEd Maste 	0x1c, 0x84, 0x0b, 0xa0, 0x0e, 0x60, 0xd8, 0x9d,
11483e696dfbSEd Maste 	0x84, 0xf4, 0x81, 0xc4, 0xe9, 0xff, 0xcf, 0xe9,
11493e696dfbSEd Maste 	0xa3, 0x57, 0x53, 0x60, 0xa8, 0x19, 0xce, 0xbe,
11503e696dfbSEd Maste 	0xe1, 0x97, 0xee, 0x5d, 0x8c, 0x9f, 0xe4, 0xbd,
11513e696dfbSEd Maste 	0xef, 0xbd, 0x94, 0x14, 0xe4, 0x74, 0x41, 0x02,
11523e696dfbSEd Maste 	0xe9, 0x03, 0x19, 0x9f, 0xdd, 0x48, 0x2d, 0xbd,
11533e696dfbSEd Maste 	0xca, 0x26, 0x47, 0x2c, 0x01, 0x31, 0x5f, 0x34,
11543e696dfbSEd Maste 	0xef, 0x59, 0x35, 0x48, 0x36, 0x3d, 0x1e, 0xdf,
11553e696dfbSEd Maste 	0xd8, 0x13, 0xf0, 0xd0, 0x67, 0xc1, 0xb0, 0x47,
11563e696dfbSEd Maste 	0x67, 0xa2, 0xd6, 0x62, 0xc8, 0xe1, 0x00, 0x36,
11573e696dfbSEd Maste 	0x8b, 0x45, 0xf6, 0x3b, 0x96, 0x60, 0xa0, 0x45,
11583e696dfbSEd Maste 	0x26, 0xcb, 0xc7, 0x0b, 0x5b, 0x97, 0xd1, 0xaf,
11593e696dfbSEd Maste 	0x54, 0x25, 0x7a, 0x67, 0xe4, 0x2a, 0xd8, 0x9d,
11603e696dfbSEd Maste 	0x53, 0x05, 0xbd, 0x12, 0xac, 0xa2, 0x8e, 0x95,
11613e696dfbSEd Maste 	0xb4, 0x2a, 0xca, 0x89, 0x93, 0x64, 0x97, 0x25,
11623e696dfbSEd Maste 	0xdc, 0x1f, 0xa9, 0xe0, 0x55, 0x07, 0x38, 0x1d,
11633e696dfbSEd Maste 	0xee, 0x02, 0x90, 0x22, 0xf5, 0xad, 0x4e, 0x5c,
11643e696dfbSEd Maste 	0xf8, 0xc5, 0x1f, 0x9e, 0x84, 0x7e, 0x13, 0x47,
11653e696dfbSEd Maste 	0x52, 0xa2, 0x36, 0xf9, 0xf6, 0xbf, 0x76, 0x9e,
11663e696dfbSEd Maste 	0x0f, 0xdd, 0x14, 0x99, 0xb9, 0xd8, 0x5a, 0x42,
11673e696dfbSEd Maste 	0x3d, 0xd8, 0xbf, 0xdd, 0xb4, 0x9b, 0xbf, 0x6a,
11683e696dfbSEd Maste 	0x9f, 0x89, 0x13, 0x75, 0xaf, 0x96, 0xd2, 0x72,
11693e696dfbSEd Maste 	0xdf, 0xb3, 0x80, 0x6f, 0x84, 0x1a, 0x9d, 0x06,
11703e696dfbSEd Maste 	0x55, 0x09, 0x29, 0xea, 0xa7, 0x05, 0x31, 0xec,
11713e696dfbSEd Maste 	0x47, 0x3a, 0xcf, 0x3f, 0x9c, 0x2c, 0xbd, 0xd0,
11723e696dfbSEd Maste 	0x7d, 0xe4, 0x75, 0x5b, 0x33, 0xbe, 0x12, 0x86,
11733e696dfbSEd Maste 	0x09, 0xcf, 0x66, 0x9a, 0xeb, 0xf8, 0xf8, 0x72,
11743e696dfbSEd Maste 	0x91, 0x88, 0x4a, 0x5e, 0x89, 0x62, 0x6a, 0x94,
11753e696dfbSEd Maste 	0xdc, 0x48, 0x37, 0x13, 0xd8, 0x91, 0x02, 0xe3,
11763e696dfbSEd Maste 	0x42, 0x41, 0x7c, 0x2f, 0xe3, 0xb6, 0x0f, 0xb4,
11773e696dfbSEd Maste 	0x96, 0x06, 0x80, 0xca, 0x28, 0x01, 0x6f, 0x4b,
11783e696dfbSEd Maste 	0xcd, 0x28, 0xd4, 0x2c, 0x94, 0x7e, 0x40, 0x7e,
11793e696dfbSEd Maste 	0xdf, 0x01, 0xe5, 0xf2, 0x33, 0xd4, 0xda, 0xf4,
11803e696dfbSEd Maste 	0x1a, 0x17, 0xf7, 0x5d, 0xcb, 0x66, 0x2c, 0x2a,
11813e696dfbSEd Maste 	0xeb, 0xe1, 0xb1, 0x4a, 0xc3, 0x85, 0x63, 0xb2,
11823e696dfbSEd Maste 	0xac, 0xd0, 0x3f, 0x1a, 0x8d, 0xa5, 0x0c, 0xee,
11833e696dfbSEd Maste 	0x4f, 0xde, 0x74, 0x9c, 0xe0, 0x5a, 0x10, 0xc7,
11843e696dfbSEd Maste 	0xb8, 0xe4, 0xec, 0xe7, 0x73, 0xa6, 0x41, 0x42,
11853e696dfbSEd Maste 	0x37, 0xe1, 0xdf, 0xb9, 0xc7, 0xb5, 0x14, 0xa8,
11863e696dfbSEd Maste 	0x80, 0x95, 0xa0, 0x12, 0x67, 0x99, 0xf5, 0xba,
11873e696dfbSEd Maste 	0x25, 0x0a, 0x74, 0x86, 0x71, 0x9c, 0x7f, 0x59,
11883e696dfbSEd Maste 	0x97, 0xd2, 0x3f, 0x10, 0xfe, 0x6a, 0xb9, 0xe4,
11893e696dfbSEd Maste 	0x47, 0x36, 0xfb, 0x0f, 0x50, 0xee, 0xfc, 0x87,
11903e696dfbSEd Maste 	0x99, 0x7e, 0x36, 0x64, 0x1b, 0xc7, 0x13, 0xb3,
11913e696dfbSEd Maste 	0x33, 0x18, 0x71, 0xa4, 0xc3, 0xb0, 0xfc, 0x45,
11923e696dfbSEd Maste 	0x37, 0x11, 0x40, 0xb3, 0xde, 0x2c, 0x9f, 0x0a,
11933e696dfbSEd Maste 	0xcd, 0xaf, 0x5e, 0xfb, 0xd5, 0x9c, 0xea, 0xd7,
11943e696dfbSEd Maste 	0x24, 0x19, 0x3a, 0x92, 0x80, 0xa5, 0x63, 0xc5,
11953e696dfbSEd Maste 	0x3e, 0xdd, 0x51, 0xd0, 0x9f, 0xb8, 0x5e, 0xd5,
11963e696dfbSEd Maste 	0xf1, 0xfe, 0xa5, 0x93, 0xfb, 0x7f, 0xd9, 0xb8,
11973e696dfbSEd Maste 	0xb7, 0x0e, 0x0d, 0x12, 0x71, 0xf0, 0x52, 0x9d,
11983e696dfbSEd Maste 	0xe9, 0xd0, 0xd2, 0x8b, 0x38, 0x8b, 0x85, 0x83,
11993e696dfbSEd Maste 	0x98, 0x24, 0x88, 0xe8, 0x42, 0x30, 0x83, 0x12,
12003e696dfbSEd Maste 	0xef, 0x09, 0x96, 0x2f, 0x21, 0x81, 0x05, 0x30,
12013e696dfbSEd Maste 	0x0c, 0xbb, 0xba, 0x21, 0x39, 0x16, 0x12, 0xe8,
12023e696dfbSEd Maste 	0x4b, 0x7b, 0x7a, 0x66, 0xb8, 0x22, 0x2c, 0x71,
12033e696dfbSEd Maste 	0xaf, 0x59, 0xa1, 0xfc, 0x61, 0xf1, 0xb4, 0x5e,
12043e696dfbSEd Maste 	0xfc, 0x43, 0x19, 0x45, 0x6e, 0xa3, 0x45, 0xe4,
12053e696dfbSEd Maste 	0xcb, 0x66, 0x5f, 0xe0, 0x57, 0xf6, 0x0a, 0x30,
12063e696dfbSEd Maste 	0xa3, 0xd6, 0x51, 0x24, 0xc9, 0x07, 0x55, 0x82,
12073e696dfbSEd Maste 	0x4a, 0x66, 0x0e, 0x9d, 0xb2, 0x2f, 0x84, 0x56,
12083e696dfbSEd Maste 	0x6c, 0x3e, 0x71, 0xef, 0x9b, 0x35, 0x4d, 0x72,
12093e696dfbSEd Maste 	0xdc, 0x46, 0x2a, 0xe3, 0x7b, 0x13, 0x20, 0xbf,
12103e696dfbSEd Maste 	0xab, 0x77, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
12113e696dfbSEd Maste 	0x82, 0x01, 0x8e, 0x30, 0x82, 0x01, 0x8a, 0x30,
12123e696dfbSEd Maste 	0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
12133e696dfbSEd Maste 	0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x84, 0x30,
12143e696dfbSEd Maste 	0x1b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x14,
12153e696dfbSEd Maste 	0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
12163e696dfbSEd Maste 	0x01, 0x82, 0x37, 0x15, 0x24, 0x06, 0x05, 0x67,
12173e696dfbSEd Maste 	0x81, 0x05, 0x08, 0x03, 0x30, 0x16, 0x06, 0x03,
12183e696dfbSEd Maste 	0x55, 0x1d, 0x20, 0x04, 0x0f, 0x30, 0x0d, 0x30,
12193e696dfbSEd Maste 	0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
12203e696dfbSEd Maste 	0x82, 0x37, 0x15, 0x1f, 0x30, 0x12, 0x06, 0x03,
12213e696dfbSEd Maste 	0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
12223e696dfbSEd Maste 	0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
12233e696dfbSEd Maste 	0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
12243e696dfbSEd Maste 	0x16, 0x04, 0x14, 0x45, 0x1a, 0xec, 0xfc, 0x91,
12253e696dfbSEd Maste 	0x70, 0xf8, 0x83, 0x8b, 0x9c, 0x47, 0x2f, 0x0b,
12263e696dfbSEd Maste 	0x9f, 0x07, 0xf3, 0x2f, 0x7c, 0xa2, 0x8a, 0x30,
12273e696dfbSEd Maste 	0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
12283e696dfbSEd Maste 	0x30, 0x16, 0x80, 0x14, 0x7a, 0x8c, 0x0a, 0xce,
12293e696dfbSEd Maste 	0x2f, 0x48, 0x62, 0x17, 0xe2, 0x94, 0xd1, 0xae,
12303e696dfbSEd Maste 	0x55, 0xc1, 0x52, 0xec, 0x71, 0x74, 0xa4, 0x56,
12313e696dfbSEd Maste 	0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
12323e696dfbSEd Maste 	0x69, 0x30, 0x67, 0x30, 0x65, 0xa0, 0x63, 0xa0,
12333e696dfbSEd Maste 	0x61, 0x86, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x3a,
12343e696dfbSEd Maste 	0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69,
12353e696dfbSEd Maste 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e,
12363e696dfbSEd Maste 	0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x6f,
12373e696dfbSEd Maste 	0x70, 0x73, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x4d,
12383e696dfbSEd Maste 	0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
12393e696dfbSEd Maste 	0x25, 0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32,
12403e696dfbSEd Maste 	0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30,
12413e696dfbSEd Maste 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
12423e696dfbSEd Maste 	0x61, 0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75,
12433e696dfbSEd Maste 	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25,
12443e696dfbSEd Maste 	0x32, 0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63,
12453e696dfbSEd Maste 	0x72, 0x6c, 0x30, 0x7d, 0x06, 0x08, 0x2b, 0x06,
12463e696dfbSEd Maste 	0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x71,
12473e696dfbSEd Maste 	0x30, 0x6f, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
12483e696dfbSEd Maste 	0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x61,
12493e696dfbSEd Maste 	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
12503e696dfbSEd Maste 	0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
12513e696dfbSEd Maste 	0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
12523e696dfbSEd Maste 	0x2f, 0x70, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x2f,
12533e696dfbSEd Maste 	0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69,
12543e696dfbSEd Maste 	0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x25,
12553e696dfbSEd Maste 	0x32, 0x30, 0x54, 0x50, 0x4d, 0x25, 0x32, 0x30,
12563e696dfbSEd Maste 	0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43,
12573e696dfbSEd Maste 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
12583e696dfbSEd Maste 	0x74, 0x65, 0x25, 0x32, 0x30, 0x41, 0x75, 0x74,
12593e696dfbSEd Maste 	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x25, 0x32,
12603e696dfbSEd Maste 	0x30, 0x32, 0x30, 0x31, 0x34, 0x2e, 0x63, 0x72,
12613e696dfbSEd Maste 	0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
12623e696dfbSEd Maste 	0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
12633e696dfbSEd Maste 	0x03, 0x82, 0x02, 0x01, 0x00, 0x48, 0x24, 0x32,
12643e696dfbSEd Maste 	0xe8, 0xd6, 0x38, 0xda, 0x65, 0xec, 0x1b, 0x18,
12653e696dfbSEd Maste 	0x8e, 0x37, 0x07, 0xd5, 0x18, 0x5a, 0xc8, 0xb9,
12663e696dfbSEd Maste 	0xbb, 0x24, 0x8a, 0x4d, 0xa1, 0x3c, 0x9e, 0x46,
12673e696dfbSEd Maste 	0x76, 0xcf, 0xa5, 0xdf, 0xd7, 0x61, 0xba, 0x05,
12683e696dfbSEd Maste 	0x89, 0x3c, 0x13, 0xc2, 0x1f, 0x71, 0xe3, 0xec,
12693e696dfbSEd Maste 	0x5d, 0x54, 0x9e, 0xd9, 0x01, 0x5a, 0x10, 0x3b,
12703e696dfbSEd Maste 	0x17, 0x75, 0xde, 0xa1, 0x45, 0xbf, 0x1d, 0x1b,
12713e696dfbSEd Maste 	0x41, 0x21, 0x42, 0x68, 0x22, 0x6b, 0xbb, 0xcb,
12723e696dfbSEd Maste 	0x11, 0x04, 0xd2, 0xae, 0x86, 0xcf, 0x73, 0x5a,
12733e696dfbSEd Maste 	0xf2, 0x80, 0x18, 0x00, 0xf0, 0xd6, 0x6c, 0x5a,
12743e696dfbSEd Maste 	0x1e, 0xb3, 0x4d, 0x30, 0x02, 0x4a, 0x6a, 0x03,
12753e696dfbSEd Maste 	0x36, 0x42, 0xde, 0xb2, 0x52, 0x55, 0xff, 0x71,
12763e696dfbSEd Maste 	0xeb, 0x7b, 0x8b, 0x55, 0x6c, 0xdf, 0x05, 0x35,
12773e696dfbSEd Maste 	0x47, 0x70, 0x53, 0xfb, 0x6c, 0xba, 0x06, 0xb2,
12783e696dfbSEd Maste 	0x61, 0x86, 0xdc, 0x2a, 0x64, 0x81, 0x24, 0x79,
12793e696dfbSEd Maste 	0x46, 0x73, 0x04, 0x55, 0x59, 0xed, 0xd6, 0x06,
12803e696dfbSEd Maste 	0x61, 0x15, 0xf9, 0x8d, 0x78, 0x39, 0x7b, 0x84,
12813e696dfbSEd Maste 	0x7a, 0x40, 0x45, 0x13, 0x1a, 0x91, 0x71, 0x8f,
12823e696dfbSEd Maste 	0xd1, 0x4f, 0x78, 0x10, 0x68, 0x9b, 0x15, 0x79,
12833e696dfbSEd Maste 	0x3f, 0x79, 0x2d, 0x9b, 0xc7, 0x5d, 0xa3, 0xcf,
12843e696dfbSEd Maste 	0xa9, 0x14, 0xb0, 0xc4, 0xdb, 0xa9, 0x45, 0x6a,
12853e696dfbSEd Maste 	0x6e, 0x60, 0x45, 0x0b, 0x14, 0x25, 0xc7, 0x74,
12863e696dfbSEd Maste 	0xd0, 0x36, 0xaf, 0xc5, 0xbd, 0x4f, 0x7b, 0xc0,
12873e696dfbSEd Maste 	0x04, 0x43, 0x85, 0xbb, 0x06, 0x36, 0x77, 0x26,
12883e696dfbSEd Maste 	0x02, 0x23, 0x0b, 0xf8, 0x57, 0x8f, 0x1f, 0x27,
12893e696dfbSEd Maste 	0x30, 0x95, 0xff, 0x83, 0x23, 0x2b, 0x49, 0x33,
12903e696dfbSEd Maste 	0x43, 0x62, 0x87, 0x5d, 0x27, 0x12, 0x1a, 0x68,
12913e696dfbSEd Maste 	0x7b, 0xba, 0x2d, 0xf6, 0xed, 0x2c, 0x26, 0xb5,
12923e696dfbSEd Maste 	0xbb, 0xe2, 0x6f, 0xc2, 0x61, 0x17, 0xfc, 0x72,
12933e696dfbSEd Maste 	0x14, 0x57, 0x2c, 0x2c, 0x5a, 0x92, 0x13, 0x41,
12943e696dfbSEd Maste 	0xc4, 0x7e, 0xb5, 0x64, 0x5b, 0x86, 0x57, 0x13,
12953e696dfbSEd Maste 	0x14, 0xff, 0xf5, 0x04, 0xb9, 0x3d, 0x2d, 0xc3,
12963e696dfbSEd Maste 	0xe9, 0x75, 0x1f, 0x68, 0x0b, 0xb5, 0x76, 0xe1,
12973e696dfbSEd Maste 	0x7d, 0xe3, 0xb0, 0x14, 0xa8, 0x45, 0x05, 0x98,
12983e696dfbSEd Maste 	0x81, 0x32, 0xc1, 0xf5, 0x49, 0x4d, 0x58, 0xa4,
12993e696dfbSEd Maste 	0xee, 0xd8, 0x84, 0xba, 0x65, 0x07, 0x8d, 0xf7,
13003e696dfbSEd Maste 	0x9a, 0xff, 0x7d, 0xa5, 0xbc, 0x9a, 0xed, 0x4a,
13013e696dfbSEd Maste 	0x5d, 0xa4, 0x97, 0x4b, 0x4d, 0x31, 0x90, 0xb5,
13023e696dfbSEd Maste 	0x7d, 0x28, 0x77, 0x25, 0x88, 0x1c, 0xbf, 0x78,
13033e696dfbSEd Maste 	0x22, 0xb2, 0xb5, 0x5c, 0x9a, 0xc9, 0x63, 0x17,
13043e696dfbSEd Maste 	0x96, 0xe9, 0xc2, 0x52, 0x30, 0xb8, 0x9b, 0x37,
13053e696dfbSEd Maste 	0x69, 0x1a, 0x6a, 0x66, 0x76, 0x18, 0xac, 0xc0,
13063e696dfbSEd Maste 	0x48, 0xee, 0x46, 0x5b, 0xbe, 0x6a, 0xd5, 0x72,
13073e696dfbSEd Maste 	0x07, 0xdc, 0x7d, 0x05, 0xbe, 0x76, 0x7d, 0xa5,
13083e696dfbSEd Maste 	0x5e, 0x53, 0xb5, 0x47, 0x80, 0x58, 0xf0, 0xaf,
13093e696dfbSEd Maste 	0x6f, 0x4e, 0xc0, 0xf1, 0x1e, 0x37, 0x64, 0x15,
13103e696dfbSEd Maste 	0x42, 0x96, 0x18, 0x3a, 0x89, 0xc8, 0x14, 0x48,
13113e696dfbSEd Maste 	0x89, 0x5c, 0x12, 0x88, 0x98, 0x0b, 0x7b, 0x4e,
13123e696dfbSEd Maste 	0xce, 0x1c, 0xda, 0xd5, 0xa4, 0xd3, 0x32, 0x32,
13133e696dfbSEd Maste 	0x74, 0x5b, 0xcc, 0xfd, 0x2b, 0x02, 0xfb, 0xae,
13143e696dfbSEd Maste 	0xd0, 0x5a, 0x4c, 0xc9, 0xc1, 0x35, 0x19, 0x90,
13153e696dfbSEd Maste 	0x5f, 0xca, 0x14, 0xeb, 0x4c, 0x17, 0xd7, 0xe3,
13163e696dfbSEd Maste 	0xe2, 0x5d, 0xb4, 0x49, 0xaa, 0xf0, 0x50, 0x87,
13173e696dfbSEd Maste 	0xc3, 0x20, 0x00, 0xda, 0xe9, 0x04, 0x80, 0x64,
13183e696dfbSEd Maste 	0xac, 0x9f, 0xcd, 0x26, 0x41, 0x48, 0xe8, 0x4c,
13193e696dfbSEd Maste 	0x46, 0xcc, 0x5b, 0xd7, 0xca, 0x4c, 0x1b, 0x43,
13203e696dfbSEd Maste 	0x43, 0x1e, 0xbd, 0x94, 0xe7, 0xa7, 0xa6, 0x86,
13213e696dfbSEd Maste 	0xe5, 0xd1, 0x78, 0x29, 0xa2, 0x40, 0xc5, 0xc5,
13223e696dfbSEd Maste 	0x47, 0xb6, 0x6d, 0x53, 0xde, 0xac, 0x97, 0x74,
13233e696dfbSEd Maste 	0x24, 0x57, 0xcc, 0x05, 0x93, 0xfd, 0x52, 0x35,
13243e696dfbSEd Maste 	0x29, 0xd5, 0xe0, 0xfa, 0x23, 0x0d, 0xd7, 0xaa,
13253e696dfbSEd Maste 	0x8b, 0x07, 0x4b, 0xf6, 0x64, 0xc7, 0xad, 0x3c,
13263e696dfbSEd Maste 	0xa1, 0xb5, 0xc5, 0x70, 0xaf, 0x46, 0xfe, 0x9a,
13273e696dfbSEd Maste 	0x82, 0x4d, 0x75, 0xb8, 0x6d, 0x67, 0x70, 0x75,
13283e696dfbSEd Maste 	0x62, 0x41, 0x72, 0x65, 0x61, 0x58, 0x76, 0x00,
13293e696dfbSEd Maste 	0x23, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x72, 0x00,
13303e696dfbSEd Maste 	0x20, 0x9d, 0xff, 0xcb, 0xf3, 0x6c, 0x38, 0x3a,
13313e696dfbSEd Maste 	0xe6, 0x99, 0xfb, 0x98, 0x68, 0xdc, 0x6d, 0xcb,
13323e696dfbSEd Maste 	0x89, 0xd7, 0x15, 0x38, 0x84, 0xbe, 0x28, 0x03,
13333e696dfbSEd Maste 	0x92, 0x2c, 0x12, 0x41, 0x58, 0xbf, 0xad, 0x22,
13343e696dfbSEd Maste 	0xae, 0x00, 0x10, 0x00, 0x10, 0x00, 0x03, 0x00,
13353e696dfbSEd Maste 	0x10, 0x00, 0x20, 0xfb, 0xd6, 0xba, 0x74, 0xe6,
13363e696dfbSEd Maste 	0x6e, 0x5c, 0x87, 0xef, 0x89, 0xa2, 0xe8, 0x3d,
13373e696dfbSEd Maste 	0x0b, 0xe9, 0x69, 0x2c, 0x07, 0x07, 0x7a, 0x8a,
13383e696dfbSEd Maste 	0x1e, 0xce, 0x12, 0xea, 0x3b, 0xb3, 0xf1, 0xf3,
13393e696dfbSEd Maste 	0xd9, 0xc3, 0xe6, 0x00, 0x20, 0x3c, 0x68, 0x51,
13403e696dfbSEd Maste 	0x94, 0x54, 0x8d, 0xeb, 0x9f, 0xb2, 0x2c, 0x66,
13413e696dfbSEd Maste 	0x75, 0xb6, 0xb7, 0x55, 0x22, 0x0d, 0x87, 0x59,
13423e696dfbSEd Maste 	0xc4, 0x39, 0x91, 0x62, 0x17, 0xc2, 0xc3, 0x53,
13433e696dfbSEd Maste 	0xa5, 0x26, 0x97, 0x4f, 0x2d, 0x68, 0x63, 0x65,
13443e696dfbSEd Maste 	0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x58, 0xa1,
13453e696dfbSEd Maste 	0xff, 0x54, 0x43, 0x47, 0x80, 0x17, 0x00, 0x22,
13463e696dfbSEd Maste 	0x00, 0x0b, 0x73, 0xbe, 0xb7, 0x40, 0x82, 0xc0,
13473e696dfbSEd Maste 	0x49, 0x9a, 0xf7, 0xf2, 0xd0, 0x79, 0x6c, 0x88,
13483e696dfbSEd Maste 	0xf3, 0x56, 0x7b, 0x7a, 0x7d, 0xcd, 0x70, 0xd1,
13493e696dfbSEd Maste 	0xbc, 0x41, 0x88, 0x48, 0x51, 0x03, 0xf3, 0x58,
13503e696dfbSEd Maste 	0x3e, 0xb8, 0x00, 0x14, 0x9f, 0x57, 0x39, 0x67,
13513e696dfbSEd Maste 	0xa8, 0x7b, 0xd8, 0xf6, 0x9e, 0x75, 0xc9, 0x85,
13523e696dfbSEd Maste 	0xab, 0xe3, 0x55, 0xc7, 0x9c, 0xf6, 0xd8, 0x4f,
13533e696dfbSEd Maste 	0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x1c, 0x12,
13543e696dfbSEd Maste 	0xfd, 0xc6, 0x05, 0xc6, 0x2b, 0xf5, 0xe9, 0x88,
13553e696dfbSEd Maste 	0x01, 0x1f, 0x70, 0x8d, 0x98, 0x2a, 0x04, 0x21,
13563e696dfbSEd Maste 	0x30, 0x00, 0x22, 0x00, 0x0b, 0xf4, 0xfd, 0x9a,
13573e696dfbSEd Maste 	0x33, 0x55, 0x21, 0x08, 0x27, 0x48, 0x55, 0x01,
13583e696dfbSEd Maste 	0x56, 0xf9, 0x0b, 0x4e, 0x47, 0x55, 0x08, 0x2e,
13593e696dfbSEd Maste 	0x3c, 0x91, 0x3d, 0x6e, 0x53, 0xcf, 0x08, 0xe9,
13603e696dfbSEd Maste 	0x0a, 0x4b, 0xc9, 0x7e, 0x99, 0x00, 0x22, 0x00,
13613e696dfbSEd Maste 	0x0b, 0x51, 0xd3, 0x38, 0xfe, 0xaa, 0xda, 0xc6,
13623e696dfbSEd Maste 	0x68, 0x84, 0x39, 0xe7, 0xb1, 0x03, 0x22, 0x5e,
13633e696dfbSEd Maste 	0xc4, 0xd3, 0xf1, 0x0c, 0xec, 0x35, 0x5d, 0x50,
13643e696dfbSEd Maste 	0xa3, 0x9d, 0xab, 0xa1, 0x7b, 0x61, 0x51, 0x8f,
13653e696dfbSEd Maste 	0x4e
13663e696dfbSEd Maste };
13673e696dfbSEd Maste 
13680afa8e06SEd Maste /*
13690afa8e06SEd Maste  * Security Key By Yubico
13700afa8e06SEd Maste  * 5.1.X
13710afa8e06SEd Maste  * f8a011f3-8c0a-4d15-8006-17111f9edc7d
13720afa8e06SEd Maste  */
13730afa8e06SEd Maste const unsigned char aaguid[16] = {
13740afa8e06SEd Maste 	0xf8, 0xa0, 0x11, 0xf3, 0x8c, 0x0a, 0x4d, 0x15,
13750afa8e06SEd Maste 	0x80, 0x06, 0x17, 0x11, 0x1f, 0x9e, 0xdc, 0x7d,
13760afa8e06SEd Maste };
13770afa8e06SEd Maste 
1378f540a430SEd Maste /*
1379f540a430SEd Maste  * Windows Hello by Microsoft
1380f540a430SEd Maste  */
1381f540a430SEd Maste const unsigned char aaguid_tpm[16] = {
1382f540a430SEd Maste 	0x08, 0x98, 0x70, 0x58, 0xca, 0xdc, 0x4b, 0x81,
1383f540a430SEd Maste 	0xb6, 0xe1, 0x30, 0xde, 0x50, 0xdc, 0xbe, 0x96,
1384f540a430SEd Maste };
1385f540a430SEd Maste 
13860afa8e06SEd Maste const char rp_id[] = "localhost";
13870afa8e06SEd Maste const char rp_name[] = "sweet home localhost";
13880afa8e06SEd Maste 
13890afa8e06SEd Maste static void *
13900afa8e06SEd Maste dummy_open(const char *path)
13910afa8e06SEd Maste {
13920afa8e06SEd Maste 	(void)path;
13930afa8e06SEd Maste 
13942ccfa855SEd Maste 	return (&fake_dev_handle);
13950afa8e06SEd Maste }
13960afa8e06SEd Maste 
13970afa8e06SEd Maste static void
13980afa8e06SEd Maste dummy_close(void *handle)
13990afa8e06SEd Maste {
14002ccfa855SEd Maste 	assert(handle == &fake_dev_handle);
14010afa8e06SEd Maste }
14020afa8e06SEd Maste 
14030afa8e06SEd Maste static int
14040afa8e06SEd Maste dummy_read(void *handle, unsigned char *buf, size_t len, int ms)
14050afa8e06SEd Maste {
14060afa8e06SEd Maste 	(void)handle;
14070afa8e06SEd Maste 	(void)buf;
14080afa8e06SEd Maste 	(void)len;
14090afa8e06SEd Maste 	(void)ms;
14100afa8e06SEd Maste 
14110afa8e06SEd Maste 	abort();
14120afa8e06SEd Maste 	/* NOTREACHED */
14130afa8e06SEd Maste }
14140afa8e06SEd Maste 
14150afa8e06SEd Maste static int
14160afa8e06SEd Maste dummy_write(void *handle, const unsigned char *buf, size_t len)
14170afa8e06SEd Maste {
14180afa8e06SEd Maste 	(void)handle;
14190afa8e06SEd Maste 	(void)buf;
14200afa8e06SEd Maste 	(void)len;
14210afa8e06SEd Maste 
14220afa8e06SEd Maste 	abort();
14230afa8e06SEd Maste 	/* NOTREACHED */
14240afa8e06SEd Maste }
14250afa8e06SEd Maste 
14260afa8e06SEd Maste static fido_cred_t *
14270afa8e06SEd Maste alloc_cred(void)
14280afa8e06SEd Maste {
14290afa8e06SEd Maste 	fido_cred_t *c;
14300afa8e06SEd Maste 
14310afa8e06SEd Maste 	c = fido_cred_new();
14320afa8e06SEd Maste 	assert(c != NULL);
14330afa8e06SEd Maste 
14340afa8e06SEd Maste 	return (c);
14350afa8e06SEd Maste }
14360afa8e06SEd Maste 
14370afa8e06SEd Maste static void
14380afa8e06SEd Maste free_cred(fido_cred_t *c)
14390afa8e06SEd Maste {
14400afa8e06SEd Maste 	fido_cred_free(&c);
14410afa8e06SEd Maste 	assert(c == NULL);
14420afa8e06SEd Maste }
14430afa8e06SEd Maste 
14440afa8e06SEd Maste static fido_dev_t *
14450afa8e06SEd Maste alloc_dev(void)
14460afa8e06SEd Maste {
14470afa8e06SEd Maste 	fido_dev_t *d;
14480afa8e06SEd Maste 
14490afa8e06SEd Maste 	d = fido_dev_new();
14500afa8e06SEd Maste 	assert(d != NULL);
14510afa8e06SEd Maste 
14520afa8e06SEd Maste 	return (d);
14530afa8e06SEd Maste }
14540afa8e06SEd Maste 
14550afa8e06SEd Maste static void
14560afa8e06SEd Maste free_dev(fido_dev_t *d)
14570afa8e06SEd Maste {
14580afa8e06SEd Maste 	fido_dev_free(&d);
14590afa8e06SEd Maste 	assert(d == NULL);
14600afa8e06SEd Maste }
14610afa8e06SEd Maste 
14620afa8e06SEd Maste static void
14630afa8e06SEd Maste empty_cred(void)
14640afa8e06SEd Maste {
14650afa8e06SEd Maste 	fido_cred_t *c;
14660afa8e06SEd Maste 	fido_dev_t *d;
14670afa8e06SEd Maste 	fido_dev_io_t io_f;
14680afa8e06SEd Maste 
14690afa8e06SEd Maste 	c = alloc_cred();
14700afa8e06SEd Maste 	assert(fido_cred_authdata_len(c) == 0);
14710afa8e06SEd Maste 	assert(fido_cred_authdata_ptr(c) == NULL);
14720afa8e06SEd Maste 	assert(fido_cred_authdata_raw_len(c) == 0);
14730afa8e06SEd Maste 	assert(fido_cred_authdata_raw_ptr(c) == NULL);
14740afa8e06SEd Maste 	assert(fido_cred_clientdata_hash_len(c) == 0);
14750afa8e06SEd Maste 	assert(fido_cred_clientdata_hash_ptr(c) == NULL);
14760afa8e06SEd Maste 	assert(fido_cred_flags(c) == 0);
14770afa8e06SEd Maste 	assert(fido_cred_fmt(c) == NULL);
14780afa8e06SEd Maste 	assert(fido_cred_id_len(c) == 0);
14790afa8e06SEd Maste 	assert(fido_cred_id_ptr(c) == NULL);
14800afa8e06SEd Maste 	assert(fido_cred_prot(c) == 0);
14810afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == 0);
14820afa8e06SEd Maste 	assert(fido_cred_pubkey_ptr(c) == NULL);
14830afa8e06SEd Maste 	assert(fido_cred_rp_id(c) == NULL);
14840afa8e06SEd Maste 	assert(fido_cred_rp_name(c) == NULL);
14850afa8e06SEd Maste 	assert(fido_cred_sig_len(c) == 0);
14860afa8e06SEd Maste 	assert(fido_cred_sig_ptr(c) == NULL);
14870afa8e06SEd Maste 	assert(fido_cred_x5c_len(c) == 0);
14880afa8e06SEd Maste 	assert(fido_cred_x5c_ptr(c) == NULL);
14890afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
14900afa8e06SEd Maste 
14910afa8e06SEd Maste 	memset(&io_f, 0, sizeof(io_f));
14920afa8e06SEd Maste 
14930afa8e06SEd Maste 	io_f.open = dummy_open;
14940afa8e06SEd Maste 	io_f.close = dummy_close;
14950afa8e06SEd Maste 	io_f.read = dummy_read;
14960afa8e06SEd Maste 	io_f.write = dummy_write;
14970afa8e06SEd Maste 
14980afa8e06SEd Maste 	d = alloc_dev();
14990afa8e06SEd Maste 
15000afa8e06SEd Maste 	fido_dev_force_u2f(d);
15010afa8e06SEd Maste 	assert(fido_dev_set_io_functions(d, &io_f) == FIDO_OK);
15020afa8e06SEd Maste 	assert(fido_dev_make_cred(d, c, NULL) == FIDO_ERR_INVALID_ARGUMENT);
15030afa8e06SEd Maste 	assert(fido_dev_make_cred(d, c, "") == FIDO_ERR_UNSUPPORTED_OPTION);
15040afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
15050afa8e06SEd Maste 
15060afa8e06SEd Maste 	fido_dev_force_fido2(d);
15070afa8e06SEd Maste 	assert(fido_dev_set_io_functions(d, &io_f) == FIDO_OK);
15080afa8e06SEd Maste 	assert(fido_dev_make_cred(d, c, NULL) == FIDO_ERR_INVALID_ARGUMENT);
15090afa8e06SEd Maste 	assert(fido_dev_make_cred(d, c, "") == FIDO_ERR_INVALID_ARGUMENT);
15100afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
15110afa8e06SEd Maste 
15120afa8e06SEd Maste 	free_cred(c);
15130afa8e06SEd Maste 	free_dev(d);
15140afa8e06SEd Maste }
15150afa8e06SEd Maste 
15160afa8e06SEd Maste static void
15170afa8e06SEd Maste valid_cred(void)
15180afa8e06SEd Maste {
15190afa8e06SEd Maste 	fido_cred_t *c;
15200afa8e06SEd Maste 
15210afa8e06SEd Maste 	c = alloc_cred();
15220afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
15230afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
15240afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
15250afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
15260afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
15270afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
15280afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
15290afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
15300afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
15310afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_OK);
15320afa8e06SEd Maste 	assert(fido_cred_prot(c) == 0);
15330afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
15340afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
15350afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
15360afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
15370afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
15380afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
15390afa8e06SEd Maste 	free_cred(c);
15400afa8e06SEd Maste }
15410afa8e06SEd Maste 
15420afa8e06SEd Maste static void
15430afa8e06SEd Maste no_cdh(void)
15440afa8e06SEd Maste {
15450afa8e06SEd Maste 	fido_cred_t *c;
15460afa8e06SEd Maste 
15470afa8e06SEd Maste 	c = alloc_cred();
15480afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
15490afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
15500afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
15510afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
15520afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
15530afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
15540afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
15550afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
15560afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
15570afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
15580afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
15590afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
15600afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
15610afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
15620afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
15630afa8e06SEd Maste 	free_cred(c);
15640afa8e06SEd Maste }
15650afa8e06SEd Maste 
15660afa8e06SEd Maste static void
15670afa8e06SEd Maste no_rp_id(void)
15680afa8e06SEd Maste {
15690afa8e06SEd Maste 	fido_cred_t *c;
15700afa8e06SEd Maste 
15710afa8e06SEd Maste 	c = alloc_cred();
15720afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
15730afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
15740afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
15750afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
15760afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
15770afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
15780afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
15790afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
15800afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
15810afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
15820afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
15830afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
15840afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
15850afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
15860afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
15870afa8e06SEd Maste 	free_cred(c);
15880afa8e06SEd Maste }
15890afa8e06SEd Maste 
15900afa8e06SEd Maste static void
15910afa8e06SEd Maste no_rp_name(void)
15920afa8e06SEd Maste {
15930afa8e06SEd Maste 	fido_cred_t *c;
15940afa8e06SEd Maste 
15950afa8e06SEd Maste 	c = alloc_cred();
15960afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
15970afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, NULL) == FIDO_OK);
15980afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
15990afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
16000afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
16010afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
16020afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
16030afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
16040afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
16050afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_OK);
16060afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
16070afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
16080afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
16090afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
16100afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
16110afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
16120afa8e06SEd Maste 	free_cred(c);
16130afa8e06SEd Maste }
16140afa8e06SEd Maste 
16150afa8e06SEd Maste static void
16160afa8e06SEd Maste no_authdata(void)
16170afa8e06SEd Maste {
16180afa8e06SEd Maste 	fido_cred_t *c;
16190afa8e06SEd Maste 	unsigned char *unset;
16200afa8e06SEd Maste 
16210afa8e06SEd Maste 	unset = calloc(1, sizeof(aaguid));
16220afa8e06SEd Maste 	assert(unset != NULL);
16230afa8e06SEd Maste 
16240afa8e06SEd Maste 	c = alloc_cred();
16250afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
16260afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
16270afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
16280afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
16290afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
16300afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
16310afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
16320afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
16330afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
16340afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == 0);
16350afa8e06SEd Maste 	assert(fido_cred_pubkey_ptr(c) == NULL);
16360afa8e06SEd Maste 	assert(fido_cred_id_len(c) == 0);
16370afa8e06SEd Maste 	assert(fido_cred_id_ptr(c) == NULL);
16380afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
16390afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
16400afa8e06SEd Maste 	free_cred(c);
16410afa8e06SEd Maste 	free(unset);
16420afa8e06SEd Maste }
16430afa8e06SEd Maste 
16440afa8e06SEd Maste static void
16450afa8e06SEd Maste no_x509(void)
16460afa8e06SEd Maste {
16470afa8e06SEd Maste 	fido_cred_t *c;
16480afa8e06SEd Maste 
16490afa8e06SEd Maste 	c = alloc_cred();
16500afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
16510afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
16520afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
16530afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
16540afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
16550afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
16560afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
16570afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
16580afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
16590afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
16600afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
16610afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
16620afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
16630afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
16640afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
16650afa8e06SEd Maste 	free_cred(c);
16660afa8e06SEd Maste }
16670afa8e06SEd Maste 
16680afa8e06SEd Maste static void
16690afa8e06SEd Maste no_sig(void)
16700afa8e06SEd Maste {
16710afa8e06SEd Maste 	fido_cred_t *c;
16720afa8e06SEd Maste 
16730afa8e06SEd Maste 	c = alloc_cred();
16740afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
16750afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
16760afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
16770afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
16780afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
16790afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
16800afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
16810afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
16820afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
16830afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
16840afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
16850afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
16860afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
16870afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
16880afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
16890afa8e06SEd Maste 	free_cred(c);
16900afa8e06SEd Maste }
16910afa8e06SEd Maste 
16920afa8e06SEd Maste static void
16930afa8e06SEd Maste no_fmt(void)
16940afa8e06SEd Maste {
16950afa8e06SEd Maste 	fido_cred_t *c;
16960afa8e06SEd Maste 
16970afa8e06SEd Maste 	c = alloc_cred();
16980afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
16990afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
17000afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
17010afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
17020afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
17030afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
17040afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
17050afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
17060afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
17070afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
17080afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
17090afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
17100afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
17110afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
17120afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
17130afa8e06SEd Maste 	free_cred(c);
17140afa8e06SEd Maste }
17150afa8e06SEd Maste 
17160afa8e06SEd Maste static void
17170afa8e06SEd Maste wrong_options(void)
17180afa8e06SEd Maste {
17190afa8e06SEd Maste 	fido_cred_t *c;
17200afa8e06SEd Maste 
17210afa8e06SEd Maste 	c = alloc_cred();
17220afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
17230afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
17240afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
17250afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
17260afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
17270afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
17280afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
17290afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
17300afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
17310afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
17320afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
17330afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
17340afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
17350afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
17360afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
17370afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
17380afa8e06SEd Maste 	free_cred(c);
17390afa8e06SEd Maste }
17400afa8e06SEd Maste 
17410afa8e06SEd Maste static void
17420afa8e06SEd Maste junk_cdh(void)
17430afa8e06SEd Maste {
17440afa8e06SEd Maste 	fido_cred_t *c;
17450afa8e06SEd Maste 	unsigned char *junk;
17460afa8e06SEd Maste 
17470afa8e06SEd Maste 	junk = malloc(sizeof(cdh));
17480afa8e06SEd Maste 	assert(junk != NULL);
17490afa8e06SEd Maste 	memcpy(junk, cdh, sizeof(cdh));
1750f540a430SEd Maste 	junk[0] = (unsigned char)~junk[0];
17510afa8e06SEd Maste 
17520afa8e06SEd Maste 	c = alloc_cred();
17530afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
17540afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, junk, sizeof(cdh)) == FIDO_OK);
17550afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
17560afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
17570afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
17580afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
17590afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
17600afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
17610afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
17620afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
17630afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
17640afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
17650afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
17660afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
17670afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
17680afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
17690afa8e06SEd Maste 	free_cred(c);
17700afa8e06SEd Maste 	free(junk);
17710afa8e06SEd Maste }
17720afa8e06SEd Maste 
17730afa8e06SEd Maste static void
17740afa8e06SEd Maste junk_fmt(void)
17750afa8e06SEd Maste {
17760afa8e06SEd Maste 	fido_cred_t *c;
17770afa8e06SEd Maste 
17780afa8e06SEd Maste 	c = alloc_cred();
17790afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
17800afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
17810afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
17820afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
17830afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
17840afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
17850afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
17860afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
17870afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "junk") == FIDO_ERR_INVALID_ARGUMENT);
17880afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
17890afa8e06SEd Maste 	free_cred(c);
17900afa8e06SEd Maste }
17910afa8e06SEd Maste 
17920afa8e06SEd Maste static void
17930afa8e06SEd Maste junk_rp_id(void)
17940afa8e06SEd Maste {
17950afa8e06SEd Maste 	fido_cred_t *c;
17960afa8e06SEd Maste 
17970afa8e06SEd Maste 	c = alloc_cred();
17980afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
17990afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
18000afa8e06SEd Maste 	assert(fido_cred_set_rp(c, "potato", rp_name) == FIDO_OK);
18010afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
18020afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
18030afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
18040afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
18050afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
18060afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
18070afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
18080afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
18090afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
18100afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
18110afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
18120afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
18130afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
18140afa8e06SEd Maste 	free_cred(c);
18150afa8e06SEd Maste }
18160afa8e06SEd Maste 
18170afa8e06SEd Maste static void
18180afa8e06SEd Maste junk_rp_name(void)
18190afa8e06SEd Maste {
18200afa8e06SEd Maste 	fido_cred_t *c;
18210afa8e06SEd Maste 
18220afa8e06SEd Maste 	c = alloc_cred();
18230afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
18240afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
18250afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, "potato") == FIDO_OK);
18260afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
18270afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
18280afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
18290afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
18300afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
18310afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
18320afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_OK);
18330afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
18340afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
18350afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
18360afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
18370afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
18380afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
18390afa8e06SEd Maste 	free_cred(c);
18400afa8e06SEd Maste }
18410afa8e06SEd Maste 
18420afa8e06SEd Maste static void
18430afa8e06SEd Maste junk_authdata(void)
18440afa8e06SEd Maste {
18450afa8e06SEd Maste 	fido_cred_t *c;
18460afa8e06SEd Maste 	unsigned char *junk;
18470afa8e06SEd Maste 	unsigned char *unset;
18480afa8e06SEd Maste 
18490afa8e06SEd Maste 	junk = malloc(sizeof(authdata));
18500afa8e06SEd Maste 	assert(junk != NULL);
18510afa8e06SEd Maste 	memcpy(junk, authdata, sizeof(authdata));
1852f540a430SEd Maste 	junk[0] = (unsigned char)~junk[0];
18530afa8e06SEd Maste 
18540afa8e06SEd Maste 	unset = calloc(1, sizeof(aaguid));
18550afa8e06SEd Maste 	assert(unset != NULL);
18560afa8e06SEd Maste 
18570afa8e06SEd Maste 	c = alloc_cred();
18580afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, junk,
18590afa8e06SEd Maste 	    sizeof(authdata)) == FIDO_ERR_INVALID_ARGUMENT);
18600afa8e06SEd Maste 	assert(fido_cred_authdata_len(c) == 0);
18610afa8e06SEd Maste 	assert(fido_cred_authdata_ptr(c) == NULL);
18620afa8e06SEd Maste 	assert(fido_cred_authdata_raw_len(c) == 0);
18630afa8e06SEd Maste 	assert(fido_cred_authdata_raw_ptr(c) == NULL);
18640afa8e06SEd Maste 	assert(fido_cred_flags(c) == 0);
18650afa8e06SEd Maste 	assert(fido_cred_fmt(c) == NULL);
18660afa8e06SEd Maste 	assert(fido_cred_id_len(c) == 0);
18670afa8e06SEd Maste 	assert(fido_cred_id_ptr(c) == NULL);
18680afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == 0);
18690afa8e06SEd Maste 	assert(fido_cred_pubkey_ptr(c) == NULL);
18700afa8e06SEd Maste 	assert(fido_cred_rp_id(c) == NULL);
18710afa8e06SEd Maste 	assert(fido_cred_rp_name(c) == NULL);
18720afa8e06SEd Maste 	assert(fido_cred_sig_len(c) == 0);
18730afa8e06SEd Maste 	assert(fido_cred_sig_ptr(c) == NULL);
18740afa8e06SEd Maste 	assert(fido_cred_x5c_len(c) == 0);
18750afa8e06SEd Maste 	assert(fido_cred_x5c_ptr(c) == NULL);
18760afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
18770afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
18780afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
18790afa8e06SEd Maste 	free_cred(c);
18800afa8e06SEd Maste 	free(junk);
18810afa8e06SEd Maste 	free(unset);
18820afa8e06SEd Maste }
18830afa8e06SEd Maste 
18840afa8e06SEd Maste static void
18850afa8e06SEd Maste junk_sig(void)
18860afa8e06SEd Maste {
18870afa8e06SEd Maste 	fido_cred_t *c;
18880afa8e06SEd Maste 	unsigned char *junk;
18890afa8e06SEd Maste 
18900afa8e06SEd Maste 	junk = malloc(sizeof(sig));
18910afa8e06SEd Maste 	assert(junk != NULL);
18920afa8e06SEd Maste 	memcpy(junk, sig, sizeof(sig));
1893f540a430SEd Maste 	junk[0] = (unsigned char)~junk[0];
18940afa8e06SEd Maste 
18950afa8e06SEd Maste 	c = alloc_cred();
18960afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
18970afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
18980afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
18990afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
19000afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
19010afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
19020afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
19030afa8e06SEd Maste 	assert(fido_cred_set_sig(c, junk, sizeof(sig)) == FIDO_OK);
19040afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
19050afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
19060afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
19070afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
19080afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
19090afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
19100afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
19110afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
19120afa8e06SEd Maste 	free_cred(c);
19130afa8e06SEd Maste 	free(junk);
19140afa8e06SEd Maste }
19150afa8e06SEd Maste 
19160afa8e06SEd Maste static void
19170afa8e06SEd Maste junk_x509(void)
19180afa8e06SEd Maste {
19190afa8e06SEd Maste 	fido_cred_t *c;
19200afa8e06SEd Maste 	unsigned char *junk;
19210afa8e06SEd Maste 
19220afa8e06SEd Maste 	junk = malloc(sizeof(x509));
19230afa8e06SEd Maste 	assert(junk != NULL);
19240afa8e06SEd Maste 	memcpy(junk, x509, sizeof(x509));
1925f540a430SEd Maste 	junk[0] = (unsigned char)~junk[0];
19260afa8e06SEd Maste 
19270afa8e06SEd Maste 	c = alloc_cred();
19280afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
19290afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
19300afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
19310afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
19320afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
19330afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
19340afa8e06SEd Maste 	assert(fido_cred_set_x509(c, junk, sizeof(x509)) == FIDO_OK);
19350afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
19360afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
19370afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_SIG);
19380afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
19390afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
19400afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
19410afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
19420afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
19430afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
19440afa8e06SEd Maste 	free_cred(c);
19450afa8e06SEd Maste 	free(junk);
19460afa8e06SEd Maste }
19470afa8e06SEd Maste 
19480afa8e06SEd Maste /* github issue #6 */
19490afa8e06SEd Maste static void
19500afa8e06SEd Maste invalid_type(void)
19510afa8e06SEd Maste {
19520afa8e06SEd Maste 	fido_cred_t *c;
19530afa8e06SEd Maste 	unsigned char *unset;
19540afa8e06SEd Maste 
19550afa8e06SEd Maste 	unset = calloc(1, sizeof(aaguid));
19560afa8e06SEd Maste 	assert(unset != NULL);
19570afa8e06SEd Maste 
19580afa8e06SEd Maste 	c = alloc_cred();
19590afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_RS256) == FIDO_OK);
19600afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
19610afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
19620afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_ERR_INVALID_ARGUMENT);
19630afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
19640afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
19650afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
19660afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
19670afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
19680afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
19690afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == 0);
19700afa8e06SEd Maste 	assert(fido_cred_pubkey_ptr(c) == NULL);
19710afa8e06SEd Maste 	assert(fido_cred_id_len(c) == 0);
19720afa8e06SEd Maste 	assert(fido_cred_id_ptr(c) == NULL);
19730afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
19740afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), unset, sizeof(aaguid)) == 0);
19750afa8e06SEd Maste 	free_cred(c);
19760afa8e06SEd Maste 	free(unset);
19770afa8e06SEd Maste }
19780afa8e06SEd Maste 
19790afa8e06SEd Maste /* cbor_serialize_alloc misuse */
19800afa8e06SEd Maste static void
19810afa8e06SEd Maste bad_cbor_serialize(void)
19820afa8e06SEd Maste {
19830afa8e06SEd Maste 	fido_cred_t *c;
19840afa8e06SEd Maste 
19850afa8e06SEd Maste 	c = alloc_cred();
19860afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
19870afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
19880afa8e06SEd Maste 	assert(fido_cred_authdata_len(c) == sizeof(authdata));
19890afa8e06SEd Maste 	free_cred(c);
19900afa8e06SEd Maste }
19910afa8e06SEd Maste 
19920afa8e06SEd Maste static void
19930afa8e06SEd Maste duplicate_keys(void)
19940afa8e06SEd Maste {
19950afa8e06SEd Maste 	fido_cred_t *c;
19960afa8e06SEd Maste 
19970afa8e06SEd Maste 	c = alloc_cred();
19980afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
19990afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata_dupkeys,
20000afa8e06SEd Maste 	    sizeof(authdata_dupkeys)) == FIDO_ERR_INVALID_ARGUMENT);
20010afa8e06SEd Maste 	free_cred(c);
20020afa8e06SEd Maste }
20030afa8e06SEd Maste 
20040afa8e06SEd Maste static void
20050afa8e06SEd Maste unsorted_keys(void)
20060afa8e06SEd Maste {
20070afa8e06SEd Maste 	fido_cred_t *c;
20080afa8e06SEd Maste 
20090afa8e06SEd Maste 	c = alloc_cred();
20100afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
20110afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata_unsorted_keys,
20120afa8e06SEd Maste 	    sizeof(authdata_unsorted_keys)) == FIDO_ERR_INVALID_ARGUMENT);
20130afa8e06SEd Maste 	free_cred(c);
20140afa8e06SEd Maste }
20150afa8e06SEd Maste 
20160afa8e06SEd Maste static void
20170afa8e06SEd Maste wrong_credprot(void)
20180afa8e06SEd Maste {
20190afa8e06SEd Maste 	fido_cred_t *c;
20200afa8e06SEd Maste 
20210afa8e06SEd Maste 	c = alloc_cred();
20220afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
20230afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
20240afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
20250afa8e06SEd Maste 	assert(fido_cred_set_x509(c, x509, sizeof(x509)) == FIDO_OK);
20260afa8e06SEd Maste 	assert(fido_cred_set_sig(c, sig, sizeof(sig)) == FIDO_OK);
20270afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "packed") == FIDO_OK);
20280afa8e06SEd Maste 	assert(fido_cred_set_prot(c, FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID) == FIDO_OK);
20290afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
20300afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_PARAM);
20310afa8e06SEd Maste 	free_cred(c);
20320afa8e06SEd Maste }
20330afa8e06SEd Maste 
20340afa8e06SEd Maste static void
20350afa8e06SEd Maste raw_authdata(void)
20360afa8e06SEd Maste {
20370afa8e06SEd Maste 	fido_cred_t *c;
20380afa8e06SEd Maste 	cbor_item_t *item;
20390afa8e06SEd Maste 	struct cbor_load_result cbor_result;
20400afa8e06SEd Maste 	const unsigned char *ptr;
20410afa8e06SEd Maste 	unsigned char *cbor;
20420afa8e06SEd Maste 	size_t len;
20430afa8e06SEd Maste 	size_t cbor_len;
20440afa8e06SEd Maste 	size_t alloclen;
20450afa8e06SEd Maste 
20460afa8e06SEd Maste 	c = alloc_cred();
20470afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
20480afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
20490afa8e06SEd Maste 	assert((ptr = fido_cred_authdata_ptr(c)) != NULL);
20500afa8e06SEd Maste 	assert((len = fido_cred_authdata_len(c)) != 0);
20510afa8e06SEd Maste 	assert((item = cbor_load(ptr, len, &cbor_result)) != NULL);
20520afa8e06SEd Maste 	assert(cbor_result.read == len);
20530afa8e06SEd Maste 	assert(cbor_isa_bytestring(item));
20540afa8e06SEd Maste 	assert((ptr = fido_cred_authdata_raw_ptr(c)) != NULL);
20550afa8e06SEd Maste 	assert((len = fido_cred_authdata_raw_len(c)) != 0);
20560afa8e06SEd Maste 	assert(cbor_bytestring_length(item) == len);
20570afa8e06SEd Maste 	assert(memcmp(ptr, cbor_bytestring_handle(item), len) == 0);
20580afa8e06SEd Maste 	assert((len = fido_cred_authdata_len(c)) != 0);
20590afa8e06SEd Maste 	assert((cbor_len = cbor_serialize_alloc(item, &cbor, &alloclen)) == len);
20600afa8e06SEd Maste 	assert((ptr = cbor_bytestring_handle(item)) != NULL);
20610afa8e06SEd Maste 	assert((len = cbor_bytestring_length(item)) != 0);
20620afa8e06SEd Maste 	assert(fido_cred_set_authdata_raw(c, ptr, len) == FIDO_OK);
20630afa8e06SEd Maste 	assert((ptr = fido_cred_authdata_ptr(c)) != NULL);
20640afa8e06SEd Maste 	assert((len = fido_cred_authdata_len(c)) != 0);
20650afa8e06SEd Maste 	assert(len == cbor_len);
20660afa8e06SEd Maste 	assert(memcmp(cbor, ptr, len) == 0);
20670afa8e06SEd Maste 	assert(cbor_len == sizeof(authdata));
20680afa8e06SEd Maste 	assert(memcmp(cbor, authdata, cbor_len) == 0);
20690afa8e06SEd Maste 	cbor_decref(&item);
20700afa8e06SEd Maste 	free(cbor);
20710afa8e06SEd Maste 	free_cred(c);
20720afa8e06SEd Maste }
20730afa8e06SEd Maste 
20740afa8e06SEd Maste static void
20750afa8e06SEd Maste fmt_none(void)
20760afa8e06SEd Maste {
20770afa8e06SEd Maste 	fido_cred_t *c;
20780afa8e06SEd Maste 
20790afa8e06SEd Maste 	c = alloc_cred();
20800afa8e06SEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
20810afa8e06SEd Maste 	assert(fido_cred_set_clientdata_hash(c, cdh, sizeof(cdh)) == FIDO_OK);
20820afa8e06SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
20830afa8e06SEd Maste 	assert(fido_cred_set_authdata(c, authdata, sizeof(authdata)) == FIDO_OK);
20840afa8e06SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
20850afa8e06SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_FALSE) == FIDO_OK);
20860afa8e06SEd Maste 	assert(fido_cred_set_fmt(c, "none") == FIDO_OK);
20870afa8e06SEd Maste 	assert(fido_cred_verify(c) == FIDO_ERR_INVALID_ARGUMENT);
20880afa8e06SEd Maste 	assert(fido_cred_prot(c) == 0);
20890afa8e06SEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey));
20900afa8e06SEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey, sizeof(pubkey)) == 0);
20910afa8e06SEd Maste 	assert(fido_cred_id_len(c) == sizeof(id));
20920afa8e06SEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id, sizeof(id)) == 0);
20930afa8e06SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid));
20940afa8e06SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid, sizeof(aaguid)) == 0);
20950afa8e06SEd Maste 	free_cred(c);
20960afa8e06SEd Maste }
20970afa8e06SEd Maste 
2098f540a430SEd Maste static void
2099*60a517b6SEd Maste valid_tpm_rs256_cred(bool xfail)
2100f540a430SEd Maste {
2101f540a430SEd Maste 	fido_cred_t *c;
2102f540a430SEd Maste 
2103f540a430SEd Maste 	c = alloc_cred();
2104f540a430SEd Maste 	assert(fido_cred_set_type(c, COSE_RS256) == FIDO_OK);
2105f540a430SEd Maste 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
2106f540a430SEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
21073e696dfbSEd Maste 	assert(fido_cred_set_authdata(c, authdata_tpm_rs256, sizeof(authdata_tpm_rs256)) == FIDO_OK);
2108f540a430SEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
2109f540a430SEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
2110f540a430SEd Maste 	assert(fido_cred_set_fmt(c, "tpm") == FIDO_OK);
21113e696dfbSEd Maste 	assert(fido_cred_set_attstmt(c, attstmt_tpm_rs256, sizeof(attstmt_tpm_rs256)) == FIDO_OK);
2112*60a517b6SEd Maste 	// XXX: RHEL9 has deprecated SHA-1 for signing.
2113*60a517b6SEd Maste 	assert(fido_cred_verify(c) == (xfail ? FIDO_ERR_INVALID_SIG : FIDO_OK));
2114f540a430SEd Maste 	assert(fido_cred_prot(c) == 0);
21153e696dfbSEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_rs256));
21163e696dfbSEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_rs256, sizeof(pubkey_tpm_rs256)) == 0);
21173e696dfbSEd Maste 	assert(fido_cred_id_len(c) == sizeof(id_tpm_rs256));
21183e696dfbSEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_rs256, sizeof(id_tpm_rs256)) == 0);
21193e696dfbSEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
21203e696dfbSEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
21213e696dfbSEd Maste 	free_cred(c);
21223e696dfbSEd Maste }
21233e696dfbSEd Maste 
21243e696dfbSEd Maste static void
2125*60a517b6SEd Maste valid_tpm_es256_cred(bool xfail)
21263e696dfbSEd Maste {
21273e696dfbSEd Maste 	fido_cred_t *c;
21283e696dfbSEd Maste 
21293e696dfbSEd Maste 	c = alloc_cred();
21303e696dfbSEd Maste 	assert(fido_cred_set_type(c, COSE_ES256) == FIDO_OK);
21313e696dfbSEd Maste 	assert(fido_cred_set_clientdata(c, cdh, sizeof(cdh)) == FIDO_OK);
21323e696dfbSEd Maste 	assert(fido_cred_set_rp(c, rp_id, rp_name) == FIDO_OK);
21333e696dfbSEd Maste 	assert(fido_cred_set_authdata(c, authdata_tpm_es256, sizeof(authdata_tpm_es256)) == FIDO_OK);
21343e696dfbSEd Maste 	assert(fido_cred_set_rk(c, FIDO_OPT_FALSE) == FIDO_OK);
21353e696dfbSEd Maste 	assert(fido_cred_set_uv(c, FIDO_OPT_TRUE) == FIDO_OK);
21363e696dfbSEd Maste 	assert(fido_cred_set_fmt(c, "tpm") == FIDO_OK);
21373e696dfbSEd Maste 	assert(fido_cred_set_attstmt(c, attstmt_tpm_es256, sizeof(attstmt_tpm_es256)) == FIDO_OK);
2138*60a517b6SEd Maste 	// XXX: RHEL9 has deprecated SHA-1 for signing.
2139*60a517b6SEd Maste 	assert(fido_cred_verify(c) == (xfail ? FIDO_ERR_INVALID_SIG : FIDO_OK));
21403e696dfbSEd Maste 	assert(fido_cred_prot(c) == 0);
21413e696dfbSEd Maste 	assert(fido_cred_pubkey_len(c) == sizeof(pubkey_tpm_es256));
21423e696dfbSEd Maste 	assert(memcmp(fido_cred_pubkey_ptr(c), pubkey_tpm_es256, sizeof(pubkey_tpm_es256)) == 0);
21433e696dfbSEd Maste 	assert(fido_cred_id_len(c) == sizeof(id_tpm_es256));
21443e696dfbSEd Maste 	assert(memcmp(fido_cred_id_ptr(c), id_tpm_es256, sizeof(id_tpm_es256)) == 0);
2145f540a430SEd Maste 	assert(fido_cred_aaguid_len(c) == sizeof(aaguid_tpm));
2146f540a430SEd Maste 	assert(memcmp(fido_cred_aaguid_ptr(c), aaguid_tpm, sizeof(aaguid_tpm)) == 0);
2147f540a430SEd Maste 	free_cred(c);
2148f540a430SEd Maste }
2149f540a430SEd Maste 
21500afa8e06SEd Maste int
21510afa8e06SEd Maste main(void)
21520afa8e06SEd Maste {
2153*60a517b6SEd Maste 	bool xfail = getenv("FIDO_REGRESS_RS1_XFAIL") != NULL;
2154*60a517b6SEd Maste 
21550afa8e06SEd Maste 	fido_init(0);
21560afa8e06SEd Maste 
21570afa8e06SEd Maste 	empty_cred();
21580afa8e06SEd Maste 	valid_cred();
21590afa8e06SEd Maste 	no_cdh();
21600afa8e06SEd Maste 	no_rp_id();
21610afa8e06SEd Maste 	no_rp_name();
21620afa8e06SEd Maste 	no_authdata();
21630afa8e06SEd Maste 	no_x509();
21640afa8e06SEd Maste 	no_sig();
21650afa8e06SEd Maste 	no_fmt();
21660afa8e06SEd Maste 	junk_cdh();
21670afa8e06SEd Maste 	junk_fmt();
21680afa8e06SEd Maste 	junk_rp_id();
21690afa8e06SEd Maste 	junk_rp_name();
21700afa8e06SEd Maste 	junk_authdata();
21710afa8e06SEd Maste 	junk_x509();
21720afa8e06SEd Maste 	junk_sig();
21730afa8e06SEd Maste 	wrong_options();
21740afa8e06SEd Maste 	invalid_type();
21750afa8e06SEd Maste 	bad_cbor_serialize();
21760afa8e06SEd Maste 	duplicate_keys();
21770afa8e06SEd Maste 	unsorted_keys();
21780afa8e06SEd Maste 	wrong_credprot();
21790afa8e06SEd Maste 	raw_authdata();
21800afa8e06SEd Maste 	fmt_none();
2181*60a517b6SEd Maste 	valid_tpm_rs256_cred(xfail);
2182*60a517b6SEd Maste 	valid_tpm_es256_cred(xfail);
21830afa8e06SEd Maste 
21840afa8e06SEd Maste 	exit(0);
21850afa8e06SEd Maste }
2186