gpt4 book ai didi

java - 从智能卡获取 X509Certificates,无需身份验证

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:37 26 4
gpt4 key购买 nike

我想在不登录(无需 PIN)的情况下从我的智能卡检索 X509Certificate 列表。

我的代码如下:

    String conf = args[0];
Provider p = new sun.security.pkcs11.SunPKCS11(conf);
Security.addProvider(p);

KeyStore ks = KeyStore.getInstance("PKCS11");

1) ks.load(null, null);
2) ks.load(null, "".toCharArray());

第一个测试 (1) 因以下 StackTrace 失败:

Exception in thread "main" java.io.IOException: load failed
at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:763)
at java.security.KeyStore.load(Unknown Source)
at TestPKCS11.main(TestPKCS11.java:29)
Caused by: javax.security.auth.login.LoginException: no password provided, and n
o callback handler available for retrieving password
at sun.security.pkcs11.SunPKCS11.login(SunPKCS11.java:1184)
at sun.security.pkcs11.P11KeyStore.login(P11KeyStore.java:849)
at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:751)

第二个 (2) 失败并显示:

Exception in thread "main" java.io.IOException: load failed
at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:763)
at java.security.KeyStore.load(Unknown Source)
at TestPKCS11.main(TestPKCS11.java:30)
Caused by: javax.security.auth.login.LoginException
at sun.security.pkcs11.SunPKCS11.login(SunPKCS11.java:1238)
at sun.security.pkcs11.P11KeyStore.login(P11KeyStore.java:849)
at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:753)
... 2 more
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_PIN_INVALID
at sun.security.pkcs11.wrapper.PKCS11.C_Login(Native Method)
at sun.security.pkcs11.SunPKCS11.login(SunPKCS11.java:1222)

我的配置如下:

name=SmartCard
slotListIndex = 0
library=C:\gclib.dll
attributes(*,CKO_PUBLIC_KEY,*)={ CKA_TOKEN=true }

注意:我有一个本地工具(Classic Client ToolBox),不需要 PIN 码即可显示证书。

最佳答案

看起来Sun的提供商总是调用Login,无论您是否想登录。坦率地说,唯一的选择可能是改变方法,例如使用其他方式访问 PKCS#11 设备(例如,我们的 SecureBlackbox 中有这样的机制)。

另一方面,在不登录设备的情况下检索信息的可能性是一种信息泄漏,因此获取列表或证书本身的可能性取决于特定设备。在您的设备上适用的内容可能不适用于其他设备。

关于java - 从智能卡获取 X509Certificates,无需身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500375/

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