gpt4 book ai didi

java - 从智能卡写入和读取证书

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:09 24 4
gpt4 key购买 nike

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

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

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

预先感谢您的帮助。

最佳答案

智能卡上的证书通常通过 PKCS#11 API(跨平台方式)访问,而在 Windows 上,它们可以通过 Windows 证书存储访问。正如评论中提到的,Java 本身支持这两种方式,尽管 Java 提供程序中存在一些限制/错误。

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

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

关于java - 从智能卡写入和读取证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503573/

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