使用javax.smartcardio从SmartCard读取证书

时间:2014-08-07 07:48:35

标签: smartcard apdu

我需要检索兼容的SmartCard ISO 7816中包含的证书。到目前为止,我已经能够使用APDU命令验证PIN,但我需要一些指针来检索证书。我尝试过以下SELECT APDU,它应该选择第一个文件(据我所知):

ResponseAPDU resp = ch.transmit( new CommandAPDU(0X00, 0XA4, 0X00, 0X90, new byte[]{0x54, 0x01}) );

然而,这会产生'6a82',即找不到文件。我需要为它提供文件名吗?实际上我知道证书名称,但显然是String格式。是否有通用的APDU命令来检索智能卡中包含的第一个文件?
谢谢!

1 个答案:

答案 0 :(得分:2)

您刚刚尝试选择文件ID为5401(十六进制)的文件。该文件似乎不存在,但您可能需要先选择一个应用程序(使用SELECT by name和AID作为“名称”)。 ISO / IEC 7816-4兼容卡不使用文件名。

该卡可能支持ISO / IEC 7816-15,其中包含一个结构,其中包含对存储在卡上的数据的引用。可能是您的卡支持这样的结构,但没有更多的信息,很难说。

PKCS#15的AID是A000000063 504b43532d3135,ISO / IEC 7816-15 AID是 - euh - 行动中缺失...如果您需要,请发表评论:)