当前位置:  开发笔记 > 编程语言 > 正文

进程方法没有从主机收到完整的APDU命令?

如何解决《进程方法没有从主机收到完整的APDU命令?》经验,为你挑选了1个好方法。

主机将以下命令发送到applet以选择EF文件

00 A4 02 00 02 40 01

目的是选择带有ID的EF文件40 01(在命令的数据字段中指定).

但是当我调试进程(APDU apdu)方法时,APDU缓冲区只包含5个第一个字节00 A4 02 00 02.数据字段设置为00 00.所以我的applet无法使用EF ID选择EF.

你能告诉我上面的APDU命令有什么问题吗?



1> Michael Rola..:

根据卡(或仿真器),APDU缓冲区可能只包含APDU报头字段(CLA,INS,P1,P2,Lc).即使某些卡自动将命令APDU的数据部分填充到APDU缓冲区中,也不能依赖于该行为.

相反,您必须通过调用setIncomingAndReceive()APDU对象上的方法明确指示卡(或模拟器)检索数据部分.但请注意,只能针对案例3和案例4 APDU(即包含命令数据部分的APDU命令)调用此方法.如果没有命令数据字段,则不应调用此方法(案例1和案例2 APDU).


只能为case 3和case 4 APDU(即包含命令数据部分的APDU命令)调用`setIncomingAndReceive()`.您不应该为案例2 APDU(即具有Le字段但没有Lc字段的APDU)调用此方法.
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有