2 # Copyright 2017-2020 The OpenSSL Project Authors. All Rights Reserved.
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
10 ## Test version negotiation
16 use OpenSSL::Test::Utils;
22 name => "cipher-server-1",
24 "MaxProtocol" => "TLSv1.2",
25 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
28 "MaxProtocol" => "TLSv1.2",
29 "CipherString" => "ECDHE-RSA-AES256-SHA384"
32 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
36 name => "cipher-server-2",
38 "MaxProtocol" => "TLSv1.2",
39 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
42 "MaxProtocol" => "TLSv1.2",
43 "CipherString" => "ECDHE-RSA-AES128-SHA256"
46 "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
50 name => "cipher-server-client-list",
52 "MaxProtocol" => "TLSv1.2",
53 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
56 "MaxProtocol" => "TLSv1.2",
57 "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
60 "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
64 name => "cipher-server-pref-1",
66 "MaxProtocol" => "TLSv1.2",
67 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
68 "Options" => "ServerPreference",
71 "MaxProtocol" => "TLSv1.2",
72 "CipherString" => "ECDHE-RSA-AES256-SHA384"
75 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
79 name => "cipher-server-pref-2",
81 "MaxProtocol" => "TLSv1.2",
82 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
83 "Options" => "ServerPreference",
86 "MaxProtocol" => "TLSv1.2",
87 "CipherString" => "ECDHE-RSA-AES128-SHA256"
90 "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
94 name => "cipher-server-pref-client-list",
96 "MaxProtocol" => "TLSv1.2",
97 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
98 "Options" => "ServerPreference",
101 "MaxProtocol" => "TLSv1.2",
102 "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
105 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
109 name => "cipher-server-pref-not-mobile",
111 "MaxProtocol" => "TLSv1.2",
112 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
113 "Options" => "ServerPreference",
116 "MaxProtocol" => "TLSv1.2",
117 "CipherString" => "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
120 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
124 name => "cipher-server-pref-mobile",
126 "MaxProtocol" => "TLSv1.2",
127 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
128 "Options" => "ServerPreference,PrioritizeChaCha",
131 "MaxProtocol" => "TLSv1.2",
132 "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-CHACHA20-POLY1305",
135 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
140 my @tests_poly1305 = (
142 name => "cipher-server-pref-mobile2",
144 "MaxProtocol" => "TLSv1.2",
145 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
146 "Options" => "ServerPreference,PrioritizeChaCha",
149 "MaxProtocol" => "TLSv1.2",
150 "CipherString" => "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
153 "ExpectedCipher" => "ECDHE-RSA-CHACHA20-POLY1305",
158 push @tests, @tests_poly1305
159 unless disabled("poly1305") || disabled("chacha") || $fips_mode;