cards: Make select_adf_by_aid() use prefix AID selection

There is no need for us to expand a partial AID to the full AID before
selecting that ADF. The UICC specifications permit AID selection by
prefix only. So we could pass the prefix to the card, and the card would
do the prefix matching. In order to avoid problems with cards that fail
to do the prefix matching themselves we will still do the AID
completion, but in case we cannot complete the AID (AID not listed in
EF.DIR), we will try with the AID prefix anyway.

From the API user point of view, this allows us to select applications
not listed in EF.DIR

Change-Id: I0747b4e46ca7e30bd96d76053765080367ac1317
This commit is contained in:
Philipp Maier 2021-11-18 11:25:34 +01:00
parent abc2336571
commit 931bc66331
1 changed files with 3 additions and 0 deletions

View File

@ -308,6 +308,9 @@ class SimCard(object):
aid_full = self._complete_aid(aid)
if aid_full:
return self._scc.select_adf(aid_full)
else:
# If we cannot get the full AID, try with short AID
return self._scc.select_adf(aid)
return (None, None)
def erase_binary(self, ef):