Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Security: Illegal key size or default parameters?

Tags:

java

I had asked a question about this earlier, but it didn't get answered right and led nowhere.

So I've clarified few details on the problem and I would really like to hear your ideas on how could I fix this or what should I try.

I have Java 1.6.0.12 installed on my Linux server and the code below runs just perfectly.

String key = "av45k1pfb024xa3bl359vsb4esortvks74sksr5oy4s5serondry84jsrryuhsr5ys49y5seri5shrdliheuirdygliurguiy5ru"; try {     Cipher c = Cipher.getInstance("ARCFOUR");      SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");     c.init(Cipher.DECRYPT_MODE, secretKeySpec);      return new String(c.doFinal(Hex.decodeHex(data.toCharArray())), "UTF-8");  } catch (InvalidKeyException e) {     throw new CryptoException(e); } 

Today I installed Java 1.6.0.26 on my server user and when I try to run my application, I get the following exception. My guess would be that it has something to do with the Java installation configuration because it works in the first one, but doesn't work in the later version.

Caused by: java.security.InvalidKeyException: Illegal key size or default parameters     at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]     at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]     at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]     at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]     at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]     at my.package.Something.decode(RC4Decoder.java:25) ~[my.package.jar:na]     ... 5 common frames omitted 

Line 25 is: c.init(Cipher.DECRYPT_MODE, secretKeySpec);

Notes:
* java.security on server's 1.6.0.12 java directory matches almost completely with the 1.6.0.26 java.security file. There are no additional providers in the first one.
* The previous question is here.

like image 877
Rihards Avatar asked Jun 26 '11 01:06

Rihards


People also ask

How do I fix Java security Invalidkeyexception illegal key size?

How to remove the key size restriction? You can remove the maximum key restriction by replacing the existing JCE jars with unlimited strength policy jars. Then simply restart you java application and the Exception should be gone.

How do I set crypto policy Unlimited?

setProperty("crypto. policy", "unlimited"); We must set the property before the JCE framework initialization. It defines a directory under JAVA_HOME/jre/lib/security/policy for policy files.


2 Answers

Most likely you don't have the unlimited strength file installed now.

You may need to download this file:

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download (only required for versions before Java 8 u162)

Extract the jar files from the zip and save them in ${java.home}/jre/lib/security/.

like image 129
James Black Avatar answered Sep 21 '22 06:09

James Black


The JRE/JDK/Java 8 jurisdiction files can be found here:

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download

Like James said above:
Install the files in ${java.home}/jre/lib/security/.

like image 20
Saad Malik Avatar answered Sep 20 '22 06:09

Saad Malik