1

我正在尝试使用扩展长度 APDU 将长度为 0x2CF0 字节的数据写入卡上,它工作正常。但是我无法使用扩展长度的 apdu 从卡中读取相同数量的数据。

我收到以下错误“sun.security.smartcardio.PCSCException:未知错误 0x4d3”。

当我尝试加载大小为 0x1af0 字节的相对较小的数据时,我能够使用扩展长度的 apdu 从卡中成功写入和读取。

在扩展长度 apdu 中从卡中读取数据是否有任何限制?是否有不使用命令链接的解决方法?

PS:我使用的是 JCOP 2.4.2 R2 卡。

4

1 回答 1

2

典型的智能卡将要发送到读卡器的数据存储在 RAM 中。(除其他外,这更容易确保不会发送来自非易失性存储器的秘密数据)。智能卡芯片的 RAM 有限,您会感到幸运,您的较小尝试(超过 6 k)仍然有效。

不幸的是,在 ATR 中,卡只能指示它完全支持扩展长度的 APDU,但不能达到哪个边界(如果输出经过安全消息处理,这也可能会有所不同)。

典型的方法是,为命令提供某种内部分区,例如在基于文件系统的文件中,使用二进制文件的概念,并且该命令可以指定起始偏移量,请参阅此问题

链接通常无济于事;由于对于 MAC 计算,整个数据都需要存在,因此该架构通常也会在所有其他情况下强制执行此操作。

于 2016-07-22T12:44:22.593 回答