from smartcard.System import readers
def scTransPrint(DATA):
'''
将发送APDU打印到屏幕上
'''
Len = len(DATA)
if(Len != 0):
print("<< ",end='')
for i in range(0, Len):
print("%02x" % DATA[i], end=' ')
print()
def scPrint(DATA, SW1=None, SW2=None):
'''
将响应APDU打印到屏幕上
'''
Len = len(DATA)
if(Len != 0):
print(">> ",end='')
for i in range(0, Len):
print("%02x" % DATA[i], end=' ')
if(SW1 != None or SW2 != None):
print()
print(" %02x %02x" % (SW1, SW2), end=' ')
print()
print()
r = readers()
print("设备:",r)
connection = r[0].createConnection()
connection.connect()
ATR = connection.getATR()
scPrint(ATR)
for i in range(0,10):
GET_CHALLENGE = [0x00, 0x84, 0x00, 0x00, 0x08]
scTransPrint(GET_CHALLENGE)
DATA, SW1, SW2 = connection.transmit(GET_CHALLENGE)
scPrint(DATA, SW1, SW2)