Hello!
I'm trying to use WSS4J in combination with elliptic curve cryptography.
I installed BouncyCastle as provider.
The PublicKey is of type SHA256withECDSA stored in a JKS, created with
the Java keytool (Java 7). The whole setup works if I switch to RSA
keys, but when I'm using an EC key following exception occurs:
Caused by: java.security.InvalidKeyException: unknown key type passed to RSA
at
org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineInit(Unknown
Source)
at javax.crypto.Cipher.implInit(Cipher.java:685)
at javax.crypto.Cipher.chooseProvider(Cipher.java:737)
at javax.crypto.Cipher.init(Cipher.java:1113)
at javax.crypto.Cipher.init(Cipher.java:1053)
at
org.apache.ws.security.message.WSSecEncryptedKey.prepareInternal(WSSecEncryptedKey.java:257)
So far I found no way to set the algorithm used to create the key. The
problem occurs when WSSecEncryptedKey.prepareInternal(...) tries to
initialize the cipher
cipher.init(Cipher.WRAP_MODE, remoteCert.getPublicKey(), oaepParameterSpec);
Some hints or links to tutorials are really appreciated. So far I found
nothing helpful.
Best regards
Thomas Hofer