我有一个 ACR38 智能卡读卡器和一些符合 GP 规范 [02] 的 Javacard [2.1.1]。
据我所知,有两种APDU,短APDU[APDU 与LC
or/and LE
比。。。短255
] and 扩展APDU[APDU 与LC
or/and LE
比...更棒255
].
是对的吗?
我们发送 Short-APDUT=0
协议并发送扩展 APDUT=1
协议。
是对的吗?
我已成功将 Short-APDU 发送到我的卡。 [通过GPJ, GPShell, OpenSC 工具].
现在,我想知道:
1:如果我想使用扩展APDU,我的卡必须支持它吗?或者我的读者必须支持它?或两者!?或者所有卡和所有读卡器都支持短 APDU 和扩展 APDU?
2:如果它们必须支持 EXTENDED-APDU,我如何检查它们是否符合要求?
3:我是否需要其他工具或者我可以使用相同的 GPJ、GPShell 和 Opensc 工具来发送扩展 APDU?如何?
Update:我找到了以下数据here http://pcsclite.alioth.debian.org/ccid_extended_apdu.html,但如果有人给我更详细的数据,我将不胜感激:
为了能够使用扩展 APDU,您需要:
- 一张T=1张卡
- 以 TPDU 或扩展 APDU 工作的智能卡读卡器
智能卡读卡器可以使用 4 种不同的交换级别进行工作:
- 特点
- TPDU
- 短APDU
- 短 APDU 和扩展 APDU
人物等级:只有极少数读者使用这种方法。我不知道他们是否/如何支持扩展 APDU。
TPDU 级别:通过此交换级别,许多工作都是在驱动程序中完成的。特别是对扩展 APDU 的支持由驱动程序管理,并且 CCID 驱动程序实现它。
短 APDU:从驱动程序的角度来看,这些读取器易于使用,但仅限于短 APDU。那么就不可能支持扩展 APDU。
一些读者声称他们仅支持短 APDU,但在与制造商 Windows 驱动程序一起使用时可以使用扩展 APDU。也许 Windows 驱动程序将读卡器切换为 TPDU 模式或类似模式。这不是一个有记录的 CCID 功能,因此在我的 CCID 驱动程序中没有使用。如果您可以从读卡器制造商处获得相关信息,我可能会在我的驱动程序中包含对读卡器的扩展 APDU 的支持。
短APDU和扩展APDU:扩展 APDU 的支持由阅读器提供。
我认为根据上述更新部分,我得出的结论是卡和读卡器必须支持 EXTENDED-APDU。为了检查它们是否符合扩展 APDU,我必须搜索产品文档以及为我们提供以下列表的网站:支持扩展 APDU 的读卡器。这样对吗?