diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 96de2412..b9e19b2a 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -1102,6 +1102,8 @@ class EF_MMSUCP(TransparentEF): 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 @@ class DF_GSM(CardDF): ] 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):