private void PerformHandshake() { PacketWriter handshake = HandshakePacket.Handshake(VERSION, Riv, Siv, BLOCK_IV, Type, HANDSHAKE_SIZE); // No encryption for handshake using PoolPacketWriter packet = SendCipher.WriteHeader(handshake.Buffer, 0, handshake.Length); Logger.Debug($"Handshake: {packet}"); SendRaw(packet); }
public PoolPacketWriter Encrypt(byte[] packet, int offset, int length) { PoolPacketWriter result = WriteHeader(packet, offset, length); foreach (ICrypter crypter in EncryptSeq) { crypter.Encrypt(result.Buffer, HEADER_SIZE, HEADER_SIZE + length); } return(result); }
private void SendInternal(PacketWriter packet, int length) { if (Disposed) { return; } LogSend(packet); lock (SendCipher) { using PoolPacketWriter encryptedPacket = SendCipher.Encrypt(packet.Buffer, 0, length); SendRaw(encryptedPacket); } }