- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
那里
我不明白为什么没有出现“类不受支持”错误。
首先我的源码和APDU命令如下
<源
package SelectFileTest;
import javacard.framework.*;
public class SelectFileTest extends Applet{
public static void install(byte[] bArray, short bOffset, byte bLength) {
new SelectFileTest(bArray, bOffset, bLength);
}
private SelectFileTest(byte bArray[], short bOffset, byte bLength){
register();
}
public void process(APDU apdu){
byte buf[] = apdu.getBuffer();
if (buf[1]==(byte)0xA4) {
if((buf[0]&0xff)!=0x00) // Class Check (Question)
ISOException.throwIt((short)0xfff5);
if(selectingApplet())
{ }
else
ISOException.throwIt((short)0xffff); // 6881
}
return ;
}
}
[Card-1C] <== 00 A4 04 00 07 A0000000031234
[Card-1R] ==> 9000
[Card-2C] <== 00 A4 00 00 02 F801
[Card-2R] ==> FFFF // Expected
[Card-3C] <== 01 A4 00 00 02 F801
[Card-3R] ==> 6881 // (Question) Expect the SW 'FFF5'
[Card-4C] <== 08 A4 00 00 02 F801
[Card-4R] ==> FFF5 // Expected
通过命令 3 和 4,由于源代码中的“Class Check”行,卡必须输出 SW“FFF5”。但是,它在 CLA=01~07 时输出 6881(3R)(可能是 JCRE)。
我知道一旦选择了小程序,JCRE 就会将所有后续 APDU 命令转发到所选小程序。因此,我认为第三个响应(3R)也像 4R 一样是“FFF5”。我不明白,也找不到代码中的错误。
希望您提出宝贵意见。提前致谢。
最佳答案
在 CLA 字节中,逻辑 channel 在较低位中指示。您正在选择一个逻辑 channel ,平台然后尝试将其发送到正确的小程序。然而,除了基本 channel (ID = 0)之外,它不会找到任何开放 channel 。所以平台会代替Applet来处理错误。这发生在 Applet 收到 APDU 之前;小程序将不会收到通知。
请注意,INS: MANAGE CHANNEL
也可能发生这种情况。我可能不需要解释 SELECT by AID 最初也是由运行时环境处理的。
有关逻辑 channel 及其使用方式的更多信息可以在 ISO/IEC 7816-4 中找到。
关于class - (Javacard) APDU命令类错误测试 'Select File',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024550/
嗨,我是 java 卡新手,我有以下数据 CLA '00' INS 'A2' nb not real value P1 '00' P2 '00' LC '08' Data In 'EF08' L
像这样将GPO命令定义为APDU命令: CLA INS P1 P2 Lc Data Le 80 A8 00 00 Lc Data 00 因此,缺少的部分是 Lc 和数据,我们必须根据PDOL的 P
我正在尝试手动生成 AC,我有一个生成 AC 的工具,但我想自己生成它以了解其算法。 我的计算对于 Discover 卡来说没问题,但对于 MasterCard 却失败了。据我了解,用于生成AC的数据
我需要通过芯片读取每张可能的卡的 PAN 码。在我的工作中,我只能使用 C,而且我没有可以帮助我完成这项无聊任务的例程。这就是我使用的 APDU 的步骤: 1) 选择 1PAY.SYS.DDF01 0
我正在编写 Java Applet。我需要使用 APDU 命令将预生成的 RSAPrivateCrtKey 上传到小程序。 我在我的电脑上生成 key 。接下来我在 privateKeyBuffer
我一直在使用有线智能卡读卡器 SDK,其中调用是同步的。最近一直在尝试蓝牙接口(interface),但 APDU 命令是异步的,因此我们无法解释为形成下一个 APDU 命令而发送的调用的响应。 任何
问题:假设有一个 Applet 的多个实例。当前选择了一个Applet 实例。是否可以将任何 APDU 命令从选定的 Applet 传递到另一个 Applet 实例?我在JavaCard API 3.
主机发送以下命令给小程序选择EF文件 00 A4 02 00 02 40 01 目的是选择 ID 为 40 01(在命令的数据字段中指定)的 EF 文件。 但是当我调试 process(APDU ap
我对符合 ISO7816-4 标准的首款行业间 APDU 感兴趣。这样的 APDU 可以/允许的最大长度是多少? 我能想到的最长的APDU应该是扩展长度的ISO case 4 APDU。这意味着我们有
我的新 javacard 上有一个小程序的 AID 列表。每个小程序的用途是什么?以及如何获得每个命令都支持的 APDU 命令列表?我需要小程序的 .cap 文件所用的 java 源代码吗?我的另一个
我创建了一个包(AID=0102030405),其中包含两个小程序。 这是第一个小程序 (AID=01020304050202020202) 的程序,它将 bArray 的内容存储到静态字段并在 pr
我正在尝试与显然是根据 EMV 规范实现的 SAM 进行通信。每当我问他们问题时,开发人员只会向我推荐 EMV 书籍。一瘸一拐地通过 EMV 卡和终端规范后,我终于设法一个接一个地发送命令,并使用 C
我正在使用javax.smartcardio通过CardChannel.transmit(CommandAPDU command)向智能卡发送APDU命令。 但是,似乎在某处定义了超时,因为当我没有收
我刚刚开始制作一个使用主机卡模拟 (HCE) 的应用程序,并且我已经完成了各种零碎工作。我需要该应用程序使手机表现得像一张卡,而另一部手机表现得像 NFC 读取器并扫描它,反之亦然,以便交换一小段信息
我正在尝试从智能卡中的文件中读取数据,我正在使用以下 APDU 命令 00 B0 00 02 00 但是我得到了这样的回应: A1 1B 4F 0C A0 00 00 00 77 02 08 05 0
我正在使用 JCard sim,java 卡版本 2.2.2,我想知道 .scr 文件如何与 .java 文件相关联。 (NetBeans IDE 上的 Java 卡模拟器。我没有使用实际的智能卡)。
我正在使用 javax.smartcardio 包来开发与智能卡相关的应用程序。我想发送伪 ADPU 命令来设置阅读器的 LED/LCD 状态。 我发现向读卡器/卡发送 APDU 命令的唯一方法是 C
如您所知,Gloabal Platform Card Specification定义了一个名为 Get Data 的命令来从智能卡中检索一些信息。 GlobalPlatformPro是与智能卡通信的流
哪个 APDU 命令获取卡 ID 的 7 个字节? 我使用带有 ISO14443 层的 T=CL (ISO7816) 协议(protocol)。在检测卡上,我只能看到卡 ID 的 4 个字节。 我发现
我想发送一个响应 APDU,其中包含响应数据字段以及非 0x9000 的状态字。考虑到我对 ISO 7816-4 的理解,这通常应该是可能的。 但是,每当我指定返回数据并尝试发送它时,我看不到任何显式
我是一名优秀的程序员,十分优秀!