使用 smartcardio 签署文件
Posted
技术标签:
【中文标题】使用 smartcardio 签署文件【英文标题】:Sign file using smartcardio 【发布时间】:2014-08-05 16:43:25 【问题描述】:我将开发一个 Java 类来验证智能卡 pin 并使用智能卡中包含的证书签署文档。到目前为止,我已经找到了一些将 APDU 命令发送到智能卡的基本示例。但是我对签署文件有点困惑。
我可以使用 APDU 命令从智能卡获取证书吗? 如果是这样,一旦我检索到证书,我应该使用哪个 API 来签署文件?非常感谢您对此有所了解
【问题讨论】:
【参考方案1】:是的,您通常可以从卡中获取证书。对于与 ISO/IEC 7816-4、8 和 15 兼容的基于文件的卡,您可以首先解析在 7816-15 文件结构中找到的信息,然后从文件系统中检索证书。这可以使用 7816-4 中指定的命令(松散地)完成。您还应该获取卡上私钥的参考。
当您拥有证书和私钥后,您可以向卡发送 7816-8 COMPUTE DIGITAL SIGNATURE
命令 APDU。
请注意,并非所有智能卡都符合这些规范。您可能需要发卡机构提供更多信息才能确切知道该怎么做。
【讨论】:
以上是关于使用 smartcardio 签署文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 javax.smartcardio 读取 NFC Mifare Ultralight 卡
如何使用 RFID 读卡器 (javax.smartcardio) 识别德国身份证?
在 Android 上使用 javax.smartcardio 包?
通过 javax.smartcardio 连接到 micro SD