使用java smartcardo函数向智能读卡器发送写入数据的APDU命令



我正在尝试使用java智能卡IO功能将数据写入HID Omnikey 5122设备中的非接触式卡。

我需要插入卡中的数据是{00 01 02 03}

APDU命令我正试图通过通道发送。传输功能为{FF D6 00 04 04 00 01 02 03}其中:

  • FF是CLS
  • D6是INS
  • 00是P1
  • 04为P2
  • 04是要更新的字节数
  • 00 01 02 03是我需要插入的数据

我无法通过以下函数正确构建APDU命令。有人能帮我吗。我正在使用java智能心脏库中可用的函数。

ResponseAPDU respApdu = channel.transmit(           
new CommandAPDU(0xFF,0xD6,0x00,0x04,0x04,
new byte[] {(byte) 0x00, 
(byte) 0x01, 
(byte)0x02,
(byte)0x03}));

我遇到语法错误,比如构造函数命令有无效的参数。

看起来您正试图发送一个UPDATE BINARY APDU来更新偏移量为4的透明文件(这是您在P1-P2中提供的(。您必须使用00h的CLA字节(如果该文件操作不需要使用安全消息(。由于P1-P2在您的案例中没有指定短文件标识符,因此您当前选择的文件具有

  • 与READ/UPDATE BINARY命令兼容
  • 使文件大小>9 byres

最新更新