如何使用 pyscard 列出智能卡上的文件
Howto list files on a smartcard with pyscard
我必须从智能卡中读出一个文件。该卡由监控车辆运动的数字行驶记录仪写入。我可以使用 psycard (http://pyscard.sourceforge.net/user-guide.html) but then I don't know how to list files on the card and how to download them. I was digging the ISO standards and it looks like I have to use ISO/IEC 7816 standard, and dedicated files (http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx) 连接到智能卡 reader,但我不知道如何从 pyscard 连接到智能卡?
已经有程序(例如:http://en.tachoterminal.net/products/tachoterminal-reader/)做完全相同的事情,但它们是独立的程序。我需要将此功能集成到另一个软件中。
我不知道该使用哪种协议。有人可以帮我吗?
在这个回答中,我假设您指的是符合 ECC 第 3821/85 号规定的行驶记录仪驱动卡。在那种情况下,智能卡使用 ISO/IEC 7816-4 APDU 进行通信并且它公开基于 ISO/IEC 7816-4.
的文件结构是正确的
使用 pyscard 打开与卡的连接后,您可以调用该连接对象上的 transmit()
方法来收发 APDU(另请参阅 Ludovic Rousseau's blog:
connection = reader.createConnection()
connection.connect()
data, sw1, sw2 = connection.transmit(cmd)
与行驶记录仪驱动卡的通信流程如下:
SELECT 行驶记录仪应用
00 A4 04 0C 06 FF544143484F
对于此命令,cmd
将是:
cmd = [ 0x00, 0xA4, 0x04, 0x0C, 0x06, 0xFF, 0x54, 0x41, 0x43, 0x48, 0x4F ]
SELECT 文件标识符的基本文件 (xxxx
)
00 A4 02 0C 02 xxxx
READ BINARY 以获取文件数据(zz
字节偏移 xxyy
)
00 B0 xx yy zz
作为规范文件的一部分,您可以找到驱动卡协议和数据结构的完整规范 (here)。
我必须从智能卡中读出一个文件。该卡由监控车辆运动的数字行驶记录仪写入。我可以使用 psycard (http://pyscard.sourceforge.net/user-guide.html) but then I don't know how to list files on the card and how to download them. I was digging the ISO standards and it looks like I have to use ISO/IEC 7816 standard, and dedicated files (http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx) 连接到智能卡 reader,但我不知道如何从 pyscard 连接到智能卡?
已经有程序(例如:http://en.tachoterminal.net/products/tachoterminal-reader/)做完全相同的事情,但它们是独立的程序。我需要将此功能集成到另一个软件中。
我不知道该使用哪种协议。有人可以帮我吗?
在这个回答中,我假设您指的是符合 ECC 第 3821/85 号规定的行驶记录仪驱动卡。在那种情况下,智能卡使用 ISO/IEC 7816-4 APDU 进行通信并且它公开基于 ISO/IEC 7816-4.
的文件结构是正确的使用 pyscard 打开与卡的连接后,您可以调用该连接对象上的 transmit()
方法来收发 APDU(另请参阅 Ludovic Rousseau's blog:
connection = reader.createConnection()
connection.connect()
data, sw1, sw2 = connection.transmit(cmd)
与行驶记录仪驱动卡的通信流程如下:
SELECT 行驶记录仪应用
00 A4 04 0C 06 FF544143484F
对于此命令,
cmd
将是:cmd = [ 0x00, 0xA4, 0x04, 0x0C, 0x06, 0xFF, 0x54, 0x41, 0x43, 0x48, 0x4F ]
SELECT 文件标识符的基本文件 (
xxxx
)00 A4 02 0C 02 xxxx
READ BINARY 以获取文件数据(
zz
字节偏移xxyy
)00 B0 xx yy zz
作为规范文件的一部分,您可以找到驱动卡协议和数据结构的完整规范 (here)。