1*a5429850Sjsing /* $OpenBSD: tlslegacytest.c,v 1.7 2022/10/02 16:39:39 jsing Exp $ */
233ca586cSjsing /*
333ca586cSjsing * Copyright (c) 2015, 2016, 2017, 2020 Joel Sing <jsing@openbsd.org>
433ca586cSjsing *
533ca586cSjsing * Permission to use, copy, modify, and distribute this software for any
633ca586cSjsing * purpose with or without fee is hereby granted, provided that the above
733ca586cSjsing * copyright notice and this permission notice appear in all copies.
833ca586cSjsing *
933ca586cSjsing * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1033ca586cSjsing * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1133ca586cSjsing * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1233ca586cSjsing * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1333ca586cSjsing * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1433ca586cSjsing * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1533ca586cSjsing * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1633ca586cSjsing */
1733ca586cSjsing
1833ca586cSjsing #include <openssl/ssl.h>
1933ca586cSjsing
2033ca586cSjsing #include <err.h>
2133ca586cSjsing #include <stdio.h>
2233ca586cSjsing #include <string.h>
2333ca586cSjsing
2433ca586cSjsing /* openssl.org:443 */
2533ca586cSjsing static uint8_t tls12_server_response[] = {
2633ca586cSjsing 0x16, 0x03, 0x03, 0x00, 0x3d, 0x02, 0x00, 0x00,
2733ca586cSjsing 0x39, 0x03, 0x03, 0x62, 0x0c, 0x8a, 0x7e, 0x29,
2833ca586cSjsing 0x60, 0xcb, 0x08, 0xd1, 0xb4, 0x95, 0x68, 0x76,
2933ca586cSjsing 0xea, 0x4e, 0x0c, 0x94, 0xf2, 0x42, 0x3d, 0xd1,
3033ca586cSjsing 0x7a, 0xc2, 0xfe, 0x6c, 0xb3, 0xe6, 0x12, 0x8a,
3133ca586cSjsing 0x33, 0x02, 0x92, 0x00, 0xc0, 0x30, 0x00, 0x00,
3233ca586cSjsing 0x11, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x0b,
3333ca586cSjsing 0x00, 0x04, 0x03, 0x00, 0x01, 0x02, 0x00, 0x23,
3433ca586cSjsing 0x00, 0x00,
3533ca586cSjsing };
3633ca586cSjsing
3733ca586cSjsing /*
3833ca586cSjsing * outlook.office365.com:587 with starttls - this server response includes
3933ca586cSjsing * multiple handshake messages contained in a single TLS record.
4033ca586cSjsing */
4133ca586cSjsing static uint8_t tls12_server_response_with_cert[] = {
4233ca586cSjsing 0x16, 0x03, 0x03, 0x0f, 0x2b, 0x02, 0x00, 0x00,
4333ca586cSjsing 0x4d, 0x03, 0x03, 0x5f, 0x7c, 0x69, 0x42, 0xe1,
4433ca586cSjsing 0x19, 0xf0, 0x22, 0xfb, 0x71, 0x9a, 0xf1, 0x63,
4533ca586cSjsing 0x34, 0xbb, 0x61, 0x46, 0xea, 0x5f, 0x0b, 0x5e,
4633ca586cSjsing 0xb1, 0x4e, 0x37, 0x96, 0x67, 0xff, 0x83, 0xea,
4733ca586cSjsing 0x0e, 0x16, 0x85, 0x20, 0x3a, 0x1b, 0x00, 0x00,
4833ca586cSjsing 0x17, 0xe9, 0xac, 0xca, 0x19, 0x61, 0xaf, 0x70,
4933ca586cSjsing 0x28, 0x3b, 0x18, 0xaa, 0x6c, 0xa0, 0x0f, 0x78,
5033ca586cSjsing 0xd0, 0x83, 0xfc, 0x5d, 0x78, 0xf9, 0x6d, 0xdb,
5133ca586cSjsing 0x16, 0x21, 0x15, 0xa2, 0xc0, 0x30, 0x00, 0x00,
5233ca586cSjsing 0x05, 0xff, 0x01, 0x00, 0x01, 0x00, 0x0b, 0x00,
5333ca586cSjsing 0x0d, 0x47, 0x00, 0x0d, 0x44, 0x00, 0x08, 0xaf,
5433ca586cSjsing 0x30, 0x82, 0x08, 0xab, 0x30, 0x82, 0x07, 0x93,
5533ca586cSjsing 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x0c, 0x6d,
5633ca586cSjsing 0xea, 0x0b, 0xe1, 0x97, 0x27, 0x60, 0xa1, 0x59,
5733ca586cSjsing 0xb1, 0x85, 0x60, 0x30, 0x0d, 0x06, 0x09, 0x2a,
5833ca586cSjsing 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
5933ca586cSjsing 0x05, 0x00, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09,
6033ca586cSjsing 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42,
6133ca586cSjsing 0x45, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55,
6233ca586cSjsing 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
6333ca586cSjsing 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e,
6433ca586cSjsing 0x76, 0x2d, 0x73, 0x61, 0x31, 0x3c, 0x30, 0x3a,
6533ca586cSjsing 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x33, 0x47,
6633ca586cSjsing 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67,
6733ca586cSjsing 0x6e, 0x20, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
6833ca586cSjsing 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56,
6933ca586cSjsing 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
7033ca586cSjsing 0x6e, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x53,
7133ca586cSjsing 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
7233ca586cSjsing 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x30,
7333ca586cSjsing 0x30, 0x38, 0x31, 0x33, 0x32, 0x33, 0x31, 0x38,
7433ca586cSjsing 0x34, 0x39, 0x5a, 0x17, 0x0d, 0x32, 0x32, 0x30,
7533ca586cSjsing 0x38, 0x31, 0x34, 0x32, 0x33, 0x31, 0x38, 0x34,
7633ca586cSjsing 0x39, 0x5a, 0x30, 0x6a, 0x31, 0x0b, 0x30, 0x09,
7733ca586cSjsing 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
7833ca586cSjsing 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
7933ca586cSjsing 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68,
8033ca586cSjsing 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10,
8133ca586cSjsing 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,
8233ca586cSjsing 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64,
8333ca586cSjsing 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
8433ca586cSjsing 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f,
8533ca586cSjsing 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72,
8633ca586cSjsing 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
8733ca586cSjsing 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04,
8833ca586cSjsing 0x03, 0x13, 0x0b, 0x6f, 0x75, 0x74, 0x6c, 0x6f,
8933ca586cSjsing 0x6f, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x82,
9033ca586cSjsing 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
9133ca586cSjsing 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
9233ca586cSjsing 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82,
9333ca586cSjsing 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc9,
9433ca586cSjsing 0x20, 0x3f, 0x57, 0xb9, 0xf9, 0x71, 0xaa, 0x3c,
9533ca586cSjsing 0x6a, 0x0a, 0x5d, 0x3f, 0xc9, 0x8d, 0x99, 0xa5,
9633ca586cSjsing 0x50, 0x26, 0x25, 0x4e, 0xdc, 0x69, 0x52, 0xb3,
9733ca586cSjsing 0x33, 0x70, 0xe7, 0x72, 0xa2, 0x83, 0x92, 0x54,
9833ca586cSjsing 0xd1, 0xd4, 0x86, 0x15, 0xf2, 0xc4, 0x65, 0xf8,
9933ca586cSjsing 0xbc, 0xe5, 0xd2, 0x1e, 0x12, 0x25, 0x9e, 0x75,
10033ca586cSjsing 0x8e, 0x77, 0xd2, 0x8e, 0x94, 0xca, 0x03, 0x4b,
10133ca586cSjsing 0xf4, 0xc8, 0xca, 0xe3, 0xe3, 0x9b, 0x66, 0xa3,
10233ca586cSjsing 0xa1, 0x37, 0x74, 0xcc, 0xfe, 0xc4, 0x1e, 0x64,
10333ca586cSjsing 0xdc, 0xe3, 0x18, 0xba, 0xc1, 0x7b, 0x39, 0x5b,
10433ca586cSjsing 0xb1, 0x47, 0xe9, 0x11, 0x92, 0xef, 0xee, 0xe6,
10533ca586cSjsing 0x08, 0xcd, 0x93, 0x7b, 0x09, 0xc7, 0x39, 0xfe,
10633ca586cSjsing 0xe5, 0xe2, 0x47, 0x3f, 0x68, 0x78, 0xa4, 0x17,
10733ca586cSjsing 0x78, 0x13, 0xcb, 0x12, 0x38, 0x9d, 0x89, 0x2b,
10833ca586cSjsing 0x1f, 0x75, 0x9b, 0x87, 0x5d, 0x53, 0xfc, 0xb0,
10933ca586cSjsing 0x2a, 0xaf, 0x2d, 0x86, 0x8a, 0x76, 0x3b, 0xce,
11033ca586cSjsing 0x5e, 0xae, 0x43, 0x74, 0x68, 0xc3, 0x28, 0xbf,
11133ca586cSjsing 0x10, 0x2f, 0xdd, 0xd9, 0x43, 0x4b, 0x2d, 0xa6,
11233ca586cSjsing 0xdc, 0x1f, 0x6d, 0x90, 0xd0, 0xce, 0x14, 0x1e,
11333ca586cSjsing 0x6c, 0xdc, 0x7b, 0x06, 0xe4, 0x7b, 0xa9, 0x81,
11433ca586cSjsing 0x40, 0xed, 0xde, 0x18, 0xb7, 0xdf, 0x53, 0x61,
11533ca586cSjsing 0xbc, 0x18, 0x83, 0x11, 0xc7, 0xb4, 0x1b, 0x99,
11633ca586cSjsing 0xef, 0x14, 0xe4, 0x63, 0x39, 0xe3, 0x5c, 0x2f,
11733ca586cSjsing 0xe7, 0x89, 0x58, 0x5b, 0xda, 0x03, 0x3a, 0x39,
11833ca586cSjsing 0x96, 0x8a, 0xca, 0x4f, 0xd8, 0xe3, 0x6c, 0x7f,
11933ca586cSjsing 0x6e, 0xd3, 0xe7, 0x30, 0x34, 0x9c, 0xdb, 0x8b,
12033ca586cSjsing 0xe8, 0x6a, 0xa6, 0x08, 0x77, 0x1d, 0x63, 0xd6,
12133ca586cSjsing 0x57, 0x9d, 0xcd, 0xa7, 0x47, 0x05, 0x39, 0x96,
12233ca586cSjsing 0x7b, 0xfd, 0x9a, 0x09, 0x99, 0xef, 0x49, 0xb1,
12333ca586cSjsing 0x89, 0x02, 0xbe, 0x4f, 0xb8, 0xef, 0xa0, 0x04,
12433ca586cSjsing 0x29, 0x74, 0xfb, 0x9a, 0x7e, 0x9d, 0xa8, 0x10,
12533ca586cSjsing 0xfb, 0x7e, 0xb0, 0x6c, 0x60, 0x4f, 0x57, 0x02,
12633ca586cSjsing 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x05, 0x53,
12733ca586cSjsing 0x30, 0x82, 0x05, 0x4f, 0x30, 0x0e, 0x06, 0x03,
12833ca586cSjsing 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
12933ca586cSjsing 0x03, 0x02, 0x05, 0xa0, 0x30, 0x81, 0x9e, 0x06,
13033ca586cSjsing 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
13133ca586cSjsing 0x01, 0x04, 0x81, 0x91, 0x30, 0x81, 0x8e, 0x30,
13233ca586cSjsing 0x4b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
13333ca586cSjsing 0x07, 0x30, 0x02, 0x86, 0x3f, 0x68, 0x74, 0x74,
13433ca586cSjsing 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x65, 0x63, 0x75,
13533ca586cSjsing 0x72, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
13633ca586cSjsing 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
13733ca586cSjsing 0x6d, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74,
13833ca586cSjsing 0x2f, 0x67, 0x73, 0x6f, 0x72, 0x67, 0x61, 0x6e,
13933ca586cSjsing 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x76,
14033ca586cSjsing 0x61, 0x6c, 0x73, 0x68, 0x61, 0x32, 0x67, 0x33,
14133ca586cSjsing 0x2e, 0x63, 0x72, 0x74, 0x30, 0x3f, 0x06, 0x08,
14233ca586cSjsing 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
14333ca586cSjsing 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
14433ca586cSjsing 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x32, 0x2e, 0x67,
14533ca586cSjsing 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67,
14633ca586cSjsing 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x73,
14733ca586cSjsing 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
14833ca586cSjsing 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x61, 0x6c, 0x73,
14933ca586cSjsing 0x68, 0x61, 0x32, 0x67, 0x33, 0x30, 0x56, 0x06,
15033ca586cSjsing 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4f, 0x30, 0x4d,
15133ca586cSjsing 0x30, 0x41, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
15233ca586cSjsing 0x01, 0xa0, 0x32, 0x01, 0x14, 0x30, 0x34, 0x30,
15333ca586cSjsing 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
15433ca586cSjsing 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74,
15533ca586cSjsing 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
15633ca586cSjsing 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73,
15733ca586cSjsing 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
15833ca586cSjsing 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
15933ca586cSjsing 0x72, 0x79, 0x2f, 0x30, 0x08, 0x06, 0x06, 0x67,
16033ca586cSjsing 0x81, 0x0c, 0x01, 0x02, 0x02, 0x30, 0x09, 0x06,
16133ca586cSjsing 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00,
16233ca586cSjsing 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
16333ca586cSjsing 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0xa0, 0x39, 0xa0,
16433ca586cSjsing 0x37, 0x86, 0x35, 0x68, 0x74, 0x74, 0x70, 0x3a,
16533ca586cSjsing 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x6c,
16633ca586cSjsing 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e,
16733ca586cSjsing 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x73, 0x6f,
16833ca586cSjsing 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
16933ca586cSjsing 0x69, 0x6f, 0x6e, 0x76, 0x61, 0x6c, 0x73, 0x68,
17033ca586cSjsing 0x61, 0x32, 0x67, 0x33, 0x2e, 0x63, 0x72, 0x6c,
17133ca586cSjsing 0x30, 0x82, 0x02, 0x10, 0x06, 0x03, 0x55, 0x1d,
17233ca586cSjsing 0x11, 0x04, 0x82, 0x02, 0x07, 0x30, 0x82, 0x02,
17333ca586cSjsing 0x03, 0x82, 0x0b, 0x6f, 0x75, 0x74, 0x6c, 0x6f,
17433ca586cSjsing 0x6f, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x82, 0x16,
17533ca586cSjsing 0x2a, 0x2e, 0x63, 0x6c, 0x6f, 0x2e, 0x66, 0x6f,
17633ca586cSjsing 0x6f, 0x74, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x64,
17733ca586cSjsing 0x6e, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x82, 0x0d,
17833ca586cSjsing 0x2a, 0x2e, 0x68, 0x6f, 0x74, 0x6d, 0x61, 0x69,
17933ca586cSjsing 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x82, 0x16, 0x2a,
18033ca586cSjsing 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
18133ca586cSjsing 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x6c, 0x6f, 0x6f,
18233ca586cSjsing 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x82, 0x0a, 0x2a,
18333ca586cSjsing 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x2e, 0x63, 0x6f,
18433ca586cSjsing 0x6d, 0x82, 0x16, 0x2a, 0x2e, 0x6e, 0x72, 0x62,
18533ca586cSjsing 0x2e, 0x66, 0x6f, 0x6f, 0x74, 0x70, 0x72, 0x69,
18633ca586cSjsing 0x6e, 0x74, 0x64, 0x6e, 0x73, 0x2e, 0x63, 0x6f,
18733ca586cSjsing 0x6d, 0x82, 0x0c, 0x2a, 0x2e, 0x6f, 0x66, 0x66,
18833ca586cSjsing 0x69, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x82,
18933ca586cSjsing 0x0f, 0x2a, 0x2e, 0x6f, 0x66, 0x66, 0x69, 0x63,
19033ca586cSjsing 0x65, 0x33, 0x36, 0x35, 0x2e, 0x63, 0x6f, 0x6d,
19133ca586cSjsing 0x82, 0x0d, 0x2a, 0x2e, 0x6f, 0x75, 0x74, 0x6c,
19233ca586cSjsing 0x6f, 0x6f, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x82,
19333ca586cSjsing 0x17, 0x2a, 0x2e, 0x6f, 0x75, 0x74, 0x6c, 0x6f,
19433ca586cSjsing 0x6f, 0x6b, 0x2e, 0x6f, 0x66, 0x66, 0x69, 0x63,
19533ca586cSjsing 0x65, 0x33, 0x36, 0x35, 0x2e, 0x63, 0x6f, 0x6d,
19633ca586cSjsing 0x82, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
19733ca586cSjsing 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6f, 0x75, 0x74,
19833ca586cSjsing 0x6c, 0x6f, 0x6f, 0x6b, 0x2e, 0x6c, 0x69, 0x76,
19933ca586cSjsing 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x82, 0x1d, 0x61,
20033ca586cSjsing 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e,
20133ca586cSjsing 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x6c, 0x6f, 0x6f,
20233ca586cSjsing 0x6b, 0x2e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
20333ca586cSjsing 0x2e, 0x6e, 0x65, 0x74, 0x82, 0x20, 0x61, 0x74,
20433ca586cSjsing 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74,
20533ca586cSjsing 0x2e, 0x6f, 0x75, 0x74, 0x6c, 0x6f, 0x6f, 0x6b,
20633ca586cSjsing 0x2e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x70,
20733ca586cSjsing 0x70, 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x82, 0x16,
20833ca586cSjsing 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
20933ca586cSjsing 0x6e, 0x74, 0x73, 0x2e, 0x6f, 0x66, 0x66, 0x69,
21033ca586cSjsing 0x63, 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x82, 0x1a,
21133ca586cSjsing 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
21233ca586cSjsing 0x6e, 0x74, 0x73, 0x2d, 0x73, 0x64, 0x66, 0x2e,
21333ca586cSjsing 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x2e, 0x6e,
21433ca586cSjsing 0x65, 0x74, 0x82, 0x1d, 0x63, 0x63, 0x73, 0x2e,
21533ca586cSjsing 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x6d, 0x69,
21633ca586cSjsing 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x6f,
21733ca586cSjsing 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x63, 0x6f,
21833ca586cSjsing 0x6d, 0x82, 0x21, 0x63, 0x63, 0x73, 0x2d, 0x73,
21933ca586cSjsing 0x64, 0x66, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
22033ca586cSjsing 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f,
22133ca586cSjsing 0x66, 0x74, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
22233ca586cSjsing 0x2e, 0x63, 0x6f, 0x6d, 0x82, 0x0b, 0x68, 0x6f,
22333ca586cSjsing 0x74, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x63, 0x6f,
22433ca586cSjsing 0x6d, 0x82, 0x16, 0x6d, 0x61, 0x69, 0x6c, 0x2e,
22533ca586cSjsing 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
22633ca586cSjsing 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x2e, 0x63, 0x6f,
22733ca586cSjsing 0x6d, 0x82, 0x0d, 0x6f, 0x66, 0x66, 0x69, 0x63,
22833ca586cSjsing 0x65, 0x33, 0x36, 0x35, 0x2e, 0x63, 0x6f, 0x6d,
22933ca586cSjsing 0x82, 0x12, 0x6f, 0x75, 0x74, 0x6c, 0x6f, 0x6f,
23033ca586cSjsing 0x6b, 0x2e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
23133ca586cSjsing 0x2e, 0x63, 0x6f, 0x6d, 0x82, 0x14, 0x73, 0x75,
23233ca586cSjsing 0x62, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x2e,
23333ca586cSjsing 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x2e, 0x63,
23433ca586cSjsing 0x6f, 0x6d, 0x82, 0x18, 0x73, 0x75, 0x62, 0x73,
23533ca586cSjsing 0x74, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x64,
23633ca586cSjsing 0x66, 0x2e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
23733ca586cSjsing 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1d, 0x06, 0x03,
23833ca586cSjsing 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06,
23933ca586cSjsing 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
24033ca586cSjsing 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
24133ca586cSjsing 0x07, 0x03, 0x02, 0x30, 0x1f, 0x06, 0x03, 0x55,
24233ca586cSjsing 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
24333ca586cSjsing 0x68, 0x86, 0xb8, 0x7d, 0x7a, 0xd9, 0x6d, 0x49,
24433ca586cSjsing 0x6b, 0x87, 0x2f, 0x18, 0x8b, 0x15, 0x34, 0x6c,
24533ca586cSjsing 0xd7, 0xb4, 0x7a, 0x0e, 0x30, 0x1d, 0x06, 0x03,
24633ca586cSjsing 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x8a,
24733ca586cSjsing 0x7c, 0x73, 0x44, 0x70, 0xa8, 0x4d, 0x83, 0x25,
24833ca586cSjsing 0x6f, 0xa6, 0x53, 0xda, 0x42, 0x52, 0x96, 0xc9,
24933ca586cSjsing 0x15, 0x71, 0x21, 0x30, 0x82, 0x01, 0x7c, 0x06,
25033ca586cSjsing 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79,
25133ca586cSjsing 0x02, 0x04, 0x02, 0x04, 0x82, 0x01, 0x6c, 0x04,
25233ca586cSjsing 0x82, 0x01, 0x68, 0x01, 0x66, 0x00, 0x76, 0x00,
25333ca586cSjsing 0x22, 0x45, 0x45, 0x07, 0x59, 0x55, 0x24, 0x56,
25433ca586cSjsing 0x96, 0x3f, 0xa1, 0x2f, 0xf1, 0xf7, 0x6d, 0x86,
25533ca586cSjsing 0xe0, 0x23, 0x26, 0x63, 0xad, 0xc0, 0x4b, 0x7f,
25633ca586cSjsing 0x5d, 0xc6, 0x83, 0x5c, 0x6e, 0xe2, 0x0f, 0x02,
25733ca586cSjsing 0x00, 0x00, 0x01, 0x73, 0xea, 0x1e, 0x7d, 0x2f,
25833ca586cSjsing 0x00, 0x00, 0x04, 0x03, 0x00, 0x47, 0x30, 0x45,
25933ca586cSjsing 0x02, 0x21, 0x00, 0xf4, 0x50, 0x8f, 0xe7, 0x38,
26033ca586cSjsing 0xc9, 0x7a, 0xd1, 0xf7, 0xf7, 0x69, 0xc5, 0x05,
26133ca586cSjsing 0xea, 0x8e, 0x03, 0x80, 0x2c, 0x87, 0x06, 0x03,
26233ca586cSjsing 0xb6, 0x9b, 0xe6, 0xa5, 0x83, 0x2f, 0xb9, 0xaf,
26333ca586cSjsing 0x7b, 0xb4, 0xac, 0x02, 0x20, 0x51, 0xa6, 0x8f,
26433ca586cSjsing 0xe8, 0xe5, 0x6c, 0xa7, 0xff, 0x16, 0x01, 0x7e,
26533ca586cSjsing 0x15, 0x42, 0x11, 0x31, 0xdc, 0xdc, 0xc7, 0x37,
26633ca586cSjsing 0x7c, 0x64, 0x2c, 0xac, 0xdd, 0x42, 0xbb, 0x3c,
26733ca586cSjsing 0x79, 0x31, 0x74, 0xcc, 0x9d, 0x00, 0x75, 0x00,
26833ca586cSjsing 0x29, 0x79, 0xbe, 0xf0, 0x9e, 0x39, 0x39, 0x21,
26933ca586cSjsing 0xf0, 0x56, 0x73, 0x9f, 0x63, 0xa5, 0x77, 0xe5,
27033ca586cSjsing 0xbe, 0x57, 0x7d, 0x9c, 0x60, 0x0a, 0xf8, 0xf9,
27133ca586cSjsing 0x4d, 0x5d, 0x26, 0x5c, 0x25, 0x5d, 0xc7, 0x84,
27233ca586cSjsing 0x00, 0x00, 0x01, 0x73, 0xea, 0x1e, 0x7a, 0xa7,
27333ca586cSjsing 0x00, 0x00, 0x04, 0x03, 0x00, 0x46, 0x30, 0x44,
27433ca586cSjsing 0x02, 0x20, 0x03, 0xf1, 0x19, 0xd7, 0x0f, 0x2f,
27533ca586cSjsing 0xc4, 0xa9, 0x84, 0xa0, 0x33, 0xd4, 0x76, 0xa6,
27633ca586cSjsing 0xee, 0xf1, 0xae, 0xe0, 0x03, 0xe7, 0xae, 0x98,
27733ca586cSjsing 0x43, 0x17, 0xb0, 0x0f, 0xfb, 0x12, 0xbb, 0x13,
27833ca586cSjsing 0xda, 0x34, 0x02, 0x20, 0x10, 0xe6, 0xa9, 0x1d,
27933ca586cSjsing 0x8b, 0x1c, 0x64, 0xd4, 0xc9, 0xf7, 0xc0, 0x3d,
28033ca586cSjsing 0x3c, 0x77, 0x49, 0xb1, 0x08, 0x3d, 0x1d, 0x5e,
28133ca586cSjsing 0x34, 0xf9, 0xd9, 0x10, 0x7c, 0x74, 0x6b, 0x18,
28233ca586cSjsing 0xc6, 0x5e, 0x6d, 0x07, 0x00, 0x75, 0x00, 0x55,
28333ca586cSjsing 0x81, 0xd4, 0xc2, 0x16, 0x90, 0x36, 0x01, 0x4a,
28433ca586cSjsing 0xea, 0x0b, 0x9b, 0x57, 0x3c, 0x53, 0xf0, 0xc0,
28533ca586cSjsing 0xe4, 0x38, 0x78, 0x70, 0x25, 0x08, 0x17, 0x2f,
28633ca586cSjsing 0xa3, 0xaa, 0x1d, 0x07, 0x13, 0xd3, 0x0c, 0x00,
28733ca586cSjsing 0x00, 0x01, 0x73, 0xea, 0x1e, 0x7d, 0xae, 0x00,
28833ca586cSjsing 0x00, 0x04, 0x03, 0x00, 0x46, 0x30, 0x44, 0x02,
28933ca586cSjsing 0x20, 0x26, 0x21, 0x64, 0xdb, 0xa6, 0xe2, 0x3d,
29033ca586cSjsing 0x32, 0x7d, 0x9f, 0xa8, 0xae, 0xb7, 0x29, 0xb7,
29133ca586cSjsing 0x42, 0x9b, 0x49, 0xaa, 0xf5, 0xa5, 0xc0, 0x12,
29233ca586cSjsing 0x01, 0xa1, 0xb6, 0xe7, 0xf2, 0x01, 0xd4, 0x2f,
29333ca586cSjsing 0x45, 0x02, 0x20, 0x4e, 0x19, 0xba, 0x47, 0x75,
29433ca586cSjsing 0x8b, 0x49, 0xd7, 0x4b, 0xba, 0x04, 0x62, 0xdd,
29533ca586cSjsing 0xa2, 0xb7, 0x6b, 0x05, 0xd0, 0x01, 0x1f, 0x7c,
29633ca586cSjsing 0x36, 0x17, 0x27, 0x29, 0xb2, 0x17, 0x1c, 0x7f,
29733ca586cSjsing 0x10, 0x81, 0x8a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
29833ca586cSjsing 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
29933ca586cSjsing 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x26,
30033ca586cSjsing 0xf4, 0xa3, 0x77, 0x1d, 0xdc, 0x9e, 0xc4, 0x1a,
30133ca586cSjsing 0x88, 0x23, 0x30, 0x8c, 0xe1, 0x14, 0xf9, 0x62,
30233ca586cSjsing 0x0e, 0xbf, 0xad, 0x24, 0xc9, 0xab, 0xab, 0xd0,
30333ca586cSjsing 0x68, 0x8b, 0xbc, 0xf1, 0xec, 0x1c, 0xd0, 0x96,
30433ca586cSjsing 0xad, 0xf9, 0x5f, 0xdd, 0xe0, 0xee, 0xa8, 0xe0,
30533ca586cSjsing 0x2c, 0x3a, 0x19, 0xa5, 0x68, 0x0c, 0x6e, 0xfe,
30633ca586cSjsing 0xe6, 0x80, 0xce, 0xa3, 0x3b, 0x6c, 0x00, 0x88,
30733ca586cSjsing 0x5c, 0xbf, 0x3c, 0xd8, 0x68, 0x08, 0x36, 0xb9,
30833ca586cSjsing 0x9e, 0x84, 0x9b, 0x5f, 0x97, 0xfb, 0x77, 0xea,
30933ca586cSjsing 0x72, 0xfb, 0x73, 0x47, 0x00, 0xb0, 0xa8, 0x7c,
31033ca586cSjsing 0x64, 0x38, 0xf1, 0xcc, 0xc0, 0x29, 0x71, 0x67,
31133ca586cSjsing 0x65, 0x76, 0x4c, 0x80, 0x58, 0x97, 0xc8, 0x62,
31233ca586cSjsing 0x63, 0x3e, 0xf1, 0x3e, 0xc0, 0x0e, 0x48, 0x5f,
31333ca586cSjsing 0x55, 0x21, 0x8f, 0x96, 0x68, 0xbd, 0x41, 0x14,
31433ca586cSjsing 0x7a, 0x0b, 0x8c, 0x31, 0x5b, 0x39, 0xac, 0xa3,
31533ca586cSjsing 0xa0, 0x99, 0x58, 0x24, 0xfa, 0xd9, 0x19, 0x32,
31633ca586cSjsing 0x1c, 0x9f, 0x2d, 0xa9, 0xed, 0xb9, 0x97, 0xa4,
31733ca586cSjsing 0x66, 0x30, 0x29, 0xd8, 0x82, 0xa2, 0xf5, 0xfc,
31833ca586cSjsing 0x6d, 0x10, 0xf1, 0xac, 0x1d, 0x3f, 0xfb, 0xde,
31933ca586cSjsing 0xa1, 0x0e, 0xb6, 0x84, 0x90, 0xd4, 0x55, 0x5c,
32033ca586cSjsing 0x21, 0x1b, 0x1f, 0x21, 0x45, 0x92, 0xc5, 0x9a,
32133ca586cSjsing 0x47, 0x05, 0x0f, 0xb8, 0x1c, 0x78, 0x6e, 0xb9,
32233ca586cSjsing 0x6b, 0xa3, 0xa9, 0x8d, 0xb1, 0x59, 0xff, 0xf4,
32333ca586cSjsing 0xe6, 0x71, 0x77, 0x38, 0x12, 0xfe, 0x41, 0x8f,
32433ca586cSjsing 0x04, 0x92, 0x08, 0x3f, 0x32, 0x2a, 0x92, 0x5e,
32533ca586cSjsing 0x0a, 0x7b, 0x7e, 0x04, 0xee, 0x24, 0x10, 0x39,
32633ca586cSjsing 0xf3, 0xac, 0x5e, 0x04, 0x93, 0x91, 0xa2, 0x8f,
32733ca586cSjsing 0x90, 0x04, 0x33, 0x5c, 0x5c, 0x94, 0xb3, 0x80,
32833ca586cSjsing 0x2b, 0x43, 0xbf, 0xe3, 0x74, 0x64, 0x20, 0xf4,
32933ca586cSjsing 0x00, 0xb2, 0x6c, 0x7b, 0xa8, 0x77, 0xfb, 0x74,
33033ca586cSjsing 0x35, 0xce, 0xdd, 0xb6, 0x5f, 0x83, 0x18, 0xc4,
33133ca586cSjsing 0xe7, 0x31, 0x1a, 0x8d, 0x30, 0x0d, 0xc4, 0x00,
33233ca586cSjsing 0x04, 0x8f, 0x30, 0x82, 0x04, 0x8b, 0x30, 0x82,
33333ca586cSjsing 0x03, 0x73, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02,
33433ca586cSjsing 0x0e, 0x47, 0x07, 0xb1, 0x01, 0x9a, 0x0c, 0x57,
33533ca586cSjsing 0xad, 0x39, 0xb3, 0xe1, 0x7d, 0xa9, 0xf9, 0x30,
33633ca586cSjsing 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
33733ca586cSjsing 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57,
33833ca586cSjsing 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
33933ca586cSjsing 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
34033ca586cSjsing 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10,
34133ca586cSjsing 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
34233ca586cSjsing 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
34333ca586cSjsing 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04,
34433ca586cSjsing 0x0b, 0x13, 0x07, 0x52, 0x6f, 0x6f, 0x74, 0x20,
34533ca586cSjsing 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03,
34633ca586cSjsing 0x55, 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f,
34733ca586cSjsing 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20,
34833ca586cSjsing 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30,
34933ca586cSjsing 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x39, 0x30,
35033ca586cSjsing 0x34, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
35133ca586cSjsing 0x17, 0x0d, 0x32, 0x35, 0x30, 0x39, 0x30, 0x34,
35233ca586cSjsing 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30,
35333ca586cSjsing 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
35433ca586cSjsing 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19,
35533ca586cSjsing 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
35633ca586cSjsing 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53,
35733ca586cSjsing 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73,
35833ca586cSjsing 0x61, 0x31, 0x3c, 0x30, 0x3a, 0x06, 0x03, 0x55,
35933ca586cSjsing 0x04, 0x03, 0x13, 0x33, 0x47, 0x6c, 0x6f, 0x62,
36033ca586cSjsing 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x4f,
36133ca586cSjsing 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
36233ca586cSjsing 0x69, 0x6f, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69,
36333ca586cSjsing 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43,
36433ca586cSjsing 0x41, 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32,
36533ca586cSjsing 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
36633ca586cSjsing 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
36733ca586cSjsing 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
36833ca586cSjsing 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
36933ca586cSjsing 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
37033ca586cSjsing 0xc9, 0x86, 0xa2, 0x05, 0x3e, 0xec, 0x77, 0x4d,
37133ca586cSjsing 0x79, 0x42, 0x81, 0xf2, 0xc5, 0x46, 0xa9, 0xc2,
37233ca586cSjsing 0x9b, 0xf9, 0x57, 0xa9, 0x48, 0xdd, 0x3c, 0x3b,
37333ca586cSjsing 0xe2, 0x16, 0x47, 0x83, 0x15, 0x0c, 0x36, 0x88,
37433ca586cSjsing 0x61, 0xb3, 0xc8, 0xb9, 0xd5, 0x20, 0x97, 0xb6,
37533ca586cSjsing 0xfe, 0x07, 0x30, 0x01, 0x9e, 0x01, 0x3a, 0xf9,
37633ca586cSjsing 0x50, 0x87, 0xa0, 0x4f, 0x60, 0xcc, 0x90, 0xf6,
37733ca586cSjsing 0xdd, 0x1f, 0xa6, 0xc7, 0x55, 0x00, 0x6c, 0x54,
37833ca586cSjsing 0x31, 0x5f, 0x02, 0x9a, 0xf7, 0x7f, 0x07, 0x9a,
37933ca586cSjsing 0xd2, 0x22, 0x53, 0x05, 0xcd, 0x9f, 0xc7, 0xbb,
38033ca586cSjsing 0x7b, 0x59, 0x3b, 0x8a, 0xb2, 0x93, 0x78, 0x0d,
38133ca586cSjsing 0x43, 0x02, 0x92, 0x76, 0xa5, 0x29, 0xf8, 0x7c,
38233ca586cSjsing 0x9d, 0x5c, 0x3a, 0xa2, 0xf8, 0x52, 0x72, 0x22,
38333ca586cSjsing 0x45, 0x91, 0xfd, 0x90, 0x12, 0x28, 0x4d, 0x75,
38433ca586cSjsing 0xe4, 0xdd, 0xaa, 0x79, 0x58, 0x68, 0x6f, 0x2a,
38533ca586cSjsing 0x7e, 0x7b, 0xef, 0xd1, 0x9e, 0x7f, 0x52, 0xdc,
38633ca586cSjsing 0xcb, 0x1c, 0x48, 0xe2, 0x3e, 0x4d, 0x5c, 0x47,
38733ca586cSjsing 0x7a, 0xb4, 0xf1, 0xce, 0xff, 0xd9, 0x60, 0x2b,
38833ca586cSjsing 0x77, 0xd1, 0x62, 0x22, 0x2d, 0xa9, 0x5a, 0x06,
38933ca586cSjsing 0x16, 0xee, 0x37, 0x6a, 0x51, 0xcf, 0x8e, 0xa5,
39033ca586cSjsing 0xd1, 0x6e, 0x70, 0x4a, 0xf0, 0xd8, 0x63, 0x60,
39133ca586cSjsing 0x6a, 0x72, 0x55, 0xd7, 0xf1, 0x99, 0x38, 0x86,
39233ca586cSjsing 0x44, 0x67, 0x18, 0xe0, 0x71, 0x8e, 0xc1, 0x40,
39333ca586cSjsing 0x6d, 0x85, 0xda, 0x4b, 0xdd, 0x31, 0x73, 0xbc,
39433ca586cSjsing 0x32, 0xcc, 0x6f, 0x8e, 0x7b, 0xb9, 0x8d, 0x4b,
39533ca586cSjsing 0x80, 0xda, 0xb9, 0xc7, 0xc6, 0x24, 0x83, 0x5e,
39633ca586cSjsing 0x32, 0xfb, 0x87, 0xe9, 0x8b, 0x61, 0x67, 0xa2,
39733ca586cSjsing 0x99, 0x76, 0xdb, 0xa5, 0xaa, 0xb4, 0xe8, 0x6c,
39833ca586cSjsing 0x41, 0x9f, 0x5f, 0x2a, 0xb3, 0xd5, 0x7d, 0xd7,
39933ca586cSjsing 0x92, 0xc8, 0x27, 0x4b, 0xec, 0x1f, 0xda, 0x05,
40033ca586cSjsing 0x6d, 0x88, 0x73, 0x8f, 0x06, 0xb2, 0x38, 0x3d,
40133ca586cSjsing 0x03, 0xa2, 0xe1, 0x87, 0x86, 0x3c, 0xc6, 0xa1,
40233ca586cSjsing 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
40333ca586cSjsing 0x44, 0x30, 0x82, 0x01, 0x40, 0x30, 0x0e, 0x06,
40433ca586cSjsing 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
40533ca586cSjsing 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06,
40633ca586cSjsing 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14,
40733ca586cSjsing 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
40833ca586cSjsing 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
40933ca586cSjsing 0x05, 0x07, 0x03, 0x02, 0x30, 0x12, 0x06, 0x03,
41033ca586cSjsing 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
41133ca586cSjsing 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
41233ca586cSjsing 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
41333ca586cSjsing 0x16, 0x04, 0x14, 0x68, 0x86, 0xb8, 0x7d, 0x7a,
41433ca586cSjsing 0xd9, 0x6d, 0x49, 0x6b, 0x87, 0x2f, 0x18, 0x8b,
41533ca586cSjsing 0x15, 0x34, 0x6c, 0xd7, 0xb4, 0x7a, 0x0e, 0x30,
41633ca586cSjsing 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
41733ca586cSjsing 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a,
41833ca586cSjsing 0x45, 0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d,
41933ca586cSjsing 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd, 0x4b,
42033ca586cSjsing 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
42133ca586cSjsing 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f,
42233ca586cSjsing 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
42333ca586cSjsing 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74,
42433ca586cSjsing 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
42533ca586cSjsing 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
42633ca586cSjsing 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
42733ca586cSjsing 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30,
42833ca586cSjsing 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c,
42933ca586cSjsing 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24,
43033ca586cSjsing 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
43133ca586cSjsing 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x6c, 0x6f,
43233ca586cSjsing 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e,
43333ca586cSjsing 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
43433ca586cSjsing 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x47, 0x06, 0x03,
43533ca586cSjsing 0x55, 0x1d, 0x20, 0x04, 0x40, 0x30, 0x3e, 0x30,
43633ca586cSjsing 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
43733ca586cSjsing 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01,
43833ca586cSjsing 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x26, 0x68,
43933ca586cSjsing 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
44033ca586cSjsing 0x77, 0x77, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
44133ca586cSjsing 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
44233ca586cSjsing 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
44333ca586cSjsing 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x0d, 0x06,
44433ca586cSjsing 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
44533ca586cSjsing 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
44633ca586cSjsing 0x00, 0x9a, 0xb9, 0x82, 0x1c, 0xdd, 0x83, 0x83,
44733ca586cSjsing 0x8b, 0x92, 0xc0, 0xc4, 0xed, 0x01, 0xad, 0x84,
44833ca586cSjsing 0xfc, 0x4e, 0xee, 0x6d, 0x9c, 0x1d, 0x01, 0xfa,
44933ca586cSjsing 0x52, 0x14, 0xdb, 0xd8, 0xc2, 0x10, 0x63, 0x9f,
45033ca586cSjsing 0x6b, 0x39, 0x9a, 0xc7, 0x1c, 0x3c, 0xa0, 0xaa,
45133ca586cSjsing 0xe3, 0x19, 0x3a, 0xfc, 0x64, 0x46, 0x2a, 0xef,
45233ca586cSjsing 0x35, 0x26, 0x03, 0xf6, 0x05, 0x67, 0xfa, 0x6e,
45333ca586cSjsing 0x74, 0xe1, 0x46, 0xfb, 0x40, 0xd8, 0x6f, 0xae,
45433ca586cSjsing 0x2d, 0x39, 0x21, 0x74, 0x86, 0x9f, 0x00, 0x05,
45533ca586cSjsing 0x1a, 0x3f, 0x2f, 0x93, 0x5b, 0xd4, 0xa4, 0x45,
45633ca586cSjsing 0xbc, 0x3d, 0x0c, 0x29, 0x17, 0x5a, 0xd3, 0xfb,
45733ca586cSjsing 0x68, 0xa6, 0x0f, 0xe0, 0x00, 0x68, 0x79, 0xb0,
45833ca586cSjsing 0x4c, 0xb1, 0x45, 0x8b, 0xc8, 0x85, 0x8c, 0x67,
45933ca586cSjsing 0x0e, 0x8c, 0x7d, 0x54, 0xf8, 0xb0, 0x75, 0xce,
46033ca586cSjsing 0x0a, 0xac, 0x1d, 0xd7, 0x6b, 0x44, 0xac, 0xfe,
46133ca586cSjsing 0x1b, 0xd4, 0xa6, 0x98, 0x21, 0x09, 0x3e, 0xa2,
46233ca586cSjsing 0x4b, 0x33, 0xba, 0xba, 0x4b, 0x12, 0xa8, 0x6b,
46333ca586cSjsing 0x57, 0x27, 0x9d, 0xfa, 0x94, 0x80, 0xb4, 0x68,
46433ca586cSjsing 0x4c, 0x77, 0x60, 0xff, 0xd7, 0x29, 0x5a, 0x38,
46533ca586cSjsing 0x3d, 0xce, 0x2d, 0x4b, 0x08, 0x56, 0x9f, 0x69,
46633ca586cSjsing 0xcb, 0x7b, 0xd8, 0xe2, 0x36, 0xf9, 0x37, 0x69,
46733ca586cSjsing 0xc5, 0xce, 0x36, 0x97, 0x1c, 0xba, 0x0d, 0x3f,
46833ca586cSjsing 0x15, 0xb3, 0x65, 0xa0, 0xec, 0x74, 0x12, 0xbd,
46933ca586cSjsing 0xb3, 0xad, 0xe8, 0xde, 0x9e, 0xa1, 0xec, 0xd3,
47033ca586cSjsing 0xbf, 0xa9, 0xe0, 0xa5, 0x91, 0x6d, 0x83, 0x59,
47133ca586cSjsing 0x12, 0x56, 0x2f, 0x13, 0xa6, 0x7e, 0x79, 0x73,
47233ca586cSjsing 0xa1, 0xa3, 0x89, 0xd5, 0xe1, 0xa5, 0x8c, 0xce,
47333ca586cSjsing 0x2d, 0xac, 0x8a, 0xcf, 0x62, 0x16, 0x65, 0xcd,
47433ca586cSjsing 0xd9, 0xee, 0xa8, 0xb6, 0x40, 0x08, 0xb5, 0x7c,
47533ca586cSjsing 0x50, 0xf9, 0x37, 0x82, 0x7a, 0xa4, 0x0b, 0x34,
47633ca586cSjsing 0x66, 0xec, 0xe9, 0x97, 0x57, 0x1f, 0x8a, 0x67,
47733ca586cSjsing 0x3e, 0x81, 0xbc, 0x3b, 0x35, 0xd3, 0x2a, 0x48,
47833ca586cSjsing 0x0c, 0x0c, 0x00, 0x01, 0x69, 0x03, 0x00, 0x18,
47933ca586cSjsing 0x61, 0x04, 0xb7, 0xa9, 0xbd, 0x74, 0x71, 0xd5,
48033ca586cSjsing 0x68, 0xbf, 0xd8, 0xa6, 0x84, 0x12, 0xaf, 0x8f,
48133ca586cSjsing 0xd4, 0x2c, 0xcf, 0xf9, 0x72, 0x2b, 0x8c, 0x6c,
48233ca586cSjsing 0x73, 0xa3, 0x13, 0x74, 0xdb, 0x83, 0x3e, 0xa6,
48333ca586cSjsing 0xf4, 0x1b, 0xee, 0xa9, 0x34, 0xe5, 0x65, 0xa7,
48433ca586cSjsing 0xaf, 0xef, 0xf2, 0xac, 0xfb, 0x87, 0xb4, 0xdb,
48533ca586cSjsing 0x8b, 0x05, 0x4f, 0xe8, 0x25, 0x3d, 0x32, 0x65,
48633ca586cSjsing 0xda, 0x47, 0xd8, 0xd2, 0x86, 0xad, 0x9b, 0x37,
48733ca586cSjsing 0xbc, 0x45, 0xef, 0xb6, 0x91, 0xa2, 0x71, 0x2f,
48833ca586cSjsing 0x13, 0x68, 0xfa, 0xa7, 0x20, 0xe4, 0x8a, 0xa8,
48933ca586cSjsing 0x9b, 0xbe, 0xf6, 0x7c, 0xc8, 0x16, 0xd4, 0x50,
49033ca586cSjsing 0x9d, 0x63, 0xb3, 0xf4, 0x6e, 0xd3, 0x8f, 0x32,
49133ca586cSjsing 0x68, 0x66, 0x04, 0x01, 0x01, 0x00, 0xaa, 0xcb,
49233ca586cSjsing 0x90, 0xbd, 0x94, 0x10, 0xab, 0xfc, 0x30, 0x1d,
49333ca586cSjsing 0x68, 0x1c, 0xb4, 0x21, 0xcf, 0x73, 0xa5, 0x4b,
49433ca586cSjsing 0x20, 0x94, 0xde, 0x66, 0x99, 0x54, 0x3f, 0xba,
49533ca586cSjsing 0x40, 0x58, 0x50, 0xe3, 0x64, 0x53, 0x90, 0x9e,
49633ca586cSjsing 0xf8, 0x67, 0xcc, 0x85, 0x4a, 0xdc, 0xd8, 0xd7,
49733ca586cSjsing 0xc8, 0xb5, 0xe0, 0x92, 0x02, 0x6b, 0xa8, 0x76,
49833ca586cSjsing 0x67, 0xc5, 0xae, 0x12, 0x56, 0xff, 0xd1, 0xda,
49933ca586cSjsing 0xc0, 0x48, 0x17, 0x99, 0xc9, 0xbe, 0x02, 0xc6,
50033ca586cSjsing 0x9e, 0x5c, 0xd9, 0x44, 0x3f, 0x06, 0xbd, 0x98,
50133ca586cSjsing 0xe3, 0x4d, 0x46, 0x10, 0xe8, 0x20, 0xed, 0x7b,
50233ca586cSjsing 0xcd, 0x73, 0xed, 0x03, 0x6a, 0x4c, 0x49, 0xaf,
50333ca586cSjsing 0xbe, 0xa3, 0xe0, 0xab, 0x9a, 0xb8, 0xf8, 0x06,
50433ca586cSjsing 0x25, 0x31, 0x8d, 0x32, 0x44, 0xfd, 0xd6, 0xb0,
50533ca586cSjsing 0xd4, 0x6c, 0x9a, 0x2a, 0x0f, 0xab, 0xe2, 0x13,
50633ca586cSjsing 0x10, 0x6d, 0x41, 0x0b, 0x97, 0x74, 0xa0, 0x04,
50733ca586cSjsing 0x16, 0x60, 0xf1, 0x8e, 0x74, 0xf3, 0x91, 0x75,
50833ca586cSjsing 0x2b, 0x92, 0x2b, 0xc7, 0x5b, 0x6f, 0x1d, 0x70,
50933ca586cSjsing 0xe2, 0xc6, 0x9a, 0x7d, 0x66, 0x55, 0x98, 0x01,
51033ca586cSjsing 0x71, 0xb8, 0xdd, 0xf4, 0x70, 0xc9, 0x74, 0x56,
51133ca586cSjsing 0xcc, 0xa5, 0x2c, 0x51, 0x70, 0x72, 0xc2, 0x44,
51233ca586cSjsing 0xb9, 0x59, 0xc3, 0xc3, 0xf8, 0x29, 0x4e, 0x79,
51333ca586cSjsing 0x40, 0x9b, 0x30, 0x35, 0x66, 0xb2, 0xd8, 0x7d,
51433ca586cSjsing 0xfe, 0x65, 0x6b, 0xf0, 0x17, 0xa3, 0x13, 0xc7,
51533ca586cSjsing 0xc7, 0xc6, 0x48, 0xb2, 0xae, 0x4f, 0x26, 0x0b,
51633ca586cSjsing 0x8a, 0x40, 0xaa, 0x06, 0x65, 0x8a, 0x95, 0x00,
51733ca586cSjsing 0xc4, 0xc9, 0xfd, 0x69, 0x0a, 0xa9, 0x0a, 0x18,
51833ca586cSjsing 0xff, 0x95, 0x40, 0xab, 0x84, 0x75, 0xfe, 0x11,
51933ca586cSjsing 0xb1, 0x6f, 0xca, 0x5e, 0xf7, 0xe4, 0x1d, 0x8d,
52033ca586cSjsing 0x08, 0x1c, 0xd3, 0x95, 0xf4, 0x9b, 0x17, 0x41,
52133ca586cSjsing 0xa8, 0x8f, 0x6e, 0xfa, 0x6c, 0x43, 0x60, 0x39,
52233ca586cSjsing 0x0a, 0xa2, 0x7e, 0xdf, 0x3e, 0x74, 0xc2, 0xbf,
52333ca586cSjsing 0xaf, 0x96, 0x96, 0xbd, 0x21, 0x4b, 0x0d, 0x00,
52433ca586cSjsing 0x00, 0x1a, 0x03, 0x01, 0x02, 0x40, 0x00, 0x12,
52533ca586cSjsing 0x04, 0x01, 0x05, 0x01, 0x02, 0x01, 0x04, 0x03,
52633ca586cSjsing 0x05, 0x03, 0x02, 0x03, 0x02, 0x02, 0x06, 0x01,
52733ca586cSjsing 0x06, 0x03, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
52833ca586cSjsing };
52933ca586cSjsing
53033ca586cSjsing struct tlslegacy_client_test {
53133ca586cSjsing const unsigned char *desc;
53233ca586cSjsing unsigned char *server_response;
53333ca586cSjsing const size_t server_response_len;
53433ca586cSjsing const SSL_METHOD *(*ssl_method)(void);
53533ca586cSjsing int want_state;
53633ca586cSjsing };
53733ca586cSjsing
53833ca586cSjsing static struct tlslegacy_client_test tlslegacy_client_tests[] = {
53933ca586cSjsing {
54033ca586cSjsing .desc = "TLSv1.2 legacy fallback",
54133ca586cSjsing .server_response = tls12_server_response,
54233ca586cSjsing .server_response_len = sizeof(tls12_server_response),
54333ca586cSjsing .ssl_method = TLS_client_method,
54433ca586cSjsing .want_state = SSL3_ST_CR_CERT_A,
54533ca586cSjsing },
54633ca586cSjsing {
54733ca586cSjsing .desc = "TLSv1.2 legacy fallback with server cert",
54833ca586cSjsing .server_response = tls12_server_response_with_cert,
54933ca586cSjsing .server_response_len = sizeof(tls12_server_response_with_cert),
55033ca586cSjsing .ssl_method = TLS_client_method,
55133ca586cSjsing .want_state = SSL3_ST_CR_KEY_EXCH_B,
55233ca586cSjsing },
55333ca586cSjsing };
55433ca586cSjsing
55533ca586cSjsing #define N_TLSLEGACY_CLIENT_TESTS \
55633ca586cSjsing (sizeof(tlslegacy_client_tests) / sizeof(*tlslegacy_client_tests))
55733ca586cSjsing
55833ca586cSjsing static int
tlslegacy_client_test(int testno,struct tlslegacy_client_test * tct)55933ca586cSjsing tlslegacy_client_test(int testno, struct tlslegacy_client_test *tct)
56033ca586cSjsing {
56133ca586cSjsing BIO *rbio = NULL, *wbio = NULL;
56233ca586cSjsing SSL_CTX *ssl_ctx = NULL;
56333ca586cSjsing SSL *ssl = NULL;
56433ca586cSjsing int ret = 1;
56533ca586cSjsing
566c0a6a244Stb fprintf(stderr, "Test %d - %s\n", testno, tct->desc);
56733ca586cSjsing
56833ca586cSjsing if ((rbio = BIO_new_mem_buf(tct->server_response,
56933ca586cSjsing tct->server_response_len)) == NULL) {
57033ca586cSjsing fprintf(stderr, "Failed to setup rbio\n");
57133ca586cSjsing goto failure;
57233ca586cSjsing }
57333ca586cSjsing if ((wbio = BIO_new(BIO_s_mem())) == NULL) {
57433ca586cSjsing fprintf(stderr, "Failed to setup wbio\n");
57533ca586cSjsing goto failure;
57633ca586cSjsing }
57733ca586cSjsing
57833ca586cSjsing if ((ssl_ctx = SSL_CTX_new(tct->ssl_method())) == NULL) {
57933ca586cSjsing fprintf(stderr, "SSL_CTX_new() returned NULL\n");
58033ca586cSjsing goto failure;
58133ca586cSjsing }
58233ca586cSjsing
58333ca586cSjsing if ((ssl = SSL_new(ssl_ctx)) == NULL) {
58433ca586cSjsing fprintf(stderr, "SSL_new() returned NULL\n");
58533ca586cSjsing goto failure;
58633ca586cSjsing }
58733ca586cSjsing
588ef70a379Stb BIO_up_ref(rbio);
589ef70a379Stb BIO_up_ref(wbio);
59033ca586cSjsing SSL_set_bio(ssl, rbio, wbio);
59133ca586cSjsing
59233ca586cSjsing if (SSL_connect(ssl) == 1) {
59333ca586cSjsing fprintf(stderr, "SSL_connect() succeeded\n");
59433ca586cSjsing goto failure;
59533ca586cSjsing }
59633ca586cSjsing
59733ca586cSjsing if (SSL_state(ssl) != tct->want_state) {
59833ca586cSjsing fprintf(stderr, "FAIL: Got SSL state %x, want %x",
59933ca586cSjsing SSL_state(ssl), tct->want_state);
60033ca586cSjsing goto failure;
60133ca586cSjsing }
60233ca586cSjsing
60333ca586cSjsing ret = 0;
60433ca586cSjsing
60533ca586cSjsing failure:
60633ca586cSjsing SSL_CTX_free(ssl_ctx);
60733ca586cSjsing SSL_free(ssl);
60833ca586cSjsing
60933ca586cSjsing BIO_free(rbio);
61033ca586cSjsing BIO_free(wbio);
61133ca586cSjsing
61233ca586cSjsing return (ret);
61333ca586cSjsing }
61433ca586cSjsing
61533ca586cSjsing int
main(int argc,char ** argv)61633ca586cSjsing main(int argc, char **argv)
61733ca586cSjsing {
61833ca586cSjsing int failed = 0;
61933ca586cSjsing size_t i;
62033ca586cSjsing
62133ca586cSjsing for (i = 0; i < N_TLSLEGACY_CLIENT_TESTS; i++)
62233ca586cSjsing failed |= tlslegacy_client_test(i, &tlslegacy_client_tests[i]);
62333ca586cSjsing
62433ca586cSjsing return (failed);
62533ca586cSjsing }
626