Project

General

Profile

Actions

Feature #6086

open

implement features of sysmo-{usim,isim}-tool

Added by laforge 10 months ago. Updated 10 months ago.

Status:
New
Priority:
Low
Assignee:
Category:
-
Target version:
-
Start date:
07/07/2023
Due date:
% Done:

0%

Spec Reference:

Description

I always found it rather odd that there are OS-specific executables in the sysmo-usim-tool software. The purpose was always to have a separate tool for those bits which are sysmo*SIM specific, and not normal ETSI/3GPP Standard. However, that was designed at a time before pySim-shell existed, and only pySim-prog was available.

As more sysmocom card models got introduced, those were not supported from within one sysmo-*sim-tool program, but with copy+pasted+edited command line tools. As a result, users need to know which card they have and execute the right tool for it, which is cumbersome. Even more so, as there are tools (specifically, the sysmo-isim-tool.sja2.py) which actually also supports the sysmoTSIM (3GPP Test profile).

Rather than unifying this inside the sysmo-usim-tool.git repo, I think it's better to reimplement the same functionality based on (and likely inside) pysim.git.

Now that we have the "new" capabilities of pySim-shell and its associated class model, we shouldn't really need separate[ly maintained] software for the actual functionality.

What can sysmo-usim-tool do is:
  • set the imsi
    • 3GPP standard, not sysmocom specific
  • set mnc length
    • 3GPP standard, not sysmocom specific
  • show ICCID
    • 3GPP standard
  • show AID list
    • 3GPP standard
  • show milenage parameters
  • set milenage parameters
  • show ki value
  • set ki value
  • show [supported and configured] authentication algorithms
  • set 2g/3g auth algo
  • show OP/OPc configuration
  • set OP/OPc
  • show milenage SEQ/SQN parameters
  • set milenage SEQ/SQN parameters to default
  • dump proprietary file contents

Let's add whatever functionality is missing to the pySim class model, and then try to implement a potentially command-line compatible replacement for at least the most common operations. For the more esoteric ones (like milenage parameters), I think it's fine to have the user go through pySim-shell and do an edit_binary_decoded or something like that to change the parameters.

Actions #1

Updated by laforge 10 months ago

this is currently waiting for a considerable number of pySim code cleanup/refactoring (most of it in gerrit), whose purpose is to make it as easy as possible to write other applications (beyond pySim-shell) to use all of the infrastructure without any code duplication.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)