gpt4 book ai didi

java - 使用 javax.smartcardio 时,DESfire EV1 封装 APDU for PPS 命令的问题

转载 作者:行者123 更新时间:2023-12-01 13:30:11 26 4
gpt4 key购买 nike

我正在用 java 编写一个在读卡器端的软件,用于与 MiFare DESfire EV1 卡进行通信。我正在使用这个javax.smartcardio。我设法创建一个 channel 并发送 native DESfire 命令的包装 APDU。例如,我设法读取文件甚至进行身份验证。

最近几天我一直在努力解决的问题是尝试在 4 级发送 PPS 命令,以便能够设置读卡器和卡之间的波特率。

原生PPS命令如下:

DESFIRE command code 0xD0
DESFIRE command parameter 0x11 0x0A

如果我与之前构建 ISO 7816-4 包装的 APDU 的技术一致,那么它应该看起来像这样 0x90 0xD0 0x00 0x00 0x2 0x11 0x0A 0x00

这是该命令的响应:

SW1 : 0x91
DESFIRE response data : 0x1C
SW2 : none

0x1C代表ILLEGAL_COMMAND_CODE;语法对我来说似乎是正确的,为什么我不能发送此命令?

最佳答案

通过 APDU 包装,您只能包装 DESFire 命令。 PPS 命令是底层 ISO 14443-4 层的一部分。事实上,PPS 命令是 ISO 14443-4 传输协议(protocol)初始化阶段的一部分。然而,一旦您可以传输 APDU,ISO 14443-4 传输协议(protocol) (ISO-DEP/T=CL) 就已经建立。所以此时您无法使用PPS命令更改任何协议(protocol)参数。

一般情况下,您无法通过 javax.smartcardio 更改这些参数,除非智能卡读卡器实现某些特定接口(interface),用于以不同的数据速率重新激活卡。

关于java - 使用 javax.smartcardio 时,DESfire EV1 封装 APDU for PPS 命令的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com