-
Bug
-
Resolution: Fixed
-
P3
-
8u76
-
b124
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8189888 | 8u172 | Ivan Gerasimov | P3 | Resolved | Fixed | b01 |
JDK-8190652 | 8u171 | Ivan Gerasimov | P3 | Resolved | Fixed | b01 |
JDK-8159820 | 8u162 | Ivan Gerasimov | P3 | Resolved | Fixed | b03 |
JDK-8198146 | emb-8u171 | Ivan Gerasimov | P3 | Resolved | Fixed | b01 |
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b04, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
windows 10 64
A DESCRIPTION OF THE PROBLEM :
simple connect https website,it could not work when use utf-16 in source file
REGRESSION. Last worked in version 8u74
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
public class Test {
public static void main(String[] args) throws Exception {
URLConnection openConnection = new URL("https://www.google.com").openConnection();
openConnection.connect();
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
simple code above,if save as utf-8,it runs ok,if save as utf-16,it crash
ACTUAL -
report error
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "main" java.lang.ExceptionInInitializerError
at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:317)
at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:262)
at javax.crypto.JceSecurity.access$000(JceSecurity.java:48)
at javax.crypto.JceSecurity$1.run(JceSecurity.java:80)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:77)
at javax.crypto.JceSecurityManager.<clinit>(JceSecurityManager.java:65)
at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2587)
at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2611)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:548)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:527)
at sun.security.ssl.CipherSuite.isAvailable(CipherSuite.java:194)
at sun.security.ssl.SSLContextImpl.getApplicableCipherSuiteList(SSLContextImpl.java:346)
at sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList(SSLContextImpl.java:304)
at sun.security.ssl.SSLSocketImpl.init(SSLSocketImpl.java:626)
at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:537)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:72)
at sun.net.www.protocol.https.HttpsClient.createSocket(HttpsClient.java:405)
at sun.net.NetworkClient.doConnect(NetworkClient.java:162)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
at Test.main(Test.java:7)
Caused by: java.lang.SecurityException: Framework jar verification can not be initialized
at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:192)
... 29 more
Caused by: java.security.PrivilegedActionException: java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: java.lang.IllegalArgumentException: Illegal base64 character -2
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:151)
... 29 more
Caused by: java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: java.lang.IllegalArgumentException: Illegal base64 character -2
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:110)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
at javax.crypto.JarVerifier.parseCertificate(JarVerifier.java:206)
at javax.crypto.JarVerifier.access$100(JarVerifier.java:37)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:158)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:152)
... 31 more
Caused by: java.io.IOException: java.lang.IllegalArgumentException: Illegal base64 character -2
at sun.security.util.Pem.decode(Pem.java:49)
at sun.security.provider.X509Factory.readOneBlock(X509Factory.java:638)
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:96)
... 36 more
Caused by: java.lang.IllegalArgumentException: Illegal base64 character -2
at java.util.Base64$Decoder.decode0(Base64.java:714)
at java.util.Base64$Decoder.decode(Base64.java:526)
at sun.security.util.Pem.decode(Pem.java:47)
... 38 more
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test {
public static void main(String[] args) throws Exception {
URLConnection openConnection = new URL("https://www.google.com").openConnection();
openConnection.connect();
}
}
---------- END SOURCE ----------
- backported by
-
JDK-8159820 BASE64 encoded cert not correctly parsed with UTF-16
- Resolved
-
JDK-8189888 BASE64 encoded cert not correctly parsed with UTF-16
- Resolved
-
JDK-8190652 BASE64 encoded cert not correctly parsed with UTF-16
- Resolved
-
JDK-8198146 BASE64 encoded cert not correctly parsed with UTF-16
- Resolved
- duplicates
-
JDK-8169693 Internal class doesn't work in environment with non-standard encoding
- Closed
- relates to
-
JDK-8160267 Ucrypto config file cannot be read when -Dfile.encoding=UTF-16 is set
- Resolved
-
JDK-8074935 jdk8 keytool doesn't validate pem files for RFC 1421 correctness, as jdk7 did
- Closed