simLAB icon indicating copy to clipboard operation
simLAB copied to clipboard

Random exception with the simLab

Open alireza11048 opened this issue 4 years ago • 0 comments

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

alireza11048 avatar Apr 18 '21 06:04 alireza11048