Provides a stream that functions like a network stream except it cuts out the socket layer.
        public void Test1()
        {
            Logger.Console.Verbose = VerboseLevel.All;

            var netStream = new NetworkStreamSimulator();

            var dbcfg = new HistorianServerDatabaseConfig("DB", @"C:\Archive", true);
            var server = new HistorianServer(dbcfg);
            var auth = new SecureStreamServer<SocketUserPermissions>();
            auth.SetDefaultUser(true, new SocketUserPermissions()
            {
                CanRead = true,
                CanWrite = true,
                IsAdmin = true
            });

            var netServer = new SnapStreamingServer(auth, netStream.ServerStream, server.Host);

            ThreadPool.QueueUserWorkItem(ProcessClient, netServer);

            var client = new SnapStreamingClient(netStream.ClientStream, new SecureStreamClientDefault(), true);

            var db = client.GetDatabase("DB");

            client.Dispose();
            server.Dispose();
        }
        public void Test1()
        {
            m_sw.Reset();

            var net = new NetworkStreamSimulator();

            var sa = new SrpServer();
            sa.Users.AddUser("user1", "password1", SrpStrength.Bits1024);

            ThreadPool.QueueUserWorkItem(Client1, net.ClientStream);
            var user = sa.AuthenticateAsServer(net.ServerStream);
            user = sa.AuthenticateAsServer(net.ServerStream);
            if (user == null)
                throw new Exception();

            Thread.Sleep(100);
        }
        public void Test1()
        {
            Guid token;
            m_sw.Reset();

            var net = new NetworkStreamSimulator();

            var sa = new IntegratedSecurityServer();
            sa.Users.AddUser("zthe\\steven");

            ThreadPool.QueueUserWorkItem(Client1, net.ClientStream);
            var user = sa.TryAuthenticateAsServer(net.ServerStream, out token);
            user = sa.TryAuthenticateAsServer(net.ServerStream, out token);
            if (user == null)
                throw new Exception();

            Thread.Sleep(100);
        }
        public void Test1()
        {
            m_sw.Reset();

            var net = new NetworkStreamSimulator();

            var sw = new Stopwatch();
            var sa = new ScramServer();
            sw.Start();
            sa.Users.AddUser("user1", "password1", 10000, 1, HashMethod.Sha256);
            sw.Stop();
            System.Console.WriteLine(sw.Elapsed.TotalMilliseconds);
            ThreadPool.QueueUserWorkItem(Client1, net.ClientStream);
            var user = sa.AuthenticateAsServer(net.ServerStream, new byte[] { 100, 29 });
            user = sa.AuthenticateAsServer(net.ServerStream, new byte[] { 100, 29 });
            if (user == null)
                throw new Exception();

            Thread.Sleep(100);
        }
        public void TestDefault()
        {
            Logger.Console.Verbose = VerboseLevel.All;
            m_sw.Reset();

            var net = new NetworkStreamSimulator();
            var sa = new SecureStreamServer<NullToken>();
            sa.SetDefaultUser(true, new NullToken());
            ThreadPool.QueueUserWorkItem(ClientDefault, net.ClientStream);

            Stream stream;
            if (!sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T))
            {
                throw new Exception();
            }
            
            stream.Write("Message");
            stream.Flush();
            if (stream.ReadString() != "Response")
                throw new Exception();
            stream.Dispose();
            
            Thread.Sleep(100);
        }
        public void TestWriteServer()
        {
            HistorianKey key = new HistorianKey();
            HistorianValue value = new HistorianValue();

            Logger.Console.Verbose = VerboseLevel.All;
            Logger.FileWriter.SetPath(@"C:\Temp\", VerboseLevel.All);

            var netStream = new NetworkStreamSimulator();

            var dbcfg = new HistorianServerDatabaseConfig("DB", @"C:\Temp\Scada", true);
            var server = new HistorianServer(dbcfg);
            var auth = new SecureStreamServer<SocketUserPermissions>();
            auth.SetDefaultUser(true, new SocketUserPermissions()
            {
                CanRead = true,
                CanWrite = true,
                IsAdmin = true
            });

            var netServer = new SnapStreamingServer(auth, netStream.ServerStream, server.Host);

            ThreadPool.QueueUserWorkItem(ProcessClient, netServer);

            var client = new SnapStreamingClient(netStream.ClientStream, new SecureStreamClientDefault(), false);

            var db = client.GetDatabase<HistorianKey, HistorianValue>("DB");
            for (uint x = 0; x < 1000; x++)
            {
                key.Timestamp = x;
                db.Write(key, value);
                break;
            }

            client.Dispose();
            server.Dispose();
        }
        public void TestBenchmarkIntegrated()
        {
            return;
            Logger.Console.Verbose = VerboseLevel.All;
            m_sw.Reset();

            var net = new NetworkStreamSimulator();

            var sa = new SecureStreamServer<NullToken>();
            sa.AddUserIntegratedSecurity("Zthe\\steven", new NullToken());
            ThreadPool.QueueUserWorkItem(ClientBenchmarkIntegrated, net.ClientStream);

            Stream stream;
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);

            Thread.Sleep(100);
        }
        public void TestBenchmarkDefault()
        {
            Logger.Console.Verbose = VerboseLevel.All;
            m_sw.Reset();

            var net = new NetworkStreamSimulator();

            var sa = new SecureStreamServer<NullToken>();
            sa.SetDefaultUser(true, new NullToken());
            ThreadPool.QueueUserWorkItem(ClientBenchmarkDefault, net.ClientStream);

            Stream stream;
            sa.TryAuthenticateAsServer(net.ServerStream, false, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, false, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, true, out stream, out T);
            sa.TryAuthenticateAsServer(net.ServerStream, false, out stream, out T);

            Thread.Sleep(100);
        }