2 # Copyright 2017 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;
20 name => "cipher-server-1",
22 "MaxProtocol" => "TLSv1.2",
23 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
26 "MaxProtocol" => "TLSv1.2",
27 "CipherString" => "ECDHE-RSA-AES256-SHA384"
30 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
34 name => "cipher-server-2",
36 "MaxProtocol" => "TLSv1.2",
37 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
40 "MaxProtocol" => "TLSv1.2",
41 "CipherString" => "ECDHE-RSA-AES128-SHA256"
44 "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
48 name => "cipher-server-client-list",
50 "MaxProtocol" => "TLSv1.2",
51 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
54 "MaxProtocol" => "TLSv1.2",
55 "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
58 "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
62 name => "cipher-server-pref-1",
64 "MaxProtocol" => "TLSv1.2",
65 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
66 "Options" => "ServerPreference",
69 "MaxProtocol" => "TLSv1.2",
70 "CipherString" => "ECDHE-RSA-AES256-SHA384"
73 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
77 name => "cipher-server-pref-2",
79 "MaxProtocol" => "TLSv1.2",
80 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
81 "Options" => "ServerPreference",
84 "MaxProtocol" => "TLSv1.2",
85 "CipherString" => "ECDHE-RSA-AES128-SHA256"
88 "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
92 name => "cipher-server-pref-client-list",
94 "MaxProtocol" => "TLSv1.2",
95 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
96 "Options" => "ServerPreference",
99 "MaxProtocol" => "TLSv1.2",
100 "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
103 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
107 name => "cipher-server-pref-not-mobile",
109 "MaxProtocol" => "TLSv1.2",
110 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
111 "Options" => "ServerPreference",
114 "MaxProtocol" => "TLSv1.2",
115 "CipherString" => "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
118 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
122 name => "cipher-server-pref-mobile",
124 "MaxProtocol" => "TLSv1.2",
125 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
126 "Options" => "ServerPreference,PrioritizeChaCha",
129 "MaxProtocol" => "TLSv1.2",
130 "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-CHACHA20-POLY1305",
133 "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
138 my @tests_poly1305 = (
140 name => "cipher-server-pref-mobile2",
142 "MaxProtocol" => "TLSv1.2",
143 "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
144 "Options" => "ServerPreference,PrioritizeChaCha",
147 "MaxProtocol" => "TLSv1.2",
148 "CipherString" => "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
151 "ExpectedCipher" => "ECDHE-RSA-CHACHA20-POLY1305",
156 push @tests, @tests_poly1305 unless disabled("poly1305") || disabled("chacha");