Attention is currently required from: osmith.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-smlc/+/38153?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: Bump version: 0.3.0.2-bc0a → 0.3.1
......................................................................
Bump version: 0.3.0.2-bc0a → 0.3.1
Change-Id: I52964c60edfc09cf832b8acb2fff61d0ceed3837
---
M TODO-RELEASE
M configure.ac
M debian/changelog
M debian/control
4 files changed, 12 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-smlc refs/changes/53/38153/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-smlc/+/38153?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-smlc
Gerrit-Branch: master
Gerrit-Change-Id: I52964c60edfc09cf832b8acb2fff61d0ceed3837
Gerrit-Change-Number: 38153
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Jenkins Builder has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/38166?usp=email )
Change subject: pySim-prog: rework documentation
......................................................................
Patch Set 1:
(1 comment)
File docs/legacy.rst:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-18561):
https://gerrit.osmocom.org/c/pysim/+/38166/comment/fea01649_fddd3bb4?usp=em… :
PS1, Line 27: This is the most common way to use ``pySim-prog``. The user will specify all relevent parameters directly via the
'relevent' may be misspelled - perhaps 'relevant'?
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38166?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I1d1a65154cea7fa77428b412fcf8c7b4cba629b1
Gerrit-Change-Number: 38166
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Mon, 16 Sep 2024 10:27:05 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Jenkins Builder has posted comments on this change by osmith. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/38155?usp=email )
Change subject: Fix double free during RAU with unexpected Old RAI
......................................................................
Patch Set 1:
(1 comment)
File src/sgsn/mmctx.c:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-18555):
https://gerrit.osmocom.org/c/osmo-sgsn/+/38155/comment/43dd6538_f04d4ed0?us… :
PS1, Line 114: llist_for_each_entry (ctx, &sgsn->mm_list, list) {
space prohibited between function name and open parenthesis '('
--
To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/38155?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-sgsn
Gerrit-Branch: osmith/1.12.1
Gerrit-Change-Id: I5a4328c6e945b85dd815215724feecadba59c435
Gerrit-Change-Number: 38155
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 16 Sep 2024 10:23:55 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Attention is currently required from: laforge, osmith, pespin.
Hello Jenkins Builder, laforge, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-msc/+/38152?usp=email
to look at the new patch set (#3).
The following approvals got outdated and were removed:
Code-Review+1 by pespin, Code-Review+2 by laforge, Verified-1 by Jenkins Builder
Change subject: Bump version: 1.12.0.6-44f34 → 1.12.1
......................................................................
Bump version: 1.12.0.6-44f34 → 1.12.1
Change-Id: Ieee012f36c8bd230ce96e6c5df3da36a41b03a3d
---
M TODO-RELEASE
M debian/changelog
2 files changed, 16 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/52/38152/3
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/38152?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ieee012f36c8bd230ce96e6c5df3da36a41b03a3d
Gerrit-Change-Number: 38152
Gerrit-PatchSet: 3
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/38166?usp=email )
Change subject: pySim-prog: rework documentation
......................................................................
pySim-prog: rework documentation
The documentation for the classic pySim-prog application is a bit
sparse. Let's rework it so that it includes the most important
information that is required to operate pySim-prog. Let's also add
a section about how the batch mode and CSV files are used.
Related: SYS#4120
Change-Id: I1d1a65154cea7fa77428b412fcf8c7b4cba629b1
---
M docs/legacy.rst
1 file changed, 169 insertions(+), 25 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/66/38166/1
diff --git a/docs/legacy.rst b/docs/legacy.rst
index 0961d17..e8b457e 100644
--- a/docs/legacy.rst
+++ b/docs/legacy.rst
@@ -1,20 +1,20 @@
-Legacy tools
+Legacy tools
============
*legacy tools* are the classic ``pySim-prog`` and ``pySim-read`` programs that
existed long before ``pySim-shell``.
-These days, you should primarily use ``pySim-shell`` instead of these
+These days, it is highly recommended to use ``pySim-shell`` instead of these
legacy tools.
pySim-prog
----------
-``pySim-prog`` was the first part of the pySim software suite. It started as
-a tool to write ICCID, IMSI, MSISDN and Ki to very simplistic SIM cards, and
-was later extended to a variety of other cards. As the number of features supported
-became no longer bearable to express with command-line arguments, `pySim-shell` was
-created.
+``pySim-prog`` was the first part of the pySim software suite. It started as a
+tool to write ICCID, IMSI, MSISDN and Ki to very simplistic SIM cards, and was
+later extended to a variety of other cards. As the number of features supported
+became no longer bearable to express with command-line arguments, `pySim-shell`
+was created.
Basic use cases can still use `pySim-prog`.
@@ -22,36 +22,180 @@
~~~~~~~~~~~~~~~~~~~~~~~~~
Two modes are possible:
- - one where you specify every parameter manually :
+ - one where the user specifies every parameter manually:
-``./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i <IMSI> -s <ICCID>``
+ This is the most common way to use ``pySim-prog``. The user will specify all relevent parameters directly via the
+ commandline. A typical commandline would look like this:
+
+ ``pySim-prog.py -p <pcsc_reader> --ki <ki_value> --opc <opc_value> --mcc <mcc_value> --mnc <mnc_value>
+ --country <country_code> --imsi <imsi_value> --iccid <iccid_value> --pin-adm <adm_pin>``
+
+ Please note, that this already lengthy commandline still only contains the most common card parameters. For a full
+ list of all possible parameters, use the ``--help`` option of ``pySim-prog``. It is also important to mention
+ that not all parameters are supported by all card types. In particular, very simple programmable SIM cards will only
+ support a very basic set of parameters, such as MCC, MNC, IMSI and KI values.
+
+ - one where the parameters are generated from a minimal set:
+
+ It is also possible to leave the generation of certain parameters to ``pySim-prog``. This is in particular helpful
+ when a large number of cards should be initialized with randomly generated key material.
+
+ ``pySim-prog.py -p <pcsc_reader> --mcc <mcc_value> --mnc <mnc_value> --secret <random_secret> --num <card_number> --pin-adm <adm_pin>``
+
+ The parameter ``--secret`` specifies a random seed that is used to generate the card individual parameters (IMSI,
+ KI, OPc, etc.). Since the secret is used to derive the key material, it should be kept private. It should also be
+ stored safely, in case cards have to be re-generated or the current card batch has to be extended later. Also the
+ secret should contain enough randomness to avoid conflicts.
+
+ The parameter ``--num`` specifies a card individual number. This number will be manged into the random seed so that
+ it serves as an identifier for a particular set of randomly generated parameters.
+
+ In the example above the parameters ``--mcc``, and ``--mnc`` are specified as well, since they identify the GSM
+ network where the cards should operate in, it is absolutely required to keep them static. ``pySim-prog`` will use
+ those parameters to generate a valid IMSI that thas the specified MCC/MNC at the beginning and a random tail.
+
+Specifying the card type:
+
+``pySim-prog`` usually autodetects the card type. In case auto detection does not work, it is possible to specify
+the parameter ``--type``. The following card types are supported:
+
+ * supersim
+ * magicsim
+ * fakemagicsim
+ * grcardsim
+ * sysmosim-gr1
+ * sysmoSIM-GR2
+ * sysmoUSIM-SJS1
+ * Fairwaves-SIM
+ * OpenCells-SIM
+ * Wavemobile-SIM
+ * sysmoISIM-SJA2
+ * sysmoISIM-SJA5
+ * gialersim
+
+Specifying the card reader:
+
+It is most common to use ``pySim-prog`` together whith a PCSC reader. The PCSC reader number is specified via the
+``--pcsc-device`` or ``-p`` option. However, other reader types (such as serial readers and modems) are supported. Use
+the ``--help`` option of ``pySim-prog`` for more information.
- - one where they are generated from some minimal set :
+Card programming using CSV files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-``./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -z <random_string_of_choice> -j <card_num>``
+To simplify the card programming process, ``pySim-prog`` also allows to read
+the card parameters from a CSV file. When a CSV file is used as input, the
+user does not have to craft an individual commandline for each card. Instead
+all card related parameters are automatically drawn from the CSV file.
- With <random_string_of_choice> and <card_num>, the soft will generate
- 'predictable' IMSI and ICCID, so make sure you choose them so as not to
- conflict with anyone. (for eg. your name as <random_string_of_choice> and
- 0 1 2 ... for <card num>).
+A CSV files may hold rows for multiple (hundreds or even thousands) of
+cards. ``pySim-prog`` is able to identify the rows either by ICCID
+(recommended as ICCIDs are normally not changed) or IMSI.
- You also need to enter some parameters to select the device :
- -t TYPE : type of card (supersim, magicsim, fakemagicsim or try 'auto')
- -d DEV : Serial port device (default /dev/ttyUSB0)
- -b BAUD : Baudrate (default 9600)
+The CSV file format is a flexible format with mandatory and optional columns,
+here the same rules as for the commandline parameters apply. The column names
+match the command line options. The CSV file may also contain columns that are
+unknown to pySim-prog, such as inventory numbers, nicknames or parameters that
+are unrelated to the card programming process. ``pySim-prog`` will silently
+ignore all unknown columns.
+
+A CSV file may contain the following columns:
+
+* name
+* iccid (typically used as key)
+* mcc
+* mnc
+* imsi (may be used as key, but not recommended)
+* smsp
+* ki,
+* opc
+* acc
+* pin_adm, adm1 or pin_adm_hex (must be present)
+* msisdn
+* epdgid
+* epdgSelection
+* pcscf
+* ims_hdomain
+* impi
+* impu
+* opmode
+* fplmn
+
+Due to historical reasons, and to maintain the compatibility between multiple different CSV file formats, the ADM pin
+may be stored in three different columns. Only one of the three columns must be available.
+
+* adm1: This column contains the ADM pin in numeric ASCII digit format. This format is the most common.
+* pin_adm: Same as adm1, only the column name is different
+* pin_adm_hex: If the ADM pin consists of raw HEX digits, rather then of numerical ASCII digits, then the ADM pin
+ can also be provided as HEX string using this column.
+
+The following example shows a typical minimal example
+::
+
+ "imsi","iccid","acc","ki","opc","adm1"
+ "999700000053010","8988211000000530108","0001","51ACE8BD6313C230F0BFE1A458928DF0","E5A00E8DE427E21B206526B5D1B902DF","65942330"
+ "999700000053011","8988211000000530116","0002","746AAFD7F13CFED3AE626B770E53E860","38F7CE8322D2A7417E0BBD1D7B1190EC","13445792"
+ "999700123053012","8988211000000530124","0004","D0DA4B7B150026ADC966DC637B26429C","144FD3AEAC208DFFF4E2140859BAE8EC","53540383"
+ "999700000053013","8988211000000530132","0008","52E59240ABAC6F53FF5778715C5CE70E","D9C988550DC70B95F40342298EB84C5E","26151368"
+ "999700000053014","8988211000000530140","0010","3B4B83CB9C5F3A0B41EBD17E7D96F324","D61DCC160E3B91F284979552CC5B4D9F","64088605"
+ "999700000053015","8988211000000530157","0020","D673DAB320D81039B025263610C2BBB3","4BCE1458936B338067989A06E5327139","94108841"
+ "999700000053016","8988211000000530165","0040","89DE5ACB76E06D14B0F5D5CD3594E2B1","411C4B8273FD7607E1885E59F0831906","55184287"
+ "999700000053017","8988211000000530173","0080","977852F7CEE83233F02E69E211626DE1","2EC35D48DBF2A99C07D4361F19EF338F","70284674"
+
+::
+
+The following commandline will instruct ``pySim-prog`` to use the provided CSV file as parameter source and the
+ICCID (read from the card before programming) as a key to identify the card. To use the IMSI as a key, the parameter
+``--read-imsi`` can be used instead of ``--read-iccid``. However, this option is only recommended to be used in very
+specific corner cases.
+
+``pySim-prog.py -p <pcsc_reader> --read-csv <path_to_csv_file> --source csv --read-iccid``
+
+It is also possible to pick a row from the CSV file by manually providing an ICCID (option ``--iccid``) or an IMSI
+(option ``--imsi``) that is then used as a key to find the matching row in the CSV file.
+
+``pySim-prog.py -p <pcsc_reader> --read-csv <path_to_csv_file> --source csv --iccid <iccid_value>``
+
+
+Writing CSV files
+~~~~~~~~~~~~~~~~~
+``pySim-prog`` is also able to generate CSV files that contain a subset of the parameters it has generated or received
+from some other source (commandline, CSV-File). The generated file will be header-less and contain the following
+columns:
+
+* name
+* iccid
+* mcc
+* mnc
+* imsi
+* smsp
+* ki
+* opc
+
+A commandline that makes use of the CSV write feature would look like this:
+
+``pySim-prog.py -p <pcsc_reader> --read-csv <path_to_input_csv_file> --read-iccid --source csv --write-csv <path_to_output_csv_file>``
+
+
+Batch programming
+~~~~~~~~~~~~~~~~~
+
+In case larger card batches need to be programmed, it is possible to use the ``--batch`` parameter to run ``pySim-prog`` in batch mode.
+
+The batch mode will prompt the user to insert a card. Once a card is detected in the reader, the programming is carried out. The user may then remove the card again and the process starts over. This allows for a quick and efficient card programming without permanent commandline interaction.
pySim-read
----------
-``pySim-read`` allows you to read some data from a SIM card. It will only some files
-of the card, and will only read files accessible to a normal user (without any special authentication)
+``pySim-read`` allows to read some of the most important data items from a SIM
+card. This means it will only read some files of the card, and will only read
+files accessible to a normal user (without any special authentication)
-These days, you should use the ``export`` command of ``pySim-shell``
-instead. It performs a much more comprehensive export of all of the
-[standard] files that can be found on the card. To get a human-readable
-decode instead of the raw hex export, you can use ``export --json``.
+These days, it is recommended to use the ``export`` command of ``pySim-shell``
+instead. It performs a much more comprehensive export of all of the [standard]
+files that can be found on the card. To get a human-readable decode instead of
+the raw hex export, you can use ``export --json``.
Specifically, pySim-read will dump the following:
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38166?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I1d1a65154cea7fa77428b412fcf8c7b4cba629b1
Gerrit-Change-Number: 38166
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>