mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
Test vectors from rfc9579 and creation tests
Reviewed-by: Paul Dale <ppzgs1@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24577)
This commit is contained in:
parent
38aa61e5a7
commit
e5569e0bf1
@ -54,7 +54,7 @@ if (eval { require Win32::API; 1; }) {
|
||||
}
|
||||
$ENV{OPENSSL_WIN32_UTF8}=1;
|
||||
|
||||
plan tests => 31;
|
||||
plan tests => 45;
|
||||
|
||||
# Test different PKCS#12 formats
|
||||
ok(run(test(["pkcs12_format_test"])), "test pkcs12 formats");
|
||||
@ -170,6 +170,59 @@ ok(grep(/Trusted key usage (Oracle)/, @pkcs12info) == 0,
|
||||
ok(scalar @match > 0 ? 0 : 1, "test_export_pkcs12_outerr6_empty");
|
||||
}
|
||||
|
||||
my %pbmac1_tests = (
|
||||
pbmac1_defaults => {args => [], lookup => "hmacWithSHA256"},
|
||||
pbmac1_nondefaults => {args => ["-pbmac1_pbkdf2_md", "sha512", "-macalg", "sha384"], lookup => "hmacWithSHA512"},
|
||||
);
|
||||
|
||||
for my $instance (sort keys %pbmac1_tests) {
|
||||
my $extra_args = $pbmac1_tests{$instance}{args};
|
||||
my $lookup = $pbmac1_tests{$instance}{lookup};
|
||||
# Test export of PEM file with both cert and key, with password.
|
||||
{
|
||||
my $pbmac1_id = $instance;
|
||||
ok(run(app(["openssl", "pkcs12", "-export", "-pbmac1_pbkdf2",
|
||||
"-inkey", srctop_file(@path, "cert-key-cert.pem"),
|
||||
"-in", srctop_file(@path, "cert-key-cert.pem"),
|
||||
"-passout", "pass:1234",
|
||||
@$extra_args,
|
||||
"-out", "$pbmac1_id.p12"], stderr => "${pbmac1_id}_err.txt")),
|
||||
"test_export_pkcs12_${pbmac1_id}");
|
||||
open DATA, "${pbmac1_id}_err.txt";
|
||||
my @match = grep /:error:/, <DATA>;
|
||||
close DATA;
|
||||
ok(scalar @match > 0 ? 0 : 1, "test_export_pkcs12_${pbmac1_id}_err.empty");
|
||||
|
||||
ok(run(app(["openssl", "pkcs12", "-in", "$pbmac1_id.p12", "-info", "-noout",
|
||||
"-passin", "pass:1234"], stderr => "${pbmac1_id}_info.txt")),
|
||||
"test_export_pkcs12_${pbmac1_id}_info");
|
||||
open DATA, "${pbmac1_id}_info.txt";
|
||||
my @match = grep /$lookup/, <DATA>;
|
||||
close DATA;
|
||||
ok(scalar @match > 0 ? 1 : 0, "test_export_pkcs12_${pbmac1_id}_info");
|
||||
}
|
||||
}
|
||||
|
||||
# Test pbmac1 pkcs12 good files, RFC 9579
|
||||
for my $file ("pbmac1_256_256.good.p12", "pbmac1_512_256.good.p12", "pbmac1_512_512.good.p12")
|
||||
{
|
||||
my $path = srctop_file("test", "recipes", "80-test_pkcs12_data", $file);
|
||||
ok(run(app(["openssl", "pkcs12", "-in", $path, "-password", "pass:1234", "-noenc"])),
|
||||
"test pbmac1 pkcs12 file $file");
|
||||
}
|
||||
|
||||
# Test pbmac1 pkcs12 bad files, RFC 9579
|
||||
for my $file ("pbmac1_256_256.bad-iter.p12", "pbmac1_256_256.bad-salt.p12", "pbmac1_256_256.no-len.p12")
|
||||
{
|
||||
my $path = srctop_file("test", "recipes", "80-test_pkcs12_data", $file);
|
||||
with({ exit_checker => sub { return shift == 1; } },
|
||||
sub {
|
||||
ok(run(app(["openssl", "pkcs12", "-in", $path, "-password", "pass:1234", "-noenc"])),
|
||||
"test pbmac1 pkcs12 bad file $file");
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
# Test some bad pkcs12 files
|
||||
my $bad1 = srctop_file("test", "recipes", "80-test_pkcs12_data", "bad1.p12");
|
||||
my $bad2 = srctop_file("test", "recipes", "80-test_pkcs12_data", "bad2.p12");
|
||||
|
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.bad-iter.p12
Normal file
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.bad-iter.p12
Normal file
Binary file not shown.
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.bad-salt.p12
Normal file
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.bad-salt.p12
Normal file
Binary file not shown.
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.good.p12
Normal file
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.good.p12
Normal file
Binary file not shown.
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.no-len.p12
Normal file
BIN
test/recipes/80-test_pkcs12_data/pbmac1_256_256.no-len.p12
Normal file
Binary file not shown.
BIN
test/recipes/80-test_pkcs12_data/pbmac1_512_256.good.p12
Normal file
BIN
test/recipes/80-test_pkcs12_data/pbmac1_512_256.good.p12
Normal file
Binary file not shown.
BIN
test/recipes/80-test_pkcs12_data/pbmac1_512_512.good.p12
Normal file
BIN
test/recipes/80-test_pkcs12_data/pbmac1_512_512.good.p12
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user