summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2021-11-19 16:38:55 +0100
committerBernd Edlinger <bernd.edlinger@hotmail.de>2021-11-23 18:39:46 +0100
commit6d022b04748c2a89b7f032a41965df19c584e0cf (patch)
treee120f88d3abf2c3a6794a35185dc49c30d630de4 /test
parent79ef18759a4f89af0b1e015766a73fa289095673 (diff)
Add a test case for duplicate engine loading
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/17083)
Diffstat (limited to 'test')
-rw-r--r--test/data.bin4
-rw-r--r--test/recipes/20-test_dgst.t23
2 files changed, 25 insertions, 2 deletions
diff --git a/test/data.bin b/test/data.bin
new file mode 100644
index 0000000000..3442255280
--- /dev/null
+++ b/test/data.bin
@@ -0,0 +1,4 @@
+TEST DATA
+
+Please note that if a test involves a new testing executable,
+you will need to do some additions in test/build.info.
diff --git a/test/recipes/20-test_dgst.t b/test/recipes/20-test_dgst.t
index 13c2b3af4b..d1cbabe290 100644
--- a/test/recipes/20-test_dgst.t
+++ b/test/recipes/20-test_dgst.t
@@ -11,12 +11,12 @@ use strict;
use warnings;
use File::Spec;
-use OpenSSL::Test qw/:DEFAULT with srctop_file/;
+use OpenSSL::Test qw/:DEFAULT with srctop_file bldtop_file/;
use OpenSSL::Test::Utils;
setup("test_dgst");
-plan tests => 5;
+plan tests => 6;
sub tsignverify {
my $testtext = shift;
@@ -102,3 +102,22 @@ SKIP: {
srctop_file("test","tested448pub.pem"));
};
}
+
+SKIP: {
+ skip "dgst with engine is not supported by this OpenSSL build", 1
+ if disabled("engine") || disabled("dynamic-engine");
+
+ subtest "SHA1 generation by engine with `dgst` CLI" => sub {
+ plan tests => 1;
+
+ my $testdata = srctop_file('test', 'data.bin');
+ # intentionally using -engine twice, please do not remove the duplicate line
+ my @macdata = run(app(['openssl', 'dgst', '-sha1',
+ '-engine', $^O eq 'linux' ? bldtop_file("engines", "ossltest.so") : "ossltest",
+ '-engine', $^O eq 'linux' ? bldtop_file("engines", "ossltest.so") : "ossltest",
+ $testdata]), capture => 1);
+ chomp(@macdata);
+ my $expected = qr/SHA1\(\Q$testdata\E\)= 000102030405060708090a0b0c0d0e0f10111213/;
+ ok($macdata[0] =~ $expected, "SHA1: Check HASH value is as expected ($macdata[0]) vs ($expected)");
+ }
+}