internal void Start(ServerInfo info) { if (info != null) { var siv = new byte[4]; var riv = new byte[4]; Random.NextBytes(siv); Random.NextBytes(riv); m_clientCipher = new MapleCipher(info.Version, siv, m_aesCipher, CipherType.Encrypt); m_serverCipher = new MapleCipher(info.Version, riv, m_aesCipher, CipherType.Decrypt); using (var p = new PacketWriter(14, 16)) { p.WriteShort(info.Version); p.WriteMapleString(info.Subversion); p.WriteBytes(riv); p.WriteBytes(siv); p.WriteByte(info.Locale); SendRawPacket(p.ToArray()); } } Receive(); }
internal void Start(ServerInfo info) { m_serverCipher = new MapleCipher(info.Version, info.Riv, m_aesCipher, CipherType.Decrypt); m_clientCipher = new MapleCipher(info.Version, info.Siv, m_aesCipher, CipherType.Encrypt); PacketWriter pw = new PacketWriter(15, 17); pw.WriteShort(info.Version); pw.WriteMapleString(info.Subversion); pw.WriteBytes(info.Riv); pw.WriteBytes(info.Siv); pw.WriteShort(info.Locale); SendRawPacket(pw.ToArray()); Receive(); Debug.WriteLine("Started local server (toClient)"); }
internal void Start(ServerInfo info) { if (info != null) { byte[] siv = new byte[4]; byte[] riv = new byte[4]; var rng = new Random(Interlocked.Increment(ref rngSeed)); rng.NextBytes(siv); rng.NextBytes(riv); clientCipher = new MapleCipher(info.Version, siv, aesCipher); serverCipher = new MapleCipher(info.Version, riv, aesCipher); var p = new PacketWriter(14, 16); p.WriteShort(info.Version); p.WriteMapleString(info.Subversion); p.WriteBytes(riv); p.WriteBytes(siv); p.WriteByte(info.Locale); SendRawPacket(p.ToArray()); } Receive(); }