def _persoForZYT(card): aid = 'A00000033301010600030800005A5954' apdu = APDU(card) apdu.selectAID(aid) apdu.gpInit('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') apdu.gpAuth() path = os.getcwd() persoFp = open(path + '\\'+ "zytPerso.idf",'r') l = persoFp.readlines() l = [e.replace('\n','')for e in l] i = 0 for e in l: i = i+1 if 'DGI' in e: li = e.split('=') dgi = li[0][3:] apduB = li[1] if i == len(l): last = True else: last = False if (int(dgi,16)&0x8000 ) == 0x8000: encrypt = False else : encrypt = False apdu.gpStoreData(apduB, last, encrypt)
def ReadLog(aid): card = Card.Card() apdu = APDU(card) apdu.selectAID(aid) apdu.selectFID('1001') for i in range(1, 20): sfi = '18' apdu.updateRecord('00', sfi, 23 * '00', mode='04') #apdu.readRecord('%02X'%i, sfi,'00') assert apdu.sw == '9000'
def ReadLog(aid): card = Card.Card() apdu = APDU(card) apdu.selectAID(aid) apdu.selectFID("1001") for i in range(1, 20): sfi = "18" apdu.updateRecord("00", sfi, 23 * "00", mode="04") # apdu.readRecord('%02X'%i, sfi,'00') assert apdu.sw == "9000"
def _defaultSelect(): card = Card.Card() apdu = APDU(card) apdu.selectAID('325041592E5359532E4444463031') apdu.selectAID('A00000033301010600030800005A5954') apdu.selectAID('A0000003335342540000000D') apdu.selectFID('1001') for aid in l: apdu.selectAID(aid)
def _installPPSE(card): card.Transmit('00A4040000') gp = GP.GP('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') gp.Authentication(card, '01') aid = '325041592e5359532e4444463031' gp.Delete(aid,card) p = 'C900' + 'EF'+ LV('A0'+LV('A5038201C0810101')) P = 'C9038FF000EF0AA008810101A5038201C0' gp.Install(PKG_AID, MDL_AID, aid, card,p) apdu = APDU(card) apdu.selectAID(PPSE_AID) apdu.gpInit('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') apdu.gpAuth() DGI9102_PPSE = '9102'+LV('A5'+LV81('BF0C'+LV('61'+LV('4F'+LV('A00000033301010600030800005A5954')+'50'+LV('50424F435F437265646974')+'870101')))) apdu.gpStoreData(DGI9102_PPSE, last = True)
def load(card,loadAll = False): apdu = APDU(card) dirList = os.listdir(pkg_path) itemList = LoadELFDict.keys() for e in dirList: for x in itemList: import re if re.search(x[:5]+'.*'+x[5:]+'$', e[:-4]): LoadELFDict[x][1] = e apdu.selectAID(SD_AID) gp = GP.GP('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') gp.Authentication(card, '01') if loadAll: for e in DeleteSeq: gp.Delete(LoadELFDict[e][0] ,card,related=True) for e in InstallSeq: gp.load(SD_AID,pkg_path+ "\\" + LoadELFDict[e][1],card) else: gp.Delete(LoadELFDict['0010'][0] ,card,related=True) gp.load(SD_AID,pkg_path+ "\\" + LoadELFDict['0010'][1],card)
def _installPPSE(card): card.Transmit('00A4040000') gp = GP.GP('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') gp.Authentication(card, '01') aid = '325041592e5359532e4444463031' gp.Delete(aid, card) p = 'C900' + 'EF' + LV('A0' + LV('A5038201C0810101')) P = 'C9038FF000EF0AA008810101A5038201C0' gp.Install(PKG_AID, MDL_AID, aid, card, p) apdu = APDU(card) apdu.selectAID(PPSE_AID) apdu.gpInit('404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '404142434445464748494A4B4C4D4E4F', '0C') apdu.gpAuth() DGI9102_PPSE = '9102' + LV('A5' + LV81('BF0C' + LV( '61' + LV('4F' + LV('A00000033301010600030800005A5954') + '50' + LV('50424F435F437265646974') + '870101')))) apdu.gpStoreData(DGI9102_PPSE, last=True)
def _activeCard(aid): card = Card.Card() apdu = APDU(card) apdu.selectAID(ProxyInstanceAID) card.Transmit('80F0008000') card.Transmit('80F00001'+LV('4F'+LV(aid)), '9000')
def _activeCard(aid): card = Card.Card() apdu = APDU(card) apdu.selectAID(ProxyInstanceAID) card.Transmit('80F0008000') card.Transmit('80F00001' + LV('4F' + LV(aid)), '9000')