filesystem: fix reset mechanism

Currently we call the reset_card and get_atr methods directly at the
transport layer via the private _scc and _tp object of the card. This is
a violation. Fix and use the reset methods that are already in the
SimCard object.

Change-Id: I0e9d2a62a42a7387e7ca69d2ae830782a61aed89
This commit is contained in:
Philipp Maier 2021-10-29 18:31:03 +02:00
parent 30b225f3bf
commit 946226a5d1
2 changed files with 6 additions and 3 deletions

View File

@ -60,7 +60,11 @@ class SimCard(object):
self._aids = []
def reset(self):
self._scc.reset_card()
rc = self._scc.reset_card()
if rc is 1:
return self._scc.get_atr()
else:
return None
def erase(self):
print("warning: erasing is not supported for specified card type!")

View File

@ -1068,8 +1068,7 @@ class RuntimeState(object):
Args:
cmd_app : Command Application State (for unregistering old file commands)
"""
self.card._scc._tp.reset_card()
atr = i2h(self.card._scc._tp.get_atr())
atr = i2h(self.card.reset())
# select MF to reset internal state and to verify card really works
self.select('MF', cmd_app)
return atr