Please see the TestWSSecurityNew* tests available here :
https://svn.apache.org/repos/asf/webservices/wss4j/trunk/test/wssec

See how they use the WSSecurityEngine.

Thanks,
Ruchith

On 11/9/06, Xinjun Chen <[EMAIL PROTECTED]> wrote:
Hi Ruchith,

Thank you for your pointer. :-)


security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider

is one of the reasons for the error. I have set the provider in JDK1.4.1 but
forget to set in JDK1.5.

After done that I also meet some other exceptions. Here I just list the
exceptions I encountered and solutions I used for the reference of future
newbies.

 1. Unexpected number of X509Data: for Signature.

 For my test, the reason is because I didn't set username and password to
the WSSecSignature signer. I had thought the alias and password in the
crypto.property will be used. However it turns out not. So simply add one
line in test code:

signer.setUserInfo(alias, password);

 2. Sorry, you supplied the wrong key type for this operation! You supplied
a sun.security.provider.DSAPrivateKey but a
javax.crypto.SecretKey is needed.
This error is somehow clearer. It hits me that the Signature algorithm may
not be set properly.
I changed the signature algorithm to
XMLSignature.ALGO_ID_SIGNATURE_DSA, then it is ok. The
signature algorithm and the provided cert algorithm must match. The specific
line is
signer.setSignatureAlgorithm(XMLSignature.ALGO_ID_SIGNATURE_DSA);

Now I am trying to verify the test signature generated. Is there any sample
to do that?

Regards,
Xinjun


On 11/9/06, Ruchith Fernando <[EMAIL PROTECTED]> wrote:
> Please try this :
>
> http://ws.apache.org/axis2/faq.html#a3
>
> (General#3)
>
> thanks,
> Ruchith
>
> On 11/9/06, Xinjun Chen <[EMAIL PROTECTED]> wrote:
> > Hi
> >
> > I got the following new exception when I switch to JDK1.5. I have
already
> > include bouncycastle in the classpath.
> >
> > I feel it is some common error. Could you enlighten me on it? Do I
missed
> > some step? I am using the sample crypto.properties provided by WSS4J.
> >
> >
> > java.io.IOException: failed to decrypt safe contents entry:
> > javax.crypto.BadPaddingException: Given final block not
> > properly padded
> >  at
> > com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineLoad
(PKCS12KeyStore.java:1275)
> >  at java.security.KeyStore.load(KeyStore.java:1150)
> >  at
> >
org.apache.ws.security.components.crypto.AbstractCrypto.load(AbstractCrypto.java:525)
> >  at
> > org.apache.ws.security.components.crypto.AbstractCrypto
.<init>(
> > AbstractCrypto.java:121)
> >  at
> >
org.apache.ws.security.components.crypto.Merlin.<init>(Merlin.java:62)
> >
> > Caused by: javax.crypto.BadPaddingException: Given
final
> > block not properly padded
> >  at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
> >  at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
> >  at com.sun.crypto.provider.SunJCE_ab.b (DashoA12275)
> >  at
> >
com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40.engineDoFinal(DashoA12275)
> >  at javax.crypto.Cipher.doFinal(DashoA12275)
> >  at
com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineLoad
> > (PKCS12KeyStore.java:1272)
> >
> >
> >
> >
> > On 11/9/06, Xinjun Chen <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi,
> > >
> > > I am trying to use WSS4J as API to do signature for a SOAPEnvelope.
More
> > specifically, I am using WSSecSignature with the following sample crypto
> > provided by WSS4J to do the testing.
> > >
> > >
> >
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
> > >
> >
org.apache.ws.security.crypto.merlin.keystore.type=pkcs12
> > >
> >
org.apache.ws.security.crypto.merlin.keystore.password=security
> > >
> >
org.apache.ws.security.crypto.merlin.keystore.alias=16c73ab6-b892-458f-abf5-2f875f74882e
> > >
> >
org.apache.ws.security.crypto.merlin.alias.password=security
> > >
> >
org.apache.ws.security.crypto.merlin.file=keys/x509.PFX.MSFT
> > >
> > > However, I received the following exception:
> > >
> > > unknown attr1.3.6.1.4.1.311.17.1
> > > Doc after insert security header: <?xml version="1.0"
encoding="UTF-8"?>
> > > <SOAP-ENV:Envelope xmlns:SOAP-ENV="
> > http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="
> >
http://www.w3.org/2001/XMLSchema-instance";><SOAP-ENV:Header
> > >
> > > <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="
> >
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/></SOAP-ENV:Header><SOAP-ENV:Body><sayHello
> > xmlns=" http://services/helloworld";><value>Hello
> >
world!</value></sayHello></SOAP-ENV:Body></SOAP-ENV:Envelope>
> > > java.lang.NullPointerException
> > >  at
> >
com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineGetCertificateChain
> > (DashoA6275)
> > >  at
> >
java.security.KeyStore.getCertificateChain(KeyStore.java
:312)
> > >  at
> >
org.apache.ws.security.components.crypto.AbstractCrypto.getCertificates(AbstractCrypto.java:407)
> > >  at
org.apache.ws.security.message.WSSecSignature.prepare
> > (WSSecSignature.java :272)
> > >  at
> >
org.apache.ws.security.message.WSSecSignature.build(WSSecSignature.java:643)
> > >  at tests.TestX509Signature.main(TestX509Signature.java:108)
> > > Exception in thread "main"
> > >
> > >
> > > I am using the WSS4J 1.5, Sun JDK1.4.2.
> > > From google, I know that the message "unknown
attr1.3.6.1.4.1.311.17.1"
> > can be just ignored.
> > > It seems that the NullPointerException is due to the empty cert chain.
But
> > there should be at least one cert in the chain, right?
> > >
> > > Could anyone suggest what I can do? Those who has managed to do
signature
> > using the sample crypto.propertie, could you help? Thank you.
> > >
> > >
> > > Regards,
> > > Xinjun
> >
> >
>
>
> --
> www.ruchith.org
>




--
www.ruchith.org

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to