diff options
Diffstat (limited to 'src/usr.bin/openssl')
-rw-r--r-- | src/usr.bin/openssl/cms.c | 86 |
1 files changed, 45 insertions, 41 deletions
diff --git a/src/usr.bin/openssl/cms.c b/src/usr.bin/openssl/cms.c index c1b55b56f0..212ed2a9c7 100644 --- a/src/usr.bin/openssl/cms.c +++ b/src/usr.bin/openssl/cms.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cms.c,v 1.19 2022/01/05 10:01:39 inoguchi Exp $ */ | 1 | /* $OpenBSD: cms.c,v 1.20 2022/01/05 10:29:08 inoguchi Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project. | 3 | * project. |
4 | */ | 4 | */ |
@@ -219,30 +219,32 @@ cms_opt_econtent_type(char *arg) | |||
219 | static int | 219 | static int |
220 | cms_opt_inkey(char *arg) | 220 | cms_opt_inkey(char *arg) |
221 | { | 221 | { |
222 | if (cms_config.keyfile != NULL) { | 222 | if (cms_config.keyfile == NULL) { |
223 | if (cms_config.signerfile == NULL) { | 223 | cms_config.keyfile = arg; |
224 | BIO_puts(bio_err, "Illegal -inkey without -signer\n"); | 224 | return (0); |
225 | return (1); | 225 | } |
226 | } | 226 | |
227 | if (cms_config.signerfile == NULL) { | ||
228 | BIO_puts(bio_err, "Illegal -inkey without -signer\n"); | ||
229 | return (1); | ||
230 | } | ||
227 | 231 | ||
228 | if (cms_config.sksigners == NULL) | 232 | if (cms_config.sksigners == NULL) |
229 | cms_config.sksigners = sk_OPENSSL_STRING_new_null(); | 233 | cms_config.sksigners = sk_OPENSSL_STRING_new_null(); |
230 | if (cms_config.sksigners == NULL) | 234 | if (cms_config.sksigners == NULL) |
231 | return (1); | 235 | return (1); |
232 | if (!sk_OPENSSL_STRING_push(cms_config.sksigners, | 236 | if (!sk_OPENSSL_STRING_push(cms_config.sksigners, cms_config.signerfile)) |
233 | cms_config.signerfile)) | 237 | return (1); |
234 | return (1); | ||
235 | 238 | ||
236 | cms_config.signerfile = NULL; | 239 | cms_config.signerfile = NULL; |
240 | |||
241 | if (cms_config.skkeys == NULL) | ||
242 | cms_config.skkeys = sk_OPENSSL_STRING_new_null(); | ||
243 | if (cms_config.skkeys == NULL) | ||
244 | return (1); | ||
245 | if (!sk_OPENSSL_STRING_push(cms_config.skkeys, cms_config.keyfile)) | ||
246 | return (1); | ||
237 | 247 | ||
238 | if (cms_config.skkeys == NULL) | ||
239 | cms_config.skkeys = sk_OPENSSL_STRING_new_null(); | ||
240 | if (cms_config.skkeys == NULL) | ||
241 | return (1); | ||
242 | if (!sk_OPENSSL_STRING_push(cms_config.skkeys, | ||
243 | cms_config.keyfile)) | ||
244 | return (1); | ||
245 | } | ||
246 | cms_config.keyfile = arg; | 248 | cms_config.keyfile = arg; |
247 | return (0); | 249 | return (0); |
248 | } | 250 | } |
@@ -399,28 +401,30 @@ cms_opt_secretkeyid(char *arg) | |||
399 | static int | 401 | static int |
400 | cms_opt_signer(char *arg) | 402 | cms_opt_signer(char *arg) |
401 | { | 403 | { |
402 | if (cms_config.signerfile != NULL) { | 404 | if (cms_config.signerfile == NULL) { |
403 | if (cms_config.sksigners == NULL) | 405 | cms_config.signerfile = arg; |
404 | cms_config.sksigners = sk_OPENSSL_STRING_new_null(); | 406 | return (0); |
405 | if (cms_config.sksigners == NULL) | 407 | } |
406 | return (1); | ||
407 | if (!sk_OPENSSL_STRING_push(cms_config.sksigners, | ||
408 | cms_config.signerfile)) | ||
409 | return (1); | ||
410 | 408 | ||
411 | if (cms_config.keyfile == NULL) | 409 | if (cms_config.sksigners == NULL) |
412 | cms_config.keyfile = cms_config.signerfile; | 410 | cms_config.sksigners = sk_OPENSSL_STRING_new_null(); |
411 | if (cms_config.sksigners == NULL) | ||
412 | return (1); | ||
413 | if (!sk_OPENSSL_STRING_push(cms_config.sksigners, cms_config.signerfile)) | ||
414 | return (1); | ||
413 | 415 | ||
414 | if (cms_config.skkeys == NULL) | 416 | if (cms_config.keyfile == NULL) |
415 | cms_config.skkeys = sk_OPENSSL_STRING_new_null(); | 417 | cms_config.keyfile = cms_config.signerfile; |
416 | if (cms_config.skkeys == NULL) | 418 | |
417 | return (1); | 419 | if (cms_config.skkeys == NULL) |
418 | if (!sk_OPENSSL_STRING_push(cms_config.skkeys, | 420 | cms_config.skkeys = sk_OPENSSL_STRING_new_null(); |
419 | cms_config.keyfile)) | 421 | if (cms_config.skkeys == NULL) |
420 | return (1); | 422 | return (1); |
423 | if (!sk_OPENSSL_STRING_push(cms_config.skkeys, cms_config.keyfile)) | ||
424 | return (1); | ||
425 | |||
426 | cms_config.keyfile = NULL; | ||
421 | 427 | ||
422 | cms_config.keyfile = NULL; | ||
423 | } | ||
424 | cms_config.signerfile = arg; | 428 | cms_config.signerfile = arg; |
425 | return (0); | 429 | return (0); |
426 | } | 430 | } |