protected override void ProcessAsTls1() { TlsStream tlsStream = new TlsStream(); foreach (X509Certificate x509Certificate in base.Context.ServerSettings.Certificates) { tlsStream.WriteInt24(x509Certificate.RawData.Length); tlsStream.Write(x509Certificate.RawData); } base.WriteInt24(Convert.ToInt32(tlsStream.Length)); base.Write(tlsStream.ToArray()); tlsStream.Close(); }
protected override void ProcessAsTls1() { TlsStream certs = new TlsStream(); foreach (X509Certificate certificate in this.Context.ServerSettings.Certificates) { // Write certificate length certs.WriteInt24(certificate.RawData.Length); // Write certificate data certs.Write(certificate.RawData); } this.WriteInt24(Convert.ToInt32(certs.Length)); this.Write(certs.ToArray()); certs.Close(); }
static void Main(string[] args) { var server = new TcpListener(IPAddress.Any, 443); server.Start(); TlsExtensionManager.RegisterExtension(new ECExtensionConfiguration()); TlsExtensionManager.RegisterExtension(new GCMExtensionConfiguration()); TlsExtensionManager.RegisterExtension(new ECGCMExtensionConfiguration()); Console.WriteLine("Listening for clients on {0}", server.LocalEndpoint); while (true) { var client = server.AcceptTcpClient(); var clientStream = client.GetStream(); Console.WriteLine("Client connected: " + client.Client.RemoteEndPoint); var tlsStream = new TlsStream(clientStream); tlsStream.Certificates.AddCertificate(File.ReadAllBytes("localhost.cert")); tlsStream.Certificates.AddPrivateKey(File.ReadAllBytes("localhost.key")); Console.WriteLine("Starting TLS connection"); tlsStream.AuthenticateAsServer(); var reader = new StreamReader(tlsStream); var writer = new StreamWriter(tlsStream); // Console.WriteLine(reader.ReadLine()); writer.WriteLine("World"); writer.Flush(); tlsStream.Close(); client.Close(); } }