OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Client for secure_socket_renegotiate_test, that runs in a subprocess. | 5 // Client for secure_socket_renegotiate_test, that runs in a subprocess. |
6 // The test verifies that client certificates work, if the client and server | 6 // The test verifies that client certificates work, if the client and server |
7 // are in separate processes, and that connection renegotiation can request | 7 // are in separate processes, and that connection renegotiation can request |
8 // a client certificate to be sent. | 8 // a client certificate to be sent. |
9 | 9 |
10 import "dart:async"; | 10 import "dart:async"; |
(...skipping 26 matching lines...) Expand all Loading... |
37 | 37 |
38 | 38 |
39 void runClient(int port) { | 39 void runClient(int port) { |
40 SecureSocket.connect(HOST_NAME, port, sendClientCertificate: true) | 40 SecureSocket.connect(HOST_NAME, port, sendClientCertificate: true) |
41 .then((SecureSocket socket) { | 41 .then((SecureSocket socket) { |
42 X509Certificate certificate = socket.peerCertificate; | 42 X509Certificate certificate = socket.peerCertificate; |
43 expect(certificate != null); | 43 expect(certificate != null); |
44 expectEquals('CN=localhost', certificate.subject); | 44 expectEquals('CN=localhost', certificate.subject); |
45 expectEquals('CN=myauthority', certificate.issuer); | 45 expectEquals('CN=myauthority', certificate.issuer); |
46 StreamIterator<String> input = new StreamIterator(socket | 46 StreamIterator<String> input = new StreamIterator(socket |
47 .transform(new StringDecoder()) | 47 .transform(UTF8.decoder) |
48 .transform(new LineSplitter())); | 48 .transform(new LineSplitter())); |
49 socket.writeln('first'); | 49 socket.writeln('first'); |
50 input.moveNext() | 50 input.moveNext() |
51 .then((success) { | 51 .then((success) { |
52 expect(success); | 52 expect(success); |
53 expectEquals('first reply', input.current); | 53 expectEquals('first reply', input.current); |
54 socket.renegotiate(); | 54 socket.renegotiate(); |
55 socket.writeln('renegotiated'); | 55 socket.writeln('renegotiated'); |
56 return input.moveNext(); | 56 return input.moveNext(); |
57 }) | 57 }) |
(...skipping 13 matching lines...) Expand all Loading... |
71 }); | 71 }); |
72 }); | 72 }); |
73 } | 73 } |
74 | 74 |
75 | 75 |
76 void main() { | 76 void main() { |
77 final args = new Options().arguments; | 77 final args = new Options().arguments; |
78 SecureSocket.initialize(database: args[1], password: 'dartdart'); | 78 SecureSocket.initialize(database: args[1], password: 'dartdart'); |
79 runClient(int.parse(args[0])); | 79 runClient(int.parse(args[0])); |
80 } | 80 } |
OLD | NEW |