“Windows-MY”密钥库不会列出所有可用的别名

时间:2015-04-10 07:17:17

标签: java cryptography digital-signature cryptoapi mscapi

我在列出个人(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卡仍能正常工作。

有什么想法吗?

0 个答案:

没有答案