runtime: Introduce an 'identity' dict for things like ATR, ICCID, EID
This patch introduces the dict, as well as its first use for ATR storage Change-Id: Ief5ceaf5afe82800e33da233573293527befd2f4
This commit is contained in:
@@ -761,7 +761,7 @@ Currently only ADM1 is supported."""
|
|||||||
"""Display information about the currently inserted card"""
|
"""Display information about the currently inserted card"""
|
||||||
self._cmd.poutput("Card info:")
|
self._cmd.poutput("Card info:")
|
||||||
self._cmd.poutput(" Name: %s" % self._cmd.card.name)
|
self._cmd.poutput(" Name: %s" % self._cmd.card.name)
|
||||||
self._cmd.poutput(" ATR: %s" % b2h(self._cmd.lchan.scc.get_atr()))
|
self._cmd.poutput(" ATR: %s" % self._cmd.rs.identity['ATR'])
|
||||||
self._cmd.poutput(" ICCID: %s" % self._cmd.iccid)
|
self._cmd.poutput(" ICCID: %s" % self._cmd.iccid)
|
||||||
self._cmd.poutput(" Class-Byte: %s" % self._cmd.lchan.scc.cla_byte)
|
self._cmd.poutput(" Class-Byte: %s" % self._cmd.lchan.scc.cla_byte)
|
||||||
self._cmd.poutput(" Select-Ctrl: %s" % self._cmd.lchan.scc.sel_ctrl)
|
self._cmd.poutput(" Select-Ctrl: %s" % self._cmd.lchan.scc.sel_ctrl)
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ class RuntimeState:
|
|||||||
self.lchan = {}
|
self.lchan = {}
|
||||||
# the basic logical channel always exists
|
# the basic logical channel always exists
|
||||||
self.lchan[0] = RuntimeLchan(0, self)
|
self.lchan[0] = RuntimeLchan(0, self)
|
||||||
|
# this is a dict of card identities which different parts of the code might populate,
|
||||||
|
# typically with something like ICCID, EID, ATR, ...
|
||||||
|
self.identity = {}
|
||||||
|
|
||||||
# make sure the class and selection control bytes, which are specified
|
# make sure the class and selection control bytes, which are specified
|
||||||
# by the card profile are used
|
# by the card profile are used
|
||||||
@@ -138,6 +141,8 @@ class RuntimeState:
|
|||||||
# select MF to reset internal state and to verify card really works
|
# select MF to reset internal state and to verify card really works
|
||||||
self.lchan[0].select('MF', cmd_app)
|
self.lchan[0].select('MF', cmd_app)
|
||||||
self.lchan[0].selected_adf = None
|
self.lchan[0].selected_adf = None
|
||||||
|
# store ATR as part of our card identies dict
|
||||||
|
self.identity['ATR'] = atr
|
||||||
return atr
|
return atr
|
||||||
|
|
||||||
def add_lchan(self, lchan_nr: int) -> 'RuntimeLchan':
|
def add_lchan(self, lchan_nr: int) -> 'RuntimeLchan':
|
||||||
|
|||||||
Reference in New Issue
Block a user