1 1.1 christos # -*- mode: perl; -*- 2 1.1 christos # Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved. 3 1.1 christos # 4 1.1 christos # Licensed under the Apache License 2.0 (the "License"). You may not use 5 1.1 christos # this file except in compliance with the License. You can obtain a copy 6 1.1 christos # in the file LICENSE in the source distribution or at 7 1.1 christos # https://www.openssl.org/source/license.html 8 1.1 christos 9 1.1 christos 10 1.1 christos ## Test version negotiation 11 1.1 christos 12 1.1 christos use strict; 13 1.1 christos use warnings; 14 1.1 christos 15 1.1 christos package ssltests; 16 1.1 christos 17 1.1 christos 18 1.1 christos our @tests = ( 19 1.1 christos { 20 1.1 christos name => "ct-permissive-without-scts", 21 1.1 christos server => { 22 1.1 christos }, 23 1.1 christos client => { 24 1.1 christos extra => { 25 1.1 christos "CTValidation" => "Permissive", 26 1.1 christos }, 27 1.1 christos }, 28 1.1 christos test => { 29 1.1 christos "ExpectedResult" => "Success", 30 1.1 christos }, 31 1.1 christos }, 32 1.1 christos { 33 1.1 christos name => "ct-permissive-with-scts", 34 1.1 christos server => { 35 1.1 christos "Certificate" => test_pem("embeddedSCTs1.pem"), 36 1.1 christos "PrivateKey" => test_pem("embeddedSCTs1-key.pem"), 37 1.1 christos }, 38 1.1 christos client => { 39 1.1 christos "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"), 40 1.1 christos extra => { 41 1.1 christos "CTValidation" => "Permissive", 42 1.1 christos }, 43 1.1 christos }, 44 1.1 christos test => { 45 1.1 christos "ExpectedResult" => "Success", 46 1.1 christos }, 47 1.1 christos }, 48 1.1 christos { 49 1.1 christos name => "ct-strict-without-scts", 50 1.1 christos server => { 51 1.1 christos }, 52 1.1 christos client => { 53 1.1 christos extra => { 54 1.1 christos "CTValidation" => "Strict", 55 1.1 christos }, 56 1.1 christos }, 57 1.1 christos test => { 58 1.1 christos "ExpectedResult" => "ClientFail", 59 1.1 christos "ExpectedClientAlert" => "HandshakeFailure", 60 1.1 christos }, 61 1.1 christos }, 62 1.1 christos { 63 1.1 christos name => "ct-strict-with-scts", 64 1.1 christos server => { 65 1.1 christos "Certificate" => test_pem("embeddedSCTs1.pem"), 66 1.1 christos "PrivateKey" => test_pem("embeddedSCTs1-key.pem"), 67 1.1 christos }, 68 1.1 christos client => { 69 1.1 christos "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"), 70 1.1 christos extra => { 71 1.1 christos "CTValidation" => "Strict", 72 1.1 christos }, 73 1.1 christos }, 74 1.1 christos test => { 75 1.1 christos "ExpectedResult" => "Success", 76 1.1 christos }, 77 1.1 christos }, 78 1.1 christos { 79 1.1 christos name => "ct-permissive-resumption", 80 1.1 christos server => { 81 1.1 christos "Certificate" => test_pem("embeddedSCTs1.pem"), 82 1.1 christos "PrivateKey" => test_pem("embeddedSCTs1-key.pem"), 83 1.1 christos }, 84 1.1 christos client => { 85 1.1 christos "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"), 86 1.1 christos extra => { 87 1.1 christos "CTValidation" => "Permissive", 88 1.1 christos }, 89 1.1 christos }, 90 1.1 christos test => { 91 1.1 christos "HandshakeMode" => "Resume", 92 1.1 christos "ResumptionExpected" => "Yes", 93 1.1 christos "ExpectedResult" => "Success", 94 1.1 christos }, 95 1.1 christos }, 96 1.1 christos { 97 1.1 christos name => "ct-strict-resumption", 98 1.1 christos server => { 99 1.1 christos "Certificate" => test_pem("embeddedSCTs1.pem"), 100 1.1 christos "PrivateKey" => test_pem("embeddedSCTs1-key.pem"), 101 1.1 christos }, 102 1.1 christos client => { 103 1.1 christos "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"), 104 1.1 christos extra => { 105 1.1 christos "CTValidation" => "Strict", 106 1.1 christos }, 107 1.1 christos }, 108 1.1 christos # SCTs are not present during resumption, so the resumption 109 1.1 christos # should succeed. 110 1.1 christos resume_client => { 111 1.1 christos extra => { 112 1.1 christos "CTValidation" => "Strict", 113 1.1 christos }, 114 1.1 christos }, 115 1.1 christos test => { 116 1.1 christos "HandshakeMode" => "Resume", 117 1.1 christos "ResumptionExpected" => "Yes", 118 1.1 christos "ExpectedResult" => "Success", 119 1.1 christos }, 120 1.1 christos }, 121 1.1 christos ); 122