shell: Fix activate_file + deactivate_file commands

We cannot re-activate a deactivated file after we have selected somethng
else, as SELECT will fail on the deactivated file.  Hence, the
deactivate_file command needs to be used with a file name as argument.

Change-Id: Ief4d2bf8ea90497a8f25d1986aeea935c615f9bb
This commit is contained in:
Harald Welte
2021-05-25 22:21:44 +02:00
parent 34b05d3707
commit 485692bc77
3 changed files with 18 additions and 7 deletions

View File

@@ -419,13 +419,17 @@ class Iso7816Commands(CommandSet):
def do_deactivate_file(self, opts):
"""Deactivate the current EF"""
fid = self._cmd.rs.selected_file.fid
(data, sw) = self._cmd.card._scc.deactivate_file(fid)
(data, sw) = self._cmd.card._scc.deactivate_file()
def do_activate_file(self, opts):
"""Activate the current EF"""
fid = self._cmd.rs.selected_file.fid
(data, sw) = self._cmd.card._scc.activate_file(fid)
"""Activate the specified EF"""
path = opts.arg_list[0]
(data, sw) = self._cmd.rs.activate_file(path)
def complete_activate_file(self, text, line, begidx, endidx) -> List[str]:
"""Command Line tab completion for ACTIVATE FILE"""
index_dict = { 1: self._cmd.rs.selected_file.get_selectable_names() }
return self._cmd.index_based_complete(text, line, begidx, endidx, index_dict=index_dict)
open_chan_parser = argparse.ArgumentParser()
open_chan_parser.add_argument('chan_nr', type=int, default=0, help='Channel Number')