From: Pauli Date: Wed, 22 Feb 2017 22:34:32 +0000 (+1000) Subject: Add a test case that tests more of the cipher modes. X-Git-Tag: OpenSSL_1_1_1-pre1~2302 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=227a44b1f639ea02d1a278ed07fa5f2dc6d286c6;p=oweals%2Fopenssl.git Add a test case that tests more of the cipher modes. Reviewed-by: Rich Salz Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/2715) --- diff --git a/test/recipes/20-test_enc_more.t b/test/recipes/20-test_enc_more.t new file mode 100644 index 0000000000..2ea6897529 --- /dev/null +++ b/test/recipes/20-test_enc_more.t @@ -0,0 +1,58 @@ +#! /usr/bin/env perl +# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (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 +# +# ====================================================================== +# Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + + +use strict; +use warnings; + +use File::Spec::Functions qw/catfile/; +use File::Copy; +use File::Compare qw/compare_text/; +use File::Basename; +use OpenSSL::Test qw/:DEFAULT srctop_file/; + +setup("test_evp_more"); + +my $testsrc = srctop_file("test", "recipes", basename($0)); + +my $cipherlist = undef; +my $plaintext = catfile(".", "testdatafile"); +my $fail = ""; +my $cmd = "openssl"; + +my @ciphers = + grep(! /wrap|hmac|poly|ocb|xts|^$|^[^-]|(?i)[cg]cm/, + (map { split /\s+/ } + run(app([$cmd, "enc", "-ciphers"]), capture => 1))); + +plan tests => 1 + scalar @ciphers; + +my $init = ok(copy($testsrc, $plaintext)); + +SKIP: { + skip "Not initialized, skipping...", (scalar @ciphers) unless $init; + + foreach my $cipher (@ciphers) { + my $ciphername = substr $cipher, 1; + my $cipherfile = "$plaintext.$ciphername.cipher"; + my $clearfile = "$plaintext.$ciphername.clear"; + my @common = ( $cmd, "enc", "$cipher", "-k", "test" ); + + ok(run(app([@common, "-e", "-in", $plaintext, "-out", $cipherfile])) + && compare_text($plaintext, $cipherfile) != 0 + && run(app([@common, "-d", "-in", $cipherfile, "-out", $clearfile])) + && compare_text($plaintext, $clearfile) == 0 + , $ciphername); + unlink $cipherfile, $clearfile; + } +} + +unlink $plaintext;