simLAB
simLAB copied to clipboard
Random exception with the simLab
Hi, I am trying to implement a tool for simcard which uses simLAB as infrastructure. everything is ok, but sometimes during communicating with Simcard I get an exception with the "Failed to transmit with protocol T0. Transaction failed." message.
Below you can see the traceback. any thought to solve the problem would be appreciated.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/zerorpc/core.py", line 153, in _async_task
functor.pattern.process_call(self._context, bufchan, event, functor)
File "/usr/local/lib/python2.7/dist-packages/zerorpc/patterns.py", line 30, in process_call
result = functor(*req_event.args)
File "/usr/local/lib/python2.7/dist-packages/zerorpc/decorators.py", line 44, in __call__
return self._functor(*args, **kargs)
File "/home/firoozian/GitProj/simLAB/mim/../sim/pyscard_rpc_ctrl.py", line 209, in c_transmit
data, sw1, sw2 = self.getCard(index).transmit(apdu)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/CardConnectionDecorator.py", line 82, in transmit
return self.component.transmit(bytes, protocol)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/CardConnection.py", line 146, in transmit
data, sw1, sw2 = self.doTransmit(bytes, protocol)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/pcsc/PCSCCardConnection.py", line 203, in doTransmit
SCardGetErrorMessage(hresult))
CardConnectionException: Failed to transmit with protocol T0. Transaction failed.
ERROR:root:c_transmit() failed!
return self.component.transmit(bytes, protocol)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/CardConnection.py", line 146, in transmit
data, sw1, sw2 = self.doTransmit(bytes, protocol)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/pcsc/PCSCCardConnection.py", line 203, in doTransmit
SCardGetErrorMessage(hresult))
CardConnectionException: Failed to transmit with protocol T0. Transaction failed.
Exception in thread MainLoopThread:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "../../../sim/sim_router.py", line 702, in run
self.simRouter.mainloop()
File "../../../sim/sim_router.py", line 444, in mainloop
self.tick()
File "../../../sim/sim_router.py", line 428, in tick
responseApduTemp = self.handleApdu(cardData, apdu)
File "../../../sim/sim_router.py", line 303, in handleApdu
responseApdu = card.apdu(apdu)
File "../../../sim/sim_card.py", line 98, in apdu
raise Exception("Failed to transmit C_APDU: " + hextools.bytes2hex(c_apdu) + "\n" + str(e))
Exception: Failed to transmit C_APDU: 00A40804047FFF6FB3
c_transmit() failed!
return self.component.transmit(bytes, protocol)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/CardConnection.py", line 146, in transmit
data, sw1, sw2 = self.doTransmit(bytes, protocol)
File "/home/firoozian/.local/lib/python2.7/site-packages/smartcard/pcsc/PCSCCardConnection.py", line 203, in doTransmit
SCardGetErrorMessage(hresult))
CardConnectionException: Failed to transmit with protocol T0. Transaction failed.
^CTraceback (most recent call last):
File "sc.py", line 634, in <module>
main()
File "sc.py", line 607, in main
res = analyze_metric_file(Metric, my_shell, html)
File "sc.py", line 495, in analyze_metric_file
rule2_res += rule2_security_check(shell, html, current_file_address, expected_security_condition, ef)
File "sc.py", line 263, in rule2_security_check
arrRecord, arrValue = shell.simCtrl.getArrRecordForFile(path)
File "../../../sim/sim_ctrl_3g.py", line 746, in getArrRecordForFile
arrFileId, arrRecord = self.getLinkedArrFile(path)
File "../../../sim/sim_ctrl_3g.py", line 610, in getLinkedArrFile
sw1, sw2, data = self.selectFileByPath(path)
File "../../../sim/sim_ctrl_3g.py", line 528, in selectFileByPath
sw1, sw2, data = self.selectFileFromMf(path)
File "../../../sim/sim_ctrl_3g.py", line 228, in selectFileFromMf
sw1, sw2, data = self.sendApdu("00A40804%02X%s" %(len(fids)/2, fids))
File "../../../sim/sim_ctrl_3g.py", line 121, in sendApdu
rapdu = self.router.injectApdu(apdu, self.getSrvCtr(), mode=mode)
File "../../../sim/sim_router.py", line 556, in injectApdu
return self.waitRapduInject()
File "../../../sim/sim_router.py", line 547, in waitRapduInject
time.sleep(0.001)
KeyboardInterrupt