示例#1
0
        public WsStream(SslStream innerStream)
            : this()
        {
            if (innerStream.IsNull())
            throw new ArgumentNullException("innerStream");

              _innerStream = innerStream;
              _isSecure    = true;
        }
示例#2
0
        internal static WsStream CreateServerStream(TcpClient client, X509Certificate cert, bool secure)
        {
            NetworkStream stream = client.GetStream();

            if (secure)
            {
                WebSocketSharp.Net.Security.SslStream sslStream = new WebSocketSharp.Net.Security.SslStream(stream, false);
                sslStream.AuthenticateAsServer(cert);
                return(new WsStream(sslStream));
            }
            return(new WsStream(stream));
        }
示例#3
0
        internal static WsStream CreateClientStream(TcpClient client, bool secure, string host, RemoteCertificateValidationCallback validationCallback)
        {
            NetworkStream stream = client.GetStream();

            if (secure)
            {
                if (validationCallback == null)
                {
                    validationCallback = ((object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) => true);
                }
                WebSocketSharp.Net.Security.SslStream sslStream = new WebSocketSharp.Net.Security.SslStream(stream, false, validationCallback);
                sslStream.AuthenticateAsClient(host);
                return(new WsStream(sslStream));
            }
            return(new WsStream(stream));
        }
 public WsStream(SslStream innerStream)
 {
     init(innerStream);
 }
        internal static WsStream CreateServerStream(TcpClient client)
        {
            var netStream = client.GetStream();

              var port = ((IPEndPoint)client.Client.LocalEndPoint).Port;
              if (port == 443)
              {
            var sslStream = new SslStream(netStream, false);

            var certPath = ConfigurationManager.AppSettings["ServerCertPath"];
            sslStream.AuthenticateAsServer(new X509Certificate2(certPath));

            return new WsStream(sslStream);
              }

              return new WsStream(netStream);
        }
        internal static WsStream CreateClientStream(string hostname, int port, out TcpClient client)
        {
            client = new TcpClient(hostname, port);
              var netStream = client.GetStream();

              if (port == 443)
              {
            System.Net.Security.RemoteCertificateValidationCallback validationCb = (sender, certificate, chain, sslPolicyErrors) =>
            {
              // FIXME: Always returns true
              return true;
            };

            var sslStream = new SslStream(netStream, false, validationCb);
            sslStream.AuthenticateAsClient(hostname);

            return new WsStream(sslStream);
              }

              return new WsStream(netStream);
        }
    public HttpConnection (Socket socket, EndPointListener listener)
    {
      _socket = socket;
      _listener = listener;
      _secure = listener.IsSecure;

      var netStream = new NetworkStream (socket, false);
      if (_secure) {
        var sslStream = new SslStream (netStream, false);
        sslStream.AuthenticateAsServer (listener.Certificate);
        _stream = sslStream;
      }
      else {
        _stream = netStream;
      }

      _sync = new object ();
      _timeout = 90000; // 90k ms for first request, 15k ms from then on.
      _timer = new CSTimer(onTimeout, this, Timeout.Infinite, Timeout.Infinite);

      init ();
    }
 internal WsStream(SslStream innerStream)
     : this(innerStream, true)
 {
 }
        internal static WsStream CreateServerStream(TcpClient client, bool secure, X509Certificate cert)
        {
            var netStream = client.GetStream ();
              if (secure)
              {
            var sslStream = new SslStream (netStream, false);
            sslStream.AuthenticateAsServer (cert);

            return new WsStream (sslStream);
              }

              return new WsStream (netStream);
        }
        internal static WsStream CreateClientStream(
      TcpClient client,
      bool secure,
      string host,
      System.Net.Security.RemoteCertificateValidationCallback validationCallback
    )
        {
            var netStream = client.GetStream ();
              if (secure)
              {
            if (validationCallback == null)
              validationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

            var sslStream = new SslStream (netStream, false, validationCallback);
            sslStream.AuthenticateAsClient (host);

            return new WsStream (sslStream);
              }

              return new WsStream (netStream);
        }
        public HttpConnection(
			Socket socket,
			EndPointListener listener,
			bool secure,
			X509Certificate2 cert
		)
        {
            _socket = socket;
            _epListener = listener;
            _secure = secure;

            var netStream = new NetworkStream (socket, false);
            if (!secure)
            {
                _stream = netStream;
            }
            else
            {
                var sslStream = new SslStream (netStream, false);
                sslStream.AuthenticateAsServer (cert);
                _stream = sslStream;
            }

            _timer = new Timer (OnTimeout, null, Timeout.Infinite, Timeout.Infinite);
            Init ();
        }
示例#12
0
        internal static WsStream CreateServerStream(TcpClient client, bool secure)
        {
            var netStream = client.GetStream();
              if (secure)
              {
            var sslStream = new SslStream(netStream, false);
            var certPath  = ConfigurationManager.AppSettings["ServerCertPath"];
            sslStream.AuthenticateAsServer(new X509Certificate2(certPath));

            return new WsStream(sslStream);
              }

              return new WsStream(netStream);
        }
        public HttpConnection(
			Socket              sock,
			EndPointListener    epl,
			bool                secure,
			X509Certificate2    cert,
			AsymmetricAlgorithm key
		)
        {
            this.sock   = sock;
            this.epl    = epl;
            this.secure = secure;
            this.key    = key;
            //			if (secure == false) {
            //				stream = new NetworkStream (sock, false);
            //			} else {
            //				var ssl_stream = new SslServerStream (new NetworkStream (sock, false), cert, false, false);
            //				ssl_stream.PrivateKeyCertSelectionDelegate += OnPVKSelection;
            //				stream = ssl_stream;
            //			}
            var net_stream = new NetworkStream (sock, false);
            if (!secure) {
                stream = net_stream;
            } else {
                var ssl_stream = new SslStream(net_stream, false);
                ssl_stream.AuthenticateAsServer(cert);
                stream = ssl_stream;
            }
            timer = new Timer (OnTimeout, null, Timeout.Infinite, Timeout.Infinite);
            Init ();
        }
示例#14
0
    public HttpConnection (
      Socket socket,
      EndPointListener listener,
      bool secure,
      X509Certificate2 cert)
    {
      _socket = socket;
      _epListener = listener;
      _secure = secure;

      var netStream = new NetworkStream (socket, false);
      if (!secure)
        _stream = netStream;
      else {
        var sslStream = new SslStream (netStream, false);
        sslStream.AuthenticateAsServer (cert);
        _stream = sslStream;
      }

      _timeout = 90000; // 90k ms for first request, 15k ms from then on.
      _timer = new Timer (onTimeout, null, Timeout.Infinite, Timeout.Infinite);
      init ();
    }
示例#15
0
        internal static WsStream CreateClientStream(TcpClient tcpClient, string host, bool secure)
        {
            var netStream = tcpClient.GetStream();
              if (secure)
              {
            System.Net.Security.RemoteCertificateValidationCallback callback = (sender, certificate, chain, sslPolicyErrors) =>
            {
              // FIXME: Always returns true
              return true;
            };

            var sslStream = new SslStream(netStream, false, callback);
            sslStream.AuthenticateAsClient(host);

            return new WsStream(sslStream);
              }

              return new WsStream(netStream);
        }
示例#16
0
 internal WsStream(WebSocketSharp.Net.Security.SslStream innerStream) : this(innerStream, true)
 {
 }