1# -*- mode: perl; -*- 2# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. 3# 4# Licensed under the Apache License 2.0 (the "License"). You may not use 5# this file except in compliance with the License. You can obtain a copy 6# in the file LICENSE in the source distribution or at 7# https://www.openssl.org/source/license.html 8 9 10## Test Compression 11 12use strict; 13use warnings; 14 15package ssltests; 16use OpenSSL::Test::Utils; 17 18our @tests = (); 19 20our @tests_tls1_3 = ( 21 { 22 name => "tlsv1_3-both-compress", 23 server => { 24 "Options" => "Compression" 25 }, 26 client => { 27 "Options" => "Compression" 28 }, 29 test => { 30 "CompressionExpected" => "No", 31 "ExpectedResult" => "Success" 32 } 33 }, 34 { 35 name => "tlsv1_3-client-compress", 36 server => { 37 }, 38 client => { 39 "Options" => "Compression" 40 }, 41 test => { 42 "CompressionExpected" => "No", 43 "ExpectedResult" => "Success" 44 } 45 }, 46 { 47 name => "tlsv1_3-server-compress", 48 server => { 49 "Options" => "Compression" 50 }, 51 client => { 52 }, 53 test => { 54 "CompressionExpected" => "No", 55 "ExpectedResult" => "Success" 56 } 57 }, 58 { 59 name => "tlsv1_3-neither-compress", 60 server => { 61 }, 62 client => { 63 }, 64 test => { 65 "CompressionExpected" => "No", 66 "ExpectedResult" => "Success" 67 } 68 }, 69); 70our @tests_tls1_2 = ( 71 { 72 name => "tlsv1_2-both-compress", 73 server => { 74 "Options" => "Compression" 75 }, 76 client => { 77 "Options" => "Compression", 78 "MaxProtocol" => "TLSv1.2" 79 }, 80 test => { 81 "CompressionExpected" => "Yes", 82 "ExpectedResult" => "Success" 83 } 84 }, 85 { 86 name => "tlsv1_2-client-compress", 87 server => { 88 }, 89 client => { 90 "Options" => "Compression", 91 "MaxProtocol" => "TLSv1.2" 92 }, 93 test => { 94 "CompressionExpected" => "No", 95 "ExpectedResult" => "Success" 96 } 97 }, 98 { 99 name => "tlsv1_2-server-compress", 100 server => { 101 "Options" => "Compression" 102 }, 103 client => { 104 "MaxProtocol" => "TLSv1.2" 105 }, 106 test => { 107 "CompressionExpected" => "No", 108 "ExpectedResult" => "Success" 109 } 110 }, 111 { 112 name => "tlsv1_2-neither-compress", 113 server => { 114 }, 115 client => { 116 "MaxProtocol" => "TLSv1.2" 117 }, 118 test => { 119 "CompressionExpected" => "No", 120 "ExpectedResult" => "Success" 121 } 122 }, 123); 124 125push @tests, @tests_tls1_3 unless disabled("tls1_3"); 126push @tests, @tests_tls1_2 unless alldisabled(("tls1_2", "tls1_1", "tls1", 127 "ssl3")); 128