JDK15: Cipher.getInstance throws UnsupportedOperationException

Panagiotis Astithas past at ebs.gr
Fri Nov 4 01:03:04 PST 2005


Niels Cölle wrote:
> Hello,
> 
> are there any known restrictions in the JCE implementation of  
> jdk-1.5.0p2_1?
> 
> If I use the native jdk15 I get the Exception below. On other platforms 
> my  code works:
>     - FreeBSD linux-jdk15
>      - Windows XP jdk1.5.0_05
>     - RedHat EE 3.x jdk1.5.0_05
>     - Solaris 8 jdk1.5.0_05
>     - Solaris 9 jdk1.5.0_05
> 
> I checked jce.jar with jarsigner -verify : OK.
> I installed the jce_policy files for 1.5.0 : failed.
> I replaced the jce.jar and the security directory with files from one 
> of  the working platforms : failed (of course?)
> 
> Maybe I am searching in the wrong direction, but if I formerly got 
> these  "java.lang.SecurityException: Cannot set up certs for trusted 
> CAs" errors,  there was something wrong with the 
> certificates/signatures/policy in  jre/lib jre/lib/security.
> Has anybody new ideas?
> 
> Thanks in advance
> Niels
> 
> java.lang.ExceptionInInitializerError
>     at javax.crypto.Cipher.getInstance(DashoA12275)
>     at javax.crypto.Cipher.getInstance(DashoA12275)
>     at com.coelle_online.Token.init(IAIKToken.java:253)
>     at com.coelle_online.GenerateMasterKey.run(GenerateMasterKey.java:59)
>     at com.coelle_online.GenerateMasterKey.main(GenerateMasterKey.java:91)
> Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
>     at javax.crypto.SunJCE_b.<clinit>(DashoA12275)
>     ... 5 more
> Caused by: java.lang.UnsupportedOperationException
>     at  
> java.security.cert.CertificateFactorySpi.engineGenerateCertPath(CertificateFactorySpi.java:162) 
> 
>     at  
> java.security.cert.CertificateFactory.generateCertPath(CertificateFactory.java:353) 
> 
>     at  
> sun.security.util.SignatureFileVerifier.getSigners(SignatureFileVerifier.java:464) 
> 
>     at  
> sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:208) 
> 
>     at  
> sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176) 
> 
>     at java.util.jar.JarVerifier.processEntry(JarVerifier.java:282)
>     at java.util.jar.JarVerifier.update(JarVerifier.java:194)
>     at java.util.jar.JarFile.initializeVerifier(JarFile.java:317)
>     at java.util.jar.JarFile.getInputStream(JarFile.java:382)
>     at  
> sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:119) 
> 
>     at javax.crypto.SunJCE_d.a(DashoA12275)
>     at javax.crypto.SunJCE_b.g(DashoA12275)
>     at javax.crypto.SunJCE_b.e(DashoA12275)
>     at javax.crypto.SunJCE_q.run(DashoA12275)
>     at java.security.AccessController.doPrivileged(Native Method)
>     ... 6 more

Have you replaced the installed cacerts file with the one from a working 
Sun JDK (say Linux)? You can find the installed file in 
/usr/local/jdk1.5.0/jre/lib/security/cacerts.

Cheers,
Panagiotis


More information about the freebsd-java mailing list