APDU.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:asterix 作者: suma12 项目源码 文件源码
def selectApplet(c, AID, logCh=0):
    """ Select applet on a given logical channel or
open new log. channel if logCh is None. """
    if logCh is None:
        logCh = openLogCh(c)
    # select the Applet on the given logical channel
    apdu = [logCh, INS_SELECT, 4, 0, len(AID)] + s2l(AID)
    resp, sw1, sw2 = c.transmit(apdu)
    if sw1 == 0x6C and len(AID) == 0:
        apdu = [logCh, INS_SELECT, 4, 0, sw2]
        resp, sw1, sw2 = c.transmit(apdu)
    if(sw1 == 0x61):
        apdu = [logCh, 0xC0, 0, 0, sw2]
        resp, sw1, sw2 = c.transmit(apdu)
    sw = (sw1 << 8) + sw2
    if sw != 0x9000:
        raise ISOException(sw)
    respdata = l2s(resp)
    # close channel
    return (respdata, logCh)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号