You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-07 19:01:09 +09:00
59 lines
1.2 KiB
C#
59 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Lidgren.Network
|
|
{
|
|
/// <summary>
|
|
/// Example class; not very good encryption
|
|
/// </summary>
|
|
public class NetXorEncryption : INetEncryption
|
|
{
|
|
private byte[] m_key;
|
|
|
|
/// <summary>
|
|
/// NetXorEncryption constructor
|
|
/// </summary>
|
|
public NetXorEncryption(byte[] key)
|
|
{
|
|
m_key = key;
|
|
}
|
|
|
|
/// <summary>
|
|
/// NetXorEncryption constructor
|
|
/// </summary>
|
|
public NetXorEncryption(string key)
|
|
{
|
|
m_key = Encoding.UTF8.GetBytes(key);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Encrypt an outgoing message
|
|
/// </summary>
|
|
public bool Encrypt(NetOutgoingMessage msg)
|
|
{
|
|
int numBytes = msg.LengthBytes;
|
|
for (int i = 0; i < numBytes; i++)
|
|
{
|
|
int offset = i % m_key.Length;
|
|
msg.m_data[i] = (byte)(msg.m_data[i] ^ m_key[offset]);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Decrypt an incoming message
|
|
/// </summary>
|
|
public bool Decrypt(NetIncomingMessage msg)
|
|
{
|
|
int numBytes = msg.LengthBytes;
|
|
for (int i = 0; i < numBytes; i++)
|
|
{
|
|
int offset = i % m_key.Length;
|
|
msg.m_data[i] = (byte)(msg.m_data[i] ^ m_key[offset]);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|