首页 文章

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

提问于
浏览
3

我正在尝试列出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 回答

  • 2

    查看您在问题中显示的命令/响应序列以及列出applet / 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
    

相关问题