prevent SimCardCommands.select_adf_by_aid bypassing lchan

Now that pySim-shell is aware of logical channels and issues almost
all of its APDUs on the currently selected channel, we must also make
sure that ADF selection by AID (implemented by the CardBase class)
issues the SELECT on the respective logical channel.

Before this patch, SELECT ADF by AID would always be issued on the
primary logical channel (0), irrespective of the currently active
RuntimeLchan.

Change-Id: Idf05c297e6a2e24ca539408b8912e348c0782bb4
Related: OS#6230
This commit is contained in:
Harald Welte
2023-10-22 10:28:18 +02:00
parent 46255121e0
commit 6dd6f3e12c
2 changed files with 7 additions and 5 deletions

View File

@@ -299,7 +299,7 @@ class RuntimeLchan:
for p in inter_path:
try:
if isinstance(p, CardADF):
(data, sw) = self.rs.card.select_adf_by_aid(p.aid)
(data, sw) = self.rs.card.select_adf_by_aid(p.aid, scc=self.scc)
self.selected_adf = p
else:
(data, sw) = self.scc.select_file(p.fid)
@@ -343,7 +343,7 @@ class RuntimeLchan:
f = sels[name]
try:
if isinstance(f, CardADF):
(data, sw) = self.rs.card.select_adf_by_aid(f.aid)
(data, sw) = self.rs.card.select_adf_by_aid(f.aid, scc=self.scc)
else:
(data, sw) = self.scc.select_file(f.fid)
self.selected_file = f