Dropped packet crypt listeners and related cleanup.
This commit is contained in:
		| @@ -17,28 +17,35 @@ | ||||
|  */ | ||||
| package org.l2jmobius.gameserver.network; | ||||
|  | ||||
| /** | ||||
|  * @author KenM | ||||
|  */ | ||||
| public class Crypt | ||||
| { | ||||
| 	byte[] _key; | ||||
| 	private byte[] _inKey; | ||||
| 	private byte[] _outKey; | ||||
| 	 | ||||
| 	public void setKey(byte[] key) | ||||
| 	{ | ||||
| 		_key = new byte[key.length]; | ||||
| 		System.arraycopy(key, 0, _key, 0, key.length); | ||||
| 		_inKey = new byte[key.length]; | ||||
| 		_outKey = new byte[key.length]; | ||||
| 		System.arraycopy(key, 0, _inKey, 0, key.length); | ||||
| 		System.arraycopy(key, 0, _outKey, 0, key.length); | ||||
| 	} | ||||
| 	 | ||||
| 	public long decrypt(byte[] raw) | ||||
| 	public void decrypt(byte[] raw) | ||||
| 	{ | ||||
| 		if (_key == null) | ||||
| 		if (_inKey == null) | ||||
| 		{ | ||||
| 			return 0L; | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		int temp = 0; | ||||
| 		int j = 0; | ||||
| 		for (int i = 0; i < raw.length; ++i) | ||||
| 		{ | ||||
| 			final int temp2 = raw[i] & 0xFF; | ||||
| 			raw[i] = (byte) (temp2 ^ (_key[j++] & 0xFF) ^ temp); | ||||
| 			final int temp2 = raw[i] & 0xff; | ||||
| 			raw[i] = (byte) (temp2 ^ (_inKey[j++] & 0xff) ^ temp); | ||||
| 			temp = temp2; | ||||
| 			if (j <= 7) | ||||
| 			{ | ||||
| @@ -46,29 +53,32 @@ public class Crypt | ||||
| 			} | ||||
| 			j = 0; | ||||
| 		} | ||||
| 		long old = _key[0] & 0xFF; | ||||
| 		old |= (_key[1] << 8) & 0xFF00; | ||||
| 		old |= (_key[2] << 16) & 0xFF0000; | ||||
| 		old |= (_key[3] << 24) & 0xFF000000; | ||||
| 		_key[0] = (byte) ((old += raw.length) & 0xFFL); | ||||
| 		_key[1] = (byte) ((old >> 8) & 0xFFL); | ||||
| 		_key[2] = (byte) ((old >> 16) & 0xFFL); | ||||
| 		_key[3] = (byte) ((old >> 24) & 0xFFL); | ||||
| 		return old; | ||||
| 		 | ||||
| 		// Shift key. | ||||
| 		int old = _inKey[0] & 0xff; | ||||
| 		old |= (_inKey[1] << 8) & 0xff00; | ||||
| 		old |= (_inKey[2] << 16) & 0xff0000; | ||||
| 		old |= (_inKey[3] << 24) & 0xff000000; | ||||
| 		old += raw.length; | ||||
| 		_inKey[0] = (byte) (old & 0xff); | ||||
| 		_inKey[1] = (byte) ((old >> 8) & 0xff); | ||||
| 		_inKey[2] = (byte) ((old >> 16) & 0xff); | ||||
| 		_inKey[3] = (byte) ((old >> 24) & 0xff); | ||||
| 	} | ||||
| 	 | ||||
| 	public long encrypt(byte[] raw) | ||||
| 	public void encrypt(byte[] raw) | ||||
| 	{ | ||||
| 		if (_key == null) | ||||
| 		if (_outKey == null) | ||||
| 		{ | ||||
| 			return 0L; | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		int temp = 0; | ||||
| 		int j = 0; | ||||
| 		for (int i = 0; i < raw.length; ++i) | ||||
| 		{ | ||||
| 			final int temp2 = raw[i] & 0xFF; | ||||
| 			raw[i] = (byte) (temp2 ^ (_key[j++] & 0xFF) ^ temp); | ||||
| 			final int temp2 = raw[i] & 0xff; | ||||
| 			raw[i] = (byte) (temp2 ^ (_outKey[j++] & 0xff) ^ temp); | ||||
| 			temp = raw[i]; | ||||
| 			if (j <= 7) | ||||
| 			{ | ||||
| @@ -76,14 +86,16 @@ public class Crypt | ||||
| 			} | ||||
| 			j = 0; | ||||
| 		} | ||||
| 		long old = _key[0] & 0xFF; | ||||
| 		old |= (_key[1] << 8) & 0xFF00; | ||||
| 		old |= (_key[2] << 16) & 0xFF0000; | ||||
| 		old |= (_key[3] << 24) & 0xFF000000; | ||||
| 		_key[0] = (byte) ((old += raw.length) & 0xFFL); | ||||
| 		_key[1] = (byte) ((old >> 8) & 0xFFL); | ||||
| 		_key[2] = (byte) ((old >> 16) & 0xFFL); | ||||
| 		_key[3] = (byte) ((old >> 24) & 0xFFL); | ||||
| 		return old; | ||||
| 		 | ||||
| 		// Shift key. | ||||
| 		int old = _outKey[0] & 0xff; | ||||
| 		old |= (_outKey[1] << 8) & 0xff00; | ||||
| 		old |= (_outKey[2] << 16) & 0xff0000; | ||||
| 		old |= (_outKey[3] << 24) & 0xff000000; | ||||
| 		old += raw.length; | ||||
| 		_outKey[0] = (byte) (old & 0xff); | ||||
| 		_outKey[1] = (byte) ((old >> 8) & 0xff); | ||||
| 		_outKey[2] = (byte) ((old >> 16) & 0xff); | ||||
| 		_outKey[3] = (byte) ((old >> 24) & 0xff); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment