用BouncyCastle阅读JKS

时间:2016-11-29 14:00:05

标签: java bouncycastle keystore

我有一个Java KeyStore(JKS),我需要用BouncyCastle来阅读它。

我在提供商列表的顶部添加了BC提供商:

Security.insertProviderAt(new BouncyCastleProvider(), 1);

如果我以这种方式创建KeyStore:

final KeyStore keystore = KeyStore.getInstance("JKS", "BC");

我收到错误:

  

java.security.KeyStoreException:找不到JKS

如果我没有指定提供商,则会使用Sun提供商创建KeyStore,keystore.aliases()将包含EmptyEnumeration

正如我在this主题中看到的那样,BouncyCastle可以与JKS合作

如何使用BouncyCastle阅读JKS?

1 个答案:

答案 0 :(得分:4)

使用BKS而不是JKS

 KeyStore keystore = KeyStore.getInstance("BKS", "BC");

请参阅第6.4节 - https://www.bouncycastle.org/specifications.html

的密钥库
  

Bouncy Castle包有三个密钥库实现。   第一个“BKS”是一个密钥库,它将以与“JKS”密钥库相同的方式与keytool一起使用。

结果与Sun提供商相同。如果您得到一个空列表,请检查JKS是否为空并且您正在正确阅读