如何将 java 上的智能卡 APDU 命令转换为 C#?

How to convert smart card APDU command on java to c#?

我有 Java 代码可以很好地从智能卡读取数据:

byte[] dataSetEF12 = {0, -80, -110, 0, 0};
apdu = new CommandAPDU(dataSetEF12);
ResponseAPDU response = cardChannel.transmit(apdu);
byte[] data = response.getData();

但我在 C# 上需要这个并且我写了这个:

apdu = new APDUCommand(0x00, 0xB0, 0x92, 0x00, null, 0x00);
APDUResponse response = cardReader.Transmit(command);
byte[] data = response.Data;

但是在 c# 上 response.Data 等于 null

有谁知道我的错误是什么 或者有什么解决办法?

根据卡返回的状态码,您的问题可能有以下几个原因:

  1. SW = 61XX;您必须向卡发送 GET_RESPONSE 命令。
  2. SW = 9000;你必须检查你的 C# 包装器。 (也许你必须在命令 apdu 中设置 Le)
  3. SW = 6F00;您的命令或卡片有问题
  4. SW = 其他;你必须在网上搜索它。

祝你好运