Exemplo n.º 1
0
 public SecureHttpServerWorker(System.Net.Sockets.Socket socket, Bamboo.WebServer.HttpPreProcessor preProcessor, byte[] certificate, byte[] privateKey) : base(socket, preProcessor)
 {
     this._socket       = socket;
     this._preProcessor = preProcessor;
     this._certificate  = certificate;
     this._privateKey   = privateKey;
 }
Exemplo n.º 2
0
        public override void Execute()
        {
            try
            {
                int receiveBufferSize = (int)this._socket.GetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.ReceiveBuffer);
                int sendBufferSize    = (int)this._socket.GetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.SendBuffer);

                Bamboo.WebServer.NetworkStream  networkStream  = new Bamboo.WebServer.NetworkStream(this._socket);
                Bamboo.WebServer.BufferedStream bufferedStream = new Bamboo.WebServer.BufferedStream(networkStream, receiveBufferSize, sendBufferSize);

                Mono.Security.Protocol.Tls.SslServerStream sslServerStream = new Mono.Security.Protocol.Tls.SslServerStream(bufferedStream, new System.Security.Cryptography.X509Certificates.X509Certificate(this._certificate), false, true);
                sslServerStream.PrivateKeyCertSelectionDelegate += new Mono.Security.Protocol.Tls.PrivateKeySelectionCallback(GetPrivateKey);

                this._preProcessor.PreProcess(this._socket, sslServerStream);

                sslServerStream.Close();
            }
            catch (System.Exception exception)
            {
                this.Error(exception);
            }

            try
            {
                this._socket.Close();
            }
            catch (System.Exception exception)
            {
                this.Error(exception);
            }

            this._socket       = null;
            this._preProcessor = null;
            this._certificate  = null;
            this._privateKey   = null;
        }
Exemplo n.º 3
0
 public SecureHttpServer(Bamboo.WebServer.HttpPreProcessor preProcessor, byte[] certificate, byte[] privateKey) : base(preProcessor)
 {
     this._preProcessor = preProcessor;
     this._certificate  = certificate;
     this._privateKey   = privateKey;
 }