Hi all, I'm trying to encrypt a soap message using symmetric AES encryption.  I 
have generated a key, which is encrypting and decrypting correctly (it's been 
tested).  Here is the code used to generate the key.  It is a jks type 
keystore.  I copied this file into my webservice source code, and ran a test 
case to pass in the security headers to the webservice.  The stack trace is 
what I get.  Is there a problem with jks keystores?  Is there something I'm 
missing?

Thanks a lot!

  -Alan Baldwin-


...key generation code...

    Security.addProvider(new com.sun.crypto.provider.SunJCE());

    KeyGenerator kg = KeyGenerator.getInstance("AES");

    Key key = kg.generateKey();

    KeyStore ks = KeyStore.getInstance("jks");
     
    ks.load(null,"security".toCharArray());
    ks.setKeyEntry("ecms",key,"security".toCharArray(), null);
      
    ks.store(new FileOutputStream("ecms.jks"), "security".toCharArray());


...my crypto.properties file...

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=security
org.apache.ws.security.crypto.merlin.keystore.alias=ecms
org.apache.ws.security.crypto.merlin.alias.password=security
org.apache.ws.security.crypto.merlin.file=ecms.jks


...stack trace...

2005-03-25 13:59:14 INFO  
[org.apache.ws.security.components.crypto.CryptoFactory] - <Using Crypto Engine 
[org.apache.ws.security.components.crypto.Merlin]>
java.io.IOException: Invalid keystore format
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:612)
        at java.security.KeyStore.load(KeyStore.java:652)
        at org.apache.ws.security.components.crypto.Merlin.load(Merlin.java:524)
        at 
org.apache.ws.security.components.crypto.Merlin.<init>(Merlin.java:116)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
......
......
Caused by: org.apache.ws.security.components.crypto.CredentialException: Failed 
to load credentials. Inner Exception: [Invalid keystore format]
        at org.apache.ws.security.components.crypto.Merlin.load(Merlin.java:527)
        at 
org.apache.ws.security.components.crypto.Merlin.<init>(Merlin.java:116)
        ... 43 more




...my wsdd...

<service name="MessageEcho" provider="java:MSG">
    <requestFlow>
      <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
        <parameter name="passwordCallbackClass" 
value="org.apache.ws.axis.oasis.PWCallback"/>
        <parameter name="action" value="UsernameToken Encrypt"/>
        <parameter name="decryptionPropFile" value="crypto.properties"/>
      </handler>
    </requestFlow>
    <parameter name="allowedMethods" value="echo"/>
    <parameter name="className" 
      value="com.monsanto.ag.cf.service.jaxrpc.JaxRpcMessageEcho"/>
    <!--<wsdl/>-->
  </service>

Reply via email to