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

发布于 2024-11-04 17:15:26 字数 939 浏览 5 评论 0原文

我对 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,混合模式)

我得到一个空枚举

器 java版本“1.5.0” Java(TM) 2 运行时环境,标准版(内部版本 pxi32devifx-20100511a (SR11 FP2 )) IBM J9 VM(内部版本 2.3、J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223ifx-20100510(启用 JIT) J9VM - 20100509_57823_lHdSMr 即时 - 20091016_1845ifx7_r8 GC-20091026_AA) JCL - 20100511a

我能够获取所有别名。

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

谢谢

I've a problem with the enum return value of 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++;
}

With
Java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

I get an empty enumerator

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 enabled)
J9VM - 20100509_57823_lHdSMr
JIT - 20091016_1845ifx7_r8
GC - 20091026_AA)
JCL - 20100511a

I am able to get all the aliases.

How can I retrieve all the store pkcs12 aliases with Sun/Oracle JDK6?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑凤梨 2024-11-11 17:15:26

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

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

There doesn't appear to be anything wrong with your code to me, and I'd have thought that PKCS#12 keystores should be readable across all versions of all JREs.

Have you tried using OpenSSL to verify your store?

小矜持 2024-11-11 17:15:26

答案如下:

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 数组。

here's the answer:

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

--
Problem conclusion
This defect will be fixed in:
1.4.2 SR14
5.0.0 SR12
6.0.0 SR9

The PKCS SafeContents.getSafeBags( ) method was modified to detect when the SafeBag array is null and to return an empty SafeBag array instead. PKCS callers of this method are prepared to handle an empty SafeBag array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文