gpt4 book ai didi

java - 为什么 pksc11-tool 列出了 7 个对象,但 Java Keystore 只有一个

转载 作者:行者123 更新时间:2023-11-30 05:51:51 25 4
gpt4 key购买 nike

当我在命令行中执行操作时:

pkcs11-tool --login -O

我的智能卡上有 7 个对象:3 个公钥对象、3 个证书对象和 1 个私钥对象。

但是当我尝试用一​​小段 Java 代码执行相同操作时,我只找到一个证书:

 String pkcs11Config = "name = SmartCard\nlibrary = opensc-pkcs11.dll\nslot=0";
ByteArrayInputStream confStream = new ByteArrayInputStream(pkcs11Config.getBytes());
Provider prov = new sun.security.pkcs11.SunPKCS11(confStream);
Security.addProvider(prov);
String pin = "0000000";
KeyStore cc = KeyStore.getInstance("PKCS11", prov);
cc.load(null, pin.toCharArray());

// Look for certificate
Enumeration aliases = cc.aliases();
for (Enumeration e = aliases; e.hasMoreElements();) {
Object alias = aliases.nextElement();
System.out.println("Alias is : " + alias);
}

为什么我没有找到包含此代码的公钥或其他证书?

最佳答案

这是 JAVA 的 SunPKCS11 提供程序的标准行为。它的实现通常记录在“PKCS#11引用指南”中:

为您的 JAVA 版本选择正确的指南,并查看“KeyStore 要求”一章。您会发现 SunPKCS11 提供程序仅返回一对证书及其匹配的私钥(这是您的情况中的一个条目)的别名,并忽略所有其他对象。

关于java - 为什么 pksc11-tool 列出了 7 个对象,但 Java Keystore 只有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53762752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com