diff --git a/pySim-shell.py b/pySim-shell.py index d08dc215..9733b221 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -294,7 +294,7 @@ Online manual available at https://downloads.osmocom.org/docs/pysim/master/html/ if self.rs is None: # In case no runtime state is available we go the direct route self.card._scc.reset_card() - atr = b2h(self.card._scc.get_atr()) + atr = self.card._scc.get_atr() else: atr = self.rs.reset(self) self.poutput('Card ATR: %s' % atr) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 6e8852a1..246afb0b 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -1530,8 +1530,7 @@ class CardModel(abc.ABC): """Test if given card matches this model.""" card_atr = scc.get_atr() for atr in cls._atrs: - atr_bin = toBytes(atr) - if atr_bin == card_atr: + if atr == card_atr: print("Detected CardModel:", cls.__name__) return True return False diff --git a/pySim/legacy/cards.py b/pySim/legacy/cards.py index ab69eed9..3a68e18f 100644 --- a/pySim/legacy/cards.py +++ b/pySim/legacy/cards.py @@ -3,7 +3,6 @@ ################################################################################ import abc -from smartcard.util import toBytes from pytlv.TLV import * from pySim.cards import SimCardBase, UiccCardBase @@ -781,7 +780,7 @@ class SysmoSIMgr1(GrcardSim): def autodetect(kls, scc): try: # Look for ATR - if scc.get_atr() == toBytes("3b991800118822334455667760"): + if scc.get_atr() == "3b991800118822334455667760": return kls(scc) except: return None @@ -826,7 +825,7 @@ class SysmoSIMgr2(SimCard): def autodetect(kls, scc): try: # Look for ATR - if scc.get_atr() == toBytes("3b7d9400005555530a7486930b247c4d5468"): + if scc.get_atr() == "3b7d9400005555530a7486930b247c4d5468": return kls(scc) except: return None @@ -904,7 +903,7 @@ class SysmoUSIMSJS1(UsimCard): def autodetect(kls, scc): try: # Look for ATR - if scc.get_atr() == toBytes("3b9f96801fc78031a073be21136743200718000001a5"): + if scc.get_atr() == "3b9f96801fc78031a073be21136743200718000001a5": return kls(scc) except: return None @@ -1032,7 +1031,7 @@ class FairwavesSIM(UsimCard): def autodetect(kls, scc): try: # Look for ATR - if scc.get_atr() == toBytes("3b9f96801fc78031a073be21136744220610000001a9"): + if scc.get_atr() == "3b9f96801fc78031a073be21136744220610000001a9": return kls(scc) except: return None @@ -1166,7 +1165,7 @@ class OpenCellsSim(SimCard): def autodetect(kls, scc): try: # Look for ATR - if scc.get_atr() == toBytes("3b9f95801fc38031e073fe21135786810286984418a8"): + if scc.get_atr() == "3b9f95801fc38031e073fe21135786810286984418a8": return kls(scc) except: return None @@ -1215,7 +1214,7 @@ class WavemobileSim(UsimCard): def autodetect(kls, scc): try: # Look for ATR - if scc.get_atr() == toBytes("3b9f95801fc78031e073f62113674d4516004301008f"): + if scc.get_atr() == "3b9f95801fc78031e073f62113674d4516004301008f": return kls(scc) except: return None @@ -1306,17 +1305,17 @@ class SysmoISIMSJA2(UsimCard, IsimCard): try: # Try card model #1 atr = "3b9f96801f878031e073fe211b674a4c753034054ba9" - if scc.get_atr() == toBytes(atr): + if scc.get_atr() == atr: return kls(scc) # Try card model #2 atr = "3b9f96801f878031e073fe211b674a4c7531330251b2" - if scc.get_atr() == toBytes(atr): + if scc.get_atr() == atr: return kls(scc) # Try card model #3 atr = "3b9f96801f878031e073fe211b674a4c5275310451d5" - if scc.get_atr() == toBytes(atr): + if scc.get_atr() == atr: return kls(scc) except: return None @@ -1555,15 +1554,15 @@ class SysmoISIMSJA5(SysmoISIMSJA2): try: # Try card model #1 (9FJ) atr = "3b9f96801f878031e073fe211b674a357530350251cc" - if scc.get_atr() == toBytes(atr): + if scc.get_atr() == atr: return kls(scc) # Try card model #2 (SLM17) atr = "3b9f96801f878031e073fe211b674a357530350265f8" - if scc.get_atr() == toBytes(atr): + if scc.get_atr() == atr: return kls(scc) # Try card model #3 (9FV) atr = "3b9f96801f878031e073fe211b674a357530350259c4" - if scc.get_atr() == toBytes(atr): + if scc.get_atr() == atr: return kls(scc) except: return None @@ -1592,7 +1591,7 @@ class GialerSim(UsimCard): def autodetect(cls, scc): try: # Look for ATR - if scc.get_atr() == toBytes('3b9f95801fc78031a073b6a10067cf3215ca9cd70920'): + if scc.get_atr() == '3b9f95801fc78031a073b6a10067cf3215ca9cd70920': return cls(scc) except: return None diff --git a/pySim/runtime.py b/pySim/runtime.py index 3e48f751..ec19cb41 100644 --- a/pySim/runtime.py +++ b/pySim/runtime.py @@ -141,7 +141,7 @@ class RuntimeState: continue del self.lchan[lchan_nr] self.adm_verified = False - atr = i2h(self.card.reset()) + atr = self.card.reset() if cmd_app: cmd_app.lchan = self.lchan[0] # select MF to reset internal state and to verify card really works diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index bb820ed6..adac6ee7 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -103,7 +103,7 @@ class PcscSimLink(LinkBaseTpdu): raise NoCardError() from exc def get_atr(self) -> Hexstr: - return self._con.getATR() + return i2h(self._con.getATR()) def disconnect(self): self._con.disconnect() diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 938c3197..658943b1 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -21,7 +21,7 @@ import os import argparse from typing import Optional import serial -from osmocom.utils import h2b, b2h, Hexstr +from osmocom.utils import h2b, b2h, i2h, Hexstr from pySim.exceptions import NoCardError, ProtocolError from pySim.transport import LinkBaseTpdu @@ -96,7 +96,7 @@ class SerialSimLink(LinkBaseTpdu): self.reset_card() def get_atr(self) -> Hexstr: - return self._atr + return i2h(self._atr) def disconnect(self): pass # Nothing to do really ...