13bf8ff9f8
This replaces the NSS secure networking library from Mozilla with the BoringSSL library from Google. This library, based on OpenSSL, reads certificates from files in PEM format, rather than storing certificates and keys in a SQLite database, the way NSS does. There will be a blog post, changelog entries, and other documentation of the breaking changes. Review URL: https://codereview.chromium.org//1319703002 .
50 lines
1.5 KiB
Dart
50 lines
1.5 KiB
Dart
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// Client that makes HttpClient secure gets from a server that replies with
|
|
// a certificate that can't be authenticated. This checks that all the
|
|
// futures returned from these connection attempts complete (with errors).
|
|
|
|
import "dart:async";
|
|
import "dart:io";
|
|
|
|
class ExpectException implements Exception {
|
|
ExpectException(this.message);
|
|
String toString() => "ExpectException: $message";
|
|
String message;
|
|
}
|
|
|
|
void expect(condition, message) {
|
|
if (!condition) {
|
|
throw new ExpectException(message);
|
|
}
|
|
}
|
|
|
|
const HOST_NAME = "localhost";
|
|
|
|
Future runClients(int port) {
|
|
HttpClient client = new HttpClient();
|
|
|
|
var testFutures = [];
|
|
for (int i = 0; i < 20; ++i) {
|
|
testFutures.add(
|
|
client.getUrl(Uri.parse('https://$HOST_NAME:$port/'))
|
|
.then((HttpClientRequest request) {
|
|
expect(false, "Request succeeded");
|
|
}, onError: (e) {
|
|
// Remove ArgumentError once null default context is supported.
|
|
expect(e is HandshakeException ||
|
|
e is SocketException ||
|
|
e is ArgumentError,
|
|
"Error is wrong type: $e");
|
|
}));
|
|
}
|
|
return Future.wait(testFutures);
|
|
}
|
|
|
|
void main(List<String> args) {
|
|
runClients(int.parse(args[0]))
|
|
.then((_) => print('SUCCESS'));
|
|
}
|