summaryrefslogtreecommitdiff
path: root/src/usr.bin/openssl/asn1pars.c
diff options
context:
space:
mode:
authortb <>2023-03-06 14:32:06 +0000
committertb <>2023-03-06 14:32:06 +0000
commit6c965e26b1a93da63948edae6b68564be1ded507 (patch)
treebbe07d6e06b695cebe22802551f2db0a61354d7c /src/usr.bin/openssl/asn1pars.c
parent48e828ea26ee91710242131cd75cd9d1d20b773c (diff)
downloadopenbsd-6c965e26b1a93da63948edae6b68564be1ded507.tar.gz
openbsd-6c965e26b1a93da63948edae6b68564be1ded507.tar.bz2
openbsd-6c965e26b1a93da63948edae6b68564be1ded507.zip
Rename struct ${app}_config to plain cfg
All the structs are static and we need to reach into them many times. Having a shorter name is more concise and results in less visual clutter. It also avoids many overlong lines and we will be able to get rid of some unfortunate line wrapping down the road. Discussed with jsing
Diffstat (limited to 'src/usr.bin/openssl/asn1pars.c')
-rw-r--r--src/usr.bin/openssl/asn1pars.c94
1 files changed, 47 insertions, 47 deletions
diff --git a/src/usr.bin/openssl/asn1pars.c b/src/usr.bin/openssl/asn1pars.c
index 6f7fa18512..5824b0ea14 100644
--- a/src/usr.bin/openssl/asn1pars.c
+++ b/src/usr.bin/openssl/asn1pars.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: asn1pars.c,v 1.12 2022/11/11 17:07:38 joshua Exp $ */ 1/* $OpenBSD: asn1pars.c,v 1.13 2023/03/06 14:32:05 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -86,14 +86,14 @@ static struct {
86 int offset; 86 int offset;
87 char *oidfile; 87 char *oidfile;
88 STACK_OF(OPENSSL_STRING) *osk; 88 STACK_OF(OPENSSL_STRING) *osk;
89} asn1pars_config; 89} cfg;
90 90
91static int 91static int
92asn1pars_opt_dlimit(char *arg) 92asn1pars_opt_dlimit(char *arg)
93{ 93{
94 const char *errstr; 94 const char *errstr;
95 95
96 asn1pars_config.dump = strtonum(arg, 1, INT_MAX, &errstr); 96 cfg.dump = strtonum(arg, 1, INT_MAX, &errstr);
97 if (errstr) { 97 if (errstr) {
98 fprintf(stderr, "-dlimit must be from 1 to INT_MAX: %s\n", 98 fprintf(stderr, "-dlimit must be from 1 to INT_MAX: %s\n",
99 errstr); 99 errstr);
@@ -107,7 +107,7 @@ asn1pars_opt_length(char *arg)
107{ 107{
108 const char *errstr; 108 const char *errstr;
109 109
110 asn1pars_config.length = strtonum(arg, 1, UINT_MAX, &errstr); 110 cfg.length = strtonum(arg, 1, UINT_MAX, &errstr);
111 if (errstr) { 111 if (errstr) {
112 fprintf(stderr, "-length must be from 1 to UINT_MAX: %s\n", 112 fprintf(stderr, "-length must be from 1 to UINT_MAX: %s\n",
113 errstr); 113 errstr);
@@ -119,7 +119,7 @@ asn1pars_opt_length(char *arg)
119static int 119static int
120asn1pars_opt_strparse(char *arg) 120asn1pars_opt_strparse(char *arg)
121{ 121{
122 if (sk_OPENSSL_STRING_push(asn1pars_config.osk, arg) == 0) { 122 if (sk_OPENSSL_STRING_push(cfg.osk, arg) == 0) {
123 fprintf(stderr, "-strparse cannot add argument\n"); 123 fprintf(stderr, "-strparse cannot add argument\n");
124 return (-1); 124 return (-1);
125 } 125 }
@@ -132,7 +132,7 @@ static const struct option asn1pars_options[] = {
132 .desc = "Dump unknown data in hex form", 132 .desc = "Dump unknown data in hex form",
133 .type = OPTION_VALUE, 133 .type = OPTION_VALUE,
134 .value = -1, 134 .value = -1,
135 .opt.value = &asn1pars_config.dump, 135 .opt.value = &cfg.dump,
136 }, 136 },
137 { 137 {
138 .name = "dlimit", 138 .name = "dlimit",
@@ -146,34 +146,34 @@ static const struct option asn1pars_options[] = {
146 .argname = "file", 146 .argname = "file",
147 .desc = "File to generate ASN.1 structure from", 147 .desc = "File to generate ASN.1 structure from",
148 .type = OPTION_ARG, 148 .type = OPTION_ARG,
149 .opt.arg = &asn1pars_config.genconf, 149 .opt.arg = &cfg.genconf,
150 }, 150 },
151 { 151 {
152 .name = "genstr", 152 .name = "genstr",
153 .argname = "string", 153 .argname = "string",
154 .desc = "String to generate ASN.1 structure from", 154 .desc = "String to generate ASN.1 structure from",
155 .type = OPTION_ARG, 155 .type = OPTION_ARG,
156 .opt.arg = &asn1pars_config.genstr, 156 .opt.arg = &cfg.genstr,
157 }, 157 },
158 { 158 {
159 .name = "i", 159 .name = "i",
160 .desc = "Indent output according to depth of structures", 160 .desc = "Indent output according to depth of structures",
161 .type = OPTION_FLAG, 161 .type = OPTION_FLAG,
162 .opt.flag = &asn1pars_config.indent, 162 .opt.flag = &cfg.indent,
163 }, 163 },
164 { 164 {
165 .name = "in", 165 .name = "in",
166 .argname = "file", 166 .argname = "file",
167 .desc = "The input file (default stdin)", 167 .desc = "The input file (default stdin)",
168 .type = OPTION_ARG, 168 .type = OPTION_ARG,
169 .opt.arg = &asn1pars_config.infile, 169 .opt.arg = &cfg.infile,
170 }, 170 },
171 { 171 {
172 .name = "inform", 172 .name = "inform",
173 .argname = "fmt", 173 .argname = "fmt",
174 .desc = "Input format (DER, TXT or PEM (default))", 174 .desc = "Input format (DER, TXT or PEM (default))",
175 .type = OPTION_ARG_FORMAT, 175 .type = OPTION_ARG_FORMAT,
176 .opt.value = &asn1pars_config.informat, 176 .opt.value = &cfg.informat,
177 }, 177 },
178 { 178 {
179 .name = "length", 179 .name = "length",
@@ -186,28 +186,28 @@ static const struct option asn1pars_options[] = {
186 .name = "noout", 186 .name = "noout",
187 .desc = "Do not produce any output", 187 .desc = "Do not produce any output",
188 .type = OPTION_FLAG, 188 .type = OPTION_FLAG,
189 .opt.flag = &asn1pars_config.noout, 189 .opt.flag = &cfg.noout,
190 }, 190 },
191 { 191 {
192 .name = "offset", 192 .name = "offset",
193 .argname = "num", 193 .argname = "num",
194 .desc = "Offset to begin parsing", 194 .desc = "Offset to begin parsing",
195 .type = OPTION_ARG_INT, 195 .type = OPTION_ARG_INT,
196 .opt.value = &asn1pars_config.offset, 196 .opt.value = &cfg.offset,
197 }, 197 },
198 { 198 {
199 .name = "oid", 199 .name = "oid",
200 .argname = "file", 200 .argname = "file",
201 .desc = "File containing additional object identifiers (OIDs)", 201 .desc = "File containing additional object identifiers (OIDs)",
202 .type = OPTION_ARG, 202 .type = OPTION_ARG,
203 .opt.arg = &asn1pars_config.oidfile, 203 .opt.arg = &cfg.oidfile,
204 }, 204 },
205 { 205 {
206 .name = "out", 206 .name = "out",
207 .argname = "file", 207 .argname = "file",
208 .desc = "Output file in DER format", 208 .desc = "Output file in DER format",
209 .type = OPTION_ARG, 209 .type = OPTION_ARG,
210 .opt.arg = &asn1pars_config.derfile, 210 .opt.arg = &cfg.derfile,
211 }, 211 },
212 { 212 {
213 .name = "strparse", 213 .name = "strparse",
@@ -252,10 +252,10 @@ asn1parse_main(int argc, char **argv)
252 exit(1); 252 exit(1);
253 } 253 }
254 254
255 memset(&asn1pars_config, 0, sizeof(asn1pars_config)); 255 memset(&cfg, 0, sizeof(cfg));
256 256
257 asn1pars_config.informat = FORMAT_PEM; 257 cfg.informat = FORMAT_PEM;
258 if ((asn1pars_config.osk = sk_OPENSSL_STRING_new_null()) == NULL) { 258 if ((cfg.osk = sk_OPENSSL_STRING_new_null()) == NULL) {
259 BIO_printf(bio_err, "Memory allocation failure\n"); 259 BIO_printf(bio_err, "Memory allocation failure\n");
260 goto end; 260 goto end;
261 } 261 }
@@ -273,28 +273,28 @@ asn1parse_main(int argc, char **argv)
273 } 273 }
274 BIO_set_fp(out, stdout, BIO_NOCLOSE | BIO_FP_TEXT); 274 BIO_set_fp(out, stdout, BIO_NOCLOSE | BIO_FP_TEXT);
275 275
276 if (asn1pars_config.oidfile != NULL) { 276 if (cfg.oidfile != NULL) {
277 if (BIO_read_filename(in, asn1pars_config.oidfile) <= 0) { 277 if (BIO_read_filename(in, cfg.oidfile) <= 0) {
278 BIO_printf(bio_err, "problems opening %s\n", 278 BIO_printf(bio_err, "problems opening %s\n",
279 asn1pars_config.oidfile); 279 cfg.oidfile);
280 ERR_print_errors(bio_err); 280 ERR_print_errors(bio_err);
281 goto end; 281 goto end;
282 } 282 }
283 OBJ_create_objects(in); 283 OBJ_create_objects(in);
284 } 284 }
285 if (asn1pars_config.infile == NULL) 285 if (cfg.infile == NULL)
286 BIO_set_fp(in, stdin, BIO_NOCLOSE); 286 BIO_set_fp(in, stdin, BIO_NOCLOSE);
287 else { 287 else {
288 if (BIO_read_filename(in, asn1pars_config.infile) <= 0) { 288 if (BIO_read_filename(in, cfg.infile) <= 0) {
289 perror(asn1pars_config.infile); 289 perror(cfg.infile);
290 goto end; 290 goto end;
291 } 291 }
292 } 292 }
293 293
294 if (asn1pars_config.derfile) { 294 if (cfg.derfile) {
295 if (!(derout = BIO_new_file(asn1pars_config.derfile, "wb"))) { 295 if (!(derout = BIO_new_file(cfg.derfile, "wb"))) {
296 BIO_printf(bio_err, "problems opening %s\n", 296 BIO_printf(bio_err, "problems opening %s\n",
297 asn1pars_config.derfile); 297 cfg.derfile);
298 ERR_print_errors(bio_err); 298 ERR_print_errors(bio_err);
299 goto end; 299 goto end;
300 } 300 }
@@ -304,16 +304,16 @@ asn1parse_main(int argc, char **argv)
304 if (!BUF_MEM_grow(buf, BUFSIZ * 8)) 304 if (!BUF_MEM_grow(buf, BUFSIZ * 8))
305 goto end; /* Pre-allocate :-) */ 305 goto end; /* Pre-allocate :-) */
306 306
307 if (asn1pars_config.genstr || asn1pars_config.genconf) { 307 if (cfg.genstr || cfg.genconf) {
308 num = do_generate(bio_err, asn1pars_config.genstr, 308 num = do_generate(bio_err, cfg.genstr,
309 asn1pars_config.genconf, buf); 309 cfg.genconf, buf);
310 if (num < 0) { 310 if (num < 0) {
311 ERR_print_errors(bio_err); 311 ERR_print_errors(bio_err);
312 goto end; 312 goto end;
313 } 313 }
314 } else { 314 } else {
315 315
316 if (asn1pars_config.informat == FORMAT_PEM) { 316 if (cfg.informat == FORMAT_PEM) {
317 BIO *tmp; 317 BIO *tmp;
318 318
319 if ((b64 = BIO_new(BIO_f_base64())) == NULL) 319 if ((b64 = BIO_new(BIO_f_base64())) == NULL)
@@ -337,20 +337,20 @@ asn1parse_main(int argc, char **argv)
337 337
338 /* If any structs to parse go through in sequence */ 338 /* If any structs to parse go through in sequence */
339 339
340 if (sk_OPENSSL_STRING_num(asn1pars_config.osk)) { 340 if (sk_OPENSSL_STRING_num(cfg.osk)) {
341 tmpbuf = (unsigned char *) str; 341 tmpbuf = (unsigned char *) str;
342 tmplen = num; 342 tmplen = num;
343 for (i = 0; i < sk_OPENSSL_STRING_num(asn1pars_config.osk); 343 for (i = 0; i < sk_OPENSSL_STRING_num(cfg.osk);
344 i++) { 344 i++) {
345 ASN1_TYPE *atmp; 345 ASN1_TYPE *atmp;
346 int typ; 346 int typ;
347 j = strtonum( 347 j = strtonum(
348 sk_OPENSSL_STRING_value(asn1pars_config.osk, i), 348 sk_OPENSSL_STRING_value(cfg.osk, i),
349 1, INT_MAX, &errstr); 349 1, INT_MAX, &errstr);
350 if (errstr) { 350 if (errstr) {
351 BIO_printf(bio_err, 351 BIO_printf(bio_err,
352 "'%s' is an invalid number: %s\n", 352 "'%s' is an invalid number: %s\n",
353 sk_OPENSSL_STRING_value(asn1pars_config.osk, 353 sk_OPENSSL_STRING_value(cfg.osk,
354 i), errstr); 354 i), errstr);
355 continue; 355 continue;
356 } 356 }
@@ -380,28 +380,28 @@ asn1parse_main(int argc, char **argv)
380 str = (char *) tmpbuf; 380 str = (char *) tmpbuf;
381 num = tmplen; 381 num = tmplen;
382 } 382 }
383 if (asn1pars_config.offset >= num) { 383 if (cfg.offset >= num) {
384 BIO_printf(bio_err, "Error: offset too large\n"); 384 BIO_printf(bio_err, "Error: offset too large\n");
385 goto end; 385 goto end;
386 } 386 }
387 num -= asn1pars_config.offset; 387 num -= cfg.offset;
388 388
389 if ((asn1pars_config.length == 0) || 389 if ((cfg.length == 0) ||
390 ((long)asn1pars_config.length > num)) 390 ((long)cfg.length > num))
391 asn1pars_config.length = (unsigned int) num; 391 cfg.length = (unsigned int) num;
392 if (derout) { 392 if (derout) {
393 if (BIO_write(derout, str + asn1pars_config.offset, 393 if (BIO_write(derout, str + cfg.offset,
394 asn1pars_config.length) != (int)asn1pars_config.length) { 394 cfg.length) != (int)cfg.length) {
395 BIO_printf(bio_err, "Error writing output\n"); 395 BIO_printf(bio_err, "Error writing output\n");
396 ERR_print_errors(bio_err); 396 ERR_print_errors(bio_err);
397 goto end; 397 goto end;
398 } 398 }
399 } 399 }
400 if (!asn1pars_config.noout && 400 if (!cfg.noout &&
401 !ASN1_parse_dump(out, 401 !ASN1_parse_dump(out,
402 (unsigned char *)&(str[asn1pars_config.offset]), 402 (unsigned char *)&(str[cfg.offset]),
403 asn1pars_config.length, asn1pars_config.indent, 403 cfg.length, cfg.indent,
404 asn1pars_config.dump)) { 404 cfg.dump)) {
405 ERR_print_errors(bio_err); 405 ERR_print_errors(bio_err);
406 goto end; 406 goto end;
407 } 407 }
@@ -415,7 +415,7 @@ asn1parse_main(int argc, char **argv)
415 ERR_print_errors(bio_err); 415 ERR_print_errors(bio_err);
416 BUF_MEM_free(buf); 416 BUF_MEM_free(buf);
417 ASN1_TYPE_free(at); 417 ASN1_TYPE_free(at);
418 sk_OPENSSL_STRING_free(asn1pars_config.osk); 418 sk_OPENSSL_STRING_free(cfg.osk);
419 OBJ_cleanup(); 419 OBJ_cleanup();
420 420
421 return (ret); 421 return (ret);