Commit f9dff99361 for openssl.org
commit f9dff993617b7151f1a4282f0e01d39d2d62c942
Author: Jakub Zelenka <jakub.zelenka@openssl.foundation>
Date: Tue Jun 23 16:21:27 2026 +0200
apps: cover the smime multiple -signer parsing path
The signerfile != NULL block in smime_main(), reached when more than one
-signer is given (including the case where a preceding -inkey leaves
keyfile != NULL), was not exercised: the existing multi-signer tests run
through the cms command, and the smime app was only ever run with a
single signer. Add a two-signer test, with an explicit -inkey, to the
pkcs7 test set so it runs through smime when signing.
Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Reviewed-by: Bob Beck <beck@openssl.org>
MergeDate: Tue Jun 30 08:57:47 2026
(Merged from https://github.com/openssl/openssl/pull/31675)
diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t
index 34b5fc4171..078e50123d 100644
--- a/test/recipes/80-test_cms.t
+++ b/test/recipes/80-test_cms.t
@@ -121,6 +121,16 @@ my @smime_pkcs7_tests = (
\&final_compare
],
+ [ "signed content DER format, two RSA signers with explicit -inkey",
+ [ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
+ "-signer", catfile($smdir, "smrsa3-cert.pem"),
+ "-inkey", catfile($smdir, "smrsa3-key.pem"),
+ "-signer", $smrsa1, "-out", "{output}.cms" ],
+ [ "{cmd2}", @prov, "-verify", "-in", "{output}.cms", "-inform", "DER",
+ "-CAfile", $smroot, "-out", "{output}.txt" ],
+ \&final_compare
+ ],
+
[ "signed content DER format, DSA key",
[ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],