【问题标题】:Wrong version of Keystore on Android 4.0.3Android 4.0.3 上的密钥库版本错误
【发布时间】:2015-09-16 22:28:34
【问题描述】:

我的代码可以创建自己的信任库以连接到私人服务器。

当我在装有 Android 4.0.3 的 HTC Desire C 上运行此程序时,出现异常:IOException: Wrong version of key store。在:

trustStore = KeyStore.getInstance("BKS");
InputStream in = getResources().openRawResource(R.raw.keystore);
trustStore.load(in, "xxxpasswordxxx".toCharArray());

在它执行 load() 的最后一行。

当我在以下设备上运行代码时,它运行良好:

Nexus 7 和 Android 4.4.4、Nexus 4 和 Android 5.1、HTC One X+ 和 Android 4.2.2

所有设备的 APK 都相同(并且密码正确)。关于我应该尝试什么来修复它的任何建议?

【问题讨论】:

    标签: android keystore truststore


    【解决方案1】:

    老问题,但没有回答... 对于仍在寻找的人,答案就在那里: Wrong version of keystore on android call

    因为 android 4.03- 使用的是 BKS-V1(旧版本)而不是 BKS 作为其他...

    【讨论】:

      【解决方案2】:

      也许尝试将您的密钥库转换为 pkcs12 密钥库。

      openssl pkcs12 -export -inkey yourKeyFile.key -in yourCertKey.crt -out yourPkcs12Key.p12
      

      然后使用

      trustStore = KeyStore.getInstance("PKCS12");
      InputStream in = getResources().openRawResource(R.raw.keystore);
      trustStore.load(in, "xxxpasswordxxx".toCharArray());
      

      有时对我有用。

      【讨论】:

        猜你喜欢
        • 2012-06-22
        • 1970-01-01
        • 2013-12-21
        • 2013-05-22
        • 2015-09-13
        • 2020-11-14
        • 2011-10-19
        • 1970-01-01
        相关资源
        最近更新 更多