pySim-shell.py: add a command for RUN GSM ALGORITHM
Change-Id: Id7876d83d018aca79253784411d3a9d54a249a0a
diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py
index 96de241..b9e19b2 100644
--- a/pySim/ts_51_011.py
+++ b/pySim/ts_51_011.py
@@ -1102,6 +1102,8 @@
class DF_GSM(CardDF):
def __init__(self, fid='7f20', name='DF.GSM', desc='GSM Network related files'):
super().__init__(fid=fid, name=name, desc=desc)
+ self.shell_commands += [self.AddlShellCommands()]
+
files = [
EF_LP(),
EF_IMSI(),
@@ -1171,6 +1173,20 @@
]
self.add_files(files)
+ @with_default_category('Application-Specific Commands')
+ class AddlShellCommands(CommandSet):
+ def __init__(self):
+ super().__init__()
+
+ authenticate_parser = argparse.ArgumentParser()
+ authenticate_parser.add_argument('rand', help='Random challenge')
+
+ @cmd2.with_argparser(authenticate_parser)
+ def do_authenticate(self, opts):
+ """Perform GSM Authentication."""
+ (data, sw) = self._cmd.card._scc.run_gsm(opts.rand)
+ self._cmd.poutput_json(data)
+
class CardProfileSIM(CardProfile):