我正在尝试列出Java卡上的applet /包 . 我使用以下APDU命令来获取列表:
80 F2 E0 00 02 4F 00 00
该命令返回状态字 0x61xx
,因此我发送了 xx
字节的GET RESPONSE命令:
00 C0 00 00 xx
这给了我 xx
数据字节和状态字 0x6310
("more data available") . 接下来我应该发送什么来接收状态字所指示的更多数据?
APDU跟踪:
[SEND] 80 F2 E0 00 02 4F 00 00
[RECEIVE] 61 F2
[SEND] 00 C0 00 00 F2
[RECEIVE] <F2 bytes of data> 63 10
[SEND] ???
1 回答
查看您在问题中显示的命令/响应序列以及列出applet / packages的事实,我认为这是关于GlobalPlatform卡管理的 .
您正在使用的命令(INS = 0xF2)是GET STATUS命令 . P1 = 0xE0表示您要列出颁发者安全域,应用程序,包括安全域和可执行加载文件 . P2 = 0x00表示您想要获得第一次或所有事件(即您想要开始搜索) .
然后,您将获得0xF2数据字节以响应该命令 . 状态字'6310'由GP卡规范定义,表示有更多数据可用 . 因此,您需要重复GET STATUS命令,直到收到无错误('9000')状态字 . 要在'6310'警告条件之后重复GET STATUS命令,您需要将P2更改为0x01以指示您想要获得下一次出现 . 因此,响应于接收状态字'6310',您将发出以下命令: