0

我必须从智能卡中读出一个文件。该卡由监控车辆运动的数字行驶记录仪写入。我可以使用 psycard ( http://pyscard.sourceforge.net/user-guide.html )连接到智能卡读卡器,但是我不知道如何列出卡上的文件以及如何下载它们。我正在挖掘 ISO 标准,看起来我必须使用 ISO/IEC 7816 标准和专用文件(http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx)但我不知道如何从 pyscard 做吗?

已经有一些程序(例如:http ://en.tachoterminal.net/products/tachoterminal-reader/ )做同样的事情,但它们是独立的程序。我需要将此功能集成到另一个软件中。

我不知道要使用哪种协议。有人能帮帮我吗?

4

1 回答 1

2

在这个答案中,我假设您指的是根据 ECC 法规 No 3821/85 的行驶记录仪驱动程序卡。在这种情况下,智能卡使用 ISO/IEC 7816-4 APDU 进行通信并公开基于 ISO/IEC 7816-4 的文件结构是对的。

使用 pyscard 打开到卡的连接后,您可以调用该transmit()连接对象上的方法来收发 APDU(另请参阅Ludovic Rousseau 的博客

connection = reader.createConnection()
connection.connect()
data, sw1, sw2 = connection.transmit(cmd)

与行驶记录仪驱动卡的通信流程如下所示:

  1. 选择行驶记录仪应用程序

    00 A4 04 0C 06 FF544143484F
    

    对于此命令,cmd将是:

    cmd = [ 0x00, 0xA4, 0x04, 0x0C, 0x06, 0xFF, 0x54, 0x41, 0x43, 0x48, 0x4F ]
    
  2. 按文件标识符选择基本文件 ( xxxx)

    00 A4 02 0C 02 xxxx
    
  3. READ BINARY 以获取文件数据(zz偏移量的字节数xxyy

    00 B0 xx yy zz
    

您可以在法规文档(此处)中找到驱动卡协议和数据结构的完整规范。

于 2015-02-12T22:53:37.307 回答