繁体   English   中英

JDK 1.6 与 IBM 1.5 上的 java.security.Keystore 别名

[英]java.security.Keystore aliases on JDK 1.6 vs IBM 1.5

我对 KeyStore.aliases(); 的枚举返回值有疑问。

FileInputStream is = new FileInputStream("/tmp/file.p12");
List<String> aliases = new ArrayList<String>();

KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(is, password.toCharArray());
is.close();

Enumeration<String> e=keystore.aliases();
while(e.hasMoreElements()) {
    // never reaches here because "e" is empty
    System.out.println(e.nextElement().toString());
    i++;
}

使用 Java 版本“1.6.0_22”Java(TM) SE 运行时环境(内部版本 1.6.0_22-b04) Java HotSpot(TM) 64 位服务器 VM 模式(内部版本 17.1-b03)

我得到一个空的枚举器

With java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build pxi32devifx-20100511a (SR11 FP2 )) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223ifx-20100510 (启用 JIT)J9VM - 20100509_57823_lHdSMr JIT - 20091016_1845ifx7_r8 GC - 20091026_AA)JCL - 20100511a

我能够获得所有别名。

如何使用 Sun/Oracle JDK6 检索所有商店 pkcs12 别名?

谢谢

对我来说,您的代码似乎没有任何问题,而且我认为 PKCS#12 密钥库应该在所有 JRE 的所有版本中都是可读的。

您是否尝试过使用 OpenSSL 来验证您的商店?

这是答案:

http://www-01.ibm.com/support/docview.wss?uid=swg1IZ77005

-- 问题总结 此缺陷将在以下位置修复:
1.4.2 SR14
5.0.0 SR12
6.0.0 SR9

修改了PKCS SafeContents.getSafeBags( )方法,以检测 SafeBag 数组何时为 null 并返回一个空的 SafeBag 数组。 此方法的 PKCS 调用者准备处理空的 SafeBag 数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM