pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE
Change-Id: I22207dde20f991b0a22dea8f5dd695a0ec99da33
diff --git a/docs/shell.rst b/docs/shell.rst
index 1072ee8..f2ddba1 100644
--- a/docs/shell.rst
+++ b/docs/shell.rst
@@ -120,6 +120,14 @@
:module: pySim-shell
:func: Iso7816Commands.verify_chv_parser
+deactivate_file
+~~~~~~~~~~~~~~~
+Deactivate the currently selected file. This used to be called INVALIDATE in TS 11.11.
+
+
+activate_file
+~~~~~~~~~~~~~
+Activate the currently selected file. This used to be called REHABILITATE in TS 11.11.
pySim commands
diff --git a/pySim-shell.py b/pySim-shell.py
index cfba73f..b2ccb9a 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -403,6 +403,15 @@
(data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin))
self._cmd.poutput("CHV enable successful")
+ 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)
+
+ 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)
def parse_options():
diff --git a/pySim/commands.py b/pySim/commands.py
index 791b995..2894d31 100644
--- a/pySim/commands.py
+++ b/pySim/commands.py
@@ -296,6 +296,14 @@
ret = {'successful_3g_authentication': data}
return (ret, sw)
+ def deactivate_file(self):
+ """Execute DECATIVATE FILE command as per TS 102 221 Section 11.1.14."""
+ return self._tp.send_apdu_constr_checksw(self.cla_byte, '04', '00', '00', None, None, None)
+
+ def activate_file(self):
+ """Execute ACTIVATE FILE command as per TS 102 221 Section 11.1.15."""
+ return self._tp.send_apdu_constr_checksw(self.cla_byte, '44', '00', '00', None, None, None)
+
def reset_card(self):
"""Physically reset the card"""
return self._tp.reset_card()