public void Encrypt(byte[] data, int start, int count) { if (Status == AuthStatus.Ready) { encryptionStream.Process(data, start, count); } }
public void Decrypt(byte[] data, int start, int count) { if (Initialised) { decryptClientData.Process(data, start, count); } }
public void Encrypt(byte[] data, int start, int count) { if (Initialised) { encryptServerData.Process(data, start, count); } }
public byte[] Encrypt(PacketOut packet) { byte[] data = packet.ToArray(); Log.Info("[SERVER PRE-ENCRYPT]", this.DumpData(data)); encryption.Process(data, 4, data.Length - 4); return(data); }
public PacketCrypt(byte[] sessionKey) { var encryptHash = s_encryptServerDataHMAC.ComputeHash(sessionKey); var decryptHash = s_decryptClientDataHMAC.ComputeHash(sessionKey); // Used by the client to decrypt packets sent by the server //var decryptServerData = new ARC4(encryptHash); // CLIENT-SIDE // Used by the server to decrypt packets sent by the client decryptClientData = new ARC4(decryptHash); // SERVER-SIDE // Used by the server to encrypt packets sent to the client encryptServerData = new ARC4(encryptHash); // SERVER-SIDE // Used by the client to encrypt packets sent to the server //var encryptClientData = new ARC4(decryptHash); // CLIENT-SIDE // Use the 2 encryption objects to generate a common starting point var syncBuffer = new byte[DropN]; encryptServerData.Process(syncBuffer, 0, syncBuffer.Length); //encryptClientData.Process(syncBuffer, 0, syncBuffer.Length); // Use the 2 decryption objects to generate a common starting point syncBuffer = new byte[DropN]; //decryptServerData.Process(syncBuffer, 0, syncBuffer.Length); decryptClientData.Process(syncBuffer, 0, syncBuffer.Length); }
public PacketIn Decrypt(PacketIn packet) { byte[] data = packet.ToArray(); decryption.Process(data, 4, data.Length - 4); PacketIn result = new PacketIn(data, 0, data.Length); result.Size = result.GetUint32Reversed(); result.Opcode = result.GetUint32Reversed(); Log.Info("[CLIENT POST-ENCRYPT]", this.DumpData(data)); return(result); }
public static void Initialize(byte[] sessionKey) { // create RC4-drop[1024] stream encryptionStream = new ARC4(outputHMAC.ComputeHash(sessionKey)); encryptionStream.Process(new byte[1024], 0, 1024); // create RC4-drop[1024] stream decryptionStream = new ARC4(inputHMAC.ComputeHash(sessionKey)); decryptionStream.Process(new byte[1024], 0, 1024); Status = AuthStatus.Ready; }
public PacketIn Decrypt(PacketIn packet) { byte[] data = packet.ToArray(); decryption.Process(data, 4, data.Length - 4); PacketIn result = new PacketIn(data, 0, data.Length); result.Size = result.GetUint32Reversed(); result.Opcode = result.GetUint32Reversed(); Console.Write("Dcrptd:"); for (int i = 0; i < result.ToArray().Length; i++) { Console.Write(" " + result.ToArray()[i]); } Console.WriteLine(); return(result); }
public void Send(byte[] buffer, int bufferSize) { //TODO: Move so not generic code but realm only code if (Encrypt != null && bufferSize >= 4) { Encrypt.Process(buffer, 0, 4); } SocketAsyncEventArgs ev = new SocketAsyncEventArgs(); ev.SetBuffer(buffer, 0, bufferSize); ev.Completed += AsyncSendEvent; if (!_sock.SendAsync(ev)) { OnSend(ev); } }
public byte[] Encrypt(PacketOut packet) { byte[] data = packet.ToArray(); encryption.Process(data, 4, data.Length - 4); return(data); }