diff options
author | Richard Levitte <levitte@openssl.org> | 2023-06-16 13:56:36 +0200 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2023-06-26 08:02:00 +1000 |
commit | ffb29de3c7efaf4b087e4180fb92f9ee562e18cf (patch) | |
tree | 09a657115c3c0ee0b9234a48c3bf5f9951afb345 /test | |
parent | b7a29bc837e0181e29514b949cb3a0fadff566c0 (diff) |
Add a test case for the password prompt on garbage PKCS#12 file
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21197)
(cherry picked from commit 1a27cc3626bd15f8fd9a26a2dbc59a681d505321)
Diffstat (limited to 'test')
-rw-r--r-- | test/recipes/90-test_store_cases.t | 36 | ||||
-rw-r--r-- | test/recipes/90-test_store_cases_data/garbage-pkcs12.p12 | 1 |
2 files changed, 37 insertions, 0 deletions
diff --git a/test/recipes/90-test_store_cases.t b/test/recipes/90-test_store_cases.t new file mode 100644 index 0000000000..05b00e6b4e --- /dev/null +++ b/test/recipes/90-test_store_cases.t @@ -0,0 +1,36 @@ +#! /usr/bin/env perl +# Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# This collects specific use cases, and tests our handling + +use File::Spec::Functions; +use File::Copy; +use MIME::Base64; +use OpenSSL::Test qw(:DEFAULT srctop_file srctop_dir bldtop_file bldtop_dir + data_file); +use OpenSSL::Test::Utils; + +my $test_name = "test_store_cases"; +setup($test_name); + +plan tests => 2; + +my $stderr; + +# The case of the garbage PKCS#12 DER file where a passphrase was +# prompted for. That should not have happened. +$stderr = 'garbage-pkcs12.stderr.txt'; +ok(!run(app(['openssl', 'storeutl', '-passin', 'pass:invalidapass', + data_file('garbage-pkcs12.p12')], + stderr => $stderr)), + "checking that storeutl fails when given a garbage pkcs12 file"); +open DATA, $stderr; +@match = grep /try_pkcs12:.*?:maybe wrong password$/, <DATA>; +close DATA; +ok(scalar @match > 0 ? 0 : 1, + "checking that storeutl didn't ask for a passphrase"); diff --git a/test/recipes/90-test_store_cases_data/garbage-pkcs12.p12 b/test/recipes/90-test_store_cases_data/garbage-pkcs12.p12 new file mode 100644 index 0000000000..1a9f2578f3 --- /dev/null +++ b/test/recipes/90-test_store_cases_data/garbage-pkcs12.p12 @@ -0,0 +1 @@ +0[0 *H8010 UUS10Upo
\ No newline at end of file |