Exemplo n.º 1
0
        public void client_test()
        {
            var clientPackage = new ProtocolPackage()
            {
                CryptoByte = new BitArray(new bool[8]
                {
                    false, false, false, false,
                    false, false, false, true
                }).ConvertToByte(),
                ZipEnable = false,
            };

            var serverPackage = new ProtocolPackage()
            {
                CryptoByte = new BitArray(new bool[8]
                {
                    false, false, false, false,
                    false, false, false, true
                }).ConvertToByte(),
            };

            var clientKeys = new KeyGenerator(1).MakeKey();

            clientPackage.PackKeys = clientKeys;

            var requestPackage = new PirateXRequestPackage()
            {
                HeaderBytes  = Encoding.UTF8.GetBytes($"hello"),
                ContentBytes = Encoding.UTF8.GetBytes("hello")
            };

            var unpackrequestpack = clientPackage.PackPacketToBytes(requestPackage);

            Console.WriteLine(string.Join(",", unpackrequestpack));
        }
Exemplo n.º 2
0
        public void pack_request_to_bytes_then_unpack_it()
        {
            var piratepackage = new ProtocolPackage();

            var requestInfo = new PirateXRequestInfo(new NameValueCollection()
            {
                { "c", "test" },
                { "t", "123456" }
            }, new NameValueCollection()
            {
                { "p1", "1" },
                { "p2", "2" },
            });

            var requestPackage = new PirateXRequestPackage()
            {
                HeaderBytes  = Encoding.UTF8.GetBytes($"{String.Join("&", requestInfo.Headers.AllKeys.Select(a => a + "=" + requestInfo.Headers[a]))}"),
                ContentBytes = Encoding.UTF8.GetBytes($"{String.Join("&", requestInfo.QueryString.AllKeys.Select(a => a + "=" + requestInfo.QueryString[a]))}")
            };

            var unpackrequestpack = piratepackage.PackPacketToBytes(requestPackage);

            var requestInfo2 = new PirateXRequestInfo(piratepackage.UnPackToPacket(unpackrequestpack));

            Assert.IsNotEmpty(requestInfo.C);
            Assert.IsNotEmpty(requestInfo.Key);

            Assert.IsNotEmpty(requestInfo2.C);


            Assert.AreEqual($"{String.Join("&", requestInfo.Headers.AllKeys.Select(a => a + "=" + requestInfo.Headers[a]))}"
                            , $"{String.Join("&", requestInfo2.Headers.AllKeys.Select(a => a + "=" + requestInfo2.Headers[a]))}");

            Assert.AreEqual($"{String.Join("&", requestInfo.QueryString.AllKeys.Select(a => a + "=" + requestInfo.QueryString[a]))}"
                            , $"{String.Join("&", requestInfo2.QueryString.AllKeys.Select(a => a + "=" + requestInfo2.QueryString[a]))}");
        }
Exemplo n.º 3
0
        public void pack_request_to_bytes_then_unpack_it_with_crypto()
        {
            var clientPackage = new ProtocolPackage()
            {
                CryptoByte = new BitArray(new bool[8]
                {
                    false, false, false, false,
                    false, false, false, true
                }).ConvertToByte(),
            };

            var serverPackage = new ProtocolPackage()
            {
                CryptoByte = new BitArray(new bool[8]
                {
                    false, false, false, false,
                    false, false, false, true
                }).ConvertToByte(),
            };

            var clientKeys = new KeyGenerator(100).MakeKey();
            var serverKeys = new KeyGenerator(200).MakeKey();

            //client
            clientPackage.PackKeys   = clientKeys;
            clientPackage.UnPackKeys = serverKeys;
            //server
            serverPackage.PackKeys   = serverKeys;
            serverPackage.UnPackKeys = clientKeys;

            var requestInfo = new PirateXRequestInfo(new NameValueCollection()
            {
                { "c", "test" },
                { "t", "123456" }
            }, new NameValueCollection()
            {
                { "p1", "1" },
                { "p2", "2" },
            });

            var requestPackage = new PirateXRequestPackage()
            {
                HeaderBytes  = Encoding.UTF8.GetBytes($"{String.Join("&", requestInfo.Headers.AllKeys.Select(a => a + "=" + requestInfo.Headers[a]))}"),
                ContentBytes = Encoding.UTF8.GetBytes($"{String.Join("&", requestInfo.QueryString.AllKeys.Select(a => a + "=" + requestInfo.QueryString[a]))}")
            };

            var unpackrequestpack = clientPackage.PackPacketToBytes(requestPackage);

            Console.WriteLine($"[{string.Join(",", unpackrequestpack)}]");

            var requestInfo2 = new PirateXRequestInfo(serverPackage.UnPackToPacket(unpackrequestpack));

            Assert.IsNotEmpty(requestInfo.C);
            Assert.IsNotEmpty(requestInfo.Key);

            Assert.IsNotEmpty(requestInfo2.C);


            Assert.AreEqual($"{String.Join("&", requestInfo.Headers.AllKeys.Select(a => a + "=" + requestInfo.Headers[a]))}"
                            , $"{String.Join("&", requestInfo2.Headers.AllKeys.Select(a => a + "=" + requestInfo2.Headers[a]))}");

            Assert.AreEqual($"{String.Join("&", requestInfo.QueryString.AllKeys.Select(a => a + "=" + requestInfo.QueryString[a]))}"
                            , $"{String.Join("&", requestInfo2.QueryString.AllKeys.Select(a => a + "=" + requestInfo2.QueryString[a]))}");
        }