wss的Android密钥库位置

时间:2012-08-20 12:03:49

标签: android wss keystore android-keystore

我有一个Android应用程序,通过https和使用wss(wss4j)与安全的Web服务进行通信。在以前的桌面java应用程序中,一切正常,我使用物理.jks文件初始化所有内容,即:

props.setProperty("org.apache.ws.security.crypto.merlin.file", "c:/temp/conf/ihar.jks");
Crypto crypto = CryptoFactory.getInstance(props);

这一切在桌面上工作正常,但是,在Android设备上显然位置错误(“c:/temp/conf/ihar.jks”,当然,不存在)。所以我的问题是如何指定文件的位置?我认为它只需要一个刺激值,所以像“file:///android_asset/res/ihar.jks”这样的东西是可行的吗?

提前致谢, 伊恩哈里根

1 个答案:

答案 0 :(得分:0)

感谢您尝试使用wss-Client-for-android:)

我目前还没有可共享的项目(sry),但我可以就你的问题给出一些指示:

  • 至少在Gingerbread上没有对JKS的支持,所以使用BKS(bouncycastle)
  • clientkeystore.bks clienttruststore.bks 放入Android项目的 res / raw 文件夹中
  • 如何打开密钥库以访问证书或privateKey:

    import java.security.KeyStore;
    ...
    InputStream keyStoreStream = resources.openRawResource(R.raw.clientkeystore);
    KeyStore keyStore = KeyStore.getInstance(“BKS”);
    keyStore.load(keyStoreStream,“xregistry”.toCharArray());

  • 如何为sendSOAPMessage设置cryptoParams(this,message,endpoint,cryptoParams);

    SecCryptoParams cryptoParams = new SecCryptoParams();
    cryptoParams.put(SecCryptoParams.KEYSTORE,新的SecCryptoParam(R.raw.clientkeystore,KEYSTORE_PASSWORD)); cryptoParams.put(SecCryptoParams.TRUSTSTORE,新的SecCryptoParam(R.raw.clienttruststore,TRUSTSTORE_PASSWORD));

我希望你能从这里知道如何继续。
至于
彼得
(= PA =)
附:我认为这种标记对我来说太过分了:|