我有一个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?
答案 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是否为空并且您正在正确阅读