| # -*- mode: perl; -*- | 
 | # Copyright 2016-2016 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 | 
 |  | 
 |  | 
 | ## Test Renegotiation | 
 |  | 
 | use strict; | 
 | use warnings; | 
 |  | 
 | package ssltests; | 
 |  | 
 | my $dir_sep = $^O ne "VMS" ? "/" : ""; | 
 |  | 
 | our @tests = ( | 
 |     { | 
 |         name => "renegotiate-client-no-resume", | 
 |         server => { | 
 |             "Options" => "NoResumptionOnRenegotiation", | 
 |             "MaxProtocol" => "TLSv1.2" | 
 |         }, | 
 |         client => {}, | 
 |         test => { | 
 |             "Method" => "TLS", | 
 |             "HandshakeMode" => "RenegotiateClient", | 
 |             "ResumptionExpected" => "No", | 
 |             "ExpectedResult" => "Success" | 
 |         } | 
 |     }, | 
 |     { | 
 |         name => "renegotiate-client-resume", | 
 |         server => { | 
 |             "MaxProtocol" => "TLSv1.2" | 
 |         }, | 
 |         client => {}, | 
 |         test => { | 
 |             "Method" => "TLS", | 
 |             "HandshakeMode" => "RenegotiateClient", | 
 |             "ResumptionExpected" => "Yes", | 
 |             "ExpectedResult" => "Success" | 
 |         } | 
 |     }, | 
 |     { | 
 |         name => "renegotiate-server-no-resume", | 
 |         server => { | 
 |             "Options" => "NoResumptionOnRenegotiation", | 
 |             "MaxProtocol" => "TLSv1.2" | 
 |         }, | 
 |         client => {}, | 
 |         test => { | 
 |             "Method" => "TLS", | 
 |             "HandshakeMode" => "RenegotiateServer", | 
 |             "ResumptionExpected" => "No", | 
 |             "ExpectedResult" => "Success" | 
 |         } | 
 |     }, | 
 |     { | 
 |         name => "renegotiate-server-resume", | 
 |         server => { | 
 |             "MaxProtocol" => "TLSv1.2" | 
 |         }, | 
 |         client => {}, | 
 |         test => { | 
 |             "Method" => "TLS", | 
 |             "HandshakeMode" => "RenegotiateServer", | 
 |             "ResumptionExpected" => "Yes", | 
 |             "ExpectedResult" => "Success" | 
 |         } | 
 |     }, | 
 |     { | 
 |         name => "renegotiate-client-auth-require", | 
 |         server => { | 
 |             "Options" => "NoResumptionOnRenegotiation", | 
 |             "MaxProtocol" => "TLSv1.2", | 
 |             "VerifyCAFile" => "\${ENV::TEST_CERTS_DIR}${dir_sep}root-cert.pem", | 
 |             "VerifyMode" => "Require", | 
 |         }, | 
 |         client => { | 
 |             "Certificate" => "\${ENV::TEST_CERTS_DIR}${dir_sep}ee-client-chain.pem", | 
 |             "PrivateKey"  => "\${ENV::TEST_CERTS_DIR}${dir_sep}ee-key.pem" | 
 |         }, | 
 |         test => { | 
 |             "Method" => "TLS", | 
 |             "HandshakeMode" => "RenegotiateServer", | 
 |             "ResumptionExpected" => "No", | 
 |             "ExpectedResult" => "Success" | 
 |         } | 
 |     }, | 
 |     { | 
 |         name => "renegotiate-client-auth-once", | 
 |         server => { | 
 |             "Options" => "NoResumptionOnRenegotiation", | 
 |             "MaxProtocol" => "TLSv1.2", | 
 |             "VerifyCAFile" => "\${ENV::TEST_CERTS_DIR}${dir_sep}root-cert.pem", | 
 |             "VerifyMode" => "Once", | 
 |         }, | 
 |         client => { | 
 |             "Certificate" => "\${ENV::TEST_CERTS_DIR}${dir_sep}ee-client-chain.pem", | 
 |             "PrivateKey"  => "\${ENV::TEST_CERTS_DIR}${dir_sep}ee-key.pem" | 
 |         }, | 
 |         test => { | 
 |             "Method" => "TLS", | 
 |             "HandshakeMode" => "RenegotiateServer", | 
 |             "ResumptionExpected" => "No", | 
 |             "ExpectedResult" => "Success" | 
 |         } | 
 |     } | 
 | ); |