]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Add a test case for duplicate engine loading
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Fri, 19 Nov 2021 15:38:55 +0000 (16:38 +0100)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Tue, 23 Nov 2021 17:39:46 +0000 (18:39 +0100)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/17083)

test/data.bin [new file with mode: 0644]
test/recipes/20-test_dgst.t

diff --git a/test/data.bin b/test/data.bin
new file mode 100644 (file)
index 0000000..3442255
--- /dev/null
@@ -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.
index 13c2b3af4bc68db192d98a38f273f655a3f2a494..d1cbabe29064ff062695577aa26dc3a2dba9513a 100644 (file)
@@ -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)");
+    }
+}