mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-26 07:18:33 +03:00
shell: Add 'status' command to issue STATUS APDU
This can be used to get the FCP of the currently selected file. Change-Id: I65c97adadd831ca2daa5a0dbb52a37999f8514fd
This commit is contained in:
@@ -443,6 +443,11 @@ class Iso7816Commands(CommandSet):
|
|||||||
"""Close a logical channel."""
|
"""Close a logical channel."""
|
||||||
(data, sw) = self._cmd.card._scc.manage_channel(mode='close', lchan_nr=opts.chan_nr)
|
(data, sw) = self._cmd.card._scc.manage_channel(mode='close', lchan_nr=opts.chan_nr)
|
||||||
|
|
||||||
|
def do_status(self, opts):
|
||||||
|
"""Perform the STATUS command."""
|
||||||
|
fcp_dec = self._cmd.rs.status()
|
||||||
|
self._cmd.poutput_json(fcp_dec)
|
||||||
|
|
||||||
|
|
||||||
option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell',
|
option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell',
|
||||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
|
|||||||
@@ -359,6 +359,10 @@ class SimCardCommands(object):
|
|||||||
ret = {'successful_3g_authentication': data}
|
ret = {'successful_3g_authentication': data}
|
||||||
return (ret, sw)
|
return (ret, sw)
|
||||||
|
|
||||||
|
def status(self):
|
||||||
|
"""Execute a STATUS command as per TS 102 221 Section 11.1.2."""
|
||||||
|
return self._tp.send_apdu_checksw('80F20000ff')
|
||||||
|
|
||||||
def deactivate_file(self):
|
def deactivate_file(self):
|
||||||
"""Execute DECATIVATE FILE command as per TS 102 221 Section 11.1.14."""
|
"""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)
|
return self._tp.send_apdu_constr_checksw(self.cla_byte, '04', '00', '00', None, None, None)
|
||||||
|
|||||||
@@ -1145,6 +1145,11 @@ class RuntimeState(object):
|
|||||||
|
|
||||||
return select_resp
|
return select_resp
|
||||||
|
|
||||||
|
def status(self):
|
||||||
|
"""Request STATUS (current selected file FCP) from card."""
|
||||||
|
(data, sw) = self.card._scc.status()
|
||||||
|
return self.selected_file.decode_select_response(data)
|
||||||
|
|
||||||
def read_binary(self, length:int=None, offset:int=0):
|
def read_binary(self, length:int=None, offset:int=0):
|
||||||
"""Read [part of] a transparent EF binary data.
|
"""Read [part of] a transparent EF binary data.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user