openssl/test/recipes/20-test_enc_more.t
Pauli 777f1708a8 Limit the output of the enc -ciphers command to just the ciphers enc can
process.  This means no AEAD ciphers and no XTS mode.

Update the test script that uses this output to test cipher suites to not
filter out the now missing cipher modes.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2876)
2017-03-08 10:01:28 -05:00

58 lines
1.7 KiB
Perl

#! /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|^$|^[^-]/,
(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;