From: Pauli <paul.dale@oracle.com>
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://granicus.if.org/sourcecode?a=commitdiff_plain;h=227a44b1f639ea02d1a278ed07fa5f2dc6d286c6;p=openssl

Add a test case that tests more of the cipher modes.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(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;