mirror of https://gerrit.osmocom.org/pysim
cards: get rid of method read_iccid
The method read_iccid in class CardBase should be put back to legacy/cards.py. The reason for this is that it falls in the same category like read_imsi, read_ki, etc. We should not use those old methods in future programs since we have a more modern infrastructure (lchan) now. Also pySim-shell.py is the only caller of this method now. It is not used in any other place. Related: RT#67094 Change-Id: Ied3ae6fd107992abcc1b5ea3edb0eb4bdcd2f892
This commit is contained in:
parent
09ff0e2b43
commit
a42ee6f99d
|
@ -52,7 +52,7 @@ from pySim.commands import SimCardCommands
|
|||
from pySim.transport import init_reader, ApduTracer, argparse_add_reader_args, ProactiveHandler
|
||||
from pySim.cards import card_detect, SimCardBase, UiccCardBase
|
||||
from pySim.utils import h2b, b2h, i2h, swap_nibbles, rpad, JsonEncoder, bertlv_parse_one, sw_match
|
||||
from pySim.utils import sanitize_pin_adm, tabulate_str_list, boxed_heading_str, Hexstr
|
||||
from pySim.utils import sanitize_pin_adm, tabulate_str_list, boxed_heading_str, Hexstr, dec_iccid
|
||||
from pySim.card_handler import CardHandler, CardHandlerAuto
|
||||
|
||||
from pySim.filesystem import CardDF, CardADF, CardModel, CardApplication
|
||||
|
@ -240,7 +240,10 @@ class PysimApp(Cmd2Compat):
|
|||
self.register_command_set(Iso7816Commands())
|
||||
self.register_command_set(Ts102222Commands())
|
||||
self.register_command_set(PySimCommands())
|
||||
self.iccid, sw = self.card.read_iccid()
|
||||
|
||||
self.lchan.select('MF/EF.ICCID', self)
|
||||
self.iccid = dec_iccid(self.lchan.read_binary()[0])
|
||||
|
||||
self.lchan.select('MF', self)
|
||||
rc = True
|
||||
else:
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#
|
||||
|
||||
from typing import Optional, Dict, Tuple
|
||||
from pySim.ts_102_221 import EF_DIR, EF_ICCID
|
||||
from pySim.ts_102_221 import EF_DIR
|
||||
from pySim.ts_51_011 import DF_GSM
|
||||
from pySim.transport import LinkBase
|
||||
import abc
|
||||
|
@ -69,14 +69,6 @@ class CardBase:
|
|||
# callers having to do hasattr('read_aids') ahead of every call.
|
||||
return []
|
||||
|
||||
def read_iccid(self) -> Tuple[Optional[Hexstr], SwHexstr]:
|
||||
ef_iccid = EF_ICCID()
|
||||
(res, sw) = self._scc.read_binary(ef_iccid.fid)
|
||||
if sw == '9000':
|
||||
return (dec_iccid(res), sw)
|
||||
else:
|
||||
return (None, sw)
|
||||
|
||||
|
||||
class SimCardBase(CardBase):
|
||||
"""Here we only add methods for commands specified in TS 51.011, without
|
||||
|
|
|
@ -59,6 +59,13 @@ class SimCard(SimCardBase):
|
|||
(res, sw) = self._scc.verify_chv(self._adm_chv_num, key)
|
||||
return sw
|
||||
|
||||
def read_iccid(self):
|
||||
(res, sw) = self._scc.read_binary(EF['ICCID'])
|
||||
if sw == '9000':
|
||||
return (dec_iccid(res), sw)
|
||||
else:
|
||||
return (None, sw)
|
||||
|
||||
def update_iccid(self, iccid):
|
||||
data, sw = self._scc.update_binary(EF['ICCID'], enc_iccid(iccid))
|
||||
return sw
|
||||
|
|
Loading…
Reference in New Issue