【问题标题】:ACOSJ gives incorrect result from apdu.getOffsetCDataACOSJ 从 apdu.getOffsetCData 给出不正确的结果
【发布时间】:2018-07-12 00:00:45
【问题描述】:

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

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

我尝试过使用gppyApduTool,但每种情况都发生这种情况。

其他拥有 ACOSJ 设备的人能否确认在联系模式下apdu.getOffsetCData 始终返回 7?

【问题讨论】:

  • 谢谢马丁。是的,代表已确认 getOffsetCData 没有返回正确的值,并继续使用手动解决方法。这不是什么大问题,虽然令人沮丧。

标签: smartcard javacard apdu


【解决方案1】:

这对我来说确实像是一个实现错误。对于 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 没有返回正确的值并继续手动解决方法...

【讨论】:

  • 我想结束这个问题,但我已经发布了一个答案,以便其他开发人员可以找到该问题。
  • 对于那些对解决方法感兴趣的人,有这个要点gist.github.com/benbenbenbenbenben/…
猜你喜欢
  • 2012-08-27
  • 2017-12-14
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
相关资源
最近更新 更多