private static void ServerThreadStart(object o)
        {
            TcpClient client = o as TcpClient;

            SslStream sslStream = new SslStream(client.GetStream(),
                                                false, //leave inner stream open
                                                new RemoteCertificateValidationCallback(CertificateValidationCallback)
                                                );

            bool authenticationPassed = true;

            try
            {
                X509Certificate cert = GetServerCert(SERVER_CERT_FILENAME, SERVER_CERT_PASSWORD);
                sslStream.AuthenticateAsServer(
                    cert,
                    true,   //client cert required
                    SslProtocols.Default,
                    false); //check for revoked cert
            }
            catch (AuthenticationException)
            {
                authenticationPassed = false;
            }
            if (authenticationPassed)
            {
                FieldIdentifier Code          = new FieldIdentifier("Incoming_" + new FieldGuid().ToString().Replace("-", "_"));
                NodeConnection  newConnection = NodeConnection.BuildWith(Code);
                OnNewIncomingConnection(newConnection);
                newConnection.ThreadStart(sslStream); //essentially blocks until the connection dies
            }
        }