mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-16 18:38:32 +03:00
ATR: align get_atr() return value type
type annotations claimed the return type was Hexstr, but in reality it was a list of integers. Let's fix that. Change-Id: I01b247dad40ec986cf199302f8e92d16848bd499 Closes: OS#6322
This commit is contained in:
committed by
Philipp Maier
parent
d871e4696f
commit
08ba187fd4
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 ...
|
||||
|
||||
Reference in New Issue
Block a user