]> git.ipfire.org Git - thirdparty/openssl.git/blob - test/ssl-tests/09-alpn.conf.in
6e86375af135891e5a3c0a76c8ede9f0e3708684
[thirdparty/openssl.git] / test / ssl-tests / 09-alpn.conf.in
1 # -*- mode: perl; -*-
2 # Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
3 #
4 # Licensed under the OpenSSL license (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 version negotiation
11
12 use strict;
13 use warnings;
14
15 package ssltests;
16
17
18 our @tests = (
19 {
20 name => "alpn-simple",
21 server => {
22 extra => {
23 "ALPNProtocols" => "foo",
24 },
25 },
26 client => {
27 extra => {
28 "ALPNProtocols" => "foo",
29 },
30 },
31 test => {
32 "ExpectedALPNProtocol" => "foo",
33 },
34 },
35 {
36 name => "alpn-server-finds-match",
37 server => {
38 extra => {
39 "ALPNProtocols" => "baz,bar",
40 },
41 },
42 client => {
43 extra => {
44 "ALPNProtocols" => "foo,bar",
45 },
46 },
47 test => {
48 "ExpectedALPNProtocol" => "bar",
49 },
50 },
51 {
52 name => "alpn-server-honours-server-pref",
53 server => {
54 extra => {
55 "ALPNProtocols" => "bar,foo",
56 },
57 },
58 client => {
59 extra => {
60 "ALPNProtocols" => "foo,bar",
61 },
62 },
63 test => {
64 "ExpectedALPNProtocol" => "bar",
65 },
66 },
67 {
68 name => "alpn-alert-on-mismatch",
69 server => {
70 extra => {
71 "ALPNProtocols" => "baz",
72 },
73 },
74 client => {
75 extra => {
76 "ALPNProtocols" => "foo,bar",
77 },
78 },
79 test => {
80 "ExpectedResult" => "ServerFail",
81 "ExpectedServerAlert" => "NoApplicationProtocol",
82 },
83 },
84 {
85 name => "alpn-no-server-support",
86 server => { },
87 client => {
88 extra => {
89 "ALPNProtocols" => "foo",
90 },
91 },
92 test => {
93 "ExpectedALPNProtocol" => undef,
94 },
95 },
96 {
97 name => "alpn-no-client-support",
98 server => {
99 extra => {
100 "ALPNProtocols" => "foo",
101 },
102 },
103 client => { },
104 test => {
105 "ExpectedALPNProtocol" => undef,
106 },
107 },
108 {
109 name => "alpn-with-sni-no-context-switch",
110 server => {
111 extra => {
112 "ALPNProtocols" => "foo",
113 "ServerNameCallback" => "IgnoreMismatch",
114 },
115 },
116 server2 => {
117 extra => {
118 "ALPNProtocols" => "bar",
119 },
120 },
121 client => {
122 extra => {
123 "ALPNProtocols" => "foo,bar",
124 "ServerName" => "server1",
125 },
126 },
127 test => {
128 "ExpectedServerName" => "server1",
129 "ExpectedALPNProtocol" => "foo",
130 },
131 },
132 {
133 name => "alpn-with-sni-context-switch",
134 server => {
135 extra => {
136 "ALPNProtocols" => "foo",
137 "ServerNameCallback" => "IgnoreMismatch",
138 },
139 },
140 server2 => {
141 extra => {
142 "ALPNProtocols" => "bar",
143 },
144 },
145 client => {
146 extra => {
147 "ALPNProtocols" => "foo,bar",
148 "ServerName" => "server2",
149 },
150 },
151 test => {
152 "ExpectedServerName" => "server2",
153 "ExpectedALPNProtocol" => "bar",
154 },
155 },
156 {
157 name => "alpn-selected-sni-server-supports-alpn",
158 server => {
159 extra => {
160 "ServerNameCallback" => "IgnoreMismatch",
161 },
162 },
163 server2 => {
164 extra => {
165 "ALPNProtocols" => "bar",
166 },
167 },
168 client => {
169 extra => {
170 "ALPNProtocols" => "foo,bar",
171 "ServerName" => "server2",
172 },
173 },
174 test => {
175 "ExpectedServerName" => "server2",
176 "ExpectedALPNProtocol" => "bar",
177 },
178 },
179 {
180 name => "alpn-selected-sni-server-does-not-support-alpn",
181 server => {
182 extra => {
183 "ALPNProtocols" => "bar",
184 "ServerNameCallback" => "IgnoreMismatch",
185 },
186 },
187 server2 => { },
188 client => {
189 extra => {
190 "ALPNProtocols" => "foo,bar",
191 "ServerName" => "server2",
192 },
193 },
194 test => {
195 "ExpectedServerName" => "server2",
196 "ExpectedALPNProtocol" => undef,
197 },
198 },
199 {
200 name => "alpn-simple-resumption",
201 server => {
202 extra => {
203 "ALPNProtocols" => "foo",
204 },
205 },
206 client => {
207 extra => {
208 "ALPNProtocols" => "foo",
209 },
210 },
211 test => {
212 "HandshakeMode" => "Resume",
213 "ResumptionExpected" => "Yes",
214 "ExpectedALPNProtocol" => "foo",
215 },
216 },
217 {
218 name => "alpn-server-switch-resumption",
219 server => {
220 extra => {
221 "ALPNProtocols" => "bar,foo",
222 },
223 },
224 resume_server => {
225 extra => {
226 "ALPNProtocols" => "baz,foo",
227 },
228 },
229 client => {
230 extra => {
231 "ALPNProtocols" => "foo,bar,baz",
232 },
233 },
234 test => {
235 "HandshakeMode" => "Resume",
236 "ResumptionExpected" => "Yes",
237 "ExpectedALPNProtocol" => "baz",
238 },
239 },
240 {
241 name => "alpn-client-switch-resumption",
242 server => {
243 extra => {
244 "ALPNProtocols" => "foo,bar,baz",
245 },
246 },
247 client => {
248 extra => {
249 "ALPNProtocols" => "foo,baz",
250 },
251 },
252 resume_client => {
253 extra => {
254 "ALPNProtocols" => "bar,baz",
255 },
256 },
257 test => {
258 "HandshakeMode" => "Resume",
259 "ResumptionExpected" => "Yes",
260 "ExpectedALPNProtocol" => "bar",
261 },
262 },
263 {
264 name => "alpn-alert-on-mismatch-resumption",
265 server => {
266 extra => {
267 "ALPNProtocols" => "bar",
268 },
269 },
270 resume_server => {
271 extra => {
272 "ALPNProtocols" => "baz",
273 },
274 },
275 client => {
276 extra => {
277 "ALPNProtocols" => "foo,bar",
278 },
279 },
280 test => {
281 "HandshakeMode" => "Resume",
282 "ExpectedResult" => "ServerFail",
283 "ExpectedServerAlert" => "NoApplicationProtocol",
284 },
285 },
286 {
287 name => "alpn-no-server-support-resumption",
288 server => {
289 extra => {
290 "ALPNProtocols" => "foo",
291 },
292 },
293 resume_server => { },
294 client => {
295 extra => {
296 "ALPNProtocols" => "foo",
297 },
298 },
299 test => {
300 "HandshakeMode" => "Resume",
301 "ResumptionExpected" => "Yes",
302 "ExpectedALPNProtocol" => undef,
303 },
304 },
305 {
306 name => "alpn-no-client-support-resumption",
307 server => {
308 extra => {
309 "ALPNProtocols" => "foo",
310 },
311 },
312 client => {
313 extra => {
314 "ALPNProtocols" => "foo",
315 },
316 },
317 resume_client => {
318 },
319 test => {
320 "HandshakeMode" => "Resume",
321 "ResumptionExpected" => "Yes",
322 "ExpectedALPNProtocol" => undef,
323 },
324 },
325 );