Java密钥库在不使用别名的情况下迭代Windows-MY

时间:2015-06-01 15:30:45

标签: java iteration keystore

有没有办法在不使用别名枚举的情况下迭代Windows-MY密钥库。我遇到的问题是我有一个智能卡,上面有两个带有相同别名的证书,所以当我尝试加载第二个证书时,我再次获得第一个证书。 目前我迭代证书如下:

try {
        KeyStore oks = KeyStore.getInstance("Windows-MY", MSProvider);
        oks.load(null, null);
        for (Enumeration l = oks.aliases(); l.hasMoreElements();) {
            certCount++;
            String al = (String) l.nextElement();
            Certificate cert = oks.getCertificate(al);//<<returns the same cert twice
            //do stuff
        }

感激不尽的任何帮助。

好的,事实证明这是Java Microsoft CryptoAPI KeyStore实现中的已知错误,其中友好名称仅用作别名 - 请参阅 here

该链接还包含我在下面添加的解决方案,以防链接中断

1 个答案:

答案 0 :(得分:3)

我在上述问题中提到的解决方案来自here

它涉及使用反射创建一个独特的别名。

setLineDashPattern (new float[]{3,1}, 0);