编写和读取智能卡的证书

拉尔斯

我们想要在应用程序中构建一个模块,该模块允许用户使用智能卡或USB令牌签署pdf / word文档。我们的应用程序是用Java编写的,因此使用Java解决方案会很好,但是如果使用另一种语言更方便,那么只要它在Windows上运行,我也不会介意使用它。

是否有任何库可以让我从智能卡读取和写入证书。我想避免进入低电平并将所有这些字节流发送到卡。但是,如果这是唯一的方法,那么如果somone可以给我链接到好的教程/示例,我将不胜感激。

在一些教程中,我还看到人们正在将证书从智能卡导入其本地密钥库中。他们为什么要这样做?我不能直接使用卡中的证书吗?

在此先感谢您的帮助。

Eugene Mayevski'Callback

通常通过PKCS#11 API(跨平台方式)访问智能卡上的证书,而在Windows上,可以通过Windows证书存储区访问它们。如注释中所述,尽管Java提供程序中存在一些限制/错误,但是Java本机支持两种方式。

但是,仅访问证书本身不足以对PDF或Word文档进行签名-这两种格式都包括将签名作为它们的组成部分,您需要编写代码以使用这些格式对文档进行签名,或者使用现有的库。对于PDF,它可以是iText(请注意许可证!)或我们的SecureBlackbox。两者都支持PKCS#11。对于Office文档,我不知道SecureBlackbox的替代方案。我们的库支持Java提供的PKCS11和Windows CertStore接口,以及我们自己的JNI模块。

关于“将证书导入密钥库”-这样做是为了枚举和搜索证书。这些密钥库在映射智能卡证书时是“虚拟的”。同样,完成这种映射后,私钥仍保留在硬件设备上,并且不会被复制(在大多数情况下,这在技术上是不可能的)。因此,无论如何都需要在设备上执行需要私钥的加密操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章