OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'dart:io'; | 5 import 'dart:io'; |
6 import 'dart:convert'; | 6 import 'dart:convert'; |
7 | 7 |
8 import 'package:expect/expect.dart'; | 8 import 'package:expect/expect.dart'; |
9 import 'package:async_helper/async_helper.dart'; | 9 import 'package:async_helper/async_helper.dart'; |
10 | 10 |
11 const String NAME_LENGTH_ERROR = | 11 const String NAME_LENGTH_ERROR = |
12 'Length of protocol must be between 1 and 255'; | 12 'Length of protocol must be between 1 and 255'; |
13 | 13 |
14 const String MESSAGE_LENGTH_ERROR = | 14 const String MESSAGE_LENGTH_ERROR = |
15 'The maximum message length supported is 2^13-1'; | 15 'The maximum message length supported is 2^13-1'; |
16 | 16 |
17 String localFile(path) => Platform.script.resolve(path).toFilePath(); | 17 String localFile(path) => Platform.script.resolve(path).toFilePath(); |
18 List<int> readLocalFile(path) => (new File(localFile(path))).readAsBytesSync(); | |
19 | 18 |
20 SecurityContext clientContext() => new SecurityContext() | 19 SecurityContext clientContext() => new SecurityContext() |
21 ..setTrustedCertificates(file: localFile('certificates/trusted_certs.pem')); | 20 ..setTrustedCertificatesSync(localFile('certificates/trusted_certs.pem')); |
22 | 21 |
23 SecurityContext serverContext() => new SecurityContext() | 22 SecurityContext serverContext() => new SecurityContext() |
24 ..useCertificateChainBytes(readLocalFile('certificates/server_chain.pem')) | 23 ..useCertificateChainSync(localFile('certificates/server_chain.pem')) |
25 ..usePrivateKeyBytes(readLocalFile('certificates/server_key.pem'), | 24 ..usePrivateKeySync(localFile('certificates/server_key.pem'), |
26 password: 'dartdart'); | 25 password: 'dartdart'); |
27 | 26 |
28 // Tests that client/server with same protocol can securely establish a | 27 // Tests that client/server with same protocol can securely establish a |
29 // connection, negotiate the protocol and can send data to each other. | 28 // connection, negotiate the protocol and can send data to each other. |
30 void testSuccessfulAlpnNegotiationConnection(List<String> clientProtocols, | 29 void testSuccessfulAlpnNegotiationConnection(List<String> clientProtocols, |
31 List<String> serverProtocols, | 30 List<String> serverProtocols, |
32 String selectedProtocol) { | 31 String selectedProtocol) { |
33 asyncStart(); | 32 asyncStart(); |
34 var sContext = serverContext()..setAlpnProtocols(serverProtocols, true); | 33 var sContext = serverContext()..setAlpnProtocols(serverProtocols, true); |
35 SecureServerSocket.bind('localhost', 0, sContext) | 34 SecureServerSocket.bind('localhost', 0, sContext) |
36 .then((SecureServerSocket server) { | 35 .then((SecureServerSocket server) { |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 // Issue https://github.com/dart-lang/sdk/issues/23580 | 195 // Issue https://github.com/dart-lang/sdk/issues/23580 |
197 // Chromium issue https://code.google.com/p/chromium/issues/detail?id=497770 | 196 // Chromium issue https://code.google.com/p/chromium/issues/detail?id=497770 |
198 testSuccessfulAlpnNegotiationConnection(['a'], ['b'], null); | 197 testSuccessfulAlpnNegotiationConnection(['a'], ['b'], null); |
199 | 198 |
200 // Test too short / too long protocol names. | 199 // Test too short / too long protocol names. |
201 testInvalidArgument([longname256], NAME_LENGTH_ERROR); | 200 testInvalidArgument([longname256], NAME_LENGTH_ERROR); |
202 testInvalidArgument([strangelongname256], NAME_LENGTH_ERROR); | 201 testInvalidArgument([strangelongname256], NAME_LENGTH_ERROR); |
203 testInvalidArgument([''], NAME_LENGTH_ERROR); | 202 testInvalidArgument([''], NAME_LENGTH_ERROR); |
204 testInvalidArgument(tooManyProtocols, MESSAGE_LENGTH_ERROR); | 203 testInvalidArgument(tooManyProtocols, MESSAGE_LENGTH_ERROR); |
205 } | 204 } |
OLD | NEW |