diff options
Diffstat (limited to 'src')
| -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 | } |
