dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/41468?usp=email )
Change subject: pySim-shell: re-organize Card Key Provider related options ......................................................................
pySim-shell: re-organize Card Key Provider related options
As we plan to support other formats as data source for the Card Key Provider soon, the more commandline options may be added and it makes sense to group the Card Key Provider options in a dedicated group.
Let's also rename the option "--csv-column-key" to just "--column-key". The column encryption is a generic concept and not CSV format specific. (let's silently keep the "--csv-column-key" argument so maintain backward compatibility)
Related: SYS#7725 Change-Id: I5093f8383551f8c9b84342ca6674c1ebdbbfc19c --- M pySim-shell.py 1 file changed, 13 insertions(+), 9 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/68/41468/1
diff --git a/pySim-shell.py b/pySim-shell.py index b933a03..72e988c 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -1124,10 +1124,6 @@ global_group = option_parser.add_argument_group('General Options') global_group.add_argument('--script', metavar='PATH', default=None, help='script with pySim-shell commands to be executed automatically at start-up') -global_group.add_argument('--csv', metavar='FILE', - default=None, help='Read card data from CSV file') -global_group.add_argument('--csv-column-key', metavar='FIELD:AES_KEY_HEX', default=[], action='append', - help='per-CSV-column AES transport key') global_group.add_argument("--card_handler", dest="card_handler_config", metavar="FILE", help="Use automatic card handling machine") global_group.add_argument("--noprompt", help="Run in non interactive mode", @@ -1137,6 +1133,14 @@ global_group.add_argument("--verbose", help="Enable verbose logging", action='store_true', default=False)
+card_key_group = option_parser.add_argument_group('Card Key Provider Options') +card_key_group.add_argument('--csv', metavar='FILE', + default=None, help='Read card data from CSV file') +card_key_group.add_argument('--csv-column-key', metavar='FIELD:AES_KEY_HEX', default=[], action='append', + help=argparse.SUPPRESS, dest='column_key') +card_key_group.add_argument('--column-key', metavar='FIELD:AES_KEY_HEX', default=[], action='append', + help='per-column AES transport key', dest='column_key') + adm_group = global_group.add_mutually_exclusive_group() adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, help='ADM PIN used for provisioning (overwrites default)') @@ -1162,15 +1166,15 @@
# Register csv-file as card data provider, either from specified CSV # or from CSV file in home directory - csv_column_keys = {} - for par in opts.csv_column_key: + column_keys = {} + for par in opts.column_key: name, key = par.split(':') - csv_column_keys[name] = key + column_keys[name] = key csv_default = str(Path.home()) + "/.osmocom/pysim/card_data.csv" if opts.csv: - card_key_provider_register(CardKeyProviderCsv(opts.csv, csv_column_keys)) + card_key_provider_register(CardKeyProviderCsv(opts.csv, column_keys)) if os.path.isfile(csv_default): - card_key_provider_register(CardKeyProviderCsv(csv_default, csv_column_keys)) + card_key_provider_register(CardKeyProviderCsv(csv_default, column_keys))
# Init card reader driver sl = init_reader(opts, proactive_handler = Proact())