使用 WINSCRD 传递 APDU 命令

Posted

技术标签:

【中文标题】使用 WINSCRD 传递 APDU 命令【英文标题】:Pass APDU command with WINSCARD 【发布时间】:2012-12-09 01:27:12 【问题描述】:

以下是来自 winscard API 的函数

[DllImport("winscard.dll")]        
public  static extern int SCardTransmit (
                                          int hCard, 
                                          ref SCARD_IO_REQUEST piosendRequest, 
                                          ref byte SendBuff, 
                                          int SendBuffLen, 
                                          ref SCARD_IO_REQUEST pioRecvRequest, 
                                          ref byte RecvBuff, 
                                          ref int RecvBuffLen);

但第三个参数接受类似于类似的 APDU 命令 FF B2 A4 03 0E 所以我想知道如果我已经以字符串形式将该数据以字节形式传递给该参数。我知道这可能是复制,但我未能找到解决方案。任何链接或其他信息都会很有帮助。提前致谢。

【问题讨论】:

应该是byte[] 【参考方案1】:

这很简单。你有一个十六进制字符串,所以你需要一个十六进制编码器/解码器包来将这些类型的字符串转换为字节数组。

请注意,给定的十六进制字符串看起来不像我听说过的任何 APDU。

【讨论】:

以上是关于使用 WINSCRD 传递 APDU 命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 APDU 命令以线性固定结构写入记录

使用 APDU 命令获取卡的一些信息

APDU 命令异步调用

对理解 C-APDU 和 R-APDU 命令的疑问

使用 APDU 命令克隆 NFC 电子护照

编码 APDU 命令以验证 PIN 的问题