cms-test.pl: use EXE_EXT.
[openssl.git] / test / cms-test.pl
index db272e4d666bcb81c578bfbcba34d389e09570f8..6ad78834649bb9b647163c869ea642e115221841 100644 (file)
@@ -55,7 +55,7 @@
 
 my $ossl_path;
 
-if ( -f "../apps/openssl" ) {
+if ( -f "../apps/openssl$ENV{EXE_EXT}" ) {
     $ossl_path = "../util/shlib_wrap.sh ../apps/openssl";
 }
 elsif ( -f "..\\out32dll\\openssl.exe" ) {
@@ -74,12 +74,14 @@ my $smdir    = "smime-certs";
 my $halt_err = 1;
 
 my $badcmd = 0;
+my $ossl8 = `$ossl_path version -v` =~ /0\.9\.8/;
 
 my @smime_pkcs7_tests = (
 
     [
         "signed content DER format, RSA key",
         "-sign -in smcont.txt -outform DER -nodetach"
+          . " -certfile $smdir/smroot.pem"
           . " -signer $smdir/smrsa1.pem -out test.cms",
         "-verify -in test.cms -inform DER "
           . " -CAfile $smdir/smroot.pem -out smtst.txt"
@@ -227,6 +229,24 @@ my @smime_cms_tests = (
           . " -CAfile $smdir/smroot.pem -out smtst.txt"
     ],
 
+    [
+        "signed content MIME format, RSA key, signed receipt request",
+        "-sign -in smcont.txt -signer $smdir/smrsa1.pem -nodetach"
+          . " -receipt_request_to test\@openssl.org -receipt_request_all"
+          . " -out test.cms",
+        "-verify -in test.cms "
+          . " -CAfile $smdir/smroot.pem -out smtst.txt"
+    ],
+
+    [
+        "signed receipt MIME format, RSA key",
+        "-sign_receipt -in test.cms"
+          . " -signer $smdir/smrsa2.pem"
+          . " -out test2.cms",
+        "-verify_receipt test2.cms -in test.cms"
+          . " -CAfile $smdir/smroot.pem"
+    ],
+
     [
         "enveloped content test streaming S/MIME format, 3 recipients, keyid",
         "-encrypt -in smcont.txt"
@@ -333,6 +353,8 @@ else {
     print "Zlib not supported: compression tests skipped\n";
 }
 
+print "Running modified tests for OpenSSL 0.9.8 cms backport\n" if($ossl8);
+
 if ($badcmd) {
     print "$badcmd TESTS FAILED!!\n";
 }
@@ -351,6 +373,15 @@ sub run_smime_tests {
 
     foreach $smtst (@$aref) {
         my ( $tnam, $rscmd, $rvcmd ) = @$smtst;
+       if ($ossl8)
+               {
+               # Skip smime resign: 0.9.8 smime doesn't support -resign        
+               next if ($scmd =~ /smime/ && $rscmd =~ /-resign/);
+               # Disable streaming: option not supported in 0.9.8
+               $tnam =~ s/streaming//; 
+               $rscmd =~ s/-stream//;  
+               $rvcmd =~ s/-stream//;
+               }
         system("$scmd$rscmd 2>cms.err 1>cms.out");
         if ($?) {
             print "$tnam: generation error\n";