The appropriate BC jar file would be jce-jdk13-130.jar or jce-jdk13-131.jar
because Java 1.3 does not have a JCE implementation and thus it must be provided by BouncyCastle. Without this the WSS4J BouncyCastle crypto provider cannot be instantiated. Regards, Werner [EMAIL PROTECTED] wrote: > > I didn't have org.apache.ws.security.components.crypto.BouncyCastle, so > I got the latest from > http://svn.apache.org/repos/asf/webservices/wss4j/trunk/. > > I removed the wss4j.jar from my project and just added the whole trunk. > Then I changed the crypto.properties first line to: > org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.BouncyCastle > > > As for the appropriate BC jar file, I am using the one in the WSS4J > trunk (lib/bcprov-jdk13-129.jar). Shouldn't that be the right one? > > None of the tests that have to do with wss4j.keystore/crypto.properties > are passing under JDK 1.3, 1.4.2, or 1.5. The all give the same > java.lang.NoSuchMethodException errors like this: > > - The provider BC had to be added to the java.security.Security > - Trying to find [crypto.properties] using > [EMAIL PROTECTED] class loader. > - Using Crypto Engine > [org.apache.ws.security.components.crypto.BouncyCastle] > _java.lang.NoSuchMethodException_: > org.apache.ws.security.components.crypto.BouncyCastle.<init>(java.util.Properties, > java.lang.ClassLoader) > at java.lang.Class.getConstructor0(_Class.java:2647_) > at java.lang.Class.getConstructor(_Class.java:1629_) > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:141_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:119_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_)- > Unable to instantiate (1): > org.apache.ws.security.components.crypto.BouncyCastle > _java.lang.NoSuchMethodException_: > org.apache.ws.security.components.crypto.BouncyCastle.<init>(java.util.Properties, > java.lang.ClassLoader) > at java.lang.Class.getConstructor0(_Class.java:2647_) > at java.lang.Class.getConstructor(_Class.java:1629_) > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:141_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:119_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:54_) > > at > wssec.CopyOfTestWSSecurity.<clinit>(_CopyOfTestWSSecurity.java:54_) > at sun.reflect.NativeMethodAccessorImpl.invoke0(_Native Method_) > at > sun.reflect.NativeMethodAccessorImpl.invoke(_NativeMethodAccessorImpl.java:39_) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:25_) > > at java.lang.reflect.Method.invoke(_Method.java:585_) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.getTest(_RemoteTestRunner.java:403_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(_RemoteTestRunner.java:445_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(_RemoteTestRunner.java:344_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(_RemoteTestRunner.java:196_) > > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:54_) > > at > wssec.CopyOfTestWSSecurity.<clinit>(_CopyOfTestWSSecurity.java:54_) > at sun.reflect.NativeMethodAccessorImpl.invoke0(_Native Method_) > at > sun.reflect.NativeMethodAccessorImpl.invoke(_NativeMethodAccessorImpl.java:39_) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:25_) > > at java.lang.reflect.Method.invoke(_Method.java:585_) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.getTest(_RemoteTestRunner.java:403_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(_RemoteTestRunner.java:445_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(_RemoteTestRunner.java:344_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(_RemoteTestRunner.java:196_) > > _java.lang.InstantiationException_: > org.apache.ws.security.components.crypto.BouncyCastle > at java.lang.Class.newInstance0(_Class.java:335_) > at java.lang.Class.newInstance(_Class.java:303_) > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:150_)- > Unable to instantiate (2): > org.apache.ws.security.components.crypto.BouncyCastle > _java.lang.InstantiationException_: > org.apache.ws.security.components.crypto.BouncyCastle > at java.lang.Class.newInstance0(_Class.java:335_) > at java.lang.Class.newInstance(_Class.java:303_) > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:150_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:119_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:54_) > > at > wssec.CopyOfTestWSSecurity.<clinit>(_CopyOfTestWSSecurity.java:54_) > at sun.reflect.NativeMethodAccessorImpl.invoke0(_Native Method_) > at > sun.reflect.NativeMethodAccessorImpl.invoke(_NativeMethodAccessorImpl.java:39_) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:25_) > > at java.lang.reflect.Method.invoke(_Method.java:585_) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.getTest(_RemoteTestRunner.java:403_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(_RemoteTestRunner.java:445_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(_RemoteTestRunner.java:344_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(_RemoteTestRunner.java:196_) > > > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:119_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:54_) > > at > wssec.CopyOfTestWSSecurity.<clinit>(_CopyOfTestWSSecurity.java:54_) > at sun.reflect.NativeMethodAccessorImpl.invoke0(_Native Method_) > at > sun.reflect.NativeMethodAccessorImpl.invoke(_NativeMethodAccessorImpl.java:39_) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:25_) > > at java.lang.reflect.Method.invoke(_Method.java:585_) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.getTest(_RemoteTestRunner.java:403_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(_RemoteTestRunner.java:445_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(_RemoteTestRunner.java:344_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(_RemoteTestRunner.java:196_) > > Exception in thread "main" java.lang.ExceptionInInitializerError > at sun.reflect.NativeMethodAccessorImpl.invoke0(_Native Method_) > at > sun.reflect.NativeMethodAccessorImpl.invoke(_NativeMethodAccessorImpl.java:39_) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:25_) > > at java.lang.reflect.Method.invoke(_Method.java:585_) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.getTest(_RemoteTestRunner.java:403_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(_RemoteTestRunner.java:445_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(_RemoteTestRunner.java:344_) > > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(_RemoteTestRunner.java:196_) > > Caused by: _java.lang.RuntimeException_: > org.apache.ws.security.components.crypto.BouncyCastle cannot create > instance > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:155_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:119_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) > > at > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:54_) > > at > wssec.CopyOfTestWSSecurity.<clinit>(_CopyOfTestWSSecurity.java:54_) > ... 8 more > > > > > *Werner Dittmann <[EMAIL PROTECTED]>* > > 02/03/2006 02:17 PM > > > To > [EMAIL PROTECTED] > cc > [email protected] > Subject > Re: How to use with JDK 1.3 > > > > > > > > > The definition of the WSS4J crypto provider is wrong. This is _not_ the > JCE crypto provider but the WSS4J crypto provider that handles > all keystore and certificate stuff for WSS4J. > > You shall use > org.apache.ws.security.components.crypto.Merlin > or > org.apache.ws.security.components.crypto.BouncyCastle > instead of the class you defined in the properties file. > > Both classes are implementations of the WSS4J crypto API but > using and supporting different JDK versions. > > AFAIK the Merlin provider works for JDK 1.4 and up and > the above named BouncyCastle provider works with JDK 1.3. > However you may try both to see which implementation of the > WSS4J crypto API works best for you. > > Also make sure that you have the appropriate BC jar file > in your classpath that contains the full BC JCE implementation > if you use the org.apache.ws.security.components.crypto.BouncyCastle > class. > > Regards, > Werner > > > [EMAIL PROTECTED] wrote: >> >> I am having trouble using WSS4J with my IBM JDK 1.3.1. Is this >> possible? If so, how? >> >> I have tried lots of things, and sent code/errors in email yesterday >> with no response. In other technology forums, where I am much more >> knowledgable, I have helped lots of people. Please someone here take >> the time to help me ;-) Werner??? Dims??? Anybody??? >> >> I looked through the src and couldn't find any tests or examples. I >> have searched Google and all I find is a post from Dims that he got it >> working without much detail. I have WSS4j 1.1.0, so do I need newer? >> >> Can somebody please point me to some helpful information regarding how >> to use WSS4J with a 1.3 JDK? I have been trying with >> org.bouncycastle.jce.provider.BouncyCastleProvider specified in my >> crypto.properties. This fails in the CryptoFactory.loadClass() >> cryptogenClass.getConstructor(classes) on line 116. >> >> Basically, when I run Crypto crypto = >> CryptoFactory.getInstance("bc-crypto.properties"); with the properties >> file below (or null) I get errors. >> >> > org.apache.ws.security.crypto.provider=org.bouncycastle.jce.provider.BouncyCastleProvider >> >> org.apache.ws.security.crypto.merlin.keystore.type=jks >> org.apache.ws.security.crypto.merlin.keystore.password=xxxxx >> org.apache.ws.security.crypto.merlin.keystore.alias=mcmclient >> org.apache.ws.security.crypto.merlin.alias.password=xxxxx >> org.apache.ws.security.crypto.merlin.file=C:/Program >> Files/Lotus/notes/jvm/lib/security/test.keystore >> >> - Using Crypto Engine [org.bouncycastle.jce.provider.BouncyCastleProvider] >> - Unable to instantiate (1): >> org.bouncycastle.jce.provider.BouncyCastleProvider >> _java.lang.NoSuchMethodException_: <init> >> at java.lang.Class.getConstructor0(_Native Method_) >> at java.lang.Class.getConstructor(_Class.java:967_) >> at >> > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:118_) >> >> at >> > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsServiceSoapStub.createCall(_CriminalInvestigationsServiceSoapStub.java:131_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsServiceSoapStub.submitMajorCaseInvestigation(_CriminalInvestigationsServiceSoapStub.java:151_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsAgentHelper.NotesMainHelper(_CriminalInvestigationsAgentHelper.java:165_) >> >> at >> > CriminalInvestigationsAgent.NotesMain(_CriminalInvestigationsAgent.java:74_) >> >> at >> CriminalInvestigationsAgent.main(_CriminalInvestigationsAgent.java:48_) >> - Unable to instantiate (2): >> org.bouncycastle.jce.provider.BouncyCastleProvider >> _java.lang.ClassCastException_: >> org.bouncycastle.jce.provider.BouncyCastleProvider >> at >> > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:127_) >> >> at >> > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsServiceSoapStub.createCall(_CriminalInvestigationsServiceSoapStub.java:131_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsServiceSoapStub.submitMajorCaseInvestigation(_CriminalInvestigationsServiceSoapStub.java:151_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsAgentHelper.NotesMainHelper(_CriminalInvestigationsAgentHelper.java:165_) >> >> at >> > CriminalInvestigationsAgent.NotesMain(_CriminalInvestigationsAgent.java:74_) >> >> at >> CriminalInvestigationsAgent.main(_CriminalInvestigationsAgent.java:48_) >> _java.lang.ClassCastException_: >> org.bouncycastle.jce.provider.BouncyCastleProvider >> at >> > org.apache.ws.security.components.crypto.CryptoFactory.loadClass(_CryptoFactory.java:127_) >> >> at >> > org.apache.ws.security.components.crypto.CryptoFactory.getInstance(_CryptoFactory.java:101_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsServiceSoapStub.createCall(_CriminalInvestigationsServiceSoapStub.java:131_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsServiceSoapStub.submitMajorCaseInvestigation(_CriminalInvestigationsServiceSoapStub.java:151_) >> >> at >> > ca.on.gov.jus.justiceconnect.CriminalInvestigationsAgentHelper.NotesMainHelper(_CriminalInvestigationsAgentHelper.java:165_) >> >> at >> > CriminalInvestigationsAgent.NotesMain(_CriminalInvestigationsAgent.java:74_) >> >> at >> CriminalInvestigationsAgent.main(_CriminalInvestigationsAgent.java:48_) >> - Failure trying to get the Call object; nested exception is: >> _java.lang.RuntimeException_: >> org.bouncycastle.jce.provider.BouncyCastleProvider cannot create instance > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
