如何使用Java从智能卡中提取X509证书?

时间:2015-05-05 22:15:45

标签: java smartcard

我使用OmniKey 3121 reader并可以使用javax.smartcardio API将APDU命令发送到读卡器。我不确定是否有标准方法来访问存储在卡上的证书。用于读取证书数据的示例代码的指针将极大地帮助。

此外,SUN PKCS#11 library可以帮助从智能卡中提取证书吗?看来这个库可以帮助解析证书和提取字段值,但它是否也可以从智能卡中提取/导出证书本身?

3 个答案:

答案 0 :(得分:0)

[据我所知]这在很大程度上取决于卡上的applet实现以及卡实现本身。我的意思是,卡片程序员程序员指定您必须发送的命令以使用他/她的applet以及他们的响应形式。因此,如果没有生成/验证X509证书的applet文档,则无法编写客户端应用程序。

答案 1 :(得分:0)

X.509证书只是卡的被动数据。它永远不会被卡评估,但只是根据要求发送到外面。因此,访问证书的方法由外界确定,最可能分别根据PKCS 15或ISO 7816-15。正如已经指出的那样,附加文档至少是有用的,甚至是必要的(如果7816-15没有用)。

答案 2 :(得分:0)

我可以使用SUN PKCS#11提供程序库提取证书。以下文章中提供的详细信息有助于:http://www.developer.com/java/other/article.php/10936_3587361_8/Java-Applet-for-Signing-with-a-Smart-Card.htm