智能卡未响应重置

The smart card is not responding to a reset

我一直在研究智能卡的读/写操作,我相信我的卡是sle_4428并且我使用的是HID OMNIKEY 3121 USB 卡Reader。问题是,当我在卡 reader 中输入卡时,我的程序响应为 智能卡未响应重置 ,错误代码为 0x80100066,而不是连接卡并获得 ATR...

[编辑] 如果我只执行读取操作,它工作正常。当我执行写入操作然后重新插入卡时,它停止响应,并显示上述消息。我用来写的APDU命令是:FF D6 00 00 #(01 02)

您的问题是 HID Omnikey 无法正确"cold"重置智能卡。

使用以下 Java 代码片段,您可以重置 HID Omnikey reader CL。

import jnasmartcardio.Smartcardio;

import javax.smartcardio.*;
import javax.xml.bind.DatatypeConverter;

public class OMNIKEYConfiguration {

public static void main(String... args) throws Exception {
    TerminalFactory factory = TerminalFactory.getInstance("PC/SC", null, new Smartcardio());

    String terminalName = "OMNIKEY CardMan 5x21-CL 0";
    CardTerminal terminal = factory.terminals().getTerminal(terminalName);

    // Connect directly to reader
    Card card = terminal.connect("DIRECT");

    int code = 3224092; // #define IOCTL_CCID_ESCAPE SCARD_CTL_CODE(3500)
    byte[] command = DatatypeConverter.parseHexBinary("0300"); // 0300 - ON; 0301 - OFF
    byte[] resp = card.transmitControlCommand(code, command);
    System.out.println(DatatypeConverter.printHexBinary(resp));

    card.disconnect(true);
}
}

使用命令“0x0300”打开天线,否则使用“0x0301”关闭天线。

对于冷复位调用 OFF 然后 ON 命令。