在ICS上使用充气城堡运行应用程序

时间:2012-07-13 04:00:12

标签: android security android-4.0-ice-cream-sandwich bouncycastle

我开发了一个使用弹力城堡提供程序生成密钥库的应用程序。在Gingerbread(2.3.3)上一切正常,直到我用ICS更新了我的测试设备。现在,它无法找到充气城堡供应商。 我得到了这个例外:

07-11 12:40:51.317 E / AndroidRuntime(8049):引起:java.lang.NoClassDefFoundError:org.bouncycastle.jce.provider.BouncyCastleProvider

我搜索了这个,并认为在ICS中,已经引入了一个信托商店,我想知道是否仍然可以在ICS中使用充气城堡。我见过一些与充气城堡供应商有关的线程,但无法得到解决方案。请帮忙。

谢谢, 迪帕克

3 个答案:

答案 0 :(得分:0)

尝试清除所有项目。

它应该工作。

答案 1 :(得分:0)

您必须在自己的APK中加入BouncyCastle。您不能依赖平台的BouncyCastle版本,因为它可能会在不同版本之间发生变化。

为了方便自己,只需使用专为Android应用程序制作的SpongyCastle包。另请参阅此question about SpongyCastle

答案 2 :(得分:0)

您不仅需要担心商店类型是BKS而不是JKS,还需要担心不同版本的BKS格式。我不是专家,所以不要将以下内容作为最后一个词,但基于一些实验和some reading,Android,至少在ICS(api 15)中使用了Bouncy Castle提供商的1.46版本。与此同时,最新版本的BounceCastle为1.47,即not backwards compatible

使用正确的格式(BKS)但错误的版本可能会给您错误:

Keystore format problem: Wrong version of key store.

来自Android框架,或来自keytool程序:

java.io.IOException: Wrong version of key store.