Exemple #1
0
    def __init__(self, mf, sam, ins2handler=None, maxle=MAX_EXTENDED_LE, ef_cardsecurity=None, ef_cardaccess=None, ca_key=None, cvca=None, disable_checks=False, esign_key=None, esign_ca_cert=None, esign_cert=None):
        Iso7816OS.__init__(self, mf, sam, ins2handler, maxle)
        self.ins2handler[0x86] = self.SAM.general_authenticate
        self.ins2handler[0x2c] = self.SAM.reset_retry_counter

        # different ATR (Answer To Reset) values depending on used Chip version
        # It's just a playground, because in past one of all those eID clients did not recognize the card correctly with newest ATR values
        self.atr = '\x3B\x8A\x80\x01\x80\x31\xF8\x73\xF7\x41\xE0\x82\x90\x00\x75'
        #self.atr = '\x3B\x8A\x80\x01\x80\x31\xB8\x73\x84\x01\xE0\x82\x90\x00\x06'
        #self.atr = '\x3B\x88\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x09'
        #self.atr = '\x3B\x87\x80\x01\x80\x31\xB8\x73\x84\x01\xE0\x19'

        self.SAM.current_SE.disable_checks = disable_checks
        if ef_cardsecurity:
            ef = self.mf.select('fid', 0x011d)
            ef.data = ef_cardsecurity
        if ef_cardaccess:
            ef = self.mf.select('fid', 0x011c)
            ef.data = ef_cardaccess
        if cvca:
            self.SAM.current_SE.cvca = cvca
        if ca_key:
            self.SAM.current_SE.ca_key = ca_key
        esign = self.mf.select('dfname', '\xA0\x00\x00\x01\x67\x45\x53\x49\x47\x4E')
        if esign_ca_cert:
            ef = esign.select('fid', 0xC000)
            ef.data = esign_ca_cert
        if esign_cert:
            ef = esign.select('fid', 0xC001)
            ef.data = esign_cert
Exemple #2
0
 def __init__(self, mf, sam, ins2handler=None, maxle=MAX_SHORT_LE):
     Iso7816OS.__init__(self, mf, sam, ins2handler, maxle)
     self.ins2handler = {
         0xc0: self.getResponse,
         0xa4: self.mf.selectFile,
         0xb0: self.mf.readBinaryPlain,
         0x20: self.SAM.verify,
         0x24: self.SAM.change_reference_data,
         0x22: self.SAM.manage_security_environment,
         0x2a: self.SAM.perform_security_operation,
         0xe4: self.getCardData,
         0xe6: self.logOff
     }
     self.atr = '\x3B\x98\x13\x40\x0A\xA5\x03\x01\x01\x01\xAD\x13\x11'
Exemple #3
0
    def __init__(self,
                 mf,
                 sam,
                 ins2handler=None,
                 maxle=MAX_EXTENDED_LE,
                 ef_cardsecurity=None,
                 ef_cardaccess=None,
                 ca_key=None,
                 cvca=None,
                 disable_checks=False,
                 esign_key=None,
                 esign_ca_cert=None,
                 esign_cert=None):
        Iso7816OS.__init__(self, mf, sam, ins2handler, maxle)
        self.ins2handler[0x86] = self.SAM.general_authenticate
        self.ins2handler[0x2c] = self.SAM.reset_retry_counter

        # different ATR (Answer To Reset) values depending on used Chip version
        # It's just a playground, because in past one of all those eID clients
        # did not recognize the card correctly with newest ATR values
        self.atr = b'\x3B\x8A\x80\x01\x80\x31\xF8\x73\xF7\x41\xE0\x82\x90' + \
                   b'\x00\x75'
        # self.atr = b'\x3B\x8A\x80\x01\x80\x31\xB8\x73\x84\x01\xE0\x82\x90' + \
        #            b'\x00\x06'
        # self.atr = b'\x3B\x88\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x09'
        # self.atr = b'\x3B\x87\x80\x01\x80\x31\xB8\x73\x84\x01\xE0\x19'

        self.SAM.current_SE.disable_checks = disable_checks
        if ef_cardsecurity:
            ef = self.mf.select('fid', 0x011d)
            ef.data = ef_cardsecurity
        if ef_cardaccess:
            ef = self.mf.select('fid', 0x011c)
            ef.data = ef_cardaccess
        if cvca:
            self.SAM.current_SE.cvca = cvca
        if ca_key:
            self.SAM.current_SE.ca_key = ca_key
        esign = self.mf.select('dfname',
                               b'\xA0\x00\x00\x01\x67\x45\x53\x49\x47\x4E')
        if esign_ca_cert:
            ef = esign.select('fid', 0xC000)
            ef.data = esign_ca_cert
        if esign_cert:
            ef = esign.select('fid', 0xC001)
            ef.data = esign_cert
 def __init__(self, mf, sam, ins2handler=None, maxle=MAX_SHORT_LE):
     Iso7816OS.__init__(self, mf, sam, ins2handler, maxle)
     self.atr = '\x3B\xE2\x00\x00\x40\x20\x49\x06'
Exemple #5
0
 def __init__(self, mf, sam, ins2handler=None, maxle=MAX_SHORT_LE):
     Iso7816OS.__init__(self, mf, sam, ins2handler, maxle)
     self.atr = '\x3B\xE2\x00\x00\x40\x20\x49\x06'