]> 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 05:08:17 +0000 (06:08 +0100)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/17073)

test/recipes/20-test_dgst.t

index 5af74aec2acc2dbfd1b971293ae58a29cb0c6a54..e72038d8529f6885be4b0da8b9fa5f0191531ef0 100644 (file)
@@ -12,12 +12,12 @@ use warnings;
 
 use File::Spec;
 use File::Basename;
-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 => 9;
+plan tests => 10;
 
 sub tsignverify {
     my $testtext = shift;
@@ -103,6 +103,25 @@ SKIP: {
     };
 }
 
+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)");
+    }
+}
+
 subtest "HMAC generation with `dgst` CLI" => sub {
     plan tests => 2;