Loginserver improvements.

This commit is contained in:
MobiusDev
2017-12-19 22:05:35 +00:00
parent a121bb8ce3
commit 7497fba7e7
20 changed files with 110 additions and 97 deletions

View File

@@ -17,13 +17,11 @@
package com.l2jmobius.commons.util.crypt; package com.l2jmobius.commons.util.crypt;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.Key;
import java.security.KeyPair; import java.security.KeyPair;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.logging.Logger; import java.util.logging.Logger;
/**
*
*/
public class ScrambledKeyPair public class ScrambledKeyPair
{ {
private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName()); private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName());
@@ -77,4 +75,14 @@ public class ScrambledKeyPair
{ {
return _scrambledModulus; return _scrambledModulus;
} }
public Key getPrivateKey()
{
return _pair.getPrivate();
}
public Key getPublicKey()
{
return _pair.getPublic();
}
} }

View File

@@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.Set; import java.util.Set;
@@ -29,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.l2jmobius.commons.util.crypt.NewCrypt; import com.l2jmobius.commons.util.crypt.NewCrypt;
import com.l2jmobius.commons.util.crypt.ScrambledKeyPair;
import com.l2jmobius.commons.util.network.BaseSendablePacket; import com.l2jmobius.commons.util.network.BaseSendablePacket;
import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; import com.l2jmobius.loginserver.GameServerTable.GameServerInfo;
import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler; import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler;
@@ -211,9 +211,9 @@ public class GameServerThread extends Thread
{ {
_log.warning(getClass().getSimpleName() + ": " + e.getMessage()); _log.warning(getClass().getSimpleName() + ": " + e.getMessage());
} }
final KeyPair pair = GameServerTable.getInstance().getKeyPair(); final ScrambledKeyPair pair = LoginController.getInstance().getScrambledRSAKeyPair();
_privateKey = (RSAPrivateKey) pair.getPrivate(); _privateKey = (RSAPrivateKey) pair.getPrivateKey();
_publicKey = (RSAPublicKey) pair.getPublic(); _publicKey = (RSAPublicKey) pair.getPublicKey();
_blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00"); _blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00");
setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp); setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp);
start(); start();

View File

@@ -18,7 +18,6 @@ package com.l2jmobius.loginserver.network;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.security.interfaces.RSAPrivateKey;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -69,8 +68,8 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
public L2LoginClient(SecretKey blowfishKey) public L2LoginClient(SecretKey blowfishKey)
{ {
super(); super();
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
_blowfishKey = blowfishKey; _blowfishKey = blowfishKey;
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
} }
@Override @Override
@@ -115,16 +114,6 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _addr; return _addr;
} }
public byte[] getScrambledModulus()
{
return _scrambledPair._scrambledModulus;
}
public RSAPrivateKey getRSAPrivateKey()
{
return (RSAPrivateKey) _scrambledPair._pair.getPrivate();
}
public String getAccount() public String getAccount()
{ {
return _account; return _account;
@@ -160,6 +149,11 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _sessionId; return _sessionId;
} }
public ScrambledKeyPair getScrambledKeyPair()
{
return _scrambledPair;
}
public boolean hasJoinedGS() public boolean hasJoinedGS()
{ {
return _joinedGS; return _joinedGS;

View File

@@ -80,7 +80,7 @@ public class RequestAuthLogin implements IIncomingPacket<L2LoginClient>
try try
{ {
final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding"); final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding");
rsaCipher.init(Cipher.DECRYPT_MODE, client.getRSAPrivateKey()); rsaCipher.init(Cipher.DECRYPT_MODE, client.getScrambledKeyPair().getPrivateKey());
rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0); rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0);
if (_newAuthMethod) if (_newAuthMethod)
{ {

View File

@@ -17,13 +17,11 @@
package com.l2jmobius.commons.util.crypt; package com.l2jmobius.commons.util.crypt;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.Key;
import java.security.KeyPair; import java.security.KeyPair;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.logging.Logger; import java.util.logging.Logger;
/**
*
*/
public class ScrambledKeyPair public class ScrambledKeyPair
{ {
private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName()); private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName());
@@ -77,4 +75,14 @@ public class ScrambledKeyPair
{ {
return _scrambledModulus; return _scrambledModulus;
} }
public Key getPrivateKey()
{
return _pair.getPrivate();
}
public Key getPublicKey()
{
return _pair.getPublic();
}
} }

View File

@@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.Set; import java.util.Set;
@@ -29,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.l2jmobius.commons.util.crypt.NewCrypt; import com.l2jmobius.commons.util.crypt.NewCrypt;
import com.l2jmobius.commons.util.crypt.ScrambledKeyPair;
import com.l2jmobius.commons.util.network.BaseSendablePacket; import com.l2jmobius.commons.util.network.BaseSendablePacket;
import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; import com.l2jmobius.loginserver.GameServerTable.GameServerInfo;
import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler; import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler;
@@ -211,9 +211,9 @@ public class GameServerThread extends Thread
{ {
_log.warning(getClass().getSimpleName() + ": " + e.getMessage()); _log.warning(getClass().getSimpleName() + ": " + e.getMessage());
} }
final KeyPair pair = GameServerTable.getInstance().getKeyPair(); final ScrambledKeyPair pair = LoginController.getInstance().getScrambledRSAKeyPair();
_privateKey = (RSAPrivateKey) pair.getPrivate(); _privateKey = (RSAPrivateKey) pair.getPrivateKey();
_publicKey = (RSAPublicKey) pair.getPublic(); _publicKey = (RSAPublicKey) pair.getPublicKey();
_blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00"); _blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00");
setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp); setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp);
start(); start();

View File

@@ -18,7 +18,6 @@ package com.l2jmobius.loginserver.network;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.security.interfaces.RSAPrivateKey;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -69,8 +68,8 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
public L2LoginClient(SecretKey blowfishKey) public L2LoginClient(SecretKey blowfishKey)
{ {
super(); super();
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
_blowfishKey = blowfishKey; _blowfishKey = blowfishKey;
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
} }
@Override @Override
@@ -115,16 +114,6 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _addr; return _addr;
} }
public byte[] getScrambledModulus()
{
return _scrambledPair._scrambledModulus;
}
public RSAPrivateKey getRSAPrivateKey()
{
return (RSAPrivateKey) _scrambledPair._pair.getPrivate();
}
public String getAccount() public String getAccount()
{ {
return _account; return _account;
@@ -160,6 +149,11 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _sessionId; return _sessionId;
} }
public ScrambledKeyPair getScrambledKeyPair()
{
return _scrambledPair;
}
public boolean hasJoinedGS() public boolean hasJoinedGS()
{ {
return _joinedGS; return _joinedGS;

View File

@@ -80,7 +80,7 @@ public class RequestAuthLogin implements IIncomingPacket<L2LoginClient>
try try
{ {
final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding"); final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding");
rsaCipher.init(Cipher.DECRYPT_MODE, client.getRSAPrivateKey()); rsaCipher.init(Cipher.DECRYPT_MODE, client.getScrambledKeyPair().getPrivateKey());
rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0); rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0);
if (_newAuthMethod) if (_newAuthMethod)
{ {

View File

@@ -17,6 +17,7 @@
package com.l2jmobius.commons.util.crypt; package com.l2jmobius.commons.util.crypt;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.Key;
import java.security.KeyPair; import java.security.KeyPair;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -74,4 +75,14 @@ public class ScrambledKeyPair
{ {
return _scrambledModulus; return _scrambledModulus;
} }
public Key getPrivateKey()
{
return _pair.getPrivate();
}
public Key getPublicKey()
{
return _pair.getPublic();
}
} }

View File

@@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.Set; import java.util.Set;
@@ -29,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.l2jmobius.commons.util.crypt.NewCrypt; import com.l2jmobius.commons.util.crypt.NewCrypt;
import com.l2jmobius.commons.util.crypt.ScrambledKeyPair;
import com.l2jmobius.commons.util.network.BaseSendablePacket; import com.l2jmobius.commons.util.network.BaseSendablePacket;
import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; import com.l2jmobius.loginserver.GameServerTable.GameServerInfo;
import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler; import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler;
@@ -211,9 +211,9 @@ public class GameServerThread extends Thread
{ {
_log.warning(getClass().getSimpleName() + ": " + e.getMessage()); _log.warning(getClass().getSimpleName() + ": " + e.getMessage());
} }
final KeyPair pair = GameServerTable.getInstance().getKeyPair(); final ScrambledKeyPair pair = LoginController.getInstance().getScrambledRSAKeyPair();
_privateKey = (RSAPrivateKey) pair.getPrivate(); _privateKey = (RSAPrivateKey) pair.getPrivateKey();
_publicKey = (RSAPublicKey) pair.getPublic(); _publicKey = (RSAPublicKey) pair.getPublicKey();
_blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00"); _blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00");
setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp); setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp);
start(); start();

View File

@@ -18,7 +18,6 @@ package com.l2jmobius.loginserver.network;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.security.interfaces.RSAPrivateKey;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -69,8 +68,8 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
public L2LoginClient(SecretKey blowfishKey) public L2LoginClient(SecretKey blowfishKey)
{ {
super(); super();
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
_blowfishKey = blowfishKey; _blowfishKey = blowfishKey;
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
} }
@Override @Override
@@ -115,16 +114,6 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _addr; return _addr;
} }
public byte[] getScrambledModulus()
{
return _scrambledPair._scrambledModulus;
}
public RSAPrivateKey getRSAPrivateKey()
{
return (RSAPrivateKey) _scrambledPair._pair.getPrivate();
}
public String getAccount() public String getAccount()
{ {
return _account; return _account;
@@ -160,6 +149,11 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _sessionId; return _sessionId;
} }
public ScrambledKeyPair getScrambledKeyPair()
{
return _scrambledPair;
}
public boolean hasJoinedGS() public boolean hasJoinedGS()
{ {
return _joinedGS; return _joinedGS;

View File

@@ -80,7 +80,7 @@ public class RequestAuthLogin implements IIncomingPacket<L2LoginClient>
try try
{ {
final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding"); final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding");
rsaCipher.init(Cipher.DECRYPT_MODE, client.getRSAPrivateKey()); rsaCipher.init(Cipher.DECRYPT_MODE, client.getScrambledKeyPair().getPrivateKey());
rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0); rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0);
if (_newAuthMethod) if (_newAuthMethod)
{ {

View File

@@ -17,13 +17,11 @@
package com.l2jmobius.commons.util.crypt; package com.l2jmobius.commons.util.crypt;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.Key;
import java.security.KeyPair; import java.security.KeyPair;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.logging.Logger; import java.util.logging.Logger;
/**
*
*/
public class ScrambledKeyPair public class ScrambledKeyPair
{ {
private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName()); private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName());
@@ -77,4 +75,14 @@ public class ScrambledKeyPair
{ {
return _scrambledModulus; return _scrambledModulus;
} }
public Key getPrivateKey()
{
return _pair.getPrivate();
}
public Key getPublicKey()
{
return _pair.getPublic();
}
} }

View File

@@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.Set; import java.util.Set;
@@ -29,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.l2jmobius.commons.util.crypt.NewCrypt; import com.l2jmobius.commons.util.crypt.NewCrypt;
import com.l2jmobius.commons.util.crypt.ScrambledKeyPair;
import com.l2jmobius.commons.util.network.BaseSendablePacket; import com.l2jmobius.commons.util.network.BaseSendablePacket;
import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; import com.l2jmobius.loginserver.GameServerTable.GameServerInfo;
import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler; import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler;
@@ -211,9 +211,9 @@ public class GameServerThread extends Thread
{ {
_log.warning(getClass().getSimpleName() + ": " + e.getMessage()); _log.warning(getClass().getSimpleName() + ": " + e.getMessage());
} }
final KeyPair pair = GameServerTable.getInstance().getKeyPair(); final ScrambledKeyPair pair = LoginController.getInstance().getScrambledRSAKeyPair();
_privateKey = (RSAPrivateKey) pair.getPrivate(); _privateKey = (RSAPrivateKey) pair.getPrivateKey();
_publicKey = (RSAPublicKey) pair.getPublic(); _publicKey = (RSAPublicKey) pair.getPublicKey();
_blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00"); _blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00");
setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp); setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp);
start(); start();

View File

@@ -18,7 +18,6 @@ package com.l2jmobius.loginserver.network;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.security.interfaces.RSAPrivateKey;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -69,8 +68,8 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
public L2LoginClient(SecretKey blowfishKey) public L2LoginClient(SecretKey blowfishKey)
{ {
super(); super();
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
_blowfishKey = blowfishKey; _blowfishKey = blowfishKey;
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
} }
@Override @Override
@@ -115,16 +114,6 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _addr; return _addr;
} }
public byte[] getScrambledModulus()
{
return _scrambledPair._scrambledModulus;
}
public RSAPrivateKey getRSAPrivateKey()
{
return (RSAPrivateKey) _scrambledPair._pair.getPrivate();
}
public String getAccount() public String getAccount()
{ {
return _account; return _account;
@@ -160,6 +149,11 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _sessionId; return _sessionId;
} }
public ScrambledKeyPair getScrambledKeyPair()
{
return _scrambledPair;
}
public boolean hasJoinedGS() public boolean hasJoinedGS()
{ {
return _joinedGS; return _joinedGS;

View File

@@ -80,7 +80,7 @@ public class RequestAuthLogin implements IIncomingPacket<L2LoginClient>
try try
{ {
final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding"); final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding");
rsaCipher.init(Cipher.DECRYPT_MODE, client.getRSAPrivateKey()); rsaCipher.init(Cipher.DECRYPT_MODE, client.getScrambledKeyPair().getPrivateKey());
rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0); rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0);
if (_newAuthMethod) if (_newAuthMethod)
{ {

View File

@@ -17,13 +17,11 @@
package com.l2jmobius.commons.util.crypt; package com.l2jmobius.commons.util.crypt;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.Key;
import java.security.KeyPair; import java.security.KeyPair;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.logging.Logger; import java.util.logging.Logger;
/**
*
*/
public class ScrambledKeyPair public class ScrambledKeyPair
{ {
private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName()); private static Logger _log = Logger.getLogger(ScrambledKeyPair.class.getName());
@@ -77,4 +75,14 @@ public class ScrambledKeyPair
{ {
return _scrambledModulus; return _scrambledModulus;
} }
public Key getPrivateKey()
{
return _pair.getPrivate();
}
public Key getPublicKey()
{
return _pair.getPublic();
}
} }

View File

@@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.Set; import java.util.Set;
@@ -29,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.l2jmobius.commons.util.crypt.NewCrypt; import com.l2jmobius.commons.util.crypt.NewCrypt;
import com.l2jmobius.commons.util.crypt.ScrambledKeyPair;
import com.l2jmobius.commons.util.network.BaseSendablePacket; import com.l2jmobius.commons.util.network.BaseSendablePacket;
import com.l2jmobius.loginserver.GameServerTable.GameServerInfo; import com.l2jmobius.loginserver.GameServerTable.GameServerInfo;
import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler; import com.l2jmobius.loginserver.network.L2JGameServerPacketHandler;
@@ -211,9 +211,9 @@ public class GameServerThread extends Thread
{ {
_log.warning(getClass().getSimpleName() + ": " + e.getMessage()); _log.warning(getClass().getSimpleName() + ": " + e.getMessage());
} }
final KeyPair pair = GameServerTable.getInstance().getKeyPair(); final ScrambledKeyPair pair = LoginController.getInstance().getScrambledRSAKeyPair();
_privateKey = (RSAPrivateKey) pair.getPrivate(); _privateKey = (RSAPrivateKey) pair.getPrivateKey();
_publicKey = (RSAPublicKey) pair.getPublic(); _publicKey = (RSAPublicKey) pair.getPublicKey();
_blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00"); _blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00");
setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp); setName(getClass().getSimpleName() + "-" + getId() + "@" + _connectionIp);
start(); start();

View File

@@ -18,7 +18,6 @@ package com.l2jmobius.loginserver.network;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.security.interfaces.RSAPrivateKey;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -69,8 +68,8 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
public L2LoginClient(SecretKey blowfishKey) public L2LoginClient(SecretKey blowfishKey)
{ {
super(); super();
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
_blowfishKey = blowfishKey; _blowfishKey = blowfishKey;
_scrambledPair = LoginController.getInstance().getScrambledRSAKeyPair();
} }
@Override @Override
@@ -115,16 +114,6 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _addr; return _addr;
} }
public byte[] getScrambledModulus()
{
return _scrambledPair._scrambledModulus;
}
public RSAPrivateKey getRSAPrivateKey()
{
return (RSAPrivateKey) _scrambledPair._pair.getPrivate();
}
public String getAccount() public String getAccount()
{ {
return _account; return _account;
@@ -160,6 +149,11 @@ public final class L2LoginClient extends ChannelInboundHandler<L2LoginClient>
return _sessionId; return _sessionId;
} }
public ScrambledKeyPair getScrambledKeyPair()
{
return _scrambledPair;
}
public boolean hasJoinedGS() public boolean hasJoinedGS()
{ {
return _joinedGS; return _joinedGS;

View File

@@ -80,7 +80,7 @@ public class RequestAuthLogin implements IIncomingPacket<L2LoginClient>
try try
{ {
final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding"); final Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding");
rsaCipher.init(Cipher.DECRYPT_MODE, client.getRSAPrivateKey()); rsaCipher.init(Cipher.DECRYPT_MODE, client.getScrambledKeyPair().getPrivateKey());
rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0); rsaCipher.doFinal(_raw1, 0, 128, decrypted, 0);
if (_newAuthMethod) if (_newAuthMethod)
{ {