Latest update.
This commit is contained in:
@@ -24,7 +24,7 @@ use platform;
|
||||
|
||||
plan skip_all => "Test only supported in a fips build" if disabled("fips");
|
||||
|
||||
plan tests => 9;
|
||||
plan tests => 10;
|
||||
|
||||
my $infile = bldtop_file('providers', platform->dso('fips'));
|
||||
$ENV{OPENSSL_MODULES} = bldtop_dir("providers");
|
||||
@@ -92,3 +92,10 @@ ok(!run(app(['openssl', 'fipsinstall', '-out', 'fips.conf', '-module', $infile,
|
||||
'-macopt', 'digest:SHA256', '-macopt', 'hexkey:00',
|
||||
'-section_name', 'fips_install', '-corrupt_desc', 'SHA3'])),
|
||||
"fipsinstall fails when the digest result is corrupted");
|
||||
|
||||
# corrupt DRBG
|
||||
ok(!run(app(['openssl', 'fipsinstall', '-out', 'fips.conf', '-module', $infile,
|
||||
'-provider_name', 'fips', '-mac_name', 'HMAC',
|
||||
'-macopt', 'digest:SHA256', '-macopt', 'hexkey:00',
|
||||
'-section_name', 'fips_install', '-corrupt_desc', 'CTR'])),
|
||||
"fipsinstall fails when the DRBG CTR result is corrupted");
|
||||
@@ -16,15 +16,18 @@ use OpenSSL::Test::Utils;
|
||||
|
||||
setup("test_ec");
|
||||
|
||||
plan tests => 11;
|
||||
plan tests => 14;
|
||||
|
||||
require_ok(srctop_file('test','recipes','tconversion.pl'));
|
||||
|
||||
ok(run(test(["ectest"])), "running ectest");
|
||||
|
||||
# TODO: remove these when the 'ec' app is removed.
|
||||
# Also consider moving this to the 20-25 test section because it is testing
|
||||
# the command line tool in addition to the algorithm.
|
||||
SKIP: {
|
||||
skip "Skipping EC conversion test", 3
|
||||
if disabled("ec");
|
||||
if disabled("ec") || disabled('deprecated-3.0');
|
||||
|
||||
subtest 'EC conversions -- private key' => sub {
|
||||
tconversion("ec", srctop_file("test","testec-p256.pem"));
|
||||
@@ -38,29 +41,45 @@ SKIP: {
|
||||
};
|
||||
}
|
||||
|
||||
SKIP: {
|
||||
skip "Skipping PKEY conversion test", 3
|
||||
if disabled("ec");
|
||||
|
||||
subtest 'PKEY conversions -- private key' => sub {
|
||||
tconversion("pkey", srctop_file("test","testec-p256.pem"));
|
||||
};
|
||||
subtest 'PKEY conversions -- private key PKCS#8' => sub {
|
||||
tconversion("pkey", srctop_file("test","testec-p256.pem"), "pkey");
|
||||
};
|
||||
subtest 'PKEY conversions -- public key' => sub {
|
||||
tconversion("pkey", srctop_file("test","testecpub-p256.pem"),
|
||||
"pkey", "-pubin", "-pubout");
|
||||
};
|
||||
}
|
||||
|
||||
SKIP: {
|
||||
skip "Skipping EdDSA conversion test", 6
|
||||
if disabled("ec");
|
||||
|
||||
subtest 'Ed25519 conversions -- private key' => sub {
|
||||
tconversion("pkey", srctop_file("test","tested25519.pem"));
|
||||
tconversion("pkey", srctop_file("test", "tested25519.pem"));
|
||||
};
|
||||
subtest 'Ed25519 conversions -- private key PKCS#8' => sub {
|
||||
tconversion("pkey", srctop_file("test","tested25519.pem"), "pkey");
|
||||
tconversion("pkey", srctop_file("test", "tested25519.pem"), "pkey");
|
||||
};
|
||||
subtest 'Ed25519 conversions -- public key' => sub {
|
||||
tconversion("pkey", srctop_file("test","tested25519pub.pem"),
|
||||
tconversion("pkey", srctop_file("test", "tested25519pub.pem"),
|
||||
"pkey", "-pubin", "-pubout");
|
||||
};
|
||||
|
||||
subtest 'Ed448 conversions -- private key' => sub {
|
||||
tconversion("pkey", srctop_file("test","tested448.pem"));
|
||||
tconversion("pkey", srctop_file("test", "tested448.pem"));
|
||||
};
|
||||
subtest 'Ed448 conversions -- private key PKCS#8' => sub {
|
||||
tconversion("pkey", srctop_file("test","tested448.pem"), "pkey");
|
||||
tconversion("pkey", srctop_file("test", "tested448.pem"), "pkey");
|
||||
};
|
||||
subtest 'Ed448 conversions -- public key' => sub {
|
||||
tconversion("pkey", srctop_file("test","tested448pub.pem"),
|
||||
tconversion("pkey", srctop_file("test", "tested448pub.pem"),
|
||||
"pkey", "-pubin", "-pubout");
|
||||
};
|
||||
}
|
||||
@@ -23,20 +23,34 @@ plan skip_all => "EC isn't supported in this build"
|
||||
my @valid = glob(data_file("valid", "*.pem"));
|
||||
my @invalid = glob(data_file("invalid", "*.pem"));
|
||||
|
||||
plan tests => scalar @valid + scalar @invalid + scalar @valid + scalar @invalid;
|
||||
my $num_tests = scalar @valid + scalar @invalid;
|
||||
plan tests => 3 * $num_tests;
|
||||
|
||||
foreach (@valid) {
|
||||
ok(run(app([qw{openssl ecparam -noout -check -in}, $_])));
|
||||
SKIP: {
|
||||
skip "Skipping EC tests", 2 * $num_tests
|
||||
if disabled('deprecated-3.0');
|
||||
|
||||
foreach (@valid) {
|
||||
ok(run(app([qw{openssl ecparam -noout -check -in}, $_])));
|
||||
}
|
||||
|
||||
foreach (@valid) {
|
||||
ok(run(app([qw{openssl ecparam -noout -check_named -in}, $_])));
|
||||
}
|
||||
|
||||
foreach (@invalid) {
|
||||
ok(!run(app([qw{openssl ecparam -noout -check -in}, $_])));
|
||||
}
|
||||
|
||||
foreach (@invalid) {
|
||||
ok(!run(app([qw{openssl ecparam -noout -check_named -in}, $_])));
|
||||
}
|
||||
}
|
||||
|
||||
foreach (@valid) {
|
||||
ok(run(app([qw{openssl ecparam -noout -check_named -in}, $_])));
|
||||
ok(run(app([qw{openssl pkeyparam -noout -check -in}, $_])));
|
||||
}
|
||||
|
||||
foreach (@invalid) {
|
||||
ok(!run(app([qw{openssl ecparam -noout -check -in}, $_])));
|
||||
}
|
||||
|
||||
foreach (@invalid) {
|
||||
ok(!run(app([qw{openssl ecparam -noout -check_named -in}, $_])));
|
||||
ok(!run(app([qw{openssl pkeyparam -noout -check -in}, $_])));
|
||||
}
|
||||
@@ -55,42 +55,47 @@ sub run_mp_tests {
|
||||
my $name = ($evp ? "evp" : "") . "${bits}p${primes}";
|
||||
|
||||
if ($evp) {
|
||||
ok(run(app([ 'openssl', 'genpkey', '-out', 'rsamptest.pem',
|
||||
'-algorithm', 'RSA', '-pkeyopt', "rsa_keygen_primes:$primes",
|
||||
'-pkeyopt', "rsa_keygen_bits:$bits"])), "genrsa $name");
|
||||
ok(run(app([ 'openssl', 'genpkey', '-out', "rsamptest-$name.pem",
|
||||
'-algorithm', 'RSA',
|
||||
'-pkeyopt', "rsa_keygen_primes:$primes",
|
||||
'-pkeyopt', "rsa_keygen_bits:$bits"])),
|
||||
"genrsa $name");
|
||||
} else {
|
||||
ok(run(app([ 'openssl', 'genrsa', '-out', 'rsamptest.pem',
|
||||
'-primes', $primes, $bits])), "genrsa $name");
|
||||
ok(run(app([ 'openssl', 'genrsa', '-out', "rsamptest-$name.pem",
|
||||
'-primes', $primes, $bits])),
|
||||
"genrsa $name");
|
||||
}
|
||||
|
||||
ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'rsamptest.pem',
|
||||
'-noout'])), "rsa -check $name");
|
||||
ok(run(app([ 'openssl', 'rsa', '-check', '-in', "rsamptest-$name.pem",
|
||||
'-noout'])),
|
||||
"rsa -check $name");
|
||||
|
||||
if ($evp) {
|
||||
ok(run(app([ 'openssl', 'pkeyutl', '-inkey', 'rsamptest.pem',
|
||||
ok(run(app([ 'openssl', 'pkeyutl', '-inkey', "rsamptest-$name.pem",
|
||||
'-encrypt', '-in', $cleartext,
|
||||
'-out', 'rsamptest.enc' ])), "rsa $name encrypt");
|
||||
ok(run(app([ 'openssl', 'pkeyutl', '-inkey', 'rsamptest.pem',
|
||||
'-decrypt', '-in', 'rsamptest.enc',
|
||||
'-out', 'rsamptest.dec' ])), "rsa $name decrypt");
|
||||
'-out', "rsamptest-$name.enc" ])),
|
||||
"rsa $name encrypt");
|
||||
ok(run(app([ 'openssl', 'pkeyutl', '-inkey', "rsamptest-$name.pem",
|
||||
'-decrypt', '-in', "rsamptest-$name.enc",
|
||||
'-out', "rsamptest-$name.dec" ])),
|
||||
"rsa $name decrypt");
|
||||
} else {
|
||||
ok(run(app([ 'openssl', 'rsautl', '-inkey', 'rsamptest.pem',
|
||||
ok(run(app([ 'openssl', 'rsautl', '-inkey', "rsamptest-$name.pem",
|
||||
'-encrypt', '-in', $cleartext,
|
||||
'-out', 'rsamptest.enc' ])), "rsa $name encrypt");
|
||||
ok(run(app([ 'openssl', 'rsautl', '-inkey', 'rsamptest.pem',
|
||||
'-decrypt', '-in', 'rsamptest.enc',
|
||||
'-out', 'rsamptest.dec' ])), "rsa $name decrypt");
|
||||
'-out', "rsamptest-$name.enc" ])),
|
||||
"rsa $name encrypt");
|
||||
ok(run(app([ 'openssl', 'rsautl', '-inkey', "rsamptest-$name.pem",
|
||||
'-decrypt', '-in', "rsamptest-$name.enc",
|
||||
'-out', "rsamptest-$name.dec" ])),
|
||||
"rsa $name decrypt");
|
||||
}
|
||||
|
||||
ok(check_msg(), "rsa $name check result");
|
||||
|
||||
# clean up temp files
|
||||
unlink 'rsamptest.pem';
|
||||
unlink 'rsamptest.enc';
|
||||
unlink 'rsamptest.dec';
|
||||
ok(check_msg("rsamptest-$name.dec"), "rsa $name check result");
|
||||
}
|
||||
}
|
||||
|
||||
sub check_msg {
|
||||
my $decrypted = shift;
|
||||
my $msg;
|
||||
my $dec;
|
||||
|
||||
@@ -98,7 +103,7 @@ sub check_msg {
|
||||
binmode $fh;
|
||||
read($fh, $msg, 10240);
|
||||
close $fh;
|
||||
open($fh, "<", "rsamptest.dec") or return 0;
|
||||
open($fh, "<", $decrypted ) or return 0;
|
||||
binmode $fh;
|
||||
read($fh, $dec, 10240);
|
||||
close $fh;
|
||||
|
||||
@@ -46,4 +46,3 @@ ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'),
|
||||
'-sigopt', 'rsa_mgf1_md:sha512', '-signature', 'testrsapss.sig',
|
||||
srctop_file('test', 'testrsa.pem')])),
|
||||
"openssl dgst -prverify");
|
||||
unlink 'testrsapss.sig';
|
||||
@@ -11,6 +11,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Spec;
|
||||
use File::Basename;
|
||||
use OpenSSL::Test qw/:DEFAULT with srctop_file/;
|
||||
use OpenSSL::Test::Utils;
|
||||
|
||||
@@ -26,29 +27,28 @@ sub tsignverify {
|
||||
my $data_to_sign = srctop_file('test', 'README');
|
||||
my $other_data = srctop_file('test', 'README.external');
|
||||
|
||||
my $sigfile = basename($privkey, '.pem') . '.sig';
|
||||
plan tests => 4;
|
||||
|
||||
ok(run(app(['openssl', 'dgst', '-sign', $privkey,
|
||||
'-out', 'testdgst.sig',
|
||||
'-out', $sigfile,
|
||||
$data_to_sign])),
|
||||
$testtext.": Generating signature");
|
||||
|
||||
ok(run(app(['openssl', 'dgst', '-prverify', $privkey,
|
||||
'-signature', 'testdgst.sig',
|
||||
'-signature', $sigfile,
|
||||
$data_to_sign])),
|
||||
$testtext.": Verify signature with private key");
|
||||
|
||||
ok(run(app(['openssl', 'dgst', '-verify', $pubkey,
|
||||
'-signature', 'testdgst.sig',
|
||||
'-signature', $sigfile,
|
||||
$data_to_sign])),
|
||||
$testtext.": Verify signature with public key");
|
||||
|
||||
ok(!run(app(['openssl', 'dgst', '-verify', $pubkey,
|
||||
'-signature', 'testdgst.sig',
|
||||
'-signature', $sigfile,
|
||||
$other_data])),
|
||||
$testtext.": Expect failure verifying mismatching data");
|
||||
|
||||
unlink 'testdgst.sig';
|
||||
}
|
||||
|
||||
SKIP: {
|
||||
|
||||
@@ -62,9 +62,6 @@ plan tests => 2 + (scalar @ciphers)*2;
|
||||
ok(run(app([$cmd, @e, "-in", $test, "-out", $cipherfile]))
|
||||
&& run(app([$cmd, @d, "-in", $cipherfile, "-out", $clearfile]))
|
||||
&& compare_text($test,$clearfile) == 0, $t);
|
||||
unlink $cipherfile, $clearfile;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unlink $test;
|
||||
@@ -54,8 +54,5 @@ SKIP: {
|
||||
&& run(app([@common, "-d", "-in", $cipherfile, "-out", $clearfile]))
|
||||
&& compare_text($plaintext, $clearfile) == 0
|
||||
, $ciphername);
|
||||
unlink $cipherfile, $clearfile;
|
||||
}
|
||||
}
|
||||
|
||||
unlink $plaintext;
|
||||
@@ -10,6 +10,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Spec;
|
||||
use File::Basename;
|
||||
use OpenSSL::Test qw/:DEFAULT srctop_file ok_nofips/;
|
||||
use OpenSSL::Test::Utils;
|
||||
|
||||
@@ -27,13 +28,13 @@ SKIP: {
|
||||
ok_nofips(run(app(([ 'openssl', 'pkeyutl', '-sign',
|
||||
'-in', srctop_file('test', 'certs', 'sm2.pem'),
|
||||
'-inkey', srctop_file('test', 'certs', 'sm2.key'),
|
||||
'-out', 'signature.dat', '-rawin',
|
||||
'-out', 'sm2.sig', '-rawin',
|
||||
'-digest', 'sm3', '-pkeyopt', 'sm2_id:someid']))),
|
||||
"Sign a piece of data using SM2");
|
||||
ok_nofips(run(app(([ 'openssl', 'pkeyutl', '-verify', '-certin',
|
||||
'-in', srctop_file('test', 'certs', 'sm2.pem'),
|
||||
'-inkey', srctop_file('test', 'certs', 'sm2.pem'),
|
||||
'-sigfile', 'signature.dat', '-rawin',
|
||||
'-sigfile', 'sm2.sig', '-rawin',
|
||||
'-digest', 'sm3', '-pkeyopt', 'sm2_id:someid']))),
|
||||
"Verify an SM2 signature against a piece of data");
|
||||
}
|
||||
@@ -46,29 +47,27 @@ SKIP: {
|
||||
ok(run(app(([ 'openssl', 'pkeyutl', '-sign', '-in',
|
||||
srctop_file('test', 'certs', 'server-ed25519-cert.pem'),
|
||||
'-inkey', srctop_file('test', 'certs', 'server-ed25519-key.pem'),
|
||||
'-out', 'signature.dat', '-rawin']))),
|
||||
'-out', 'Ed25519.sig', '-rawin']))),
|
||||
"Sign a piece of data using Ed25519");
|
||||
ok(run(app(([ 'openssl', 'pkeyutl', '-verify', '-certin', '-in',
|
||||
srctop_file('test', 'certs', 'server-ed25519-cert.pem'),
|
||||
'-inkey', srctop_file('test', 'certs', 'server-ed25519-cert.pem'),
|
||||
'-sigfile', 'signature.dat', '-rawin']))),
|
||||
'-sigfile', 'Ed25519.sig', '-rawin']))),
|
||||
"Verify an Ed25519 signature against a piece of data");
|
||||
|
||||
# Ed448
|
||||
ok(run(app(([ 'openssl', 'pkeyutl', '-sign', '-in',
|
||||
srctop_file('test', 'certs', 'server-ed448-cert.pem'),
|
||||
'-inkey', srctop_file('test', 'certs', 'server-ed448-key.pem'),
|
||||
'-out', 'signature.dat', '-rawin']))),
|
||||
'-out', 'Ed448.sig', '-rawin']))),
|
||||
"Sign a piece of data using Ed448");
|
||||
ok(run(app(([ 'openssl', 'pkeyutl', '-verify', '-certin', '-in',
|
||||
srctop_file('test', 'certs', 'server-ed448-cert.pem'),
|
||||
'-inkey', srctop_file('test', 'certs', 'server-ed448-cert.pem'),
|
||||
'-sigfile', 'signature.dat', '-rawin']))),
|
||||
'-sigfile', 'Ed448.sig', '-rawin']))),
|
||||
"Verify an Ed448 signature against a piece of data");
|
||||
}
|
||||
|
||||
unlink 'signature.dat';
|
||||
|
||||
sub tsignverify {
|
||||
my $testtext = shift;
|
||||
my $privkey = shift;
|
||||
@@ -77,7 +76,7 @@ sub tsignverify {
|
||||
|
||||
my $data_to_sign = srctop_file('test', 'README');
|
||||
my $other_data = srctop_file('test', 'README.external');
|
||||
my $sigfile = 'testpkeyutl.sig';
|
||||
my $sigfile = basename($privkey, '.pem') . '.sig';
|
||||
|
||||
my @args = ();
|
||||
plan tests => 4;
|
||||
@@ -113,8 +112,6 @@ sub tsignverify {
|
||||
push(@args, @extraopts);
|
||||
ok(!run(app([@args])),
|
||||
$testtext.": Expect failure verifying mismatching data");
|
||||
|
||||
unlink $sigfile;
|
||||
}
|
||||
|
||||
SKIP: {
|
||||
|
||||
@@ -40,7 +40,6 @@ ok(run(app(["openssl", "crl", "-text", "-in", $pem, "-out", $out,
|
||||
"-nameopt", "utf8"])));
|
||||
is(cmp_text($out, srctop_file("test/certs", "cyrillic_crl.utf8")),
|
||||
0, 'Comparing utf8 output');
|
||||
unlink $out;
|
||||
|
||||
sub compare1stline {
|
||||
my ($cmdarray, $str) = @_;
|
||||
|
||||
+14
-16
@@ -51,13 +51,13 @@ subtest "generating certificate requests with RSA" => sub {
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-out", "testreq.pem", "-utf8",
|
||||
"-new", "-out", "testreq-rsa.pem", "-utf8",
|
||||
"-key", srctop_file("test", "testrsa.pem")])),
|
||||
"Generating request");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout"])),
|
||||
"-verify", "-in", "testreq-rsa.pem", "-noout"])),
|
||||
"Verifying signature on request");
|
||||
}
|
||||
};
|
||||
@@ -71,13 +71,13 @@ subtest "generating certificate requests with DSA" => sub {
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-out", "testreq.pem", "-utf8",
|
||||
"-new", "-out", "testreq-dsa.pem", "-utf8",
|
||||
"-key", srctop_file("test", "testdsa.pem")])),
|
||||
"Generating request");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout"])),
|
||||
"-verify", "-in", "testreq-dsa.pem", "-noout"])),
|
||||
"Verifying signature on request");
|
||||
}
|
||||
};
|
||||
@@ -91,13 +91,13 @@ subtest "generating certificate requests with ECDSA" => sub {
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-out", "testreq.pem", "-utf8",
|
||||
"-new", "-out", "testreq-ec.pem", "-utf8",
|
||||
"-key", srctop_file("test", "testec-p256.pem")])),
|
||||
"Generating request");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout"])),
|
||||
"-verify", "-in", "testreq-ec.pem", "-noout"])),
|
||||
"Verifying signature on request");
|
||||
}
|
||||
};
|
||||
@@ -111,13 +111,13 @@ subtest "generating certificate requests with Ed25519" => sub {
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-out", "testreq.pem", "-utf8",
|
||||
"-new", "-out", "testreq-ed25519.pem", "-utf8",
|
||||
"-key", srctop_file("test", "tested25519.pem")])),
|
||||
"Generating request");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout"])),
|
||||
"-verify", "-in", "testreq-ed25519.pem", "-noout"])),
|
||||
"Verifying signature on request");
|
||||
}
|
||||
};
|
||||
@@ -131,13 +131,13 @@ subtest "generating certificate requests with Ed448" => sub {
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-out", "testreq.pem", "-utf8",
|
||||
"-new", "-out", "testreq-ed448.pem", "-utf8",
|
||||
"-key", srctop_file("test", "tested448.pem")])),
|
||||
"Generating request");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout"])),
|
||||
"-verify", "-in", "testreq-ed448.pem", "-noout"])),
|
||||
"Verifying signature on request");
|
||||
}
|
||||
};
|
||||
@@ -164,12 +164,12 @@ subtest "generating SM2 certificate requests" => sub {
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-key", srctop_file("test", "certs", "sm2.key"),
|
||||
"-sigopt", "sm2_id:1234567812345678",
|
||||
"-out", "testreq.pem", "-sm3"])),
|
||||
"-out", "testreq-sm2.pem", "-sm3"])),
|
||||
"Generating SM2 certificate request");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout",
|
||||
"-verify", "-in", "testreq-sm2.pem", "-noout",
|
||||
"-sm2-id", "1234567812345678", "-sm3"])),
|
||||
"Verifying signature on SM2 certificate request");
|
||||
|
||||
@@ -177,12 +177,12 @@ subtest "generating SM2 certificate requests" => sub {
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-new", "-key", srctop_file("test", "certs", "sm2.key"),
|
||||
"-sigopt", "sm2_hex_id:DEADBEEF",
|
||||
"-out", "testreq.pem", "-sm3"])),
|
||||
"-out", "testreq-sm2.pem", "-sm3"])),
|
||||
"Generating SM2 certificate request with hex id");
|
||||
|
||||
ok(run(app(["openssl", "req",
|
||||
"-config", srctop_file("test", "test.cnf"),
|
||||
"-verify", "-in", "testreq.pem", "-noout",
|
||||
"-verify", "-in", "testreq-sm2.pem", "-noout",
|
||||
"-sm2-hex-id", "DEADBEEF", "-sm3"])),
|
||||
"Verifying signature on SM2 certificate request");
|
||||
}
|
||||
@@ -195,8 +195,6 @@ run_conversion('req conversions',
|
||||
run_conversion('req conversions -- testreq2',
|
||||
srctop_file("test", "testreq2.pem"));
|
||||
|
||||
unlink "testkey.pem", "testreq.pem";
|
||||
|
||||
sub run_conversion {
|
||||
my $title = shift;
|
||||
my $reqfile = shift;
|
||||
|
||||
@@ -21,19 +21,19 @@ plan tests => 10;
|
||||
require_ok(srctop_file('test','recipes','tconversion.pl'));
|
||||
|
||||
my $pem = srctop_file("test/certs", "cyrillic.pem");
|
||||
my $out = "cyrillic.out";
|
||||
my $out_msb = "out-cyrillic.msb";
|
||||
my $out_utf8 = "out-cyrillic.utf8";
|
||||
my $msb = srctop_file("test/certs", "cyrillic.msb");
|
||||
my $utf = srctop_file("test/certs", "cyrillic.utf8");
|
||||
|
||||
ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out,
|
||||
ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out_msb,
|
||||
"-nameopt", "esc_msb"])));
|
||||
is(cmp_text($out, srctop_file("test/certs", "cyrillic.msb")),
|
||||
is(cmp_text($out_msb, srctop_file("test/certs", "cyrillic.msb")),
|
||||
0, 'Comparing esc_msb output');
|
||||
ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out,
|
||||
ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out_utf8,
|
||||
"-nameopt", "utf8"])));
|
||||
is(cmp_text($out, srctop_file("test/certs", "cyrillic.utf8")),
|
||||
is(cmp_text($out_utf8, srctop_file("test/certs", "cyrillic.utf8")),
|
||||
0, 'Comparing utf8 output');
|
||||
unlink $out;
|
||||
|
||||
SKIP: {
|
||||
skip "EC disabled", 1 if disabled("ec");
|
||||
@@ -54,8 +54,6 @@ SKIP: {
|
||||
&&
|
||||
run(app(["openssl", "verify", "-no_check_time",
|
||||
"-trusted", $selfout, $testcert])));
|
||||
unlink $pubkey;
|
||||
unlink $selfout;
|
||||
}
|
||||
|
||||
subtest 'x509 -- x.509 v1 certificate' => sub {
|
||||
|
||||
@@ -414,7 +414,7 @@ Reason = operation not supported for this keytype
|
||||
Sign = RSA-2048
|
||||
Availablein = default
|
||||
Ctrl = rsa_mgf1_md:sha1
|
||||
Result = PKEY_CTRL_INVALID
|
||||
Result = PKEY_CTRL_ERROR
|
||||
Reason = invalid mgf1 md
|
||||
|
||||
# RSA PSS key tests
|
||||
|
||||
@@ -33,16 +33,16 @@ my @testdata = (
|
||||
providers => [ 'default' ],
|
||||
tests => [ { providers => [] },
|
||||
{ },
|
||||
{ args => [ '-property', 'default=yes' ],
|
||||
message => 'using property "default=yes"' },
|
||||
{ args => [ '-property', 'fips=no' ],
|
||||
message => 'using property "fips=no"' },
|
||||
{ args => [ '-property', 'default=no', '-fetchfail' ],
|
||||
{ args => [ '-property', 'provider=default' ],
|
||||
message => 'using property "provider=default"' },
|
||||
{ args => [ '-property', 'provider!=fips' ],
|
||||
message => 'using property "provider!=fips"' },
|
||||
{ args => [ '-property', 'provider!=default', '-fetchfail' ],
|
||||
message =>
|
||||
'using property "default=no" is expected to fail' },
|
||||
{ args => [ '-property', 'fips=yes', '-fetchfail' ],
|
||||
'using property "provider!=default" is expected to fail' },
|
||||
{ args => [ '-property', 'provider=fips', '-fetchfail' ],
|
||||
message =>
|
||||
'using property "fips=yes" is expected to fail' } ] }
|
||||
'using property "provider=fips" is expected to fail' } ] }
|
||||
);
|
||||
|
||||
unless ($no_fips) {
|
||||
@@ -60,28 +60,48 @@ unless ($no_fips) {
|
||||
providers => [ 'fips' ],
|
||||
tests => [
|
||||
{ args => [ '-property', '' ] },
|
||||
{ args => [ '-property', 'provider=fips' ],
|
||||
message => 'using property "provider=fips"' },
|
||||
{ args => [ '-property', 'provider!=default' ],
|
||||
message => 'using property "provider!=default"' },
|
||||
{ args => [ '-property', 'provider=default', '-fetchfail' ],
|
||||
message =>
|
||||
'using property "provider=default" is expected to fail' },
|
||||
{ args => [ '-property', 'provider!=fips', '-fetchfail' ],
|
||||
message =>
|
||||
'using property "provider!=fips" is expected to fail' },
|
||||
{ args => [ '-property', 'fips=yes' ],
|
||||
message => 'using property "fips=yes"' },
|
||||
{ args => [ '-property', 'default=no' ],
|
||||
message => 'using property "default = no"' },
|
||||
{ args => [ '-property', 'default=yes', '-fetchfail' ],
|
||||
message =>
|
||||
'using property "default=yes" is expected to fail' },
|
||||
{ args => [ '-property', 'fips=no', '-fetchfail' ],
|
||||
message =>
|
||||
'using property "fips=no" is expected to fail' } ] },
|
||||
{ args => [ '-property', 'fips!=no' ],
|
||||
message => 'using property "fips!=no"' },
|
||||
{ args => [ '-property', '-fips' ],
|
||||
message => 'using property "-fips"' },
|
||||
{ args => [ '-property', 'fips=no', '-fetchfail' ],
|
||||
message => 'using property "fips=no is expected to fail"' },
|
||||
{ args => [ '-property', 'fips!=yes', '-fetchfail' ],
|
||||
message => 'using property "fips!=yes is expected to fail"' } ] },
|
||||
{ config => srctop_file("test", "default-and-fips.cnf"),
|
||||
providers => [ 'default', 'fips' ],
|
||||
tests => [
|
||||
{ args => [ '-property', '' ] },
|
||||
{ args => [ '-property', 'default=no' ],
|
||||
message => 'using property "default=no"' },
|
||||
{ args => [ '-property', 'default=yes' ],
|
||||
message => 'using property "default=yes"' },
|
||||
{ args => [ '-property', 'fips=no' ],
|
||||
message => 'using property "fips=no"' },
|
||||
{ args => [ '-property', 'fips=yes' ],
|
||||
message => 'using property "fips=yes"' } ] }
|
||||
{ args => [ '-property', 'provider!=default' ],
|
||||
message => 'using property "provider!=default"' },
|
||||
{ args => [ '-property', 'provider=default' ],
|
||||
message => 'using property "provider=default"' },
|
||||
{ args => [ '-property', 'provider!=fips' ],
|
||||
message => 'using property "provider!=fips"' },
|
||||
{ args => [ '-property', 'provider=fips' ],
|
||||
message => 'using property "provider=fips"' },
|
||||
{ args => [ '-property', 'fips=yes' ],
|
||||
message => 'using property "fips=yes"' },
|
||||
{ args => [ '-property', 'fips!=no' ],
|
||||
message => 'using property "fips!=no"' },
|
||||
{ args => [ '-property', '-fips' ],
|
||||
message => 'using property "-fips"' },
|
||||
{ args => [ '-property', 'fips=no' ],
|
||||
message => 'using property "fips=no"' },
|
||||
{ args => [ '-property', 'fips!=yes' ],
|
||||
message => 'using property "fips!=yes"' } ] },
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,5 +9,12 @@
|
||||
|
||||
|
||||
use OpenSSL::Test::Simple;
|
||||
use OpenSSL::Test qw/:DEFAULT srctop_dir/;
|
||||
|
||||
simple_test("test_evp_pkey_provided", "evp_pkey_provided_test");
|
||||
setup("test_evp_pkey_provided");
|
||||
|
||||
plan tests => 1;
|
||||
|
||||
ok(run(test(["evp_pkey_provided_test",
|
||||
srctop_dir("test", "recipes", "30-test_evp_pkey_provided")])),
|
||||
"running evp_pkey_provided_test");
|
||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MCQCAQAwFwYJKoZIhvcNAQMBMAoCBQCLtF9TAgECBAYCBGZsKwY=
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,5 @@
|
||||
DH Private-Key: (32 bit)
|
||||
private-key: 1718364934 (0x666c2b06)
|
||||
public-key: 1873206864 (0x6fa6de50)
|
||||
prime: 2343853907 (0x8bb45f53)
|
||||
generator: 2 (0x2)
|
||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCIwFwYJKoZIhvcNAQMBMAoCBQCLtF9TAgECAwcAAgRvpt5Q
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -0,0 +1,4 @@
|
||||
DH Public-Key: (32 bit)
|
||||
public-key: 1873206864 (0x6fa6de50)
|
||||
prime: 2343853907 (0x8bb45f53)
|
||||
generator: 2 (0x2)
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MEQCAQAwDQYJKoZIhvcNAQEBBQAEMDAuAgEAAgUAvHR/xQIDAQABAgR7EzOZAgMA
|
||||
6WMCAwDOtwIDAIWZAgMAvYcCAwDMOw==
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,9 @@
|
||||
Private-Key: (32 bit, 2 primes)
|
||||
modulus: 3161751493 (0xbc747fc5)
|
||||
publicExponent: 65537 (0x10001)
|
||||
privateExponent: 2064855961 (0x7b133399)
|
||||
prime1: 59747 (0xe963)
|
||||
prime2: 52919 (0xceb7)
|
||||
exponent1: 34201 (0x8599)
|
||||
exponent2: 48519 (0xbd87)
|
||||
coefficient: 52283 (0xcc3b)
|
||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCAwDQYJKoZIhvcNAQEBBQADDwAwDAIFALx0f8UCAwEAAQ==
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -0,0 +1,3 @@
|
||||
Public-Key: (32 bit)
|
||||
Modulus: 3161751493 (0xbc747fc5)
|
||||
Exponent: 65537 (0x10001)
|
||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MC4CAQAwBQYDK2VuBCIEIHcHbQpzGKV9PBbBclGyZkXfTC+H68CZKrF3+6UduSwq
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,9 @@
|
||||
X25519 Private-Key:
|
||||
priv:
|
||||
77:07:6d:0a:73:18:a5:7d:3c:16:c1:72:51:b2:66:
|
||||
45:df:4c:2f:87:eb:c0:99:2a:b1:77:fb:a5:1d:b9:
|
||||
2c:2a
|
||||
pub:
|
||||
85:20:f0:09:89:30:a7:54:74:8b:7d:dc:b4:3e:f7:
|
||||
5a:0d:bf:3a:0d:26:38:1a:f4:eb:a4:a9:8e:aa:9b:
|
||||
4e:6a
|
||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VuAyEAhSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -0,0 +1,5 @@
|
||||
X25519 Public-Key:
|
||||
pub:
|
||||
85:20:f0:09:89:30:a7:54:74:8b:7d:dc:b4:3e:f7:
|
||||
5a:0d:bf:3a:0d:26:38:1a:f4:eb:a4:a9:8e:aa:9b:
|
||||
4e:6a
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MEYCAQAwBQYDK2VvBDoEOJqPSSXRUZ9Xdc9GsEtYANTunui66LxVZdSYwo3Zybr1
|
||||
dKlBl0SJc5EAY4Km8SerHZrC2MClmHJr
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,11 @@
|
||||
X448 Private-Key:
|
||||
priv:
|
||||
9a:8f:49:25:d1:51:9f:57:75:cf:46:b0:4b:58:00:
|
||||
d4:ee:9e:e8:ba:e8:bc:55:65:d4:98:c2:8d:d9:c9:
|
||||
ba:f5:74:a9:41:97:44:89:73:91:00:63:82:a6:f1:
|
||||
27:ab:1d:9a:c2:d8:c0:a5:98:72:6b
|
||||
pub:
|
||||
9b:08:f7:cc:31:b7:e3:e6:7d:22:d5:ae:a1:21:07:
|
||||
4a:27:3b:d2:b8:3d:e0:9c:63:fa:a7:3d:2c:22:c5:
|
||||
d9:bb:c8:36:64:72:41:d9:53:d4:0c:5b:12:da:88:
|
||||
12:0d:53:17:7f:80:e5:32:c4:1f:a0
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MEIwBQYDK2VvAzkAmwj3zDG34+Z9ItWuoSEHSic70rg94Jxj+qc9LCLF2bvINmRy
|
||||
QdlT1AxbEtqIEg1TF3+A5TLEH6A=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -0,0 +1,6 @@
|
||||
X448 Public-Key:
|
||||
pub:
|
||||
9b:08:f7:cc:31:b7:e3:e6:7d:22:d5:ae:a1:21:07:
|
||||
4a:27:3b:d2:b8:3d:e0:9c:63:fa:a7:3d:2c:22:c5:
|
||||
d9:bb:c8:36:64:72:41:d9:53:d4:0c:5b:12:da:88:
|
||||
12:0d:53:17:7f:80:e5:32:c4:1f:a0
|
||||
@@ -68,10 +68,6 @@ SKIP: {
|
||||
"Signing SM2 certificate request");
|
||||
}
|
||||
|
||||
rmtree("demoCA", { safe => 0 });
|
||||
unlink "newcert.pem", "newreq.pem", "newkey.pem", "sm2-test.crt";
|
||||
|
||||
|
||||
sub yes {
|
||||
my $cntr = 10;
|
||||
open(PIPE, "|-", join(" ",@_));
|
||||
|
||||
+408
-339
@@ -27,155 +27,175 @@ my $smcont = srctop_file("test", "smcont.txt");
|
||||
my ($no_des, $no_dh, $no_dsa, $no_ec, $no_ec2m, $no_rc2, $no_zlib)
|
||||
= disabled qw/des dh dsa ec ec2m rc2 zlib/;
|
||||
|
||||
plan tests => 6;
|
||||
plan tests => 7;
|
||||
|
||||
my @smime_pkcs7_tests = (
|
||||
|
||||
[ "signed content DER format, RSA key",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed detached content DER format, RSA key",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt",
|
||||
"-content", $smcont ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt",
|
||||
"-content", $smcont ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming BER format, RSA",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-stream",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-stream",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content DER format, DSA key",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed detached content DER format, DSA key",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt",
|
||||
"-content", $smcont ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt",
|
||||
"-content", $smcont ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed detached content DER format, add RSA signer (with DSA existing)",
|
||||
[ "-resign", "-inform", "DER", "-in", "test.cms", "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test2.cms" ],
|
||||
[ "-verify", "-in", "test2.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt",
|
||||
"-content", $smcont ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd1}", "-resign", "-in", "{output}.cms", "-inform", "DER", "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}2.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}2.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt",
|
||||
"-content", $smcont ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming BER format, DSA key",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-stream",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach", "-stream",
|
||||
"-signer", catfile($smdir, "smdsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming BER format, 2 DSA and 2 RSA keys",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach", "-stream",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming BER format, 2 DSA and 2 RSA keys, no attributes",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-noattr", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-noattr", "-nodetach", "-stream",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content S/MIME format, RSA key SHA1",
|
||||
[ "-sign", "-in", $smcont, "-md", "sha1",
|
||||
"-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-md", "sha1",
|
||||
"-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming S/MIME format, 2 DSA and 2 RSA keys",
|
||||
[ "-sign", "-in", $smcont, "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming multipart S/MIME format, 2 DSA and 2 RSA keys",
|
||||
[ "-sign", "-in", $smcont,
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont,
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, 3 recipients",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, 3 recipients, 3rd used",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smrsa3.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smrsa3.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, 3 recipients, key only used",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "-decrypt", "-inkey", catfile($smdir, "smrsa3.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-inkey", catfile($smdir, "smrsa3.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, AES-256 cipher, 3 recipients",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-aes256", "-stream", "-out", "test.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-aes256", "-stream", "-out", "{output}.cms",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
);
|
||||
@@ -183,125 +203,154 @@ my @smime_pkcs7_tests = (
|
||||
my @smime_cms_tests = (
|
||||
|
||||
[ "signed content test streaming BER format, 2 DSA and 2 RSA keys, keyid",
|
||||
[ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach", "-keyid",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach", "-keyid",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming PEM format, 2 DSA and 2 RSA keys",
|
||||
[ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-signer", catfile($smdir, "smdsa1.pem"),
|
||||
"-signer", catfile($smdir, "smdsa2.pem"),
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content MIME format, RSA key, signed receipt request",
|
||||
[ "-sign", "-in", $smcont, "-signer", catfile($smdir, "smrsa1.pem"), "-nodetach",
|
||||
"-receipt_request_to", "test\@openssl.org", "-receipt_request_all",
|
||||
"-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-receipt_request_to", "test\@openssl.org", "-receipt_request_all",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed receipt MIME format, RSA key",
|
||||
[ "-sign_receipt", "-in", "test.cms",
|
||||
"-signer", catfile($smdir, "smrsa2.pem"),
|
||||
"-out", "test2.cms" ],
|
||||
[ "-verify_receipt", "test2.cms", "-in", "test.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem") ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-receipt_request_to", "test\@openssl.org", "-receipt_request_all",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd1}", "-sign_receipt", "-in", "{output}.cms",
|
||||
"-signer", catfile($smdir, "smrsa2.pem"), "-out", "{output}2.cms" ],
|
||||
[ "{cmd2}", "-verify_receipt", "{output}2.cms", "-in", "{output}.cms",
|
||||
"-CAfile", catfile($smdir, "smroot.pem") ]
|
||||
],
|
||||
|
||||
[ "signed content DER format, RSA key, CAdES-BES compatible",
|
||||
[ "-sign", "-cades", "-in", $smcont, "-outform", "DER", "-nodetach",
|
||||
[ "{cmd1}", "-sign", "-cades", "-in", $smcont, "-outform", "DER",
|
||||
"-nodetach",
|
||||
"-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content DER format, RSA key, SHA256 md, CAdES-BES compatible",
|
||||
[ "-sign", "-cades", "-md", "sha256", "-in", $smcont, "-outform",
|
||||
"DER", "-nodetach", "-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-cades", "-md", "sha256", "-in", $smcont,
|
||||
"-outform", "DER", "-nodetach",
|
||||
"-certfile", catfile($smdir, "smroot.pem"),
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, 3 recipients, keyid",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms", "-keyid",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms", "-keyid",
|
||||
catfile($smdir, "smrsa1.pem"),
|
||||
catfile($smdir, "smrsa2.pem"),
|
||||
catfile($smdir, "smrsa3.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming PEM format, KEK",
|
||||
[ "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
|
||||
"-stream", "-out", "test.cms",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-secretkeyid", "C0FEE0" ],
|
||||
[ "-decrypt", "-in", "test.cms", "-out", "smtst.txt", "-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-secretkeyid", "C0FEE0" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-secretkeyid", "C0FEE0" ],
|
||||
[ "{cmd2}", "-decrypt", "-in", "{output}.cms", "-out", "{output}.txt",
|
||||
"-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-secretkeyid", "C0FEE0" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming PEM format, KEK, key only",
|
||||
[ "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
|
||||
"-stream", "-out", "test.cms",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-secretkeyid", "C0FEE0" ],
|
||||
[ "-decrypt", "-in", "test.cms", "-out", "smtst.txt", "-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-secretkeyid", "C0FEE0" ],
|
||||
[ "{cmd2}", "-decrypt", "-in", "{output}.cms", "-out", "{output}.txt",
|
||||
"-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "data content test streaming PEM format",
|
||||
[ "-data_create", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-data_out", "-in", "test.cms", "-inform", "PEM", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-data_create", "-in", $smcont, "-outform", "PEM",
|
||||
"-nodetach", "-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-data_out", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "encrypted content test streaming PEM format, 128 bit RC2 key",
|
||||
[ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-rc2", "-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-rc2", "-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-EncryptedData_decrypt", "-in", "{output}.cms",
|
||||
"-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "encrypted content test streaming PEM format, 40 bit RC2 key",
|
||||
[ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-rc2", "-secretkey", "0001020304",
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
|
||||
"-secretkey", "0001020304", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-rc2", "-secretkey", "0001020304",
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-EncryptedData_decrypt", "-in", "{output}.cms",
|
||||
"-inform", "PEM",
|
||||
"-secretkey", "0001020304", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "encrypted content test streaming PEM format, triple DES key",
|
||||
[ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-des3", "-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
|
||||
"-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-des3", "-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-EncryptedData_decrypt", "-in", "{output}.cms",
|
||||
"-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
|
||||
"-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "encrypted content test streaming PEM format, 128 bit AES key",
|
||||
[ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-aes128", "-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
|
||||
"-aes128", "-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-EncryptedData_decrypt", "-in", "{output}.cms",
|
||||
"-inform", "PEM",
|
||||
"-secretkey", "000102030405060708090A0B0C0D0E0F",
|
||||
"-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
);
|
||||
@@ -309,124 +358,149 @@ my @smime_cms_tests = (
|
||||
my @smime_cms_comp_tests = (
|
||||
|
||||
[ "compressed content test streaming PEM format",
|
||||
[ "-compress", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-stream", "-out", "test.cms" ],
|
||||
[ "-uncompress", "-in", "test.cms", "-inform", "PEM", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-compress", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-stream", "-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-uncompress", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
]
|
||||
|
||||
);
|
||||
|
||||
my @smime_cms_param_tests = (
|
||||
[ "signed content test streaming PEM format, RSA keys, PSS signature",
|
||||
[ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
|
||||
"-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-keyopt", "rsa_padding_mode:pss",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming PEM format, RSA keys, PSS signature, saltlen=max",
|
||||
[ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
|
||||
"-keyopt", "rsa_pss_saltlen:max", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-keyopt", "rsa_padding_mode:pss", "-keyopt", "rsa_pss_saltlen:max",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming PEM format, RSA keys, PSS signature, no attributes",
|
||||
[ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach", "-noattr",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
|
||||
"-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-noattr",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-keyopt", "rsa_padding_mode:pss",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "signed content test streaming PEM format, RSA keys, PSS signature, SHA384 MGF1",
|
||||
[ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
|
||||
"-keyopt", "rsa_mgf1_md:sha384", "-out", "test.cms" ],
|
||||
[ "-verify", "-in", "test.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"),
|
||||
"-keyopt", "rsa_padding_mode:pss", "-keyopt", "rsa_mgf1_md:sha384",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd2}", "-verify", "-in", "{output}.cms", "-inform", "PEM",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, OAEP default parameters",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:oaep" ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-keyopt", "rsa_padding_mode:oaep" ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, OAEP SHA256",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:oaep",
|
||||
"-keyopt", "rsa_oaep_md:sha256" ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-keyopt", "rsa_padding_mode:oaep",
|
||||
"-keyopt", "rsa_oaep_md:sha256" ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, ECDH",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smec1.pem") ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smec1.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, DES, ECDH, 2 recipients, key only used",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
catfile($smdir, "smec1.pem"),
|
||||
catfile($smdir, "smec3.pem") ],
|
||||
[ "-decrypt", "-inkey", catfile($smdir, "smec3.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
catfile($smdir, "smec1.pem"),
|
||||
catfile($smdir, "smec3.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-inkey", catfile($smdir, "smec3.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, ECDH, DES, key identifier",
|
||||
[ "-encrypt", "-keyid", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smec1.pem") ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-keyid", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smec1.pem") ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, ECDH, AES128, SHA256 KDF",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smec1.pem"), "-aes128", "-keyopt", "ecdh_kdf_md:sha256" ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smec1.pem"), "-aes128",
|
||||
"-keyopt", "ecdh_kdf_md:sha256" ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, ECDH, K-283, cofactor DH",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smec2.pem"), "-aes128",
|
||||
"-keyopt", "ecdh_kdf_md:sha256", "-keyopt", "ecdh_cofactor_mode:1" ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smec2.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smec2.pem"), "-aes128",
|
||||
"-keyopt", "ecdh_kdf_md:sha256", "-keyopt", "ecdh_cofactor_mode:1" ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smec2.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming S/MIME format, X9.42 DH",
|
||||
[ "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "test.cms",
|
||||
"-recip", catfile($smdir, "smdh.pem"), "-aes128" ],
|
||||
[ "-decrypt", "-recip", catfile($smdir, "smdh.pem"),
|
||||
"-in", "test.cms", "-out", "smtst.txt" ]
|
||||
[ "{cmd1}", "-encrypt", "-in", $smcont,
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-recip", catfile($smdir, "smdh.pem"), "-aes128" ],
|
||||
[ "{cmd2}", "-decrypt", "-recip", catfile($smdir, "smdh.pem"),
|
||||
"-in", "{output}.cms", "-out", "{output}.txt" ],
|
||||
\&final_compare
|
||||
]
|
||||
);
|
||||
|
||||
my @contenttype_cms_test = (
|
||||
[ "signed content test - check that content type is added to additional signerinfo, RSA keys",
|
||||
[ "-sign", "-binary", "-nodetach", "-stream", "-in", $smcont, "-outform", "DER",
|
||||
[ "{cmd1}", "-sign", "-binary", "-nodetach", "-stream", "-in", $smcont,
|
||||
"-outform", "DER",
|
||||
"-signer", catfile($smdir, "smrsa1.pem"), "-md", "SHA256",
|
||||
"-out", "test.cms" ],
|
||||
[ "-resign", "-binary", "-nodetach", "-in", "test.cms", "-inform", "DER", "-outform", "DER",
|
||||
"-out", "{output}.cms" ],
|
||||
[ "{cmd1}", "-resign", "-binary", "-nodetach", "-in", "{output}.cms",
|
||||
"-inform", "DER", "-outform", "DER",
|
||||
"-signer", catfile($smdir, "smrsa2.pem"), "-md", "SHA256",
|
||||
"-out", "test2.cms" ],
|
||||
[ "-verify", "-in", "test2.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
|
||||
"-out", "{output}2.cms" ],
|
||||
sub { my %opts = @_; contentType_matches("$opts{output}2.cms") == 2; },
|
||||
[ "{cmd2}", "-verify", "-in", "{output}2.cms", "-inform", "DER",
|
||||
"-CAfile", catfile($smdir, "smroot.pem"), "-out", "{output}.txt" ]
|
||||
],
|
||||
);
|
||||
|
||||
@@ -437,96 +511,85 @@ my @incorrect_attribute_cms_test = (
|
||||
"ct_multiple_attr.cms"
|
||||
);
|
||||
|
||||
# Runs a standard loop on the input array
|
||||
sub runner_loop {
|
||||
my %opts = ( @_ );
|
||||
my $cnt1 = 0;
|
||||
|
||||
foreach (@{$opts{tests}}) {
|
||||
$cnt1++;
|
||||
$opts{output} = "$opts{prefix}-$cnt1";
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
my $ok = 1;
|
||||
1 while unlink "$opts{output}.txt";
|
||||
|
||||
foreach (@$_[1..$#$_]) {
|
||||
if (ref $_ eq 'CODE') {
|
||||
$ok &&= $_->(%opts);
|
||||
} else {
|
||||
my @cmd = map {
|
||||
my $x = $_;
|
||||
while ($x =~ /\{([^\}]+)\}/) {
|
||||
$x = $`.$opts{$1}.$' if exists $opts{$1};
|
||||
}
|
||||
$x;
|
||||
} @$_;
|
||||
|
||||
diag "CMD: openssl", join(" ", @cmd);
|
||||
$ok &&= run(app(["openssl", @cmd]));
|
||||
$opts{input} = $opts{output};
|
||||
}
|
||||
}
|
||||
|
||||
ok($ok, $$_[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub final_compare {
|
||||
my %opts = @_;
|
||||
|
||||
diag "Comparing $smcont with $opts{output}.txt";
|
||||
return compare_text($smcont, "$opts{output}.txt") == 0;
|
||||
}
|
||||
|
||||
subtest "CMS => PKCS#7 compatibility tests\n" => sub {
|
||||
plan tests => scalar @smime_pkcs7_tests;
|
||||
|
||||
foreach (@smime_pkcs7_tests) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "cms", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "smime", @{$$_[2]}]))
|
||||
&& compare_text($smcont, "smtst.txt") == 0,
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
runner_loop(prefix => 'cms2pkcs7', cmd1 => 'cms', cmd2 => 'smime',
|
||||
tests => [ @smime_pkcs7_tests ]);
|
||||
};
|
||||
subtest "CMS <= PKCS#7 compatibility tests\n" => sub {
|
||||
plan tests => scalar @smime_pkcs7_tests;
|
||||
|
||||
foreach (@smime_pkcs7_tests) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "smime", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "cms", @{$$_[2]}]))
|
||||
&& compare_text($smcont, "smtst.txt") == 0,
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
runner_loop(prefix => 'pkcs72cms', cmd1 => 'smime', cmd2 => 'cms',
|
||||
tests => [ @smime_pkcs7_tests ]);
|
||||
};
|
||||
|
||||
subtest "CMS <=> CMS consistency tests\n" => sub {
|
||||
plan tests => (scalar @smime_pkcs7_tests) + (scalar @smime_cms_tests);
|
||||
|
||||
foreach (@smime_pkcs7_tests) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "cms", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "cms", @{$$_[2]}]))
|
||||
&& compare_text($smcont, "smtst.txt") == 0,
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
foreach (@smime_cms_tests) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "cms", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "cms", @{$$_[2]}]))
|
||||
&& compare_text($smcont, "smtst.txt") == 0,
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
runner_loop(prefix => 'cms2cms-1', cmd1 => 'cms', cmd2 => 'cms',
|
||||
tests => [ @smime_pkcs7_tests ]);
|
||||
runner_loop(prefix => 'cms2cms-2', cmd1 => 'cms', cmd2 => 'cms',
|
||||
tests => [ @smime_cms_tests ]);
|
||||
};
|
||||
|
||||
subtest "CMS <=> CMS consistency tests, modified key parameters\n" => sub {
|
||||
plan tests =>
|
||||
(scalar @smime_cms_param_tests) + (scalar @smime_cms_comp_tests);
|
||||
|
||||
foreach (@smime_cms_param_tests) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "cms", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "cms", @{$$_[2]}]))
|
||||
&& compare_text($smcont, "smtst.txt") == 0,
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
(scalar @smime_cms_param_tests) + (scalar @smime_cms_comp_tests);
|
||||
|
||||
runner_loop(prefix => 'cms2cms-mod', cmd1 => 'cms', cmd2 => 'cms',
|
||||
tests => [ @smime_cms_param_tests ]);
|
||||
SKIP: {
|
||||
skip("Zlib not supported: compression tests skipped",
|
||||
scalar @smime_cms_comp_tests)
|
||||
if $no_zlib;
|
||||
scalar @smime_cms_comp_tests)
|
||||
if $no_zlib;
|
||||
|
||||
foreach (@smime_cms_comp_tests) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "cms", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "cms", @{$$_[2]}]))
|
||||
&& compare_text($smcont, "smtst.txt") == 0,
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
runner_loop(prefix => 'cms2cms-comp', cmd1 => 'cms', cmd2 => 'cms',
|
||||
tests => [ @smime_cms_comp_tests ]);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -547,38 +610,44 @@ sub contentType_matches {
|
||||
}
|
||||
|
||||
subtest "CMS Check the content type attribute is added for additional signers\n" => sub {
|
||||
plan tests =>
|
||||
(scalar @contenttype_cms_test);
|
||||
plan tests => (scalar @contenttype_cms_test);
|
||||
|
||||
foreach (@contenttype_cms_test) {
|
||||
SKIP: {
|
||||
my $skip_reason = check_availability($$_[0]);
|
||||
skip $skip_reason, 1 if $skip_reason;
|
||||
|
||||
ok(run(app(["openssl", "cms", @{$$_[1]}]))
|
||||
&& run(app(["openssl", "cms", @{$$_[2]}]))
|
||||
&& contentType_matches("test2.cms") == 2
|
||||
&& run(app(["openssl", "cms", @{$$_[3]}])),
|
||||
$$_[0]);
|
||||
}
|
||||
}
|
||||
runner_loop(prefix => 'cms2cms-added', cmd1 => 'cms', cmd2 => 'cms',
|
||||
tests => [ @contenttype_cms_test ]);
|
||||
};
|
||||
|
||||
subtest "CMS Check that bad attributes fail when verifying signers\n" => sub {
|
||||
plan tests =>
|
||||
(scalar @incorrect_attribute_cms_test);
|
||||
|
||||
my $cnt = 0;
|
||||
foreach my $name (@incorrect_attribute_cms_test) {
|
||||
my $out = "incorrect-$cnt.txt";
|
||||
|
||||
ok(!run(app(["openssl", "cms", "-verify", "-in",
|
||||
catfile($datadir, $name), "-inform", "DER", "-CAfile",
|
||||
catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ])),
|
||||
catfile($smdir, "smroot.pem"), "-out", $out ])),
|
||||
$name);
|
||||
}
|
||||
};
|
||||
|
||||
unlink "test.cms";
|
||||
unlink "test2.cms";
|
||||
unlink "smtst.txt";
|
||||
subtest "CMS Decrypt message encrypted with OpenSSL 1.1.1\n" => sub {
|
||||
plan tests => 1;
|
||||
|
||||
SKIP: {
|
||||
skip "EC isn't supported in this build", 1
|
||||
if disabled("ec");
|
||||
|
||||
my $out = "smtst.txt";
|
||||
|
||||
ok(run(app(["openssl", "cms", "-decrypt",
|
||||
"-inkey", catfile($smdir, "smec3.pem"),
|
||||
"-in", catfile($datadir, "ciphertext_from_1_1_1.cms"),
|
||||
"-out", $out ]))
|
||||
&& compare_text($smcont, $out) == 0,
|
||||
"Decrypt message from OpenSSL 1.1.1");
|
||||
}
|
||||
};
|
||||
|
||||
sub check_availability {
|
||||
my $tnam = shift;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
MIME-Version: 1.0
|
||||
Content-Disposition: attachment; filename="smime.p7m"
|
||||
Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQIxggHwoYH1AgEDoFGhTzAJBgcqhkjOPQIBA0IA
|
||||
BAePxHUnwKL0d8UFDKE1Ey90FGDkwsy1iTttSmKeUB2ZJoM1TwbPUI9YVsSttJNV
|
||||
x+25aQ1Qnw3FnY03rcUcy94wHAYJK4EFEIZIPwACMA8GCyqGSIb3DQEJEAMGBQAw
|
||||
fzB9MFEwRDELMAkGA1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wgR3JvdXAxHTAb
|
||||
BgNVBAMMFFRlc3QgUy9NSU1FIFJTQSBSb290AgkA9oQ6WVaz+mMEKFSg1EdBE4qA
|
||||
rh2DJVuTJfopaDXM4ih25kIGcxz+zRTo0+8Z7XgjE1KhgfUCAQOgUaFPMAkGByqG
|
||||
SM49AgEDQgAErpcZ+4D3r+tERXL9c8pvtyRmNlYeMa7iCaVJ+YdLFtohdfrQ017/
|
||||
8CR+Q/q5ibL+eqDeg6KOxytDs2GpD+WoUTAcBgkrgQUQhkg/AAIwDwYLKoZIhvcN
|
||||
AQkQAwYFADB/MH0wUTBEMQswCQYDVQQGEwJVSzEWMBQGA1UECgwNT3BlblNTTCBH
|
||||
cm91cDEdMBsGA1UEAwwUVGVzdCBTL01JTUUgUlNBIFJvb3QCCQDZOZbupksgRgQo
|
||||
6OoZPATNvHJTypifw4rBfVlmDvUYcE6S7VmeEFDW9ALPw1XDa58lnTCABgkqhkiG
|
||||
9w0BBwEwFAYIKoZIhvcNAwcECKGDGhF9W/7SoIAEUJW5dEUWWwA6vIO1Db9aLJry
|
||||
Wx1zNmkFzJnkCUdsgrZxEIdT4kG5E+gLtGmA0+OO8RcoULhAWLf+s2yNN3vLTshN
|
||||
YJpevytIYpXQQgzJ8x+5BAjSDDgrrWnBugAAAAAAAAAAAAA=
|
||||
|
||||
@@ -12,6 +12,7 @@ use warnings;
|
||||
|
||||
use POSIX;
|
||||
use File::Spec::Functions qw/devnull catfile/;
|
||||
use File::Basename;
|
||||
use File::Copy;
|
||||
use OpenSSL::Test qw/:DEFAULT with pipe srctop_dir data_file/;
|
||||
use OpenSSL::Test::Utils;
|
||||
@@ -34,18 +35,18 @@ sub test_ocsp {
|
||||
$untrusted = $CAfile;
|
||||
}
|
||||
my $expected_exit = shift;
|
||||
my $outputfile = basename($inputfile, '.ors') . '.dat';
|
||||
|
||||
run(app(["openssl", "base64", "-d",
|
||||
"-in", catfile($ocspdir,$inputfile),
|
||||
"-out", "ocsp-resp-fff.dat"]));
|
||||
"-out", $outputfile]));
|
||||
with({ exit_checker => sub { return shift == $expected_exit; } },
|
||||
sub { ok(run(app(["openssl", "ocsp", "-respin", "ocsp-resp-fff.dat",
|
||||
sub { ok(run(app(["openssl", "ocsp", "-respin", $outputfile,
|
||||
"-partial_chain", @check_time,
|
||||
"-CAfile", catfile($ocspdir, $CAfile),
|
||||
"-verify_other", catfile($ocspdir, $untrusted),
|
||||
"-no-CApath"])),
|
||||
$title); });
|
||||
unlink "ocsp-resp-fff.dat";
|
||||
}
|
||||
|
||||
plan tests => 11;
|
||||
|
||||
@@ -120,17 +120,16 @@ sub test_conf {
|
||||
my ($conf, $check_source, $skip) = @_;
|
||||
|
||||
my $conf_file = srctop_file("test", "ssl-tests", $conf);
|
||||
my $tmp_file = "${conf}.$$.tmp";
|
||||
my $input_file = $conf_file . ".in";
|
||||
my $output_file = $conf;
|
||||
my $run_test = 1;
|
||||
|
||||
SKIP: {
|
||||
# "Test" 1. Generate the source.
|
||||
my $input_file = $conf_file . ".in";
|
||||
|
||||
skip 'failure', 2 unless
|
||||
ok(run(perltest(["generate_ssl_tests.pl", $input_file],
|
||||
interpreter_args => [ "-I", srctop_dir("util", "perl")],
|
||||
stdout => $tmp_file)),
|
||||
stdout => $output_file)),
|
||||
"Getting output from generate_ssl_tests.pl.");
|
||||
|
||||
SKIP: {
|
||||
@@ -138,7 +137,7 @@ sub test_conf {
|
||||
skip "Skipping generated source test for $conf", 1
|
||||
if !$check_source;
|
||||
|
||||
$run_test = is(cmp_text($tmp_file, $conf_file), 0,
|
||||
$run_test = is(cmp_text($output_file, $conf_file), 0,
|
||||
"Comparing generated sources.");
|
||||
}
|
||||
|
||||
@@ -146,10 +145,8 @@ sub test_conf {
|
||||
skip "No tests available; skipping tests", 1 if $skip;
|
||||
skip "Stale sources; skipping tests", 1 if !$run_test;
|
||||
|
||||
ok(run(test(["ssl_test", $tmp_file])), "running ssl_test $conf");
|
||||
ok(run(test(["ssl_test", $output_file])), "running ssl_test $conf");
|
||||
}
|
||||
|
||||
unlink glob $tmp_file;
|
||||
}
|
||||
|
||||
sub cmp_text {
|
||||
|
||||
@@ -221,7 +221,10 @@ sub testss {
|
||||
SKIP: {
|
||||
$ENV{CN2} = "ECDSA Certificate";
|
||||
skip 'failure', 4 unless
|
||||
ok(run(app(["openssl", "ecparam", "-name", "P-256",
|
||||
ok(run(app(["openssl", "genpkey", "-genparam",
|
||||
"-algorithm", "EC",
|
||||
"-pkeyopt", "ec_paramgen_curve:P-256",
|
||||
"-pkeyopt", "ec_param_enc:named_curve",
|
||||
"-out", "ecp.ss"])),
|
||||
"make EC parameters");
|
||||
skip 'failure', 3 unless
|
||||
@@ -546,41 +549,3 @@ sub testssl {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
unlink $CAkey;
|
||||
unlink $CAcert;
|
||||
unlink $CAserial;
|
||||
unlink $CAreq;
|
||||
unlink $CAreq2;
|
||||
|
||||
unlink $Ukey;
|
||||
unlink $Ureq;
|
||||
unlink $Ucert;
|
||||
unlink basename($Ucert, '.ss').'.srl';
|
||||
|
||||
unlink $Dkey;
|
||||
unlink $Dreq;
|
||||
unlink $Dcert;
|
||||
|
||||
unlink $Ekey;
|
||||
unlink $Ereq;
|
||||
unlink $Ecert;
|
||||
|
||||
unlink $P1key;
|
||||
unlink $P1req;
|
||||
unlink $P1cert;
|
||||
unlink basename($P1cert, '.ss').'.srl';
|
||||
unlink $P1intermediate;
|
||||
unlink "intP1.ss";
|
||||
|
||||
unlink $P2key;
|
||||
unlink $P2req;
|
||||
unlink $P2cert;
|
||||
unlink $P2intermediate;
|
||||
unlink "intP2.ss";
|
||||
|
||||
unlink "ecp.ss";
|
||||
unlink "err.ss";
|
||||
|
||||
unlink $server_sess;
|
||||
unlink $client_sess;
|
||||
@@ -89,9 +89,6 @@ sub tconversion {
|
||||
}
|
||||
}
|
||||
}
|
||||
unlink glob "$testtype-f.*";
|
||||
unlink glob "$testtype-ff.*";
|
||||
unlink glob "$testtype-fff.*";
|
||||
}
|
||||
|
||||
sub cmp_text {
|
||||
|
||||
Reference in New Issue
Block a user