如何将 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
有谁知道我的错误是什么
或者有什么解决办法?
根据卡返回的状态码,您的问题可能有以下几个原因:
- SW = 61XX;您必须向卡发送 GET_RESPONSE 命令。
- SW = 9000;你必须检查你的 C# 包装器。 (也许你必须在命令 apdu 中设置 Le)
- SW = 6F00;您的命令或卡片有问题
- SW = 其他;你必须在网上搜索它。
祝你好运
我有 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
有谁知道我的错误是什么 或者有什么解决办法?
根据卡返回的状态码,您的问题可能有以下几个原因:
- SW = 61XX;您必须向卡发送 GET_RESPONSE 命令。
- SW = 9000;你必须检查你的 C# 包装器。 (也许你必须在命令 apdu 中设置 Le)
- SW = 6F00;您的命令或卡片有问题
- SW = 其他;你必须在网上搜索它。
祝你好运