X-Git-Url: https://git.openssl.org/gitweb/?a=blobdiff_plain;f=test%2Frecipes%2F70-test_tlsextms.t;h=6cc04ff7c915668db9e09b106e267069651db407;hb=a7cbe963c3c486e336babf224f68f294c55489cf;hp=8e3b41434ec73b8c79ccc72019c4b71ca3670f23;hpb=90d48e5ea006c759888f7302ccc94fede3ca224a;p=openssl.git diff --git a/test/recipes/70-test_tlsextms.t b/test/recipes/70-test_tlsextms.t index 8e3b41434e..6cc04ff7c9 100644 --- a/test/recipes/70-test_tlsextms.t +++ b/test/recipes/70-test_tlsextms.t @@ -1,59 +1,13 @@ -#!/usr/bin/perl -# Written by Stephen Henson for the OpenSSL project. -# ==================================================================== -# Copyright (c) 1998-2015 The OpenSSL Project. All rights reserved. +#! /usr/bin/env perl +# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# -# 3. All advertising materials mentioning features or use of this -# software must display the following acknowledgment: -# "This product includes software developed by the OpenSSL Project -# for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -# -# 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to -# endorse or promote products derived from this software without -# prior written permission. For written permission, please contact -# openssl-core@openssl.org. -# -# 5. Products derived from this software may not be called "OpenSSL" -# nor may "OpenSSL" appear in their names without prior written -# permission of the OpenSSL Project. -# -# 6. Redistributions of any form whatsoever must retain the following -# acknowledgment: -# "This product includes software developed by the OpenSSL Project -# for use in the OpenSSL Toolkit (http://www.openssl.org/)" -# -# THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -# OF THE POSSIBILITY OF SUCH DAMAGE. -# ==================================================================== -# -# This product includes cryptographic software written by Eric Young -# (eay@cryptsoft.com). This product includes software written by Tim -# Hudson (tjh@cryptsoft.com). +# 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 use strict; -use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; +use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/; use OpenSSL::Test::Utils; use TLSProxy::Proxy; use File::Temp qw(tempfile); @@ -62,15 +16,17 @@ my $test_name = "test_tlsextms"; setup($test_name); plan skip_all => "TLSProxy isn't usable on $^O" - if $^O =~ /^VMS$/; + if $^O =~ /^(VMS|MSWin32)$/; + +plan skip_all => "$test_name needs the dynamic engine feature enabled" + if disabled("engine") || disabled("dynamic-engine"); -plan skip_all => "$test_name needs the engine feature enabled" - if disabled("engine"); +plan skip_all => "$test_name needs the sock feature enabled" + if disabled("sock"); -plan skip_all => "$test_name can only be performed with OpenSSL configured shared" - if disabled("shared"); +plan skip_all => "$test_name needs TLS enabled" + if alldisabled(available_protocols("tls")); -$ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; sub checkmessages($$$$$); @@ -85,9 +41,9 @@ my $fullhand = 0; my $proxy = TLSProxy::Proxy->new( \&extms_filter, - cmdstr(app(["openssl"])), - top_file("apps", "server.pem"), - 1 + cmdstr(app(["openssl"]), display => 1), + srctop_file("apps", "server.pem"), + (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}) ); plan tests => 9; @@ -139,12 +95,12 @@ setrmextms(0, 0); $proxy->serverconnects(2); $proxy->clientflags("-sess_out ".$session); $proxy->start(); -$proxy->clear(); +$proxy->clearClient(); $proxy->clientflags("-sess_in ".$session); $proxy->clientstart(); checkmessages(5, "Session resumption extended master secret test", 1, 1, 0); -#Test 6: Session resumption extended master secret test orginial session +#Test 6: Session resumption extended master secret test original session # omits extension. Server must not resume session. #Expected result: ClientHello extension seen; ServerHello extension seen # Full handshake @@ -155,7 +111,7 @@ setrmextms(1, 0); $proxy->serverconnects(2); $proxy->clientflags("-sess_out ".$session); $proxy->start(); -$proxy->clear(); +$proxy->clearClient(); $proxy->clientflags("-sess_in ".$session); setrmextms(0, 0); $proxy->clientstart(); @@ -171,11 +127,11 @@ setrmextms(0, 0); $proxy->serverconnects(2); $proxy->clientflags("-sess_out ".$session); $proxy->start(); -$proxy->clear(); +$proxy->clearClient(); $proxy->clientflags("-sess_in ".$session); setrmextms(1, 0); $proxy->clientstart(); -ok(TLSProxy::Message->fail(), "Client inconsistent session resupmption"); +ok(TLSProxy::Message->fail(), "Client inconsistent session resumption"); #Test 8: Session resumption extended master secret test resumed session # omits server extension. Client must abort connection. @@ -187,7 +143,7 @@ setrmextms(0, 0); $proxy->serverconnects(2); $proxy->clientflags("-sess_out ".$session); $proxy->start(); -$proxy->clear(); +$proxy->clearClient(); $proxy->clientflags("-sess_in ".$session); setrmextms(0, 1); $proxy->clientstart(); @@ -203,7 +159,7 @@ setrmextms(0, 1); $proxy->serverconnects(2); $proxy->clientflags("-sess_out ".$session); $proxy->start(); -$proxy->clear(); +$proxy->clearClient(); $proxy->clientflags("-sess_in ".$session); setrmextms(0, 0); $proxy->clientstart(); @@ -215,11 +171,11 @@ sub extms_filter foreach my $message (@{$proxy->message_list}) { if ($crmextms && $message->mt == TLSProxy::Message::MT_CLIENT_HELLO) { - $message->delete_extension(TLSProxy::ClientHello::EXT_EXTENDED_MASTER_SECRET); + $message->delete_extension(TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET); $message->repack(); } if ($srmextms && $message->mt == TLSProxy::Message::MT_SERVER_HELLO) { - $message->delete_extension(TLSProxy::ClientHello::EXT_EXTENDED_MASTER_SECRET); + $message->delete_extension(TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET); $message->repack(); } } @@ -237,7 +193,7 @@ sub checkmessages($$$$$) #Get the extensions data my %extensions = %{$message->extension_data}; if (defined - $extensions{TLSProxy::ClientHello::EXT_EXTENDED_MASTER_SECRET}) { + $extensions{TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET}) { if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) { $cextms = 1; } else {