如何使用pyscard列出智能卡上的文件



我必须从智能卡中读取一个文件。该卡由一个数字行车记录仪编写,用于监测车辆的运动。我可以用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/)它们做着完全相同的事情,但它们是独立的程序。我需要将此功能集成到另一个软件中。

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

在这个答案中,我假设您参考的是根据第3821/85号ECC规定的行车记录仪驾驶员卡。在这种情况下,您认为智能卡使用ISO/IEC 7816-4 APDU进行通信是正确的,并且它公开了基于ISO/IEC7816-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以获取文件数据(偏移xxyyzz字节)

    00 B0 xx yy zz
    

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

相关内容

  • 没有找到相关文章

最新更新