From eb2f4648264c9689d69d4c60e61901df777f000b Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 9 Sep 2021 20:37:53 +0200 Subject: [PATCH] Remove removal of cryptography restrictions This is no longer needed as of Java 9 --- src/main/java/net/server/Server.java | 4 -- src/main/java/tools/AutoJCE.java | 61 ---------------------------- 2 files changed, 65 deletions(-) delete mode 100644 src/main/java/tools/AutoJCE.java diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index 58bc95252d..2d564cae79 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -62,12 +62,10 @@ import server.TimerManager; import server.expeditions.MapleExpeditionBossLog; import server.life.MaplePlayerNPCFactory; import server.quest.MapleQuest; -import tools.AutoJCE; import tools.DatabaseConnection; import tools.FilePrinter; import tools.Pair; -import java.security.Security; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -958,8 +956,6 @@ public class Server { } public static void main(String[] args) { - Security.setProperty("crypto.policy", "unlimited"); - AutoJCE.removeCryptographyRestrictions(); Server.getInstance().init(); } diff --git a/src/main/java/tools/AutoJCE.java b/src/main/java/tools/AutoJCE.java deleted file mode 100644 index 5ab9a175e5..0000000000 --- a/src/main/java/tools/AutoJCE.java +++ /dev/null @@ -1,61 +0,0 @@ -package tools; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.security.Permission; -import java.security.PermissionCollection; -import java.util.Map; - -public class AutoJCE{ // AutoJCE into server source thanks to Acernis dev team - - /** - * Credits: ntoskrnl of StackOverflow - * http://stackoverflow.com/questions/1179672/ - */ - public static byte removeCryptographyRestrictions(){ - if(!isRestrictedCryptography()){ - //System.out.println("Cryptography restrictions removal not needed"); - return 0; - } - try{ - /* - * Do the following, but with reflection to bypass access checks: - * - * JceSecurity.isRestricted = false; - * JceSecurity.defaultPolicy.perms.clear(); - * JceSecurity.defaultPolicy.add(CryptoAllPermission.INSTANCE); - */ - final Class jceSecurity = Class.forName("javax.crypto.JceSecurity"); - final Class cryptoPermissions = Class.forName("javax.crypto.CryptoPermissions"); - final Class cryptoAllPermission = Class.forName("javax.crypto.CryptoAllPermission"); - final Field isRestrictedField = jceSecurity.getDeclaredField("isRestricted");// was set to final in Java 8 Update 112. Requires you to remove the final modifier. - Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); - modifiersField.setInt(isRestrictedField, isRestrictedField.getModifiers() & ~Modifier.FINAL); - isRestrictedField.setAccessible(true); - isRestrictedField.set(null, false); - final Field defaultPolicyField = jceSecurity.getDeclaredField("defaultPolicy"); - defaultPolicyField.setAccessible(true); - final PermissionCollection defaultPolicy = (PermissionCollection) defaultPolicyField.get(null); - final Field perms = cryptoPermissions.getDeclaredField("perms"); - perms.setAccessible(true); - ((Map) perms.get(defaultPolicy)).clear(); - final Field instance = cryptoAllPermission.getDeclaredField("INSTANCE"); - instance.setAccessible(true); - defaultPolicy.add((Permission) instance.get(null)); - - //System.out.println("Successfully removed cryptography restrictions"); - return 1; - }catch(final Exception e){ - e.printStackTrace(); - - System.err.println("Failed to remove cryptography restrictions"); - return -1; - } - } - - private static boolean isRestrictedCryptography(){ - // This simply matches the Oracle JRE, but not OpenJDK. - return "Java(TM) SE Runtime Environment".equals(System.getProperty("java.runtime.name")); - } -} \ No newline at end of file