如何在 0x6310 状态后从 JavaCard 获取更多数据?

How to get further data from JavaCard after 0x6310 status?

我正在尝试在 Java 卡片上列出 applets/packages。我使用以下 APDU 命令获取列表:

80 F2 E0 00 02 4F 00 00

那个命令 returns 状态字 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]    ???

查看您在问题中显示的 command/response 序列以及您列出的事实 applets/packages,我认为这是关于 GlobalPlatform 卡管理的。

您正在使用的命令 (INS = 0xF2) 是 GET STATUS 命令。 P1 = 0xE0 表示您要列出颁发者安全域、应用程序(包括安全域)和可执行加载文件。 P2 = 0x00 表示你想得到第一个或所有出现的(即你想开始搜索)。

然后您将获得 0xF2 数据字节以响应该命令。状态字“6310”由 GP 卡规范定义,表示有更多数据可用。因此,您需要重复 GET STATUS 命令,直到收到无错误 ('9000') 状态字。要在“6310”警告条件后重复 GET STATUS 命令,您需要将 P2 更改为 0x01 以指示您想要获取下一次出现的情况。因此,为了响应接收到状态字“6310”,您将发出以下命令:

80 F2 E0 01 02 4F 00 00