Android 4.0.3上的Keystore错误版本

时间:2015-06-30 08:13:09

标签: android keystore truststore

我有代码创建自己的Trust Store以连接到私人服务器。

当我在Android 4.0.3的HTC Desire C上运行时,我得到异常:IOException:密钥库的错误版本。于:

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都相同(并且密码正确)。关于我应该尝试什么来解决它的任何建议?

2 个答案:

答案 0 :(得分:1)

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

implicit class RichInt(private val i: Int) extends AnyVal {
  def squared = i * i
}

然后使用

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

有时为我工作。

答案 1 :(得分:0)

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

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