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:
Harald Welte
2025-01-29 12:08:03 +01:00
committed by Philipp Maier
parent d871e4696f
commit 08ba187fd4
6 changed files with 19 additions and 21 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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 ...