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