java pkcs 11 write_java – 从没有PIN /密码的PKCS11智能卡获取证书

这篇博客讨论了在Java中使用PKCS11和OpenSC时,如何在不输入PIN的情况下从智能卡中提取证书。虽然`pkcs11-tool`命令行工具可以在不提供PIN的情况下执行此操作,但作者发现Java的`KeyStore` API在获取证书时始终要求PIN。作者提供了代码示例,并询问是否存在配置选项或替代方法以避免在仅提取证书时请求PIN。
摘要由CSDN通过智能技术生成

摘要:当通过OpenSC在PKCS11上使用JCA时,在提取证书时会请求PIN.

我有一个需要使用智能卡签名的应用程序. OpenSC支持智能卡,因此我使用Java内置的pkcs11包装提供程序来使用它.出于功能原因,我需要在没有请求PIN的情况下获取卡中的证书.如果用户最终签名,那么当然需要PIN.

我看到我可以从命令行执行此操作而不提供PIN:

pkcs11-tool --module C:\WINDOWS\system32\opensc-pkcs11.dll -r -a 50-MDS_Signature -y cert -o p.cer

Using slot 1 with a present token (0x1)

到现在为止还挺好.

Oracle的文档明确指出“构建器将根据需要使用先前配置的回调处理程序提示输入密码”(http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#Login).但是,我的代码总是请求引脚作为子,因为我调用KeyStore ks0 = ksbuilder0.getKeyStore();即使只提取公共信息(如证书).

遵循代码的摘录:

private static final String PKCS11_LIB = "C:\\WINDOWS\\system32\\opensc-pkcs11.dll";

private static final String NAME = "OpenSCpkcs11";

private static final String SLOT = "1";

private static final String PIN = "11111111";

private static final St

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值