diff options
Diffstat (limited to 'src/usr.bin/openssl/crl.c')
-rw-r--r-- | src/usr.bin/openssl/crl.c | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/src/usr.bin/openssl/crl.c b/src/usr.bin/openssl/crl.c index 6b7bc5b72e..e64038dfda 100644 --- a/src/usr.bin/openssl/crl.c +++ b/src/usr.bin/openssl/crl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: crl.c,v 1.16 2022/11/11 17:07:38 joshua Exp $ */ | 1 | /* $OpenBSD: crl.c,v 1.17 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,7 +86,7 @@ static struct { | |||
86 | int outformat; | 86 | int outformat; |
87 | int text; | 87 | int text; |
88 | int verify; | 88 | int verify; |
89 | } crl_config; | 89 | } cfg; |
90 | 90 | ||
91 | static const struct option crl_options[] = { | 91 | static const struct option crl_options[] = { |
92 | { | 92 | { |
@@ -94,109 +94,109 @@ static const struct option crl_options[] = { | |||
94 | .argname = "file", | 94 | .argname = "file", |
95 | .desc = "Verify the CRL using certificates in the given file", | 95 | .desc = "Verify the CRL using certificates in the given file", |
96 | .type = OPTION_ARG, | 96 | .type = OPTION_ARG, |
97 | .opt.arg = &crl_config.cafile, | 97 | .opt.arg = &cfg.cafile, |
98 | }, | 98 | }, |
99 | { | 99 | { |
100 | .name = "CApath", | 100 | .name = "CApath", |
101 | .argname = "path", | 101 | .argname = "path", |
102 | .desc = "Verify the CRL using certificates in the given path", | 102 | .desc = "Verify the CRL using certificates in the given path", |
103 | .type = OPTION_ARG, | 103 | .type = OPTION_ARG, |
104 | .opt.arg = &crl_config.capath, | 104 | .opt.arg = &cfg.capath, |
105 | }, | 105 | }, |
106 | { | 106 | { |
107 | .name = "crlnumber", | 107 | .name = "crlnumber", |
108 | .desc = "Print the CRL number", | 108 | .desc = "Print the CRL number", |
109 | .type = OPTION_FLAG_ORD, | 109 | .type = OPTION_FLAG_ORD, |
110 | .opt.flag = &crl_config.crlnumber, | 110 | .opt.flag = &cfg.crlnumber, |
111 | }, | 111 | }, |
112 | { | 112 | { |
113 | .name = "fingerprint", | 113 | .name = "fingerprint", |
114 | .desc = "Print the CRL fingerprint", | 114 | .desc = "Print the CRL fingerprint", |
115 | .type = OPTION_FLAG_ORD, | 115 | .type = OPTION_FLAG_ORD, |
116 | .opt.flag = &crl_config.fingerprint, | 116 | .opt.flag = &cfg.fingerprint, |
117 | }, | 117 | }, |
118 | { | 118 | { |
119 | .name = "hash", | 119 | .name = "hash", |
120 | .desc = "Print the hash of the issuer name", | 120 | .desc = "Print the hash of the issuer name", |
121 | .type = OPTION_FLAG_ORD, | 121 | .type = OPTION_FLAG_ORD, |
122 | .opt.flag = &crl_config.hash, | 122 | .opt.flag = &cfg.hash, |
123 | }, | 123 | }, |
124 | { | 124 | { |
125 | .name = "hash_old", | 125 | .name = "hash_old", |
126 | .desc = "Print an old-style (MD5) hash of the issuer name", | 126 | .desc = "Print an old-style (MD5) hash of the issuer name", |
127 | .type = OPTION_FLAG_ORD, | 127 | .type = OPTION_FLAG_ORD, |
128 | .opt.flag = &crl_config.hash_old, | 128 | .opt.flag = &cfg.hash_old, |
129 | }, | 129 | }, |
130 | { | 130 | { |
131 | .name = "in", | 131 | .name = "in", |
132 | .argname = "file", | 132 | .argname = "file", |
133 | .desc = "Input file to read from (stdin if unspecified)", | 133 | .desc = "Input file to read from (stdin if unspecified)", |
134 | .type = OPTION_ARG, | 134 | .type = OPTION_ARG, |
135 | .opt.arg = &crl_config.infile, | 135 | .opt.arg = &cfg.infile, |
136 | }, | 136 | }, |
137 | { | 137 | { |
138 | .name = "inform", | 138 | .name = "inform", |
139 | .argname = "format", | 139 | .argname = "format", |
140 | .desc = "Input format (DER or PEM)", | 140 | .desc = "Input format (DER or PEM)", |
141 | .type = OPTION_ARG_FORMAT, | 141 | .type = OPTION_ARG_FORMAT, |
142 | .opt.value = &crl_config.informat, | 142 | .opt.value = &cfg.informat, |
143 | }, | 143 | }, |
144 | { | 144 | { |
145 | .name = "issuer", | 145 | .name = "issuer", |
146 | .desc = "Print the issuer name", | 146 | .desc = "Print the issuer name", |
147 | .type = OPTION_FLAG_ORD, | 147 | .type = OPTION_FLAG_ORD, |
148 | .opt.flag = &crl_config.issuer, | 148 | .opt.flag = &cfg.issuer, |
149 | }, | 149 | }, |
150 | { | 150 | { |
151 | .name = "lastupdate", | 151 | .name = "lastupdate", |
152 | .desc = "Print the lastUpdate field", | 152 | .desc = "Print the lastUpdate field", |
153 | .type = OPTION_FLAG_ORD, | 153 | .type = OPTION_FLAG_ORD, |
154 | .opt.flag = &crl_config.lastupdate, | 154 | .opt.flag = &cfg.lastupdate, |
155 | }, | 155 | }, |
156 | { | 156 | { |
157 | .name = "nameopt", | 157 | .name = "nameopt", |
158 | .argname = "options", | 158 | .argname = "options", |
159 | .desc = "Specify certificate name options", | 159 | .desc = "Specify certificate name options", |
160 | .type = OPTION_ARG, | 160 | .type = OPTION_ARG, |
161 | .opt.arg = &crl_config.nameopt, | 161 | .opt.arg = &cfg.nameopt, |
162 | }, | 162 | }, |
163 | { | 163 | { |
164 | .name = "nextupdate", | 164 | .name = "nextupdate", |
165 | .desc = "Print the nextUpdate field", | 165 | .desc = "Print the nextUpdate field", |
166 | .type = OPTION_FLAG_ORD, | 166 | .type = OPTION_FLAG_ORD, |
167 | .opt.flag = &crl_config.nextupdate, | 167 | .opt.flag = &cfg.nextupdate, |
168 | }, | 168 | }, |
169 | { | 169 | { |
170 | .name = "noout", | 170 | .name = "noout", |
171 | .desc = "Do not output the encoded version of the CRL", | 171 | .desc = "Do not output the encoded version of the CRL", |
172 | .type = OPTION_FLAG, | 172 | .type = OPTION_FLAG, |
173 | .opt.flag = &crl_config.noout, | 173 | .opt.flag = &cfg.noout, |
174 | }, | 174 | }, |
175 | { | 175 | { |
176 | .name = "out", | 176 | .name = "out", |
177 | .argname = "file", | 177 | .argname = "file", |
178 | .desc = "Output file to write to (stdout if unspecified)", | 178 | .desc = "Output file to write to (stdout if unspecified)", |
179 | .type = OPTION_ARG, | 179 | .type = OPTION_ARG, |
180 | .opt.arg = &crl_config.outfile, | 180 | .opt.arg = &cfg.outfile, |
181 | }, | 181 | }, |
182 | { | 182 | { |
183 | .name = "outform", | 183 | .name = "outform", |
184 | .argname = "format", | 184 | .argname = "format", |
185 | .desc = "Output format (DER or PEM)", | 185 | .desc = "Output format (DER or PEM)", |
186 | .type = OPTION_ARG_FORMAT, | 186 | .type = OPTION_ARG_FORMAT, |
187 | .opt.value = &crl_config.outformat, | 187 | .opt.value = &cfg.outformat, |
188 | }, | 188 | }, |
189 | { | 189 | { |
190 | .name = "text", | 190 | .name = "text", |
191 | .desc = "Print out the CRL in text form", | 191 | .desc = "Print out the CRL in text form", |
192 | .type = OPTION_FLAG, | 192 | .type = OPTION_FLAG, |
193 | .opt.flag = &crl_config.text, | 193 | .opt.flag = &cfg.text, |
194 | }, | 194 | }, |
195 | { | 195 | { |
196 | .name = "verify", | 196 | .name = "verify", |
197 | .desc = "Verify the signature on the CRL", | 197 | .desc = "Verify the signature on the CRL", |
198 | .type = OPTION_FLAG, | 198 | .type = OPTION_FLAG, |
199 | .opt.flag = &crl_config.verify, | 199 | .opt.flag = &cfg.verify, |
200 | }, | 200 | }, |
201 | {NULL}, | 201 | {NULL}, |
202 | }; | 202 | }; |
@@ -243,23 +243,23 @@ crl_main(int argc, char **argv) | |||
243 | 243 | ||
244 | digest = EVP_sha256(); | 244 | digest = EVP_sha256(); |
245 | 245 | ||
246 | memset(&crl_config, 0, sizeof(crl_config)); | 246 | memset(&cfg, 0, sizeof(cfg)); |
247 | crl_config.informat = FORMAT_PEM; | 247 | cfg.informat = FORMAT_PEM; |
248 | crl_config.outformat = FORMAT_PEM; | 248 | cfg.outformat = FORMAT_PEM; |
249 | 249 | ||
250 | if (options_parse(argc, argv, crl_options, &digest_name, NULL) != 0) { | 250 | if (options_parse(argc, argv, crl_options, &digest_name, NULL) != 0) { |
251 | crl_usage(); | 251 | crl_usage(); |
252 | goto end; | 252 | goto end; |
253 | } | 253 | } |
254 | 254 | ||
255 | if (crl_config.cafile != NULL || crl_config.capath != NULL) | 255 | if (cfg.cafile != NULL || cfg.capath != NULL) |
256 | crl_config.verify = 1; | 256 | cfg.verify = 1; |
257 | 257 | ||
258 | if (crl_config.nameopt != NULL) { | 258 | if (cfg.nameopt != NULL) { |
259 | if (set_name_ex(&nmflag, crl_config.nameopt) != 1) { | 259 | if (set_name_ex(&nmflag, cfg.nameopt) != 1) { |
260 | fprintf(stderr, | 260 | fprintf(stderr, |
261 | "Invalid -nameopt argument '%s'\n", | 261 | "Invalid -nameopt argument '%s'\n", |
262 | crl_config.nameopt); | 262 | cfg.nameopt); |
263 | goto end; | 263 | goto end; |
264 | } | 264 | } |
265 | } | 265 | } |
@@ -273,18 +273,18 @@ crl_main(int argc, char **argv) | |||
273 | } | 273 | } |
274 | } | 274 | } |
275 | 275 | ||
276 | x = load_crl(crl_config.infile, crl_config.informat); | 276 | x = load_crl(cfg.infile, cfg.informat); |
277 | if (x == NULL) | 277 | if (x == NULL) |
278 | goto end; | 278 | goto end; |
279 | 279 | ||
280 | if (crl_config.verify) { | 280 | if (cfg.verify) { |
281 | store = X509_STORE_new(); | 281 | store = X509_STORE_new(); |
282 | if (store == NULL) | 282 | if (store == NULL) |
283 | goto end; | 283 | goto end; |
284 | lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file()); | 284 | lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file()); |
285 | if (lookup == NULL) | 285 | if (lookup == NULL) |
286 | goto end; | 286 | goto end; |
287 | if (!X509_LOOKUP_load_file(lookup, crl_config.cafile, | 287 | if (!X509_LOOKUP_load_file(lookup, cfg.cafile, |
288 | X509_FILETYPE_PEM)) | 288 | X509_FILETYPE_PEM)) |
289 | X509_LOOKUP_load_file(lookup, NULL, | 289 | X509_LOOKUP_load_file(lookup, NULL, |
290 | X509_FILETYPE_DEFAULT); | 290 | X509_FILETYPE_DEFAULT); |
@@ -292,7 +292,7 @@ crl_main(int argc, char **argv) | |||
292 | lookup = X509_STORE_add_lookup(store, X509_LOOKUP_hash_dir()); | 292 | lookup = X509_STORE_add_lookup(store, X509_LOOKUP_hash_dir()); |
293 | if (lookup == NULL) | 293 | if (lookup == NULL) |
294 | goto end; | 294 | goto end; |
295 | if (!X509_LOOKUP_add_dir(lookup, crl_config.capath, | 295 | if (!X509_LOOKUP_add_dir(lookup, cfg.capath, |
296 | X509_FILETYPE_PEM)) | 296 | X509_FILETYPE_PEM)) |
297 | X509_LOOKUP_add_dir(lookup, NULL, | 297 | X509_LOOKUP_add_dir(lookup, NULL, |
298 | X509_FILETYPE_DEFAULT); | 298 | X509_FILETYPE_DEFAULT); |
@@ -335,11 +335,11 @@ crl_main(int argc, char **argv) | |||
335 | 335 | ||
336 | /* Print requested information the order that the flags were given. */ | 336 | /* Print requested information the order that the flags were given. */ |
337 | for (i = 1; i <= argc; i++) { | 337 | for (i = 1; i <= argc; i++) { |
338 | if (crl_config.issuer == i) { | 338 | if (cfg.issuer == i) { |
339 | print_name(bio_out, "issuer=", | 339 | print_name(bio_out, "issuer=", |
340 | X509_CRL_get_issuer(x), nmflag); | 340 | X509_CRL_get_issuer(x), nmflag); |
341 | } | 341 | } |
342 | if (crl_config.crlnumber == i) { | 342 | if (cfg.crlnumber == i) { |
343 | ASN1_INTEGER *crlnum; | 343 | ASN1_INTEGER *crlnum; |
344 | crlnum = X509_CRL_get_ext_d2i(x, | 344 | crlnum = X509_CRL_get_ext_d2i(x, |
345 | NID_crl_number, NULL, NULL); | 345 | NID_crl_number, NULL, NULL); |
@@ -351,23 +351,23 @@ crl_main(int argc, char **argv) | |||
351 | BIO_puts(bio_out, "<NONE>"); | 351 | BIO_puts(bio_out, "<NONE>"); |
352 | BIO_printf(bio_out, "\n"); | 352 | BIO_printf(bio_out, "\n"); |
353 | } | 353 | } |
354 | if (crl_config.hash == i) { | 354 | if (cfg.hash == i) { |
355 | BIO_printf(bio_out, "%08lx\n", | 355 | BIO_printf(bio_out, "%08lx\n", |
356 | X509_NAME_hash(X509_CRL_get_issuer(x))); | 356 | X509_NAME_hash(X509_CRL_get_issuer(x))); |
357 | } | 357 | } |
358 | #ifndef OPENSSL_NO_MD5 | 358 | #ifndef OPENSSL_NO_MD5 |
359 | if (crl_config.hash_old == i) { | 359 | if (cfg.hash_old == i) { |
360 | BIO_printf(bio_out, "%08lx\n", | 360 | BIO_printf(bio_out, "%08lx\n", |
361 | X509_NAME_hash_old(X509_CRL_get_issuer(x))); | 361 | X509_NAME_hash_old(X509_CRL_get_issuer(x))); |
362 | } | 362 | } |
363 | #endif | 363 | #endif |
364 | if (crl_config.lastupdate == i) { | 364 | if (cfg.lastupdate == i) { |
365 | BIO_printf(bio_out, "lastUpdate="); | 365 | BIO_printf(bio_out, "lastUpdate="); |
366 | ASN1_TIME_print(bio_out, | 366 | ASN1_TIME_print(bio_out, |
367 | X509_CRL_get_lastUpdate(x)); | 367 | X509_CRL_get_lastUpdate(x)); |
368 | BIO_printf(bio_out, "\n"); | 368 | BIO_printf(bio_out, "\n"); |
369 | } | 369 | } |
370 | if (crl_config.nextupdate == i) { | 370 | if (cfg.nextupdate == i) { |
371 | BIO_printf(bio_out, "nextUpdate="); | 371 | BIO_printf(bio_out, "nextUpdate="); |
372 | if (X509_CRL_get_nextUpdate(x)) | 372 | if (X509_CRL_get_nextUpdate(x)) |
373 | ASN1_TIME_print(bio_out, | 373 | ASN1_TIME_print(bio_out, |
@@ -376,7 +376,7 @@ crl_main(int argc, char **argv) | |||
376 | BIO_printf(bio_out, "NONE"); | 376 | BIO_printf(bio_out, "NONE"); |
377 | BIO_printf(bio_out, "\n"); | 377 | BIO_printf(bio_out, "\n"); |
378 | } | 378 | } |
379 | if (crl_config.fingerprint == i) { | 379 | if (cfg.fingerprint == i) { |
380 | int j; | 380 | int j; |
381 | unsigned int n; | 381 | unsigned int n; |
382 | unsigned char md[EVP_MAX_MD_SIZE]; | 382 | unsigned char md[EVP_MAX_MD_SIZE]; |
@@ -399,25 +399,25 @@ crl_main(int argc, char **argv) | |||
399 | ERR_print_errors(bio_err); | 399 | ERR_print_errors(bio_err); |
400 | goto end; | 400 | goto end; |
401 | } | 401 | } |
402 | if (crl_config.outfile == NULL) { | 402 | if (cfg.outfile == NULL) { |
403 | BIO_set_fp(out, stdout, BIO_NOCLOSE); | 403 | BIO_set_fp(out, stdout, BIO_NOCLOSE); |
404 | } else { | 404 | } else { |
405 | if (BIO_write_filename(out, crl_config.outfile) <= 0) { | 405 | if (BIO_write_filename(out, cfg.outfile) <= 0) { |
406 | perror(crl_config.outfile); | 406 | perror(cfg.outfile); |
407 | goto end; | 407 | goto end; |
408 | } | 408 | } |
409 | } | 409 | } |
410 | 410 | ||
411 | if (crl_config.text) | 411 | if (cfg.text) |
412 | X509_CRL_print(out, x); | 412 | X509_CRL_print(out, x); |
413 | 413 | ||
414 | if (crl_config.noout) { | 414 | if (cfg.noout) { |
415 | ret = 0; | 415 | ret = 0; |
416 | goto end; | 416 | goto end; |
417 | } | 417 | } |
418 | if (crl_config.outformat == FORMAT_ASN1) | 418 | if (cfg.outformat == FORMAT_ASN1) |
419 | i = (int) i2d_X509_CRL_bio(out, x); | 419 | i = (int) i2d_X509_CRL_bio(out, x); |
420 | else if (crl_config.outformat == FORMAT_PEM) | 420 | else if (cfg.outformat == FORMAT_PEM) |
421 | i = PEM_write_bio_X509_CRL(out, x); | 421 | i = PEM_write_bio_X509_CRL(out, x); |
422 | else { | 422 | else { |
423 | BIO_printf(bio_err, | 423 | BIO_printf(bio_err, |