25-test_x509.t: Add test for suitable error report loading unsupported sm2 cert

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/13023)
This commit is contained in:
Dr. David von Oheimb 2020-09-28 19:44:49 +02:00
parent e1f5a92df4
commit 9032c2c11b

View File

@ -16,7 +16,7 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/;
setup("test_x509"); setup("test_x509");
plan tests => 14; plan tests => 15;
require_ok(srctop_file('test','recipes','tconversion.pl')); require_ok(srctop_file('test','recipes','tconversion.pl'));
@ -105,9 +105,10 @@ sub test_errors { # actually tests diagnostics of OSSL_STORE
my ($expected, $cert, @opts) = @_; my ($expected, $cert, @opts) = @_;
my $infile = srctop_file('test', 'certs', $cert); my $infile = srctop_file('test', 'certs', $cert);
my @args = qw(openssl x509 -in); my @args = qw(openssl x509 -in);
push(@args, "$infile", @opts); push(@args, $infile, @opts);
my $tmpfile = 'out.txt'; my $tmpfile = 'out.txt';
my $res = !run(app([@args], stderr => $tmpfile)); my $res = grep(/-text/, @opts) ? run(app([@args], stdout => $tmpfile))
: !run(app([@args], stderr => $tmpfile));
my $found = 0; my $found = 0;
open(my $in, '<', $tmpfile) or die "Could not open file $tmpfile"; open(my $in, '<', $tmpfile) or die "Could not open file $tmpfile";
while(<$in>) { while(<$in>) {
@ -116,7 +117,7 @@ sub test_errors { # actually tests diagnostics of OSSL_STORE
$found = 1 if m/$expected/; # output must include $expected $found = 1 if m/$expected/; # output must include $expected
} }
close $in; close $in;
unlink $tmpfile; # $tmpfile is kept to help with investigation in case of failure
return $res && $found; return $res && $found;
} }
@ -124,3 +125,9 @@ ok(test_errors("Can't open any-dir/", "root-cert.pem", '-out', 'any-dir/'),
"load root-cert errors"); "load root-cert errors");
ok(test_errors("RC2-40-CBC", "v3-certs-RC2.p12", '-passin', 'pass:v3-certs'), ok(test_errors("RC2-40-CBC", "v3-certs-RC2.p12", '-passin', 'pass:v3-certs'),
"load v3-certs-RC2 no asn1 errors"); "load v3-certs-RC2 no asn1 errors");
SKIP: {
skip "sm2 not disabled", 1 if !disabled("sm2");
ok(test_errors("unknown group|unsupported algorithm", "sm2.pem", '-text'),
"error loading unsupported sm2 cert");
}