xref: /openbsd-src/regress/lib/libcrypto/bio/bio_dump.c (revision 4322089e7b6b93a56ba1a35805ff3ec3982b2480)
1 /*	$OpenBSD: bio_dump.c,v 1.4 2024/02/09 12:48:32 tb Exp $ */
2 /*
3  * Copyright (c) 2024 Theo Buehler <tb@openbsd.org>
4  *
5  * Permission to use, copy, modify, and distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 #include <err.h>
19 #include <string.h>
20 
21 #include <openssl/bio.h>
22 
23 const uint8_t dump[] = {
24 	0x74, 0x45, 0xc6, 0x20, 0x00, 0x00, 0x00, 0x00,
25 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26 	0x36, 0xd8, 0x61, 0x48, 0x68, 0x3c, 0xc0, 0x68,
27 	0xaa, 0x15, 0x57, 0x77, 0xe3, 0xec, 0xb4, 0x98,
28 	0xc6, 0x08, 0xfc, 0x59, 0xb3, 0x4f, 0x45, 0xcf,
29 	0x4b, 0xc2, 0xae, 0x98, 0xb5, 0xeb, 0xe0, 0xb5,
30 	0xc1, 0x68, 0xba, 0xcf, 0x7c, 0xf7, 0x7b, 0x38,
31 	0x43, 0x2f, 0xb9, 0x0e, 0x23, 0x02, 0xb9, 0x4f,
32 	0x8c, 0x26, 0xeb, 0xef, 0x70, 0x98, 0x82, 0xa7,
33 	0xb9, 0x78, 0xc5, 0x08, 0x96, 0x99, 0xb3, 0x84,
34 	0xa3, 0x4f, 0xfb, 0xd7, 0x38, 0xa9, 0xd9, 0xd4,
35 	0x53, 0x0f, 0x4f, 0x64, 0x97, 0xdf, 0xcf, 0xf3,
36 	0x4f, 0xc8, 0xd2, 0x56, 0x3f, 0x0d, 0x72, 0xd4,
37 	0x55, 0x98, 0x89, 0xb0, 0x45, 0x26, 0x3f, 0x7a,
38 	0xbd, 0x9d, 0x96, 0x15, 0xa2, 0x10, 0x14, 0x85,
39 	0xaa, 0xa1, 0x7c, 0x84, 0xfb, 0xc4, 0xa5, 0x7b,
40 	0xc6, 0xe3, 0xad, 0x85, 0x57, 0x96, 0xbb, 0x81,
41 	0x18, 0x0c, 0xed, 0x2f, 0xf7, 0x6a, 0x4c, 0x4d,
42 	0x59, 0xe1, 0xcc, 0xc5, 0x3a, 0x9f, 0x48, 0xfc,
43 	0x1d, 0x7c, 0x0d, 0xa4, 0x79, 0x96, 0xe7, 0x2b,
44 	0x39, 0x15, 0xf9, 0x3a, 0x6a, 0x5e, 0x7c, 0x4e,
45 	0xc9, 0x3b, 0xaf, 0xeb, 0x3b, 0xcf, 0x8d, 0x6a,
46 	0x57, 0xe6, 0xc5, 0xba, 0xbd, 0xa6, 0xa0, 0x6b,
47 	0x03, 0xd5, 0xa3, 0x9f, 0x99, 0x2a, 0xea, 0x88,
48 	0x72, 0x1b, 0x66, 0x6c, 0x5e, 0x1d, 0x49, 0xd5,
49 	0x1e, 0x1e, 0xcc, 0x1a, 0xb1, 0xd8, 0xf7, 0x91,
50 	0x1e, 0x1e, 0xcc, 0x1a, 0x20, 0x00, 0x20, 0x00,
51 	0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,
52 	0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,
53 	0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,
54 	0x20, 0x00, 0x20, 0x00, 0x20, 0x00,
55 };
56 #define DUMP_LEN (sizeof(dump) / sizeof(dump[0]))
57 
58 const uint8_t bytes[] = {
59 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
60 	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
61 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
62 	0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
63 	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
64 	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
65 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
66 	0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
67 	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
68 	0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
69 	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
70 	0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
71 	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
72 	0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
73 	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
74 	0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
75 	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
76 	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
77 	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
78 	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
79 	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
80 	0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
81 	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
82 	0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
83 	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
84 	0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
85 	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
86 	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
87 	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
88 	0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
89 	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
90 	0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
91 };
92 #define BYTES_LEN (sizeof(bytes) / sizeof(bytes[0]))
93 
94 static const struct bio_dump_testcase {
95 	int indent;
96 	const char *input;
97 	int inlen;
98 	const char *output;
99 } bio_dump_testcases[] = {
100 	{
101 		.indent = 0,
102 		.input = "",
103 		.inlen = 0,
104 		.output = "",
105 	},
106 	{
107 		.indent = 0,
108 		.input = "",
109 		.inlen = 1,
110 		.output = "0001 - <SPACES/NULS>\n",
111 	},
112 	{
113 		.indent = 6,
114 		.input = " ",
115 		.inlen = 1,
116 		.output = "      0001 - <SPACES/NULS>\n",
117 	},
118 	{
119 		.indent = -1,
120 		.input = "!",
121 		.inlen = 1,
122 		.output =
123 "0000 - 21                                                !\n",
124 	},
125 	{
126 		.indent = -1,
127 		.input = "~",
128 		.inlen = 1,
129 		.output =
130 "0000 - 7e                                                ~\n",
131 	},
132 	{
133 		.indent = 4,
134 		.input = dump,
135 		.inlen = DUMP_LEN,
136 		.output =
137 "    0000 - 74 45 c6 20 00 00 00 00-00 00 00 00 00 00 00 00   tE. ............\n"
138 "    0010 - 36 d8 61 48 68 3c c0 68-aa 15 57 77 e3 ec b4 98   6.aHh<.h..Ww....\n"
139 "    0020 - c6 08 fc 59 b3 4f 45 cf-4b c2 ae 98 b5 eb e0 b5   ...Y.OE.K.......\n"
140 "    0030 - c1 68 ba cf 7c f7 7b 38-43 2f b9 0e 23 02 b9 4f   .h..|.{8C/..#..O\n"
141 "    0040 - 8c 26 eb ef 70 98 82 a7-b9 78 c5 08 96 99 b3 84   .&..p....x......\n"
142 "    0050 - a3 4f fb d7 38 a9 d9 d4-53 0f 4f 64 97 df cf f3   .O..8...S.Od....\n"
143 "    0060 - 4f c8 d2 56 3f 0d 72 d4-55 98 89 b0 45 26 3f 7a   O..V?.r.U...E&?z\n"
144 "    0070 - bd 9d 96 15 a2 10 14 85-aa a1 7c 84 fb c4 a5 7b   ..........|....{\n"
145 "    0080 - c6 e3 ad 85 57 96 bb 81-18 0c ed 2f f7 6a 4c 4d   ....W....../.jLM\n"
146 "    0090 - 59 e1 cc c5 3a 9f 48 fc-1d 7c 0d a4 79 96 e7 2b   Y...:.H..|..y..+\n"
147 "    00a0 - 39 15 f9 3a 6a 5e 7c 4e-c9 3b af eb 3b cf 8d 6a   9..:j^|N.;..;..j\n"
148 "    00b0 - 57 e6 c5 ba bd a6 a0 6b-03 d5 a3 9f 99 2a ea 88   W......k.....*..\n"
149 "    00c0 - 72 1b 66 6c 5e 1d 49 d5-1e 1e cc 1a b1 d8 f7 91   r.fl^.I.........\n"
150 "    00d0 - 1e 1e cc 1a                                       ....\n"
151 "    00f6 - <SPACES/NULS>\n",
152 	},
153 	{
154 		.indent = 11,
155 		.input = dump,
156 		.inlen = DUMP_LEN,
157 		.output =
158 "           0000 - 74 45 c6 20 00 00 00 00-00 00 00 00 00 00   tE. ..........\n"
159 "           000e - 00 00 36 d8 61 48 68 3c-c0 68 aa 15 57 77   ..6.aHh<.h..Ww\n"
160 "           001c - e3 ec b4 98 c6 08 fc 59-b3 4f 45 cf 4b c2   .......Y.OE.K.\n"
161 "           002a - ae 98 b5 eb e0 b5 c1 68-ba cf 7c f7 7b 38   .......h..|.{8\n"
162 "           0038 - 43 2f b9 0e 23 02 b9 4f-8c 26 eb ef 70 98   C/..#..O.&..p.\n"
163 "           0046 - 82 a7 b9 78 c5 08 96 99-b3 84 a3 4f fb d7   ...x.......O..\n"
164 "           0054 - 38 a9 d9 d4 53 0f 4f 64-97 df cf f3 4f c8   8...S.Od....O.\n"
165 "           0062 - d2 56 3f 0d 72 d4 55 98-89 b0 45 26 3f 7a   .V?.r.U...E&?z\n"
166 "           0070 - bd 9d 96 15 a2 10 14 85-aa a1 7c 84 fb c4   ..........|...\n"
167 "           007e - a5 7b c6 e3 ad 85 57 96-bb 81 18 0c ed 2f   .{....W....../\n"
168 "           008c - f7 6a 4c 4d 59 e1 cc c5-3a 9f 48 fc 1d 7c   .jLMY...:.H..|\n"
169 "           009a - 0d a4 79 96 e7 2b 39 15-f9 3a 6a 5e 7c 4e   ..y..+9..:j^|N\n"
170 "           00a8 - c9 3b af eb 3b cf 8d 6a-57 e6 c5 ba bd a6   .;..;..jW.....\n"
171 "           00b6 - a0 6b 03 d5 a3 9f 99 2a-ea 88 72 1b 66 6c   .k.....*..r.fl\n"
172 "           00c4 - 5e 1d 49 d5 1e 1e cc 1a-b1 d8 f7 91 1e 1e   ^.I...........\n"
173 "           00d2 - cc 1a                                       ..\n"
174 "           00f6 - <SPACES/NULS>\n",
175 	},
176 	{
177 		.indent = 18,
178 		.input = dump,
179 		.inlen = DUMP_LEN,
180 		.output =
181 "                  0000 - 74 45 c6 20 00 00 00 00-00 00 00 00 00   tE. .........\n"
182 "                  000d - 00 00 00 36 d8 61 48 68-3c c0 68 aa 15   ...6.aHh<.h..\n"
183 "                  001a - 57 77 e3 ec b4 98 c6 08-fc 59 b3 4f 45   Ww.......Y.OE\n"
184 "                  0027 - cf 4b c2 ae 98 b5 eb e0-b5 c1 68 ba cf   .K........h..\n"
185 "                  0034 - 7c f7 7b 38 43 2f b9 0e-23 02 b9 4f 8c   |.{8C/..#..O.\n"
186 "                  0041 - 26 eb ef 70 98 82 a7 b9-78 c5 08 96 99   &..p....x....\n"
187 "                  004e - b3 84 a3 4f fb d7 38 a9-d9 d4 53 0f 4f   ...O..8...S.O\n"
188 "                  005b - 64 97 df cf f3 4f c8 d2-56 3f 0d 72 d4   d....O..V?.r.\n"
189 "                  0068 - 55 98 89 b0 45 26 3f 7a-bd 9d 96 15 a2   U...E&?z.....\n"
190 "                  0075 - 10 14 85 aa a1 7c 84 fb-c4 a5 7b c6 e3   .....|....{..\n"
191 "                  0082 - ad 85 57 96 bb 81 18 0c-ed 2f f7 6a 4c   ..W....../.jL\n"
192 "                  008f - 4d 59 e1 cc c5 3a 9f 48-fc 1d 7c 0d a4   MY...:.H..|..\n"
193 "                  009c - 79 96 e7 2b 39 15 f9 3a-6a 5e 7c 4e c9   y..+9..:j^|N.\n"
194 "                  00a9 - 3b af eb 3b cf 8d 6a 57-e6 c5 ba bd a6   ;..;..jW.....\n"
195 "                  00b6 - a0 6b 03 d5 a3 9f 99 2a-ea 88 72 1b 66   .k.....*..r.f\n"
196 "                  00c3 - 6c 5e 1d 49 d5 1e 1e cc-1a b1 d8 f7 91   l^.I.........\n"
197 "                  00d0 - 1e 1e cc 1a                              ....\n"
198 "                  00f6 - <SPACES/NULS>\n",
199 	},
200 	{
201 		.indent = 25,
202 		.input = dump,
203 		.inlen = DUMP_LEN,
204 		.output =
205 "                         0000 - 74 45 c6 20 00 00 00 00-00 00 00   tE. .......\n"
206 "                         000b - 00 00 00 00 00 36 d8 61-48 68 3c   .....6.aHh<\n"
207 "                         0016 - c0 68 aa 15 57 77 e3 ec-b4 98 c6   .h..Ww.....\n"
208 "                         0021 - 08 fc 59 b3 4f 45 cf 4b-c2 ae 98   ..Y.OE.K...\n"
209 "                         002c - b5 eb e0 b5 c1 68 ba cf-7c f7 7b   .....h..|.{\n"
210 "                         0037 - 38 43 2f b9 0e 23 02 b9-4f 8c 26   8C/..#..O.&\n"
211 "                         0042 - eb ef 70 98 82 a7 b9 78-c5 08 96   ..p....x...\n"
212 "                         004d - 99 b3 84 a3 4f fb d7 38-a9 d9 d4   ....O..8...\n"
213 "                         0058 - 53 0f 4f 64 97 df cf f3-4f c8 d2   S.Od....O..\n"
214 "                         0063 - 56 3f 0d 72 d4 55 98 89-b0 45 26   V?.r.U...E&\n"
215 "                         006e - 3f 7a bd 9d 96 15 a2 10-14 85 aa   ?z.........\n"
216 "                         0079 - a1 7c 84 fb c4 a5 7b c6-e3 ad 85   .|....{....\n"
217 "                         0084 - 57 96 bb 81 18 0c ed 2f-f7 6a 4c   W....../.jL\n"
218 "                         008f - 4d 59 e1 cc c5 3a 9f 48-fc 1d 7c   MY...:.H..|\n"
219 "                         009a - 0d a4 79 96 e7 2b 39 15-f9 3a 6a   ..y..+9..:j\n"
220 "                         00a5 - 5e 7c 4e c9 3b af eb 3b-cf 8d 6a   ^|N.;..;..j\n"
221 "                         00b0 - 57 e6 c5 ba bd a6 a0 6b-03 d5 a3   W......k...\n"
222 "                         00bb - 9f 99 2a ea 88 72 1b 66-6c 5e 1d   ..*..r.fl^.\n"
223 "                         00c6 - 49 d5 1e 1e cc 1a b1 d8-f7 91 1e   I..........\n"
224 "                         00d1 - 1e cc 1a                           ...\n"
225 "                         00f6 - <SPACES/NULS>\n",
226 	},
227 	{
228 		.indent = 32,
229 		.input = dump,
230 		.inlen = DUMP_LEN,
231 		.output =
232 "                                0000 - 74 45 c6 20 00 00 00 00-00   tE. .....\n"
233 "                                0009 - 00 00 00 00 00 00 00 36-d8   .......6.\n"
234 "                                0012 - 61 48 68 3c c0 68 aa 15-57   aHh<.h..W\n"
235 "                                001b - 77 e3 ec b4 98 c6 08 fc-59   w.......Y\n"
236 "                                0024 - b3 4f 45 cf 4b c2 ae 98-b5   .OE.K....\n"
237 "                                002d - eb e0 b5 c1 68 ba cf 7c-f7   ....h..|.\n"
238 "                                0036 - 7b 38 43 2f b9 0e 23 02-b9   {8C/..#..\n"
239 "                                003f - 4f 8c 26 eb ef 70 98 82-a7   O.&..p...\n"
240 "                                0048 - b9 78 c5 08 96 99 b3 84-a3   .x.......\n"
241 "                                0051 - 4f fb d7 38 a9 d9 d4 53-0f   O..8...S.\n"
242 "                                005a - 4f 64 97 df cf f3 4f c8-d2   Od....O..\n"
243 "                                0063 - 56 3f 0d 72 d4 55 98 89-b0   V?.r.U...\n"
244 "                                006c - 45 26 3f 7a bd 9d 96 15-a2   E&?z.....\n"
245 "                                0075 - 10 14 85 aa a1 7c 84 fb-c4   .....|...\n"
246 "                                007e - a5 7b c6 e3 ad 85 57 96-bb   .{....W..\n"
247 "                                0087 - 81 18 0c ed 2f f7 6a 4c-4d   ..../.jLM\n"
248 "                                0090 - 59 e1 cc c5 3a 9f 48 fc-1d   Y...:.H..\n"
249 "                                0099 - 7c 0d a4 79 96 e7 2b 39-15   |..y..+9.\n"
250 "                                00a2 - f9 3a 6a 5e 7c 4e c9 3b-af   .:j^|N.;.\n"
251 "                                00ab - eb 3b cf 8d 6a 57 e6 c5-ba   .;..jW...\n"
252 "                                00b4 - bd a6 a0 6b 03 d5 a3 9f-99   ...k.....\n"
253 "                                00bd - 2a ea 88 72 1b 66 6c 5e-1d   *..r.fl^.\n"
254 "                                00c6 - 49 d5 1e 1e cc 1a b1 d8-f7   I........\n"
255 "                                00cf - 91 1e 1e cc 1a               .....\n"
256 "                                00f6 - <SPACES/NULS>\n",
257 	},
258 	{
259 		.indent = 35,
260 		.input = dump,
261 		.inlen = DUMP_LEN,
262 		.output =
263 "                                   0000 - 74 45 c6 20 00 00 00 00-  tE. ....\n"
264 "                                   0008 - 00 00 00 00 00 00 00 00-  ........\n"
265 "                                   0010 - 36 d8 61 48 68 3c c0 68-  6.aHh<.h\n"
266 "                                   0018 - aa 15 57 77 e3 ec b4 98-  ..Ww....\n"
267 "                                   0020 - c6 08 fc 59 b3 4f 45 cf-  ...Y.OE.\n"
268 "                                   0028 - 4b c2 ae 98 b5 eb e0 b5-  K.......\n"
269 "                                   0030 - c1 68 ba cf 7c f7 7b 38-  .h..|.{8\n"
270 "                                   0038 - 43 2f b9 0e 23 02 b9 4f-  C/..#..O\n"
271 "                                   0040 - 8c 26 eb ef 70 98 82 a7-  .&..p...\n"
272 "                                   0048 - b9 78 c5 08 96 99 b3 84-  .x......\n"
273 "                                   0050 - a3 4f fb d7 38 a9 d9 d4-  .O..8...\n"
274 "                                   0058 - 53 0f 4f 64 97 df cf f3-  S.Od....\n"
275 "                                   0060 - 4f c8 d2 56 3f 0d 72 d4-  O..V?.r.\n"
276 "                                   0068 - 55 98 89 b0 45 26 3f 7a-  U...E&?z\n"
277 "                                   0070 - bd 9d 96 15 a2 10 14 85-  ........\n"
278 "                                   0078 - aa a1 7c 84 fb c4 a5 7b-  ..|....{\n"
279 "                                   0080 - c6 e3 ad 85 57 96 bb 81-  ....W...\n"
280 "                                   0088 - 18 0c ed 2f f7 6a 4c 4d-  .../.jLM\n"
281 "                                   0090 - 59 e1 cc c5 3a 9f 48 fc-  Y...:.H.\n"
282 "                                   0098 - 1d 7c 0d a4 79 96 e7 2b-  .|..y..+\n"
283 "                                   00a0 - 39 15 f9 3a 6a 5e 7c 4e-  9..:j^|N\n"
284 "                                   00a8 - c9 3b af eb 3b cf 8d 6a-  .;..;..j\n"
285 "                                   00b0 - 57 e6 c5 ba bd a6 a0 6b-  W......k\n"
286 "                                   00b8 - 03 d5 a3 9f 99 2a ea 88-  .....*..\n"
287 "                                   00c0 - 72 1b 66 6c 5e 1d 49 d5-  r.fl^.I.\n"
288 "                                   00c8 - 1e 1e cc 1a b1 d8 f7 91-  ........\n"
289 "                                   00d0 - 1e 1e cc 1a               ....\n"
290 "                                   00f6 - <SPACES/NULS>\n",
291 	},
292 	{
293 		.indent = 39,
294 		.input = dump,
295 		.inlen = DUMP_LEN,
296 		.output =
297 "                                       0000 - 74 45 c6 20 00 00 00   tE. ...\n"
298 "                                       0007 - 00 00 00 00 00 00 00   .......\n"
299 "                                       000e - 00 00 36 d8 61 48 68   ..6.aHh\n"
300 "                                       0015 - 3c c0 68 aa 15 57 77   <.h..Ww\n"
301 "                                       001c - e3 ec b4 98 c6 08 fc   .......\n"
302 "                                       0023 - 59 b3 4f 45 cf 4b c2   Y.OE.K.\n"
303 "                                       002a - ae 98 b5 eb e0 b5 c1   .......\n"
304 "                                       0031 - 68 ba cf 7c f7 7b 38   h..|.{8\n"
305 "                                       0038 - 43 2f b9 0e 23 02 b9   C/..#..\n"
306 "                                       003f - 4f 8c 26 eb ef 70 98   O.&..p.\n"
307 "                                       0046 - 82 a7 b9 78 c5 08 96   ...x...\n"
308 "                                       004d - 99 b3 84 a3 4f fb d7   ....O..\n"
309 "                                       0054 - 38 a9 d9 d4 53 0f 4f   8...S.O\n"
310 "                                       005b - 64 97 df cf f3 4f c8   d....O.\n"
311 "                                       0062 - d2 56 3f 0d 72 d4 55   .V?.r.U\n"
312 "                                       0069 - 98 89 b0 45 26 3f 7a   ...E&?z\n"
313 "                                       0070 - bd 9d 96 15 a2 10 14   .......\n"
314 "                                       0077 - 85 aa a1 7c 84 fb c4   ...|...\n"
315 "                                       007e - a5 7b c6 e3 ad 85 57   .{....W\n"
316 "                                       0085 - 96 bb 81 18 0c ed 2f   ....../\n"
317 "                                       008c - f7 6a 4c 4d 59 e1 cc   .jLMY..\n"
318 "                                       0093 - c5 3a 9f 48 fc 1d 7c   .:.H..|\n"
319 "                                       009a - 0d a4 79 96 e7 2b 39   ..y..+9\n"
320 "                                       00a1 - 15 f9 3a 6a 5e 7c 4e   ..:j^|N\n"
321 "                                       00a8 - c9 3b af eb 3b cf 8d   .;..;..\n"
322 "                                       00af - 6a 57 e6 c5 ba bd a6   jW.....\n"
323 "                                       00b6 - a0 6b 03 d5 a3 9f 99   .k.....\n"
324 "                                       00bd - 2a ea 88 72 1b 66 6c   *..r.fl\n"
325 "                                       00c4 - 5e 1d 49 d5 1e 1e cc   ^.I....\n"
326 "                                       00cb - 1a b1 d8 f7 91 1e 1e   .......\n"
327 "                                       00d2 - cc 1a                  ..\n"
328 "                                       00f6 - <SPACES/NULS>\n",
329 	},
330 	{
331 		.indent = 46,
332 		.input = dump,
333 		.inlen = DUMP_LEN,
334 		.output =
335 "                                              0000 - 74 45 c6 20 00 00   tE. ..\n"
336 "                                              0006 - 00 00 00 00 00 00   ......\n"
337 "                                              000c - 00 00 00 00 36 d8   ....6.\n"
338 "                                              0012 - 61 48 68 3c c0 68   aHh<.h\n"
339 "                                              0018 - aa 15 57 77 e3 ec   ..Ww..\n"
340 "                                              001e - b4 98 c6 08 fc 59   .....Y\n"
341 "                                              0024 - b3 4f 45 cf 4b c2   .OE.K.\n"
342 "                                              002a - ae 98 b5 eb e0 b5   ......\n"
343 "                                              0030 - c1 68 ba cf 7c f7   .h..|.\n"
344 "                                              0036 - 7b 38 43 2f b9 0e   {8C/..\n"
345 "                                              003c - 23 02 b9 4f 8c 26   #..O.&\n"
346 "                                              0042 - eb ef 70 98 82 a7   ..p...\n"
347 "                                              0048 - b9 78 c5 08 96 99   .x....\n"
348 "                                              004e - b3 84 a3 4f fb d7   ...O..\n"
349 "                                              0054 - 38 a9 d9 d4 53 0f   8...S.\n"
350 "                                              005a - 4f 64 97 df cf f3   Od....\n"
351 "                                              0060 - 4f c8 d2 56 3f 0d   O..V?.\n"
352 "                                              0066 - 72 d4 55 98 89 b0   r.U...\n"
353 "                                              006c - 45 26 3f 7a bd 9d   E&?z..\n"
354 "                                              0072 - 96 15 a2 10 14 85   ......\n"
355 "                                              0078 - aa a1 7c 84 fb c4   ..|...\n"
356 "                                              007e - a5 7b c6 e3 ad 85   .{....\n"
357 "                                              0084 - 57 96 bb 81 18 0c   W.....\n"
358 "                                              008a - ed 2f f7 6a 4c 4d   ./.jLM\n"
359 "                                              0090 - 59 e1 cc c5 3a 9f   Y...:.\n"
360 "                                              0096 - 48 fc 1d 7c 0d a4   H..|..\n"
361 "                                              009c - 79 96 e7 2b 39 15   y..+9.\n"
362 "                                              00a2 - f9 3a 6a 5e 7c 4e   .:j^|N\n"
363 "                                              00a8 - c9 3b af eb 3b cf   .;..;.\n"
364 "                                              00ae - 8d 6a 57 e6 c5 ba   .jW...\n"
365 "                                              00b4 - bd a6 a0 6b 03 d5   ...k..\n"
366 "                                              00ba - a3 9f 99 2a ea 88   ...*..\n"
367 "                                              00c0 - 72 1b 66 6c 5e 1d   r.fl^.\n"
368 "                                              00c6 - 49 d5 1e 1e cc 1a   I.....\n"
369 "                                              00cc - b1 d8 f7 91 1e 1e   ......\n"
370 "                                              00d2 - cc 1a               ..\n"
371 "                                              00f6 - <SPACES/NULS>\n",
372 	},
373 	{
374 		.indent = 53,
375 		.input = dump,
376 		.inlen = DUMP_LEN,
377 		.output =
378 "                                                     0000 - 74 45 c6 20   tE. \n"
379 "                                                     0004 - 00 00 00 00   ....\n"
380 "                                                     0008 - 00 00 00 00   ....\n"
381 "                                                     000c - 00 00 00 00   ....\n"
382 "                                                     0010 - 36 d8 61 48   6.aH\n"
383 "                                                     0014 - 68 3c c0 68   h<.h\n"
384 "                                                     0018 - aa 15 57 77   ..Ww\n"
385 "                                                     001c - e3 ec b4 98   ....\n"
386 "                                                     0020 - c6 08 fc 59   ...Y\n"
387 "                                                     0024 - b3 4f 45 cf   .OE.\n"
388 "                                                     0028 - 4b c2 ae 98   K...\n"
389 "                                                     002c - b5 eb e0 b5   ....\n"
390 "                                                     0030 - c1 68 ba cf   .h..\n"
391 "                                                     0034 - 7c f7 7b 38   |.{8\n"
392 "                                                     0038 - 43 2f b9 0e   C/..\n"
393 "                                                     003c - 23 02 b9 4f   #..O\n"
394 "                                                     0040 - 8c 26 eb ef   .&..\n"
395 "                                                     0044 - 70 98 82 a7   p...\n"
396 "                                                     0048 - b9 78 c5 08   .x..\n"
397 "                                                     004c - 96 99 b3 84   ....\n"
398 "                                                     0050 - a3 4f fb d7   .O..\n"
399 "                                                     0054 - 38 a9 d9 d4   8...\n"
400 "                                                     0058 - 53 0f 4f 64   S.Od\n"
401 "                                                     005c - 97 df cf f3   ....\n"
402 "                                                     0060 - 4f c8 d2 56   O..V\n"
403 "                                                     0064 - 3f 0d 72 d4   ?.r.\n"
404 "                                                     0068 - 55 98 89 b0   U...\n"
405 "                                                     006c - 45 26 3f 7a   E&?z\n"
406 "                                                     0070 - bd 9d 96 15   ....\n"
407 "                                                     0074 - a2 10 14 85   ....\n"
408 "                                                     0078 - aa a1 7c 84   ..|.\n"
409 "                                                     007c - fb c4 a5 7b   ...{\n"
410 "                                                     0080 - c6 e3 ad 85   ....\n"
411 "                                                     0084 - 57 96 bb 81   W...\n"
412 "                                                     0088 - 18 0c ed 2f   .../\n"
413 "                                                     008c - f7 6a 4c 4d   .jLM\n"
414 "                                                     0090 - 59 e1 cc c5   Y...\n"
415 "                                                     0094 - 3a 9f 48 fc   :.H.\n"
416 "                                                     0098 - 1d 7c 0d a4   .|..\n"
417 "                                                     009c - 79 96 e7 2b   y..+\n"
418 "                                                     00a0 - 39 15 f9 3a   9..:\n"
419 "                                                     00a4 - 6a 5e 7c 4e   j^|N\n"
420 "                                                     00a8 - c9 3b af eb   .;..\n"
421 "                                                     00ac - 3b cf 8d 6a   ;..j\n"
422 "                                                     00b0 - 57 e6 c5 ba   W...\n"
423 "                                                     00b4 - bd a6 a0 6b   ...k\n"
424 "                                                     00b8 - 03 d5 a3 9f   ....\n"
425 "                                                     00bc - 99 2a ea 88   .*..\n"
426 "                                                     00c0 - 72 1b 66 6c   r.fl\n"
427 "                                                     00c4 - 5e 1d 49 d5   ^.I.\n"
428 "                                                     00c8 - 1e 1e cc 1a   ....\n"
429 "                                                     00cc - b1 d8 f7 91   ....\n"
430 "                                                     00d0 - 1e 1e cc 1a   ....\n"
431 "                                                     00f6 - <SPACES/NULS>\n",
432 	},
433 	{
434 		.indent = 60,
435 		.input = dump,
436 		.inlen = DUMP_LEN,
437 		.output =
438 "                                                            0000 - 74 45   tE\n"
439 "                                                            0002 - c6 20   . \n"
440 "                                                            0004 - 00 00   ..\n"
441 "                                                            0006 - 00 00   ..\n"
442 "                                                            0008 - 00 00   ..\n"
443 "                                                            000a - 00 00   ..\n"
444 "                                                            000c - 00 00   ..\n"
445 "                                                            000e - 00 00   ..\n"
446 "                                                            0010 - 36 d8   6.\n"
447 "                                                            0012 - 61 48   aH\n"
448 "                                                            0014 - 68 3c   h<\n"
449 "                                                            0016 - c0 68   .h\n"
450 "                                                            0018 - aa 15   ..\n"
451 "                                                            001a - 57 77   Ww\n"
452 "                                                            001c - e3 ec   ..\n"
453 "                                                            001e - b4 98   ..\n"
454 "                                                            0020 - c6 08   ..\n"
455 "                                                            0022 - fc 59   .Y\n"
456 "                                                            0024 - b3 4f   .O\n"
457 "                                                            0026 - 45 cf   E.\n"
458 "                                                            0028 - 4b c2   K.\n"
459 "                                                            002a - ae 98   ..\n"
460 "                                                            002c - b5 eb   ..\n"
461 "                                                            002e - e0 b5   ..\n"
462 "                                                            0030 - c1 68   .h\n"
463 "                                                            0032 - ba cf   ..\n"
464 "                                                            0034 - 7c f7   |.\n"
465 "                                                            0036 - 7b 38   {8\n"
466 "                                                            0038 - 43 2f   C/\n"
467 "                                                            003a - b9 0e   ..\n"
468 "                                                            003c - 23 02   #.\n"
469 "                                                            003e - b9 4f   .O\n"
470 "                                                            0040 - 8c 26   .&\n"
471 "                                                            0042 - eb ef   ..\n"
472 "                                                            0044 - 70 98   p.\n"
473 "                                                            0046 - 82 a7   ..\n"
474 "                                                            0048 - b9 78   .x\n"
475 "                                                            004a - c5 08   ..\n"
476 "                                                            004c - 96 99   ..\n"
477 "                                                            004e - b3 84   ..\n"
478 "                                                            0050 - a3 4f   .O\n"
479 "                                                            0052 - fb d7   ..\n"
480 "                                                            0054 - 38 a9   8.\n"
481 "                                                            0056 - d9 d4   ..\n"
482 "                                                            0058 - 53 0f   S.\n"
483 "                                                            005a - 4f 64   Od\n"
484 "                                                            005c - 97 df   ..\n"
485 "                                                            005e - cf f3   ..\n"
486 "                                                            0060 - 4f c8   O.\n"
487 "                                                            0062 - d2 56   .V\n"
488 "                                                            0064 - 3f 0d   ?.\n"
489 "                                                            0066 - 72 d4   r.\n"
490 "                                                            0068 - 55 98   U.\n"
491 "                                                            006a - 89 b0   ..\n"
492 "                                                            006c - 45 26   E&\n"
493 "                                                            006e - 3f 7a   ?z\n"
494 "                                                            0070 - bd 9d   ..\n"
495 "                                                            0072 - 96 15   ..\n"
496 "                                                            0074 - a2 10   ..\n"
497 "                                                            0076 - 14 85   ..\n"
498 "                                                            0078 - aa a1   ..\n"
499 "                                                            007a - 7c 84   |.\n"
500 "                                                            007c - fb c4   ..\n"
501 "                                                            007e - a5 7b   .{\n"
502 "                                                            0080 - c6 e3   ..\n"
503 "                                                            0082 - ad 85   ..\n"
504 "                                                            0084 - 57 96   W.\n"
505 "                                                            0086 - bb 81   ..\n"
506 "                                                            0088 - 18 0c   ..\n"
507 "                                                            008a - ed 2f   ./\n"
508 "                                                            008c - f7 6a   .j\n"
509 "                                                            008e - 4c 4d   LM\n"
510 "                                                            0090 - 59 e1   Y.\n"
511 "                                                            0092 - cc c5   ..\n"
512 "                                                            0094 - 3a 9f   :.\n"
513 "                                                            0096 - 48 fc   H.\n"
514 "                                                            0098 - 1d 7c   .|\n"
515 "                                                            009a - 0d a4   ..\n"
516 "                                                            009c - 79 96   y.\n"
517 "                                                            009e - e7 2b   .+\n"
518 "                                                            00a0 - 39 15   9.\n"
519 "                                                            00a2 - f9 3a   .:\n"
520 "                                                            00a4 - 6a 5e   j^\n"
521 "                                                            00a6 - 7c 4e   |N\n"
522 "                                                            00a8 - c9 3b   .;\n"
523 "                                                            00aa - af eb   ..\n"
524 "                                                            00ac - 3b cf   ;.\n"
525 "                                                            00ae - 8d 6a   .j\n"
526 "                                                            00b0 - 57 e6   W.\n"
527 "                                                            00b2 - c5 ba   ..\n"
528 "                                                            00b4 - bd a6   ..\n"
529 "                                                            00b6 - a0 6b   .k\n"
530 "                                                            00b8 - 03 d5   ..\n"
531 "                                                            00ba - a3 9f   ..\n"
532 "                                                            00bc - 99 2a   .*\n"
533 "                                                            00be - ea 88   ..\n"
534 "                                                            00c0 - 72 1b   r.\n"
535 "                                                            00c2 - 66 6c   fl\n"
536 "                                                            00c4 - 5e 1d   ^.\n"
537 "                                                            00c6 - 49 d5   I.\n"
538 "                                                            00c8 - 1e 1e   ..\n"
539 "                                                            00ca - cc 1a   ..\n"
540 "                                                            00cc - b1 d8   ..\n"
541 "                                                            00ce - f7 91   ..\n"
542 "                                                            00d0 - 1e 1e   ..\n"
543 "                                                            00d2 - cc 1a   ..\n"
544 "                                                            00f6 - <SPACES/NULS>\n",
545 	},
546 	{
547 		.indent = 67,
548 		.input = dump,
549 		.inlen = DUMP_LEN,
550 		.output =
551 "                                                                0000 - 74   t\n"
552 "                                                                0001 - 45   E\n"
553 "                                                                0002 - c6   .\n"
554 "                                                                0003 - 20    \n"
555 "                                                                0004 - 00   .\n"
556 "                                                                0005 - 00   .\n"
557 "                                                                0006 - 00   .\n"
558 "                                                                0007 - 00   .\n"
559 "                                                                0008 - 00   .\n"
560 "                                                                0009 - 00   .\n"
561 "                                                                000a - 00   .\n"
562 "                                                                000b - 00   .\n"
563 "                                                                000c - 00   .\n"
564 "                                                                000d - 00   .\n"
565 "                                                                000e - 00   .\n"
566 "                                                                000f - 00   .\n"
567 "                                                                0010 - 36   6\n"
568 "                                                                0011 - d8   .\n"
569 "                                                                0012 - 61   a\n"
570 "                                                                0013 - 48   H\n"
571 "                                                                0014 - 68   h\n"
572 "                                                                0015 - 3c   <\n"
573 "                                                                0016 - c0   .\n"
574 "                                                                0017 - 68   h\n"
575 "                                                                0018 - aa   .\n"
576 "                                                                0019 - 15   .\n"
577 "                                                                001a - 57   W\n"
578 "                                                                001b - 77   w\n"
579 "                                                                001c - e3   .\n"
580 "                                                                001d - ec   .\n"
581 "                                                                001e - b4   .\n"
582 "                                                                001f - 98   .\n"
583 "                                                                0020 - c6   .\n"
584 "                                                                0021 - 08   .\n"
585 "                                                                0022 - fc   .\n"
586 "                                                                0023 - 59   Y\n"
587 "                                                                0024 - b3   .\n"
588 "                                                                0025 - 4f   O\n"
589 "                                                                0026 - 45   E\n"
590 "                                                                0027 - cf   .\n"
591 "                                                                0028 - 4b   K\n"
592 "                                                                0029 - c2   .\n"
593 "                                                                002a - ae   .\n"
594 "                                                                002b - 98   .\n"
595 "                                                                002c - b5   .\n"
596 "                                                                002d - eb   .\n"
597 "                                                                002e - e0   .\n"
598 "                                                                002f - b5   .\n"
599 "                                                                0030 - c1   .\n"
600 "                                                                0031 - 68   h\n"
601 "                                                                0032 - ba   .\n"
602 "                                                                0033 - cf   .\n"
603 "                                                                0034 - 7c   |\n"
604 "                                                                0035 - f7   .\n"
605 "                                                                0036 - 7b   {\n"
606 "                                                                0037 - 38   8\n"
607 "                                                                0038 - 43   C\n"
608 "                                                                0039 - 2f   /\n"
609 "                                                                003a - b9   .\n"
610 "                                                                003b - 0e   .\n"
611 "                                                                003c - 23   #\n"
612 "                                                                003d - 02   .\n"
613 "                                                                003e - b9   .\n"
614 "                                                                003f - 4f   O\n"
615 "                                                                0040 - 8c   .\n"
616 "                                                                0041 - 26   &\n"
617 "                                                                0042 - eb   .\n"
618 "                                                                0043 - ef   .\n"
619 "                                                                0044 - 70   p\n"
620 "                                                                0045 - 98   .\n"
621 "                                                                0046 - 82   .\n"
622 "                                                                0047 - a7   .\n"
623 "                                                                0048 - b9   .\n"
624 "                                                                0049 - 78   x\n"
625 "                                                                004a - c5   .\n"
626 "                                                                004b - 08   .\n"
627 "                                                                004c - 96   .\n"
628 "                                                                004d - 99   .\n"
629 "                                                                004e - b3   .\n"
630 "                                                                004f - 84   .\n"
631 "                                                                0050 - a3   .\n"
632 "                                                                0051 - 4f   O\n"
633 "                                                                0052 - fb   .\n"
634 "                                                                0053 - d7   .\n"
635 "                                                                0054 - 38   8\n"
636 "                                                                0055 - a9   .\n"
637 "                                                                0056 - d9   .\n"
638 "                                                                0057 - d4   .\n"
639 "                                                                0058 - 53   S\n"
640 "                                                                0059 - 0f   .\n"
641 "                                                                005a - 4f   O\n"
642 "                                                                005b - 64   d\n"
643 "                                                                005c - 97   .\n"
644 "                                                                005d - df   .\n"
645 "                                                                005e - cf   .\n"
646 "                                                                005f - f3   .\n"
647 "                                                                0060 - 4f   O\n"
648 "                                                                0061 - c8   .\n"
649 "                                                                0062 - d2   .\n"
650 "                                                                0063 - 56   V\n"
651 "                                                                0064 - 3f   ?\n"
652 "                                                                0065 - 0d   .\n"
653 "                                                                0066 - 72   r\n"
654 "                                                                0067 - d4   .\n"
655 "                                                                0068 - 55   U\n"
656 "                                                                0069 - 98   .\n"
657 "                                                                006a - 89   .\n"
658 "                                                                006b - b0   .\n"
659 "                                                                006c - 45   E\n"
660 "                                                                006d - 26   &\n"
661 "                                                                006e - 3f   ?\n"
662 "                                                                006f - 7a   z\n"
663 "                                                                0070 - bd   .\n"
664 "                                                                0071 - 9d   .\n"
665 "                                                                0072 - 96   .\n"
666 "                                                                0073 - 15   .\n"
667 "                                                                0074 - a2   .\n"
668 "                                                                0075 - 10   .\n"
669 "                                                                0076 - 14   .\n"
670 "                                                                0077 - 85   .\n"
671 "                                                                0078 - aa   .\n"
672 "                                                                0079 - a1   .\n"
673 "                                                                007a - 7c   |\n"
674 "                                                                007b - 84   .\n"
675 "                                                                007c - fb   .\n"
676 "                                                                007d - c4   .\n"
677 "                                                                007e - a5   .\n"
678 "                                                                007f - 7b   {\n"
679 "                                                                0080 - c6   .\n"
680 "                                                                0081 - e3   .\n"
681 "                                                                0082 - ad   .\n"
682 "                                                                0083 - 85   .\n"
683 "                                                                0084 - 57   W\n"
684 "                                                                0085 - 96   .\n"
685 "                                                                0086 - bb   .\n"
686 "                                                                0087 - 81   .\n"
687 "                                                                0088 - 18   .\n"
688 "                                                                0089 - 0c   .\n"
689 "                                                                008a - ed   .\n"
690 "                                                                008b - 2f   /\n"
691 "                                                                008c - f7   .\n"
692 "                                                                008d - 6a   j\n"
693 "                                                                008e - 4c   L\n"
694 "                                                                008f - 4d   M\n"
695 "                                                                0090 - 59   Y\n"
696 "                                                                0091 - e1   .\n"
697 "                                                                0092 - cc   .\n"
698 "                                                                0093 - c5   .\n"
699 "                                                                0094 - 3a   :\n"
700 "                                                                0095 - 9f   .\n"
701 "                                                                0096 - 48   H\n"
702 "                                                                0097 - fc   .\n"
703 "                                                                0098 - 1d   .\n"
704 "                                                                0099 - 7c   |\n"
705 "                                                                009a - 0d   .\n"
706 "                                                                009b - a4   .\n"
707 "                                                                009c - 79   y\n"
708 "                                                                009d - 96   .\n"
709 "                                                                009e - e7   .\n"
710 "                                                                009f - 2b   +\n"
711 "                                                                00a0 - 39   9\n"
712 "                                                                00a1 - 15   .\n"
713 "                                                                00a2 - f9   .\n"
714 "                                                                00a3 - 3a   :\n"
715 "                                                                00a4 - 6a   j\n"
716 "                                                                00a5 - 5e   ^\n"
717 "                                                                00a6 - 7c   |\n"
718 "                                                                00a7 - 4e   N\n"
719 "                                                                00a8 - c9   .\n"
720 "                                                                00a9 - 3b   ;\n"
721 "                                                                00aa - af   .\n"
722 "                                                                00ab - eb   .\n"
723 "                                                                00ac - 3b   ;\n"
724 "                                                                00ad - cf   .\n"
725 "                                                                00ae - 8d   .\n"
726 "                                                                00af - 6a   j\n"
727 "                                                                00b0 - 57   W\n"
728 "                                                                00b1 - e6   .\n"
729 "                                                                00b2 - c5   .\n"
730 "                                                                00b3 - ba   .\n"
731 "                                                                00b4 - bd   .\n"
732 "                                                                00b5 - a6   .\n"
733 "                                                                00b6 - a0   .\n"
734 "                                                                00b7 - 6b   k\n"
735 "                                                                00b8 - 03   .\n"
736 "                                                                00b9 - d5   .\n"
737 "                                                                00ba - a3   .\n"
738 "                                                                00bb - 9f   .\n"
739 "                                                                00bc - 99   .\n"
740 "                                                                00bd - 2a   *\n"
741 "                                                                00be - ea   .\n"
742 "                                                                00bf - 88   .\n"
743 "                                                                00c0 - 72   r\n"
744 "                                                                00c1 - 1b   .\n"
745 "                                                                00c2 - 66   f\n"
746 "                                                                00c3 - 6c   l\n"
747 "                                                                00c4 - 5e   ^\n"
748 "                                                                00c5 - 1d   .\n"
749 "                                                                00c6 - 49   I\n"
750 "                                                                00c7 - d5   .\n"
751 "                                                                00c8 - 1e   .\n"
752 "                                                                00c9 - 1e   .\n"
753 "                                                                00ca - cc   .\n"
754 "                                                                00cb - 1a   .\n"
755 "                                                                00cc - b1   .\n"
756 "                                                                00cd - d8   .\n"
757 "                                                                00ce - f7   .\n"
758 "                                                                00cf - 91   .\n"
759 "                                                                00d0 - 1e   .\n"
760 "                                                                00d1 - 1e   .\n"
761 "                                                                00d2 - cc   .\n"
762 "                                                                00d3 - 1a   .\n"
763 "                                                                00f6 - <SPACES/NULS>\n",
764 	},
765 	{
766 		.indent = 4,
767 		.input = bytes,
768 		.inlen = BYTES_LEN,
769 		.output =
770 "    0000 - 00 01 02 03 04 05 06 07-08 09 0a 0b 0c 0d 0e 0f   ................\n"
771 "    0010 - 10 11 12 13 14 15 16 17-18 19 1a 1b 1c 1d 1e 1f   ................\n"
772 "    0020 - 20 21 22 23 24 25 26 27-28 29 2a 2b 2c 2d 2e 2f    !\"#$%&'()*+,-./\n"
773 "    0030 - 30 31 32 33 34 35 36 37-38 39 3a 3b 3c 3d 3e 3f   0123456789:;<=>?\n"
774 "    0040 - 40 41 42 43 44 45 46 47-48 49 4a 4b 4c 4d 4e 4f   @ABCDEFGHIJKLMNO\n"
775 "    0050 - 50 51 52 53 54 55 56 57-58 59 5a 5b 5c 5d 5e 5f   PQRSTUVWXYZ[\\]^_\n"
776 "    0060 - 60 61 62 63 64 65 66 67-68 69 6a 6b 6c 6d 6e 6f   `abcdefghijklmno\n"
777 "    0070 - 70 71 72 73 74 75 76 77-78 79 7a 7b 7c 7d 7e 7f   pqrstuvwxyz{|}~.\n"
778 "    0080 - 80 81 82 83 84 85 86 87-88 89 8a 8b 8c 8d 8e 8f   ................\n"
779 "    0090 - 90 91 92 93 94 95 96 97-98 99 9a 9b 9c 9d 9e 9f   ................\n"
780 "    00a0 - a0 a1 a2 a3 a4 a5 a6 a7-a8 a9 aa ab ac ad ae af   ................\n"
781 "    00b0 - b0 b1 b2 b3 b4 b5 b6 b7-b8 b9 ba bb bc bd be bf   ................\n"
782 "    00c0 - c0 c1 c2 c3 c4 c5 c6 c7-c8 c9 ca cb cc cd ce cf   ................\n"
783 "    00d0 - d0 d1 d2 d3 d4 d5 d6 d7-d8 d9 da db dc dd de df   ................\n"
784 "    00e0 - e0 e1 e2 e3 e4 e5 e6 e7-e8 e9 ea eb ec ed ee ef   ................\n"
785 "    00f0 - f0 f1 f2 f3 f4 f5 f6 f7-f8 f9 fa fb fc fd fe ff   ................\n",
786 	},
787 };
788 
789 #define N_TESTS (sizeof(bio_dump_testcases) / sizeof(bio_dump_testcases[0]))
790 
791 static int
bio_dump_test(const struct bio_dump_testcase * tc)792 bio_dump_test(const struct bio_dump_testcase *tc)
793 {
794 	BIO *bio;
795 	char *got;
796 	long got_len;
797 	int ret;
798 	int failed = 1;
799 
800 	if ((bio = BIO_new(BIO_s_mem())) == NULL)
801 		errx(1, "BIO_new");
802 
803 	if ((ret = BIO_dump_indent(bio, tc->input, tc->inlen, tc->indent)) == -1)
804 		errx(1, "BIO_dump_indent");
805 	if ((got_len = BIO_get_mem_data(bio, &got)) < 0)
806 		errx(1, "BIO_get_mem_data");
807 	if (ret != got_len || strlen(tc->output) != (size_t)ret) {
808 		fprintf(stderr, "indent %d: ret %d, got_len %ld, strlen %zu\n",
809 		    tc->indent, ret, got_len, strlen(tc->output));
810 		goto err;
811 	}
812 	if (strncmp(tc->output, got, got_len) != 0) {
813 		fprintf(stderr, "%d: mismatch\n", tc->indent);
814 		goto err;
815 	}
816 
817 	failed = 0;
818 
819  err:
820 	BIO_free(bio);
821 
822 	return failed;
823 }
824 
825 int
main(void)826 main(void)
827 {
828 	size_t i;
829 	int failed = 0;
830 
831 	for (i = 0; i < N_TESTS; i++)
832 		failed |= bio_dump_test(&bio_dump_testcases[i]);
833 
834 	return failed;
835 }
836