You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by DF...@teamhuber.com on 2006/02/03 17:41:21 UTC

How to use with JDK 1.3

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

Re: How to use with JDK 1.3

Posted by DF...@teamhuber.com.
OK, so I think I found the problem.  I noticed that 
org.apache.ws.security.components.crypto.BouncyCastle does not have the 
same constructors as org.apache.ws.security.components.crypto.Merlin.

Merlin has:
    public Merlin(Properties properties) throws CredentialException, 
IOException {
        super(properties);
    }
 
    public Merlin(Properties properties, ClassLoader loader) throws 
CredentialException, IOException {
        super(properties,loader);
    }

And BouncyCastle has:
    public BouncyCastle(Properties properties) throws CredentialException, 
IOException {
        super(properties);
    }

And the CryptoFactory only tries to use the constructor with Properties 
and ClassLoader parameters, so that throws an error.

My test passes if I add the second constructor to BouncyCastle.

So, is this a bug?  It seems so to me, but hasn't this been working for 
others?  And what's the purpose of the first constructor (Properties only) 
if its never used?

- David


Werner Dittmann <We...@t-online.de> wrote on 02/04/2006 02:31:10 
AM:

> 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
> 
> DFrahm@teamhuber.com 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
> > sun.misc.Launcher$AppClassLoader@133056f 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 <We...@t-online.de>*
> > 
> > 02/03/2006 02:17 PM
> > 
> > 
> > To
> >    DFrahm@teamhuber.com
> > cc
> >    wss4j-dev@ws.apache.org
> > 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
> > 
> > 
> > DFrahm@teamhuber.com 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: wss4j-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: wss4j-dev-help@ws.apache.org
> 

Re: How to use with JDK 1.3

Posted by DF...@teamhuber.com.
OK, so I think I found the problem.  I noticed that 
org.apache.ws.security.components.crypto.BouncyCastle does not have the 
same constructors as org.apache.ws.security.components.crypto.Merlin.

Merlin has:
    public Merlin(Properties properties) throws CredentialException, 
IOException {
        super(properties);
    }
 
    public Merlin(Properties properties, ClassLoader loader) throws 
CredentialException, IOException {
        super(properties,loader);
    }

And BouncyCastle has:
    public BouncyCastle(Properties properties) throws CredentialException, 
IOException {
        super(properties);
    }

And the CryptoFactory only tries to use the constructor with Properties 
and ClassLoader parameters, so that throws an error.

My test passes if I add the second constructor to BouncyCastle.

So, is this a bug?  It seems so to me, but hasn't this been working for 
others?  And what's the purpose of the first constructor (Properties only) 
if its never used?

- David


Werner Dittmann <We...@t-online.de> wrote on 02/04/2006 02:31:10 
AM:

> 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
> 
> DFrahm@teamhuber.com 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
> > sun.misc.Launcher$AppClassLoader@133056f 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 <We...@t-online.de>*
> > 
> > 02/03/2006 02:17 PM
> > 
> > 
> > To
> >    DFrahm@teamhuber.com
> > cc
> >    wss4j-dev@ws.apache.org
> > 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
> > 
> > 
> > DFrahm@teamhuber.com 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: wss4j-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: wss4j-dev-help@ws.apache.org
> 

Re: How to use with JDK 1.3

Posted by Werner Dittmann <We...@t-online.de>.
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

DFrahm@teamhuber.com 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
> sun.misc.Launcher$AppClassLoader@133056f 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 <We...@t-online.de>*
> 
> 02/03/2006 02:17 PM
> 
> 	
> To
> 	DFrahm@teamhuber.com
> cc
> 	wss4j-dev@ws.apache.org
> 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
> 
> 
> DFrahm@teamhuber.com 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: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: How to use with JDK 1.3

Posted by Werner Dittmann <We...@t-online.de>.
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

DFrahm@teamhuber.com 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
> sun.misc.Launcher$AppClassLoader@133056f 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 <We...@t-online.de>*
> 
> 02/03/2006 02:17 PM
> 
> 	
> To
> 	DFrahm@teamhuber.com
> cc
> 	wss4j-dev@ws.apache.org
> 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
> 
> 
> DFrahm@teamhuber.com 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: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: How to use with JDK 1.3

Posted by DF...@teamhuber.com.
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 
sun.misc.Launcher$AppClassLoader@133056f 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 <We...@t-online.de> 
02/03/2006 02:17 PM

To
DFrahm@teamhuber.com
cc
wss4j-dev@ws.apache.org
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


DFrahm@teamhuber.com 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



Re: How to use with JDK 1.3

Posted by DF...@teamhuber.com.
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 
sun.misc.Launcher$AppClassLoader@133056f 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 <We...@t-online.de> 
02/03/2006 02:17 PM

To
DFrahm@teamhuber.com
cc
wss4j-dev@ws.apache.org
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


DFrahm@teamhuber.com 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



Re: How to use with JDK 1.3

Posted by Werner Dittmann <We...@t-online.de>.
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


DFrahm@teamhuber.com 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: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: How to use with JDK 1.3

Posted by Werner Dittmann <We...@t-online.de>.
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


DFrahm@teamhuber.com 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: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org