android是否支持.jks密钥库类型?

时间:2012-02-16 13:33:00

标签: android ssl keystore

我正在尝试使用服务器团队提供的密钥库连接到服务器。

在首先向服务器发送服务调用时,我使用以下api

创建了KeyStore实例
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());

它将密钥库类型返回为“BKS”。

服务器团队发送的密钥库类型为“.jks”(somename.jks)因此,我得到了异常“密钥存储的错误版本”。

我尝试通过以下方式将“JKS”传递给KeyStore的getInstance()

KeyStore keystore = KeyStore.getInstance("JKS");       

但是在这里我得到了异常“未找到KeyStore JKS实现”。

这是一段代码:

KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());

InputStream instream = mContext.getAssets().open("somename.jks");

try {
    trustStore.load(instream, "password".toCharArray());
} finally {
    try {
       instream.close();
    } catch(Exception ignore) {
    }
}

请指导我解决这个问题。

1 个答案:

答案 0 :(得分:25)

我认为Android支持'仅'BouncyCastle KeyStores(称为BKS)...... 您仍然可以使用Portecle

要将它从JKS转换为BKS,应该像魅力一样(至少在尝试将我的.CRT存储为BKS格式时,它对我有用!)

'only'意思,很容易在这里:p,否则你将不得不操纵东西