我是 APDU 和智能卡通信的新手,我不知道如何成功发送 APDU 命令。例如,当我尝试此命令时:
00 A4 00 00 02 3F 00 00
我得到6E 00
回应。我试图弄清楚我必须为我的卡使用哪个类,但是对于我在 range 中尝试的每个类00-FF
,我总是得到“不支持的类”错误。
我认为这可能与卡中的某些身份验证有关,但我不知道如何正确执行此操作。
我使用了以下 Python (pyscard) 代码:
from smartcard.System import readers
from smartcard.util import toHexString
r = readers()
con = r[0].createConnection()
con.connect()
for c in range(0x00, 0xFF):
comm = [c, 0xA4, 0x00, 0x00, 0x02, 0x3F00, 0x00]
data, sw1, sw2 = con.transmit(comm)
if sw1 != 0x6e:
print comm
print 'Response:'
print data, '\n'
print 'Status:'
print '%x %x' % (sw1, sw2)
编辑:
卡的 ATR 是3B 04 49 32 43 2E