コード例 #1
0
ファイル: TestScript.py プロジェクト: YinGithub/DemoWallet
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'
コード例 #2
0
ファイル: TestScript.py プロジェクト: YinGithub/DemoWallet
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'
コード例 #3
0
ファイル: setOPENParam.py プロジェクト: YinGithub/DemoWallet
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')
コード例 #4
0
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')