Пример #1
0
 def __transmit_impl(self, cmd, t0AutoGetResponse, handlerArgs):
     commandValue = Util.s2vs(cmd)
     
     self.__handler.handleAPDUCommand("".join("%02X " %(ord(vb)) for vb in commandValue), handlerArgs)
     timeStart = timeit.default_timer()
     rsp = self.__gpInterface.transmit(Util.s2vs(cmd))
     timeStop = timeit.default_timer()
     transtime = timeStop - timeStart
     self.__handler.handleAPDUResponse("".join("%02X " %(ord(vb)) for vb in rsp), transtime, handlerArgs)
     
     if t0AutoGetResponse and (rsp[0] == '\x61') and (len(handlerArgs) == 0):
         cmd = '\x00\xC0\x00\x00' + rsp[1]
         self.__handler.handleAPDUCommand("".join("%02X " %(ord(vb)) for vb in cmd))
         timeStart = timeit.default_timer()
         rsp = gp.sendApdu(cmd)
         timeStop = timeit.default_timer()
         transtime = timeStop - timeStart
         self.__handler.handleAPDUResponse("".join("%02X " %(ord(vb)) for vb in rsp), transtime)
Пример #2
0
def str_bin(s):
    for i in len(s) >> 1:
        pass
    
if __name__ == "__main__":
    gp.enableTraceMode(True)
    
    c = gp.establishContext()
    
    readernames = gp.listReaders(c)
    for i in range(len(readernames)):
        print('%d - %s' %(i, readernames[i]))
    i = int(input("Please select one reader: "))
    cc = gp.connectCard(c, readernames[i], gp.SCARD_PROTOCOL_T1)
    
    gp.sendApdu(c, cc, None, '\x00\xB0\x00\x00\x00')
    gp.selectApplication(c, cc, '')
    sc = gp.mutualAuthentication(c, cc, gp.DEFAULT_KEY, gp.DEFAULT_KEY, gp.DEFAULT_KEY, gp.DEFAULT_KEY, 0x00, 0x00, 0x02, 0x15, 0, 0)
    
    INFO("Get status:")
    try:
        status10 = gp.getStatus(c, cc, None, gp.GET_STATUS_P1_EXECUTABLE_LOAD_FILES_MODULES)
        INFO("    Status 0x10: " + str(status10))
    except:
        pass
    try:
        status20 = gp.getStatus(c, cc, None, gp.GET_STATUS_P1_EXECUTABLE_LOAD_FILES)
        INFO("    Status 0x20: " + str(status20))
    except:
        pass
    try:
Пример #3
0
 def transmit(self, cmd):
     self.__checkContext()
     self.__checkCardInfo()
     return gp.sendApdu(self.__context, self.__cardInfo, None, cmd)
Пример #4
0
from pyGlobalPlatform import globalplatformlib as gp

context = gp.establishContext()
readers = gp.listReaders(context)
print 'List readers:'
for i in range(len(readers)):
    reader = readers[i]
    print '    %d - ' % (i) + reader

reader = 'Feitian R502 Contactless Reader 0'
print 'Connect to reader: ' + reader
connection = gp.connectCard(context, reader, gp.SCARD_PROTOCOL_T1)
cmd = '\x00\xA4\x04\x00\x00'
print '>> ' + ''.join('%02X' % (ord(b)) for b in cmd)
rsp = gp.sendApdu(context, connection, None, '\x00\xA4\x04\x00\x00')
print '<< ' + ''.join('%02X' % (ord(b)) for b in rsp)