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