laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/pysim/+/39293?usp=email )

Change subject: ATR: align get_atr() return value type
......................................................................

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
---
M pySim-shell.py
M pySim/filesystem.py
M pySim/legacy/cards.py
M pySim/runtime.py
M pySim/transport/pcsc.py
M pySim/transport/serial.py
6 files changed, 19 insertions(+), 21 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved




diff --git a/pySim-shell.py b/pySim-shell.py
index d08dc21..9733b22 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -294,7 +294,7 @@
         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 6e8852a..246afb0 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -1530,8 +1530,7 @@
         """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 ab69eed..3a68e18 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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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 @@
         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 @@
         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 @@
     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 3e48f75..ec19cb4 100644
--- a/pySim/runtime.py
+++ b/pySim/runtime.py
@@ -141,7 +141,7 @@
                 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 bb820ed..adac6ee 100644
--- a/pySim/transport/pcsc.py
+++ b/pySim/transport/pcsc.py
@@ -103,7 +103,7 @@
             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 938c319..658943b 100644
--- a/pySim/transport/serial.py
+++ b/pySim/transport/serial.py
@@ -21,7 +21,7 @@
 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 @@
         self.reset_card()

     def get_atr(self) -> Hexstr:
-        return self._atr
+        return i2h(self._atr)

     def disconnect(self):
         pass  # Nothing to do really ...

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/39293?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I01b247dad40ec986cf199302f8e92d16848bd499
Gerrit-Change-Number: 39293
Gerrit-PatchSet: 5
Gerrit-Owner: laforge <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-CC: dexter <[email protected]>

Reply via email to