public void Send(byte[] buffer) { if (buffer[0] == 0x7F) //HACK IF we change the Twofish key this needs to be changed { mysocket.Close(); mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp); IPAddress serverip = IPAddress.Parse(ip); mysocket.Connect(new IPEndPoint(serverip, port)); mysocket.ReceiveBufferSize = 32768; display("Reconnect!"); //GameServerLogin(); } // StateObject newstate = new StateObject(); //mysocket.BeginSend(newstate, 0, Data.Length, Sockets.SocketFlags.None, EndSend, newstate); //mysocket.BeginSend(buffer,0,buffer.Length,SocketFlags.None,EndSend,newstate); if (!mysocket.Connected) { display("Dissconnected!!"); Dissconnect(); } if ((bLoginCrypt == true) & ((buffer[0] == 0x80) | (buffer[0] == 0xA0) | (buffer[0] == 0xD9))) { display("PreCrypt: " + BitConverter.ToString(buffer)); UOEncryption.LoginCryptObj loginobj = new UOEncryption.LoginCryptObj(); buffer = LoginEncryption.clientDecrypt(buffer); display("Login Crypted: " + BitConverter.ToString(buffer)); } if ((bTwofishcrypt) & (buffer[0] != 0x7F)) // ox75 is the start of the key you use on reconnect. HACK should be linked to twofishkeyint { display("PreCrypt: " + BitConverter.ToString(buffer)); // Twofish.serverEncrypt(ref buffer, buffer.Length); Twofish.clientEncryptData(ref buffer, buffer.Length); display("TwoFished!" + BitConverter.ToString(buffer)); } mysocket.Send(buffer); if (bDebug) { display("Sent >>" + BitConverter.ToString(buffer)); } }
public void Send(byte[] buffer) { if (buffer[0] == 0x7F) //HACK IF we change the Twofish key this needs to be changed { mysocket.Close(); mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp); IPAddress serverip = IPAddress.Parse(ip); mysocket.Connect(new IPEndPoint(serverip, port)); mysocket.ReceiveBufferSize = 32768; display("Reconnect!"); //GameServerLogin(); } // StateObject newstate = new StateObject(); //mysocket.BeginSend(newstate, 0, Data.Length, Sockets.SocketFlags.None, EndSend, newstate); //mysocket.BeginSend(buffer,0,buffer.Length,SocketFlags.None,EndSend,newstate); if (!mysocket.Connected) { display("Dissconnected!!"); Dissconnect(); } if ((bLoginCrypt == true) & ((buffer[0] == 0x80) | (buffer[0] == 0xA0) | (buffer[0] == 0xD9))) { display("PreCrypt: " + BitConverter.ToString(buffer)); UOEncryption.LoginCryptObj loginobj = new UOEncryption.LoginCryptObj(); buffer = LoginEncryption.clientDecrypt(buffer); display("Login Crypted: " + BitConverter.ToString(buffer)); } if ((bTwofishcrypt) & (buffer[0] != 0x7F)) // ox75 is the start of the key you use on reconnect. HACK should be linked to twofishkeyint { display("PreCrypt: " + BitConverter.ToString(buffer)); // Twofish.serverEncrypt(ref buffer, buffer.Length); Twofish.clientEncryptData(ref buffer, buffer.Length); display("TwoFished!" + BitConverter.ToString(buffer)); } mysocket.Send(buffer); if(bDebug) { display("Sent >>" + BitConverter.ToString(buffer)); } }