summaryrefslogtreecommitdiff
path: root/src/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr.bin')
-rw-r--r--src/usr.bin/openssl/cms.c86
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)
219static int 219static int
220cms_opt_inkey(char *arg) 220cms_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)
399static int 401static int
400cms_opt_signer(char *arg) 402cms_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}