ACOSJ从apdu.getOffsetCData提供不正确的结果

时间:2018-07-12 00:00:46

标签: smartcard javacard apdu

我正在使用u2f-ledger-fido参考代码,当我将其加载到ACOSJ中时,非接触式可以正常工作,但是在接触方式下,即使我发送了一个{2},我总是从getOffsetCData得到7总长度为4字节的原始APDU。

问题是,当我期望以联系方式加载证明证书时,由于偏移量不正确,我从头开始丢失了两个字节。

我已经尝试过使用gppyApduTool,在每种情况下都会发生这种情况。

使用ACOSJ设备的其他人是否可以确认在联系方式apdu.getOffsetCData下始终返回7?

1 个答案:

答案 0 :(得分:0)

对我来说,这确实是一个实现错误。对于4字节的ISO Case 1命令,正确的结果应该为5(即使不存在CDATA),因为ISO Case 1 APDU无法扩展长度。

getOffsetCData的API文档写得不好,并且没有明确指定结果,尤其是对于案例1和2,但是仅返回7(假设扩展长度)是不正确的。

The comment by Billy in the comments confirmed my suspicion that this is a bug.

  

...代表已确认getOffsetCData返回的值不正确,并继续进行手动解决方法...