Don't run ECDH CMS tests if EC disabled.
[openssl.git] / test / cms-test.pl
index 3ccece3f6748f51944a8584495393cbeae03460f..5e553c84c94f3f1482eb804980acd1cd7024d8b3 100644 (file)
@@ -82,8 +82,23 @@ my $smdir    = "smime-certs";
 my $halt_err = 1;
 
 my $badcmd = 0;
+my $no_ec;
 my $ossl8 = `$ossl_path version -v` =~ /0\.9\.8/;
 
+system ("$ossl_path no-ec >/dev/null");
+if ($? == 0)
+       {
+       $no_ec = 1;
+       }
+elsif ($? == 1)
+       {
+       $no_ec = 0;
+       }
+else
+       {
+       die "Error checking for EC support\n";
+       }
+
 my @smime_pkcs7_tests = (
 
     [
@@ -384,6 +399,39 @@ my @smime_cms_param_tests = (
           . " -recip $smdir/smrsa1.pem -keyopt rsa_padding_mode:oaep"
          . " -keyopt rsa_oaep_md:sha256",
         "-decrypt -recip $smdir/smrsa1.pem -in test.cms -out smtst.txt"
+    ],
+
+    [
+"enveloped content test streaming S/MIME format, ECDH",
+        "-encrypt -in smcont.txt"
+          . " -stream -out test.cms"
+          . " -recip $smdir/smec1.pem",
+        "-decrypt -recip $smdir/smec1.pem -in test.cms -out smtst.txt"
+    ],
+
+    [
+"enveloped content test streaming S/MIME format, ECDH, AES128, SHA256 KDF",
+        "-encrypt -in smcont.txt"
+          . " -stream -out test.cms"
+          . " -recip $smdir/smec1.pem -aes128 -keyopt ecdh_kdf_md:sha256",
+        "-decrypt -recip $smdir/smec1.pem -in test.cms -out smtst.txt"
+    ],
+
+    [
+"enveloped content test streaming S/MIME format, ECDH, K-283, cofactor DH",
+        "-encrypt -in smcont.txt"
+          . " -stream -out test.cms"
+          . " -recip $smdir/smec2.pem -aes128"
+         . " -keyopt ecdh_kdf_md:sha256 -keyopt ecdh_cofactor_mode:1",
+        "-decrypt -recip $smdir/smec2.pem -in test.cms -out smtst.txt"
+    ],
+
+    [
+"enveloped content test streaming S/MIME format, X9.42 DH",
+        "-encrypt -in smcont.txt"
+          . " -stream -out test.cms"
+          . " -recip $smdir/smdh.pem -aes128",
+        "-decrypt -recip $smdir/smdh.pem -in test.cms -out smtst.txt"
     ]
 );
 
@@ -439,6 +487,11 @@ sub run_smime_tests {
                $rscmd =~ s/-stream//;  
                $rvcmd =~ s/-stream//;
                }
+       if ($no_ec && $tnam =~ /ECDH/)
+               {
+               print "$tnam: skipped, EC disabled\n";
+               next;
+               }
         system("$scmd$rscmd$redir");
         if ($?) {
             print "$tnam: generation error\n";