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)); }
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]))}"); }
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]))}"); }