-
Bug
-
Resolution: Duplicate
-
P4
-
8u231, 11, 14
-
x86_64
-
windows_10
A DESCRIPTION OF THE PROBLEM :
Password-Based Encryption causes the following exception when password contains character '§':
java.security.spec.InvalidKeySpecException: Password is not ASCII
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. compile PBERepro.java: javac -d . PBERepro.java
2. run it: java -cp . el.info.pbe PBERepro
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No exception
ACTUAL -
Exception:
java.security.spec.InvalidKeySpecException: Password is not ASCII
at com.sun.crypto.provider.PBEKey.<init>(PBEKey.java:65)
at com.sun.crypto.provider.PBEKeyFactory.engineGenerateSecret(PBEKeyFactory.java:219)
at javax.crypto.SecretKeyFactory.generateSecret(SecretKeyFactory.java:336)
at el.info.pbe.PBERepro.main(PBERepro.java:14)
---------- BEGIN SOURCE ----------
package el.info.pbe;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
public class PBERepro {
public static void main(String[] args) throws Exception {
String pwdString = "h§o";
PBEKeySpec pbeKeySpec = new PBEKeySpec(pwdString.toCharArray());
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBEWithHmacSHA512AndAES_128");
SecretKey pbeKey = secretKeyFactory.generateSecret(pbeKeySpec);
}
}
---------- END SOURCE ----------
FREQUENCY : always
Password-Based Encryption causes the following exception when password contains character '§':
java.security.spec.InvalidKeySpecException: Password is not ASCII
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. compile PBERepro.java: javac -d . PBERepro.java
2. run it: java -cp . el.info.pbe PBERepro
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No exception
ACTUAL -
Exception:
java.security.spec.InvalidKeySpecException: Password is not ASCII
at com.sun.crypto.provider.PBEKey.<init>(PBEKey.java:65)
at com.sun.crypto.provider.PBEKeyFactory.engineGenerateSecret(PBEKeyFactory.java:219)
at javax.crypto.SecretKeyFactory.generateSecret(SecretKeyFactory.java:336)
at el.info.pbe.PBERepro.main(PBERepro.java:14)
---------- BEGIN SOURCE ----------
package el.info.pbe;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
public class PBERepro {
public static void main(String[] args) throws Exception {
String pwdString = "h§o";
PBEKeySpec pbeKeySpec = new PBEKeySpec(pwdString.toCharArray());
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBEWithHmacSHA512AndAES_128");
SecretKey pbeKey = secretKeyFactory.generateSecret(pbeKeySpec);
}
}
---------- END SOURCE ----------
FREQUENCY : always
- duplicates
-
JDK-8348732 SunJCE and SunPKCS11 have different PBE key encodings
-
- Resolved
-