diff --git a/.gitignore b/.gitignore index 5c3f2a4..7e94e0d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ bin/ -.gradle/ \ No newline at end of file +.gradle/ +build/ \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b589d56..fcb19bf 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 18ad7e3..8bddb52 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/lwjgl-rundir/bcprov-jdk15on-1.47.jar b/lwjgl-rundir/bcprov-jdk15on-1.47.jar deleted file mode 100644 index 0b80922..0000000 Binary files a/lwjgl-rundir/bcprov-jdk15on-1.47.jar and /dev/null differ diff --git a/lwjgl-rundir/eaglercraft.jar b/lwjgl-rundir/eaglercraft.jar index 57cea20..800120e 100644 Binary files a/lwjgl-rundir/eaglercraft.jar and b/lwjgl-rundir/eaglercraft.jar differ diff --git a/src/main/java/net/minecraft/src/CryptManager.java b/src/main/java/net/minecraft/src/CryptManager.java deleted file mode 100644 index fc1f8bf..0000000 --- a/src/main/java/net/minecraft/src/CryptManager.java +++ /dev/null @@ -1,228 +0,0 @@ -package net.minecraft.src; - -import java.io.InputStream; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.security.InvalidKeyException; -import java.security.Key; -import java.security.KeyFactory; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.SecureRandom; -import java.security.Security; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.X509EncodedKeySpec; -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; -import org.bouncycastle.crypto.BufferedBlockCipher; -import org.bouncycastle.crypto.CipherKeyGenerator; -import org.bouncycastle.crypto.KeyGenerationParameters; -import org.bouncycastle.crypto.engines.AESFastEngine; -import org.bouncycastle.crypto.io.CipherInputStream; -import org.bouncycastle.crypto.io.CipherOutputStream; -import org.bouncycastle.crypto.modes.CFBBlockCipher; -import org.bouncycastle.crypto.params.KeyParameter; -import org.bouncycastle.crypto.params.ParametersWithIV; -import org.bouncycastle.jce.provider.BouncyCastleProvider; - -public class CryptManager -{ - /** - * Generate a new shared secret AES key from a secure random source - */ - public static SecretKey createNewSharedKey() - { - CipherKeyGenerator var0 = new CipherKeyGenerator(); - var0.init(new KeyGenerationParameters(new SecureRandom(), 128)); - return new SecretKeySpec(var0.generateKey(), "AES"); - } - - public static KeyPair createNewKeyPair() - { - try - { - KeyPairGenerator var0 = KeyPairGenerator.getInstance("RSA"); - var0.initialize(1024); - return var0.generateKeyPair(); - } - catch (NoSuchAlgorithmException var1) - { - var1.printStackTrace(); - System.err.println("Key pair generation failed!"); - return null; - } - } - - /** - * Compute a serverId hash for use by sendSessionRequest() - */ - public static byte[] getServerIdHash(String par0Str, PublicKey par1PublicKey, SecretKey par2SecretKey) - { - try - { - return digestOperation("SHA-1", new byte[][] {par0Str.getBytes("ISO_8859_1"), par2SecretKey.getEncoded(), par1PublicKey.getEncoded()}); - } - catch (UnsupportedEncodingException var4) - { - var4.printStackTrace(); - return null; - } - } - - /** - * Compute a message digest on arbitrary byte[] data - */ - private static byte[] digestOperation(String par0Str, byte[] ... par1ArrayOfByte) - { - try - { - MessageDigest var2 = MessageDigest.getInstance(par0Str); - byte[][] var3 = par1ArrayOfByte; - int var4 = par1ArrayOfByte.length; - - for (int var5 = 0; var5 < var4; ++var5) - { - byte[] var6 = var3[var5]; - var2.update(var6); - } - - return var2.digest(); - } - catch (NoSuchAlgorithmException var7) - { - var7.printStackTrace(); - return null; - } - } - - /** - * Create a new PublicKey from encoded X.509 data - */ - public static PublicKey decodePublicKey(byte[] par0ArrayOfByte) - { - try - { - X509EncodedKeySpec var1 = new X509EncodedKeySpec(par0ArrayOfByte); - KeyFactory var2 = KeyFactory.getInstance("RSA"); - return var2.generatePublic(var1); - } - catch (NoSuchAlgorithmException var3) - { - var3.printStackTrace(); - } - catch (InvalidKeySpecException var4) - { - var4.printStackTrace(); - } - - System.err.println("Public key reconstitute failed!"); - return null; - } - - /** - * Decrypt shared secret AES key using RSA private key - */ - public static SecretKey decryptSharedKey(PrivateKey par0PrivateKey, byte[] par1ArrayOfByte) - { - return new SecretKeySpec(decryptData(par0PrivateKey, par1ArrayOfByte), "AES"); - } - - /** - * Encrypt byte[] data with RSA public key - */ - public static byte[] encryptData(Key par0Key, byte[] par1ArrayOfByte) - { - return cipherOperation(1, par0Key, par1ArrayOfByte); - } - - /** - * Decrypt byte[] data with RSA private key - */ - public static byte[] decryptData(Key par0Key, byte[] par1ArrayOfByte) - { - return cipherOperation(2, par0Key, par1ArrayOfByte); - } - - /** - * Encrypt or decrypt byte[] data using the specified key - */ - private static byte[] cipherOperation(int par0, Key par1Key, byte[] par2ArrayOfByte) - { - try - { - return createTheCipherInstance(par0, par1Key.getAlgorithm(), par1Key).doFinal(par2ArrayOfByte); - } - catch (IllegalBlockSizeException var4) - { - var4.printStackTrace(); - } - catch (BadPaddingException var5) - { - var5.printStackTrace(); - } - - System.err.println("Cipher data failed!"); - return null; - } - - /** - * Creates the Cipher Instance. - */ - private static Cipher createTheCipherInstance(int par0, String par1Str, Key par2Key) - { - try - { - Cipher var3 = Cipher.getInstance(par1Str); - var3.init(par0, par2Key); - return var3; - } - catch (InvalidKeyException var4) - { - var4.printStackTrace(); - } - catch (NoSuchAlgorithmException var5) - { - var5.printStackTrace(); - } - catch (NoSuchPaddingException var6) - { - var6.printStackTrace(); - } - - System.err.println("Cipher creation failed!"); - return null; - } - - /** - * Create a new BufferedBlockCipher instance - */ - private static BufferedBlockCipher createBufferedBlockCipher(boolean par0, Key par1Key) - { - BufferedBlockCipher var2 = new BufferedBlockCipher(new CFBBlockCipher(new AESFastEngine(), 8)); - var2.init(par0, new ParametersWithIV(new KeyParameter(par1Key.getEncoded()), par1Key.getEncoded(), 0, 16)); - return var2; - } - - public static OutputStream encryptOuputStream(SecretKey par0SecretKey, OutputStream par1OutputStream) - { - return new CipherOutputStream(par1OutputStream, createBufferedBlockCipher(true, par0SecretKey)); - } - - public static InputStream decryptInputStream(SecretKey par0SecretKey, InputStream par1InputStream) - { - return new CipherInputStream(par1InputStream, createBufferedBlockCipher(false, par0SecretKey)); - } - - static - { - Security.addProvider(new BouncyCastleProvider()); - } -} diff --git a/src/main/java/net/minecraft/src/DedicatedServer.java b/src/main/java/net/minecraft/src/DedicatedServer.java index 6bc729d..dd49d84 100644 --- a/src/main/java/net/minecraft/src/DedicatedServer.java +++ b/src/main/java/net/minecraft/src/DedicatedServer.java @@ -91,7 +91,6 @@ public class DedicatedServer extends MinecraftServer implements IServer } this.getLogAgent().logInfo("Generating keypair"); - this.setKeyPair(CryptManager.createNewKeyPair()); this.getLogAgent().logInfo("Starting Minecraft server on " + (this.getServerHostname().length() == 0 ? "*" : this.getServerHostname()) + ":" + this.getServerPort()); try diff --git a/src/main/java/net/minecraft/src/GuiScreen.java b/src/main/java/net/minecraft/src/GuiScreen.java index 6bdaa03..35fa9ea 100644 --- a/src/main/java/net/minecraft/src/GuiScreen.java +++ b/src/main/java/net/minecraft/src/GuiScreen.java @@ -1,18 +1,16 @@ package net.minecraft.src; -import java.awt.Toolkit; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.StringSelection; -import java.awt.datatransfer.Transferable; import java.util.ArrayList; import java.util.List; -import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.TextureLocation; +import net.lax1dude.eaglercraft.adapter.Tessellator; +import net.minecraft.src.Minecraft; + +public class GuiScreen extends Gui { + public static final boolean isMacOs = Minecraft.getOs() == EnumOS.MACOS; -public class GuiScreen extends Gui -{ /** Reference to the Minecraft object. */ protected Minecraft mc; @@ -24,92 +22,70 @@ public class GuiScreen extends Gui /** A list of all the buttons in this container. */ protected List buttonList = new ArrayList(); - public boolean allowUserInput; + public boolean allowUserInput = false; /** The FontRenderer used by GuiScreen */ protected FontRenderer fontRenderer; + public GuiParticle guiParticles; /** The button that was just pressed. */ - private GuiButton selectedButton; - private int eventButton; - private long lastMouseEvent; - private int field_92018_d; + private GuiButton selectedButton = null; + private int eventButton = 0; + private long field_85043_c = 0L; + private int field_92018_d = 0; /** * Draws the screen and all the components in it. */ - public void drawScreen(int par1, int par2, float par3) - { - for (int var4 = 0; var4 < this.buttonList.size(); ++var4) - { - GuiButton var5 = (GuiButton)this.buttonList.get(var4); + public void drawScreen(int par1, int par2, float par3) { + for (int var4 = 0; var4 < this.buttonList.size(); ++var4) { + GuiButton var5 = (GuiButton) this.buttonList.get(var4); var5.drawButton(this.mc, par1, par2); } } /** - * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). + * Fired when a key is typed. This is the equivalent of + * KeyListener.keyTyped(KeyEvent e). */ - protected void keyTyped(char par1, int par2) - { - if (par2 == 1) - { - this.mc.displayGuiScreen((GuiScreen)null); - this.mc.setIngameFocus(); - } + protected void keyTyped(char par1, int par2) { + //if (par2 == 1) { + // this.mc.displayGuiScreen((GuiScreen) null); + // this.mc.setIngameFocus(); + //} } /** * Returns a string stored in the system clipboard. */ - public static String getClipboardString() - { - try - { - Transferable var0 = Toolkit.getDefaultToolkit().getSystemClipboard().getContents((Object)null); - - if (var0 != null && var0.isDataFlavorSupported(DataFlavor.stringFlavor)) - { - return (String)var0.getTransferData(DataFlavor.stringFlavor); - } + public static String getClipboardString() { + try { + String s = EaglerAdapter.getClipboard(); + return s == null ? "" : s; + }catch(Throwable t) { + return ""; } - catch (Exception var1) - { - ; - } - - return ""; } /** * store a string in the system clipboard */ - public static void setClipboardString(String par0Str) - { - try - { - StringSelection var1 = new StringSelection(par0Str); - Toolkit.getDefaultToolkit().getSystemClipboard().setContents(var1, (ClipboardOwner)null); - } - catch (Exception var2) - { - ; + public static void setClipboardString(String par0Str) { + try { + EaglerAdapter.setClipboard(par0Str); + }catch(Throwable t) { } } /** * Called when the mouse is clicked. */ - protected void mouseClicked(int par1, int par2, int par3) - { - if (par3 == 0) - { - for (int var4 = 0; var4 < this.buttonList.size(); ++var4) - { - GuiButton var5 = (GuiButton)this.buttonList.get(var4); + protected void mouseClicked(int par1, int par2, int par3) { + if (par3 == 0) { + for (int var4 = 0; var4 < this.buttonList.size(); ++var4) { + GuiButton var5 = (GuiButton) this.buttonList.get(var4); - if (var5.mousePressed(this.mc, par1, par2)) - { + if (var5.mousePressed(this.mc, par1, par2)) { this.selectedButton = var5; this.mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); this.actionPerformed(var5); @@ -119,35 +95,33 @@ public class GuiScreen extends Gui } /** - * Called when the mouse is moved or a mouse button is released. Signature: (mouseX, mouseY, which) which==-1 is - * mouseMove, which==0 or which==1 is mouseUp + * Called when the mouse is moved or a mouse button is released. Signature: + * (mouseX, mouseY, which) which==-1 is mouseMove, which==0 or which==1 is + * mouseUp */ - protected void mouseMovedOrUp(int par1, int par2, int par3) - { - if (this.selectedButton != null && par3 == 0) - { + protected void mouseMovedOrUp(int par1, int par2, int par3) { + if (this.selectedButton != null && par3 == 0) { this.selectedButton.mouseReleased(par1, par2); this.selectedButton = null; } } - /** - * Called when a mouse button is pressed and the mouse is moved around. Parameters are : mouseX, mouseY, - * lastButtonClicked & timeSinceMouseClick. - */ - protected void mouseClickMove(int par1, int par2, int par3, long par4) {} + protected void func_85041_a(int par1, int par2, int par3, long par4) { + } /** - * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). + * Fired when a control is clicked. This is the equivalent of + * ActionListener.actionPerformed(ActionEvent e). */ - protected void actionPerformed(GuiButton par1GuiButton) {} + protected void actionPerformed(GuiButton par1GuiButton) { + } /** - * Causes the screen to lay out its subcomponents again. This is the equivalent of the Java call - * Container.validate() + * Causes the screen to lay out its subcomponents again. This is the equivalent + * of the Java call Container.validate() */ - public void setWorldAndResolution(Minecraft par1Minecraft, int par2, int par3) - { + public void setWorldAndResolution(Minecraft par1Minecraft, int par2, int par3) { + this.guiParticles = new GuiParticle(par1Minecraft); this.mc = par1Minecraft; this.fontRenderer = par1Minecraft.fontRenderer; this.width = par2; @@ -159,20 +133,18 @@ public class GuiScreen extends Gui /** * Adds the buttons (and other controls) to the screen in question. */ - public void initGui() {} + public void initGui() { + } /** * Delegates mouse and keyboard input. */ - public void handleInput() - { - while (EaglerAdapter.mouseNext()) - { + public void handleInput() { + while (EaglerAdapter.mouseNext()) { this.handleMouseInput(); } - while (EaglerAdapter.keysNext()) - { + while (EaglerAdapter.keysNext()) { this.handleKeyboardInput(); } } @@ -180,56 +152,48 @@ public class GuiScreen extends Gui /** * Handles mouse input. */ - public void handleMouseInput() - { + public void handleMouseInput() { int var1 = EaglerAdapter.mouseGetEventX() * this.width / this.mc.displayWidth; int var2 = this.height - EaglerAdapter.mouseGetEventY() * this.height / this.mc.displayHeight - 1; - int var3 = EaglerAdapter.mouseGetEventButton(); - if (EaglerAdapter.mouseGetEventButtonState()) - { - if (this.mc.gameSettings.touchscreen && this.field_92018_d++ > 0) - { + if (EaglerAdapter.mouseGetEventButtonState()) { + if (this.mc.gameSettings.touchscreen && this.field_92018_d++ > 0) { return; } - this.eventButton = var3; - this.lastMouseEvent = Minecraft.getSystemTime(); + this.eventButton = EaglerAdapter.mouseGetEventButton(); + this.field_85043_c = Minecraft.getSystemTime(); this.mouseClicked(var1, var2, this.eventButton); - } - else if (var3 != -1) - { - if (this.mc.gameSettings.touchscreen && --this.field_92018_d > 0) - { + } else if (EaglerAdapter.mouseGetEventButton() != -1) { + if (this.mc.gameSettings.touchscreen && --this.field_92018_d > 0) { return; } this.eventButton = -1; - this.mouseMovedOrUp(var1, var2, var3); - } - else if (this.eventButton != -1 && this.lastMouseEvent > 0L) - { - long var4 = Minecraft.getSystemTime() - this.lastMouseEvent; - this.mouseClickMove(var1, var2, this.eventButton, var4); + this.mouseMovedOrUp(var1, var2, EaglerAdapter.mouseGetEventButton()); + } else if (this.eventButton != -1 && this.field_85043_c > 0L) { + long var3 = Minecraft.getSystemTime() - this.field_85043_c; + this.func_85041_a(var1, var2, this.eventButton, var3); } } /** * Handles keyboard input. */ - public void handleKeyboardInput() - { - if (EaglerAdapter.getEventKeyState()) - { + public void handleKeyboardInput() { + if (EaglerAdapter.getEventKeyState()) { int var1 = EaglerAdapter.getEventKey(); char var2 = EaglerAdapter.getEventChar(); - if (var1 == 87) - { + if (var1 == 87) { this.mc.toggleFullscreen(); return; } + //if (isMacOs && var1 == 28 && var2 == 0) { + // var1 = 29; + //} + this.keyTyped(var2, var1); } } @@ -237,68 +201,72 @@ public class GuiScreen extends Gui /** * Called from the main game loop to update the screen. */ - public void updateScreen() {} + public void updateScreen() { + } /** * Called when the screen is unloaded. Used to disable keyboard repeat events */ - public void onGuiClosed() {} + public void onGuiClosed() { + } /** - * Draws either a gradient over the background screen (when it exists) or a flat gradient over background.png + * Draws either a gradient over the background screen (when it exists) or a flat + * gradient over background.png */ - public void drawDefaultBackground() - { + public void drawDefaultBackground() { this.drawWorldBackground(0); } - public void drawWorldBackground(int par1) - { - if (this.mc.theWorld != null) - { + public void drawWorldBackground(int par1) { + if (this.mc.theWorld != null) { this.drawGradientRect(0, 0, this.width, this.height, -1072689136, -804253680); - } - else - { + } else { this.drawBackground(par1); } } + private static final TextureLocation tex_background = new TextureLocation("/gui/background.png"); + /** * Draws the background (i is always 0 as of 1.2.2) */ - public void drawBackground(int par1) - { + public void drawBackground(int par1) { EaglerAdapter.glDisable(EaglerAdapter.GL_LIGHTING); EaglerAdapter.glDisable(EaglerAdapter.GL_FOG); Tessellator var2 = Tessellator.instance; - optionsBackground.bindTexture(); + tex_background.bindTexture(); EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float var3 = 32.0F; var2.startDrawingQuads(); var2.setColorOpaque_I(4210752); - var2.addVertexWithUV(0.0D, (double)this.height, 0.0D, 0.0D, (double)((float)this.height / var3 + (float)par1)); - var2.addVertexWithUV((double)this.width, (double)this.height, 0.0D, (double)((float)this.width / var3), (double)((float)this.height / var3 + (float)par1)); - var2.addVertexWithUV((double)this.width, 0.0D, 0.0D, (double)((float)this.width / var3), (double)par1); - var2.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, (double)par1); + var2.addVertexWithUV(0.0D, (double) this.height, 0.0D, 0.0D, (double) ((float) this.height / var3 + (float) par1)); + var2.addVertexWithUV((double) this.width, (double) this.height, 0.0D, (double) ((float) this.width / var3), (double) ((float) this.height / var3 + (float) par1)); + var2.addVertexWithUV((double) this.width, 0.0D, 0.0D, (double) ((float) this.width / var3), (double) par1); + var2.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, (double) par1); var2.draw(); } /** - * Returns true if this GUI should pause the game when it is displayed in single-player + * Returns true if this GUI should pause the game when it is displayed in + * single-player */ - public boolean doesGuiPauseGame() - { + public boolean doesGuiPauseGame() { return true; } - public void confirmClicked(boolean par1, int par2) {} + public void confirmClicked(boolean par1, int par2) { + } public static boolean isCtrlKeyDown() { - return EaglerAdapter.isKeyDown(29) || EaglerAdapter.isKeyDown(157) || EaglerAdapter.isKeyDown(219) || EaglerAdapter.isKeyDown(220); + return EaglerAdapter.isKeyDown(29) || EaglerAdapter.isKeyDown(157) || (isMacOs && (EaglerAdapter.isKeyDown(28) || EaglerAdapter.isKeyDown(219) || EaglerAdapter.isKeyDown(220))); } public static boolean isShiftKeyDown() { return EaglerAdapter.isKeyDown(42) || EaglerAdapter.isKeyDown(54); } + + public boolean blockHotKeys() { + return false; + } } diff --git a/src/main/java/net/minecraft/src/IntegratedServer.java b/src/main/java/net/minecraft/src/IntegratedServer.java index bbb9160..cdfbd67 100644 --- a/src/main/java/net/minecraft/src/IntegratedServer.java +++ b/src/main/java/net/minecraft/src/IntegratedServer.java @@ -92,7 +92,7 @@ public class IntegratedServer extends MinecraftServer this.setAllowPvp(true); this.setAllowFlight(true); this.serverLogAgent.logInfo("Generating keypair"); - this.setKeyPair(CryptManager.createNewKeyPair()); + //this.setKeyPair(CryptManager.createNewKeyPair()); this.loadAllWorlds(this.getFolderName(), this.getWorldName(), this.theWorldSettings.getSeed(), this.theWorldSettings.getTerrainType(), this.theWorldSettings.func_82749_j()); this.setMOTD(this.getServerOwner() + " - " + this.worldServers[0].getWorldInfo().getWorldName()); return true; diff --git a/src/main/java/net/minecraft/src/Minecraft.java b/src/main/java/net/minecraft/src/Minecraft.java index c3910ec..411da42 100644 --- a/src/main/java/net/minecraft/src/Minecraft.java +++ b/src/main/java/net/minecraft/src/Minecraft.java @@ -554,6 +554,13 @@ public class Minecraft this.displayHeight = var2.getHeight(); } + public static EnumOS getOs() { + String var0 = EaglerAdapter.getUserAgent().toLowerCase(); + return var0.contains("win") ? EnumOS.WINDOWS + : (var0.contains("mac") ? EnumOS.MACOS + : (var0.contains("solaris") ? EnumOS.SOLARIS : (var0.contains("sunos") ? EnumOS.SOLARIS : (var0.contains("linux") ? EnumOS.LINUX : (var0.contains("unix") ? EnumOS.LINUX : EnumOS.UNKNOWN))))); + } + /** * Displays a new screen. */ diff --git a/src/main/java/net/minecraft/src/NetLoginHandler.java b/src/main/java/net/minecraft/src/NetLoginHandler.java index 7d8fd25..71e813e 100644 --- a/src/main/java/net/minecraft/src/NetLoginHandler.java +++ b/src/main/java/net/minecraft/src/NetLoginHandler.java @@ -122,12 +122,6 @@ public class NetLoginHandler extends NetHandler public void handleSharedKey(Packet252SharedKey par1Packet252SharedKey) { PrivateKey var2 = this.mcServer.getKeyPair().getPrivate(); - this.sharedKey = par1Packet252SharedKey.getSharedKey(var2); - - if (!Arrays.equals(this.verifyToken, par1Packet252SharedKey.getVerifyToken(var2))) - { - this.raiseErrorAndDisconnect("Invalid client reply"); - } this.myTCPConnection.addToSendQueue(new Packet252SharedKey()); } @@ -143,15 +137,7 @@ public class NetLoginHandler extends NetHandler } this.field_92079_k = true; - - if (this.mcServer.isServerInOnlineMode()) - { - (new ThreadLoginVerifier(this)).start(); - } - else - { - this.field_72544_i = true; - } + this.field_72544_i = true; } } diff --git a/src/main/java/net/minecraft/src/Packet252SharedKey.java b/src/main/java/net/minecraft/src/Packet252SharedKey.java index 60979ec..9f4fc74 100644 --- a/src/main/java/net/minecraft/src/Packet252SharedKey.java +++ b/src/main/java/net/minecraft/src/Packet252SharedKey.java @@ -21,9 +21,6 @@ public class Packet252SharedKey extends Packet public Packet252SharedKey(SecretKey par1SecretKey, PublicKey par2PublicKey, byte[] par3ArrayOfByte) { - this.sharedKey = par1SecretKey; - this.sharedSecret = CryptManager.encryptData(par2PublicKey, par1SecretKey.getEncoded()); - this.verifyToken = CryptManager.encryptData(par2PublicKey, par3ArrayOfByte); } /** @@ -57,30 +54,7 @@ public class Packet252SharedKey extends Packet */ public int getPacketSize() { - return 2 + this.sharedSecret.length + 2 + this.verifyToken.length; + return 2 + 162 + 2 + 4; } - /** - * Return secretKey, decrypting it from the sharedSecret byte array if needed - */ - public SecretKey getSharedKey(PrivateKey par1PrivateKey) - { - return par1PrivateKey == null ? this.sharedKey : (this.sharedKey = CryptManager.decryptSharedKey(par1PrivateKey, this.sharedSecret)); - } - - /** - * Return the secret AES sharedKey (used by client only) - */ - public SecretKey getSharedKey() - { - return this.getSharedKey((PrivateKey)null); - } - - /** - * Return verifyToken - */ - public byte[] getVerifyToken(PrivateKey par1PrivateKey) - { - return par1PrivateKey == null ? this.verifyToken : CryptManager.decryptData(par1PrivateKey, this.verifyToken); - } } diff --git a/src/main/java/net/minecraft/src/Packet253ServerAuthData.java b/src/main/java/net/minecraft/src/Packet253ServerAuthData.java index 48020c3..d4319ad 100644 --- a/src/main/java/net/minecraft/src/Packet253ServerAuthData.java +++ b/src/main/java/net/minecraft/src/Packet253ServerAuthData.java @@ -26,7 +26,7 @@ public class Packet253ServerAuthData extends Packet public void readPacketData(DataInput par1DataInput) throws IOException { this.serverId = readString(par1DataInput, 20); - this.publicKey = CryptManager.decodePublicKey(readBytesFromStream(par1DataInput)); + readBytesFromStream(par1DataInput); this.verifyToken = readBytesFromStream(par1DataInput); } diff --git a/src/main/java/net/minecraft/src/StatFileWriter.java b/src/main/java/net/minecraft/src/StatFileWriter.java index 8af7a5e..64d3bb5 100644 --- a/src/main/java/net/minecraft/src/StatFileWriter.java +++ b/src/main/java/net/minecraft/src/StatFileWriter.java @@ -1,10 +1,5 @@ package net.minecraft.src; -import argo.jdom.JdomParser; -import argo.jdom.JsonNode; -import argo.jdom.JsonRootNode; -import argo.jdom.JsonStringNode; -import argo.saj.InvalidSyntaxException; import java.io.File; import java.util.HashMap; import java.util.Iterator; @@ -121,56 +116,7 @@ public class StatFileWriter public static Map func_77453_b(String par0Str) { - HashMap var1 = new HashMap(); - - try - { - String var2 = "local"; - StringBuilder var3 = new StringBuilder(); - JsonRootNode var4 = (new JdomParser()).parse(par0Str); - List var5 = var4.getArrayNode(new Object[] {"stats-change"}); - Iterator var6 = var5.iterator(); - - while (var6.hasNext()) - { - JsonNode var7 = (JsonNode)var6.next(); - Map var8 = var7.getFields(); - Entry var9 = (Entry)var8.entrySet().iterator().next(); - int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).getText()); - int var11 = Integer.parseInt(((JsonNode)var9.getValue()).getText()); - boolean var12 = true; - StatBase var13 = StatList.getOneShotStat(var10); - - if (var13 == null) - { - var12 = false; - var13 = (new StatPlaceholder(var10)).registerStat(); - } - - var3.append(StatList.getOneShotStat(var10).statGuid).append(","); - var3.append(var11).append(","); - - if (var12) - { - var1.put(var13, Integer.valueOf(var11)); - } - } - - MD5String var15 = new MD5String(var2); - String var16 = var15.getMD5String(var3.toString()); - - if (!var16.equals(var4.getStringValue(new Object[] {"checksum"}))) - { - System.out.println("CHECKSUM MISMATCH"); - return null; - } - } - catch (InvalidSyntaxException var14) - { - var14.printStackTrace(); - } - - return var1; + return new HashMap(); } public static String func_77441_a(String par0Str, String par1Str, Map par2Map) diff --git a/src/main/java/net/minecraft/src/TcpConnection.java b/src/main/java/net/minecraft/src/TcpConnection.java index 00ec0de..d0eda72 100644 --- a/src/main/java/net/minecraft/src/TcpConnection.java +++ b/src/main/java/net/minecraft/src/TcpConnection.java @@ -195,7 +195,7 @@ public class TcpConnection implements INetworkManager { if (!this.theNetHandler.isServerHandler()) { - this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey(); + //this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey(); } this.encryptOuputStream(); @@ -320,7 +320,7 @@ public class TcpConnection implements INetworkManager { if (this.theNetHandler.isServerHandler()) { - this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey(this.field_74463_A); + //this.sharedKeyForEncryption = ((Packet252SharedKey)var2).getSharedKey(this.field_74463_A); } this.decryptInputStream(); @@ -487,7 +487,7 @@ public class TcpConnection implements INetworkManager { this.isInputBeingDecrypted = true; InputStream var1 = this.networkSocket.getInputStream(); - this.socketInputStream = new DataInputStream(CryptManager.decryptInputStream(this.sharedKeyForEncryption, var1)); + //this.socketInputStream = new DataInputStream(CryptManager.decryptInputStream(this.sharedKeyForEncryption, var1)); } /** @@ -497,8 +497,8 @@ public class TcpConnection implements INetworkManager { this.socketOutputStream.flush(); this.isOutputEncrypted = true; - BufferedOutputStream var1 = new BufferedOutputStream(CryptManager.encryptOuputStream(this.sharedKeyForEncryption, this.networkSocket.getOutputStream()), 5120); - this.socketOutputStream = new DataOutputStream(var1); + //BufferedOutputStream var1 = new BufferedOutputStream(CryptManager.encryptOuputStream(this.sharedKeyForEncryption, this.networkSocket.getOutputStream()), 5120); + //this.socketOutputStream = new DataOutputStream(var1); } /** diff --git a/src/main/java/net/minecraft/src/ThreadLoginVerifier.java b/src/main/java/net/minecraft/src/ThreadLoginVerifier.java deleted file mode 100644 index 570462d..0000000 --- a/src/main/java/net/minecraft/src/ThreadLoginVerifier.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.minecraft.src; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.math.BigInteger; -import java.net.URL; -import java.net.URLEncoder; - -class ThreadLoginVerifier extends Thread -{ - /** The login handler that spawned this thread. */ - final NetLoginHandler loginHandler; - - ThreadLoginVerifier(NetLoginHandler par1NetLoginHandler) - { - this.loginHandler = par1NetLoginHandler; - } - - public void run() - { - try - { - String var1 = (new BigInteger(CryptManager.getServerIdHash(NetLoginHandler.getServerId(this.loginHandler), NetLoginHandler.getLoginMinecraftServer(this.loginHandler).getKeyPair().getPublic(), NetLoginHandler.getSharedKey(this.loginHandler)))).toString(16); - URL var2 = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(NetLoginHandler.getClientUsername(this.loginHandler), "UTF-8") + "&serverId=" + URLEncoder.encode(var1, "UTF-8")); - BufferedReader var3 = new BufferedReader(new InputStreamReader(var2.openConnection(NetLoginHandler.getLoginMinecraftServer(this.loginHandler).getServerProxy()).getInputStream())); - String var4 = var3.readLine(); - var3.close(); - - if (!"YES".equals(var4)) - { - this.loginHandler.raiseErrorAndDisconnect("Failed to verify username!"); - return; - } - - NetLoginHandler.func_72531_a(this.loginHandler, true); - } - catch (Exception var5) - { - this.loginHandler.raiseErrorAndDisconnect("Failed to verify username! [internal error " + var5 + "]"); - var5.printStackTrace(); - } - } -}