def _parseAndRun(sList): card = Card.Card() apdu = APDU(card) import re apduList = [] for e in sList: cmd = e[1] p1 = re.compile('\(\w.*?\)') brckList = p1.findall(cmd) for f in brckList: if d.has_key(f[1:-1]): cmd = cmd.replace(f,d[f[1:-1]]) elif f[1:-1] == 'MAC': if '8052' in cmd: mac = _CalcMac(type= 'load',res = apdu.res) else: mac = _CalcMac(type= 'purchase',res = apdu.res) cmd= cmd.replace(f,mac) else: print f assert 0,'Unknow ELement!' p = re.compile('\(.*\)') brckList = p.findall(cmd) if len(brckList)> 0: cmd = cmd.replace(brckList[0],brckList[0][1:-1]) if '#' in cmd: cmd = cmd.replace('#','%02X'%(len(cmd[cmd.index('#'):])/2)) apduList.append(cmd) apdu.send(cmd) assert apdu.sw == '9000'
def _parseAndRun(sList): card = Card.Card() apdu = APDU(card) import re apduList = [] for e in sList: cmd = e[1] p1 = re.compile('\(\w.*?\)') brckList = p1.findall(cmd) for f in brckList: if d.has_key(f[1:-1]): cmd = cmd.replace(f, d[f[1:-1]]) elif f[1:-1] == 'MAC': if '8052' in cmd: mac = _CalcMac(type='load', res=apdu.res) else: mac = _CalcMac(type='purchase', res=apdu.res) cmd = cmd.replace(f, mac) else: print f assert 0, 'Unknow ELement!' p = re.compile('\(.*\)') brckList = p.findall(cmd) if len(brckList) > 0: cmd = cmd.replace(brckList[0], brckList[0][1:-1]) if '#' in cmd: cmd = cmd.replace('#', '%02X' % (len(cmd[cmd.index('#'):]) / 2)) apduList.append(cmd) apdu.send(cmd) assert apdu.sw == '9000'
def _setOPEN(): card = Card.Card() apdu = APDU(card) apdu.send('00A4040000') assert apdu.sw == '9000' gp = GP.GP('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') gp.Authentication(card, '01') gp.Send('80E64000'+LV('00000000'+LV('EF'+LV('A0'+LV('86'+LV('A0'+LV('80'+LV('0411223344')+'81'+LV('20')+'82'+LV('0800')+'83'+LV('02535A')+'84'+LV('C0')+'85'+LV('01')+'86'+LV('020200'))))))+'00'),card,'9000')
def _setOPEN(): card = Card.Card() apdu = APDU(card) apdu.send('00A4040000') assert apdu.sw == '9000' gp = GP.GP('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') gp.Authentication(card, '01') gp.Send( '80E64000' + LV('00000000' + LV('EF' + LV('A0' + LV('86' + LV( 'A0' + LV('80' + LV('0411223344') + '81' + LV('20') + '82' + LV('0800') + '83' + LV('02535A') + '84' + LV('C0') + '85' + LV('01') + '86' + LV('020200')))))) + '00'), card, '9000')