1e1051a39Sopenharmony_ci# -*- mode: perl; -*-
2e1051a39Sopenharmony_ci# Copyright 2016-2022 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 version negotiation
11e1051a39Sopenharmony_ci
12e1051a39Sopenharmony_ciuse strict;
13e1051a39Sopenharmony_ciuse warnings;
14e1051a39Sopenharmony_ci
15e1051a39Sopenharmony_cipackage ssltests;
16e1051a39Sopenharmony_ci
17e1051a39Sopenharmony_ci
18e1051a39Sopenharmony_ciour @tests = (
19e1051a39Sopenharmony_ci    {
20e1051a39Sopenharmony_ci        name => "ct-permissive-without-scts",
21e1051a39Sopenharmony_ci        server => {
22e1051a39Sopenharmony_ci        },
23e1051a39Sopenharmony_ci        client => {
24e1051a39Sopenharmony_ci            extra => {
25e1051a39Sopenharmony_ci                "CTValidation" => "Permissive",
26e1051a39Sopenharmony_ci            },
27e1051a39Sopenharmony_ci        },
28e1051a39Sopenharmony_ci        test => {
29e1051a39Sopenharmony_ci            "ExpectedResult" => "Success",
30e1051a39Sopenharmony_ci        },
31e1051a39Sopenharmony_ci    },
32e1051a39Sopenharmony_ci    {
33e1051a39Sopenharmony_ci        name => "ct-permissive-with-scts",
34e1051a39Sopenharmony_ci        server => {
35e1051a39Sopenharmony_ci            "Certificate" => test_pem("embeddedSCTs1.pem"),
36e1051a39Sopenharmony_ci            "PrivateKey"  => test_pem("embeddedSCTs1-key.pem"),
37e1051a39Sopenharmony_ci        },
38e1051a39Sopenharmony_ci        client => {
39e1051a39Sopenharmony_ci            "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
40e1051a39Sopenharmony_ci            extra => {
41e1051a39Sopenharmony_ci                "CTValidation" => "Permissive",
42e1051a39Sopenharmony_ci            },
43e1051a39Sopenharmony_ci        },
44e1051a39Sopenharmony_ci        test => {
45e1051a39Sopenharmony_ci            "ExpectedResult" => "Success",
46e1051a39Sopenharmony_ci        },
47e1051a39Sopenharmony_ci    },
48e1051a39Sopenharmony_ci    {
49e1051a39Sopenharmony_ci        name => "ct-strict-without-scts",
50e1051a39Sopenharmony_ci        server => {
51e1051a39Sopenharmony_ci        },
52e1051a39Sopenharmony_ci        client => {
53e1051a39Sopenharmony_ci            extra => {
54e1051a39Sopenharmony_ci                "CTValidation" => "Strict",
55e1051a39Sopenharmony_ci            },
56e1051a39Sopenharmony_ci        },
57e1051a39Sopenharmony_ci        test => {
58e1051a39Sopenharmony_ci            "ExpectedResult" => "ClientFail",
59e1051a39Sopenharmony_ci            "ExpectedClientAlert" => "HandshakeFailure",
60e1051a39Sopenharmony_ci        },
61e1051a39Sopenharmony_ci    },
62e1051a39Sopenharmony_ci    {
63e1051a39Sopenharmony_ci        name => "ct-strict-with-scts",
64e1051a39Sopenharmony_ci        server => {
65e1051a39Sopenharmony_ci            "Certificate" => test_pem("embeddedSCTs1.pem"),
66e1051a39Sopenharmony_ci            "PrivateKey"  => test_pem("embeddedSCTs1-key.pem"),
67e1051a39Sopenharmony_ci        },
68e1051a39Sopenharmony_ci        client => {
69e1051a39Sopenharmony_ci            "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
70e1051a39Sopenharmony_ci            extra => {
71e1051a39Sopenharmony_ci                "CTValidation" => "Strict",
72e1051a39Sopenharmony_ci            },
73e1051a39Sopenharmony_ci        },
74e1051a39Sopenharmony_ci        test => {
75e1051a39Sopenharmony_ci            "ExpectedResult" => "Success",
76e1051a39Sopenharmony_ci        },
77e1051a39Sopenharmony_ci    },
78e1051a39Sopenharmony_ci    {
79e1051a39Sopenharmony_ci        name => "ct-permissive-resumption",
80e1051a39Sopenharmony_ci        server => {
81e1051a39Sopenharmony_ci            "Certificate" => test_pem("embeddedSCTs1.pem"),
82e1051a39Sopenharmony_ci            "PrivateKey"  => test_pem("embeddedSCTs1-key.pem"),
83e1051a39Sopenharmony_ci        },
84e1051a39Sopenharmony_ci        client => {
85e1051a39Sopenharmony_ci            "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
86e1051a39Sopenharmony_ci            extra => {
87e1051a39Sopenharmony_ci                "CTValidation" => "Permissive",
88e1051a39Sopenharmony_ci            },
89e1051a39Sopenharmony_ci        },
90e1051a39Sopenharmony_ci        test => {
91e1051a39Sopenharmony_ci            "HandshakeMode" => "Resume",
92e1051a39Sopenharmony_ci            "ResumptionExpected" => "Yes",
93e1051a39Sopenharmony_ci            "ExpectedResult" => "Success",
94e1051a39Sopenharmony_ci        },
95e1051a39Sopenharmony_ci    },
96e1051a39Sopenharmony_ci    {
97e1051a39Sopenharmony_ci        name => "ct-strict-resumption",
98e1051a39Sopenharmony_ci        server => {
99e1051a39Sopenharmony_ci            "Certificate" => test_pem("embeddedSCTs1.pem"),
100e1051a39Sopenharmony_ci            "PrivateKey"  => test_pem("embeddedSCTs1-key.pem"),
101e1051a39Sopenharmony_ci        },
102e1051a39Sopenharmony_ci        client => {
103e1051a39Sopenharmony_ci            "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
104e1051a39Sopenharmony_ci            extra => {
105e1051a39Sopenharmony_ci                "CTValidation" => "Strict",
106e1051a39Sopenharmony_ci            },
107e1051a39Sopenharmony_ci        },
108e1051a39Sopenharmony_ci        # SCTs are not present during resumption, so the resumption
109e1051a39Sopenharmony_ci        # should succeed.
110e1051a39Sopenharmony_ci        resume_client => {
111e1051a39Sopenharmony_ci            extra => {
112e1051a39Sopenharmony_ci                "CTValidation" => "Strict",
113e1051a39Sopenharmony_ci            },
114e1051a39Sopenharmony_ci        },
115e1051a39Sopenharmony_ci        test => {
116e1051a39Sopenharmony_ci            "HandshakeMode" => "Resume",
117e1051a39Sopenharmony_ci            "ResumptionExpected" => "Yes",
118e1051a39Sopenharmony_ci            "ExpectedResult" => "Success",
119e1051a39Sopenharmony_ci        },
120e1051a39Sopenharmony_ci    },
121e1051a39Sopenharmony_ci);
122