【问题标题】:Extended APDU Commands扩展 APDU 命令
【发布时间】:2020-09-27 10:15:50
【问题描述】:

大家好,

我正在开发 Contact card(CT) 读卡器,我需要在其中发送更多 256 字节的数据。 我已经在网上阅读了很多关于解决方案的内容,正如他们提到的 T=0 和 T=1 协议以及所有内容,甚至我还阅读了有关支持和能够向卡发送更大字节的扩展 APDU 命令。

在阅读了所有详细信息后,我搜索了很多扩展 APDU 命令的命令集,但我找不到。

因为,我有一张 SAM 卡 sim 大小的联系人卡、一张信用卡类型的联系人卡和一张 Mifare DesFire Ev2 4k 非接触式卡 (CL) 卡,我需要使用扩展的 APDU 命令在其中写入更大的数据字节。

经过大量搜索,我找不到任何 ISO-7816 扩展 APDU 命令,因此我可以在卡中写入如此大的数据字节。

那么,您能否分享一下扩展 APDU 命令集,通过这些命令集我可以在具有大数据字节的卡上执行写入和读取操作。

期待扩展 APDU 命令集 ....

非常感谢所有的支持。

提前致谢。

热烈的问候 萨钦

【问题讨论】:

    标签: smartcard apdu smartcard-reader contactless-smartcard smartcardio


    【解决方案1】:

    其实没有什么特殊的命令,你只需发送正确格式的 LC 和 LE 字段。如果命令需要两者,它们的扩展状态必须匹配。

    一些注意事项:

    • 确保相应的卡支持扩展长度。虽然 ATR 中的 EF.info 或卡功能可能会指示某些内容,但不能认为存在此指示是理所当然的,还必须另外找出实际限制。

    • 对于读卡器(内存卡)的驱动程序将 APDU 转换为其他内容的卡,当然对于那些应用非常有限的块大小的卡(MIFARE 经典,DesFire EV1),扩展 APDU可能不是一个选择。

    【讨论】:

    • 嗨,1。是的,我读到没有这样的特殊命令可用。我们需要将我们的 LC 参数从 1 字节(C0)扩展到 3 字节(C3C2C1),其中一个字节为零,表示扩展命令的 2 字节大小。 2. 是的,卡需要检查支持的扩展长度。可以让我知道我们如何从 ATR 中得出卡是否支持扩展长度的结论。 3. 实际上我使用的是 Mifare DesFire Ev2 4k 非接触式卡,它支持 RD/WR 的 ISO 7816 CT 卡命令。而且我需要在单个 APDU 命令中将 300 字节的数据卡到卡中。
    • Mifare DesFire 卡有 4k 的内存,我在单个 APUD 命令交换中尝试 300 字节的数据,所以我开始了解扩展的 APDU 命令集。在这里,我通过我了解扩展 APDU 的想法分享我的链接:askra.de/software/jcdocs/app-notes-2.2.2/extapdu.htmldocs.oracle.com/en/java/javacard/3.1/guide/… 如果你能分享我上面的这些命令,你会非常棒。
    • @SACHINRAJPUT:卡有 4 kByte 的事实并不意味着您可以读取任意大小;这就是我提到块结构的原因。卡功能在 ISO 7816-4(2013) 第 12.1.1.9 节、EF.ATR/INFO 第 12.2.2 节中进行了描述。
    • 我知道如果它有 4k 字节的内存,我们无法读取任意大小。
    • 我知道如果它有 4k 字节的内存,我们就不能写入任意大小。问题是,当我通过在线搜索写入更大的数据 256 字节时,我们可以使用扩展的 APDU 命令吗?由于 Mifare DesFire Ev2 4k 卡支持扩展长度命令,所以我正在尝试使用它。在单个 APDU 命令中直接发送所有数据。(Mifare Desfire Ev2 4k 也支持 ISO 7816 协议)。我将通过上面建议的部分,如果可以分享一些关于在至少或短的 APDU 命令执行中将更大的数据写入卡的细节,那就太好了。
    【解决方案2】:

    正如 guidot 回答的那样,如果您尝试发送超过 8 位范围 (1..255) 的内容,则只需对 Lc 和 Le 字段进行编码。更多信息请参考本页编码规则:Extended APDU encoding

    注意:如果要使用扩展格式,则 Lc 和 Le 都必须格式化。

    问候, 巴德里

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 2015-12-19
      • 1970-01-01
      • 2021-07-17
      相关资源
      最近更新 更多