public void StartServer()
{
if (_listener != null)
{
throw new InvalidOperationException("Cannot restart server.");
}
IPAddress address = IPAddress.Loopback;
_listener = new TcpListener(address, _port);
_listener.Start(1);
_log.WriteLine("[Server] waiting for connections ({0}:{1})", address, _port);
_port = ((IPEndPoint)_listener.LocalEndpoint).Port;
}
public async Task HttpClient_ClientUsesAuxRecord_Ok() { X509Certificate2 serverCert = Configuration.Certificates.GetServerCertificate(); var server = new HttpsTestServer(serverCert); server.StartServer(); int port = server.Port; string requestString = "https://localhost:" + port.ToString(); using (var handler = new HttpClientHandler() { ServerCertificateCustomValidationCallback = LoopbackServer.AllowAllCertificates }) using (var client = new HttpClient(handler)) { var tasks = new Task[2]; tasks[0] = server.RunTest(); tasks[1] = client.GetStringAsync(requestString); await Task.WhenAll(tasks).TimeoutAfter(15 * 1000); if (server.AuxRecordDetected) { _output.WriteLine("Test inconclusive: The Operating system preferred a non-CBC or Null cipher."); } else { Assert.True(server.AuxRecordDetected, "Server reports: Client auxiliary record not detected."); } } }