我在列出个人(Windows)密钥库中安装的所有可用证书时遇到问题。
我使用以下代码获取所有证书别名的列表:
public static void main(String[] args) {
try {
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null, null);
Enumeration<String> en = ks.aliases();
while (en.hasMoreElements()) {
String aliasKey = (String) en.nextElement();
System.out.println("---> alias '" + aliasKey + "'");
//TODO GET CERT ETC
}
} catch (Exception ioe) {
System.err.println(ioe.getMessage());
}
}
工作正常,列出了我最近安装的2个证书。
但是。
计算机重启后,代码只列出一个证书别名,但在系统中(使用certmgr.msc)我仍然有两个证书处于活动状态。
更多 - 已安装的证书来自智能卡: - ENCARD(使用ENIGMA CAPI) - UNIZETO CARD(不知道细节)
当我使用带有API的ENCARD时,似乎出现了问题。 重启后,UNIZETO卡仍能正常工作。
有什么想法吗?