1

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

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

我试图通过 channel.transmit 函数发送的 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 smartcardio 库中可用的函数。

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

我收到语法错误,例如构造函数命令的参数无效。

4

1 回答 1

0

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

  • 与 READ/UPDATE BINARY 命令兼容
  • 文件大小> = 9 byres。
于 2020-08-19T21:53:34.133 回答