我正在开发一个 C# Java 卡(智能卡)程序,并且我正在尝试利用github 上的PCSC-sharp库。
这是我的请求的“short / tl;dr”版本: PCSC-sharp 示例涵盖了 Iso7816 Case2Short。有人可以纠正我下面的示例,或者为我提供 Iso7816 Case3Short(命令数据。无响应数据)和 Case4Short(命令数据。预期响应数据)的示例吗?
这是我的请求的“长”版本: 在 Java 卡上,我使用标准和自定义 APDU 命令,并且我可以使用 python 脚本(使用智能卡库)成功调用这些命令。换句话说,我已经证明 Java Card 命令有效。
我现在的目标是使用 PCSC-sharp 执行相同的命令,但当我包含数据时(即 APDU LC > 0),我失败了。
这是 github 上的示例。请注意,我只需更改阅读器名称、指令(选择文件而不是获取挑战)和 Le 即可使用此功能。
var contextFactory = ContextFactory.Instance;
using (var ctx = contextFactory.Establish(SCardScope.System)) {
using (var isoReader = new IsoReader(ctx, "ACME Smartcard reader",
SCardShareMode.Shared, SCardProtocol.Any, false)) {
var apdu = new CommandApdu(IsoCase.Case2Short, isoReader.ActiveProtocol) {
CLA = 0x00, // Class
Instruction = InstructionCode.GetChallenge,
P1 = …Run Code Online (Sandbox Code Playgroud)