From cfcb0e1e5daa972bdb33c728359cdaa118e269c3 Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Sun, 10 Aug 2025 18:50:37 +0200 Subject: [PATCH] Add test coverage for PKCS7_TEXT mode This was inspired by the following commit 9882d389df71 ("crypto/pkcs7/pk7_smime.c: Add BIO_free() to avoid memory leak") which discovered a bug in PKCS7_verify(..., PKCS7_TEXT). While there is some test coverage for PKCS_verify by ./test/pkcs7_test.c, there is no test coverage whatsoever of the PKCS7_TEXT flag for PKCS7_sign, PKCS7_encrypt and PKCS7_decrypt. So this adds some test coverage for those functions as well. Reviewed-by: Tomas Mraz Reviewed-by: Matt Caswell Reviewed-by: Neil Horman (Merged from https://github.com/openssl/openssl/pull/28223) (cherry picked from commit d582adc672bca4bc71a7766bb692558086efdd69) --- test/recipes/80-test_cms.t | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t index df8e7e61446..8c58152759e 100644 --- a/test/recipes/80-test_cms.t +++ b/test/recipes/80-test_cms.t @@ -83,6 +83,15 @@ my @smime_pkcs7_tests = ( \&final_compare ], + [ "signed text content DER format, RSA key", + [ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER", "-nodetach", + "-certfile", $smroot, "-signer", $smrsa1, "-text", + "-out", "{output}.cms" ], + [ "{cmd2}", @prov, "-verify", "-in", "{output}.cms", "-inform", "DER", + "-text", "-CAfile", $smroot, "-out", "{output}.txt" ], + \&final_compare + ], + [ "signed detached content DER format, RSA key", [ "{cmd1}", @prov, "-sign", "-in", $smcont, "-outform", "DER", "-signer", $smrsa1, "-out", "{output}.cms" ], @@ -216,6 +225,14 @@ my @smime_pkcs7_tests = ( \&final_compare ], + [ "enveloped text content streaming S/MIME format, DES, 1 recipient", + [ "{cmd1}", @defaultprov, "-encrypt", "-in", $smcont, + "-stream", "-text", "-out", "{output}.cms", $smrsa1 ], + [ "{cmd2}", @defaultprov, "-decrypt", "-recip", $smrsa1, + "-in", "{output}.cms", "-text", "-out", "{output}.txt" ], + \&final_compare + ], + [ "enveloped content test streaming S/MIME format, DES, 3 recipients, 3rd used", [ "{cmd1}", @defaultprov, "-encrypt", "-in", $smcont, "-stream", "-out", "{output}.cms", -- 2.47.2