Compare commits

..

218 Commits

Author SHA1 Message Date
Harald Welte 46bc6d25d6 HACK: support for SIM factory file formats
Change-Id: I23cd37fc06b6e2d21964fd4f2694d9ee3c6012d4
2020-09-15 10:47:45 +02:00
Harald Welte 1e42420e57 fix 'TabError: inconsistent use of tabs and spaces in indentation'
those errors appear with python 3.8.5 otherwise

Change-Id: I5e8a41a8aa9abdd0162c4635ccf9bfe736cca27e
2020-08-31 15:05:14 +02:00
Harald Welte ca6739458e Add support for ADF_USIM/EF_EHPLMN
If the EF.EHPLMN exists, it contains the "Equivalent Home PLMN List".
The odd part of that list is that it is not just a list of additional
PLMN identities, but if the first digits of the IMSI are *not* listed
in EF.EHPLMN, then the MCC/MNC of the IMSI prefix is suddently no
longer considered the home network, but the subscriber is roaming.

See TS 23.122: "If the HPLMN code derived from the IMSI is not present
in the EHPLMN list, then it shall be treated as a Visited PLMN for PLMN
selection purposes."

Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3
2020-08-28 08:32:55 +00:00
Supreeth Herle 3c0bd7a41e utils.py: Add helper method to encode ePDG Identifier
This method encodes ePDG Id so it can be stored to EF.ePDGId or EF.ePDGIdEm.
See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.102 and 4.2.104.

Resulting hex string is made of tag value + length + address type + address.
tag value for home ePDG identifier is 80
address type: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), other (Reserved)

ePDG FQDN example: epdg.mnc001.mcc001.3gppnetwork.org

Note: Only FQDN format is supported for now

Change-Id: I864bda5505e9061391a727add294a6e90c50f9ef
2020-06-23 13:54:21 +02:00
Supreeth Herle b1634db0b3 pySim-read.py: Enable parsing of Home ePDG Identifier in USIM
As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3.
Also, if service n°106 and service n°107 are available, this file shall be present.

Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d
2020-06-23 13:54:20 +02:00
Supreeth Herle d6a5ec51a8 utils.py: Handle parsing of ePDGId TLV with zero length
Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a
2020-06-23 13:07:01 +02:00
Sebastian Viviani e61170c0eb utils.py add LOCI EFs decode functions
The LOCI, PSLOCI and EPSLOCI contain some info,
 including the PLMN, added helper functions to
decode it

Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc
2020-06-09 10:10:28 +01:00
Sebastian Viviani 0e9f93fdd6 commands.py: fix read_binary for lengths > 256
fixed commit with commented changes

Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a
2020-06-03 14:36:42 +00:00
Sebastian Viviani 0dc8f69217 ts_31_102.py: add EF_ADF_map
the EF files in the USIM ADF are different to the ones int the GSM dir
so added the dictionary to avoid conflicts and hardcoded values

the 'DIR' one was added in ts_51_011.py, not sure if it should be there
as it's not in that standard, but did it for simplicity

Change-Id: I458380bf46b2986662ecdede2551c22cd9be92ba
2020-06-03 06:30:37 +00:00
Vadim Yanitskiy 29ca8049d6 Implement Generic SIM Access interface as per 3GPP TS 27.007
According to 3GPP TS 27.007, sections 8.17 and 8.18, the modem
may *optionally* provide Generic and/or Restricted SIM Access
to the TE (Terminal Equipment) by means of the AT commands.
This basically means that a modem can act as a card reader.

Generic SIM Access allows the TE to send raw PDUs in the format
as described in 3GPP TS 51.011 directly to the SIM card, while
Restricted SIM Access is more limited, and thus is not really
interesting to us.

This change implements a new transport called ModemATCommandLink,
so using it a SIM card can be read and/or programmed without the
need to remove it from the modem's socket. A downside of this
approach is relatively slow I/O speed compared to PC/SC readers.

Tested with Quectel EC20:

  $ ./pySim-read.py --modem-dev /dev/ttyUSB2

Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6
Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
2020-06-02 21:51:07 +07:00
Vadim Yanitskiy eb06b45d0e utils: fix list comprehension in h2s(): ignore upper case padding
By definition, h2s() is supposed to skip padding in the given
hexstring, so it was working fine for 'ff', but not for 'FF'.

Change-Id: I2c5d72a0f7f2796115116737f9f7b5299021f6a3
Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
2020-05-28 09:59:51 +00:00
Philipp Maier d58c632277 cards: remove empty erase() methods.
Some of the cards do not implement the erase method that each card
should have. However, having an empty method in each of those classes
does not make too much sense. Lets rather have an erase method in the
superclass (Card) that prints a warning to inform the user that erasing
the spcified card is not supported.

Change-Id: If5add960ec0cab58a01d8f83e6af8cb86ec70a8d
2020-05-22 14:43:15 +02:00
Philipp Maier 5c2cc66de5 cards: add methods to help erasing of file contents
Resetting the contents of a file before re-writing it with parameters
might be helpful when implementing the currently empty erase() methods
of the various card implementations. Lets add two methods, one for
resetting a binary file and one for resetting a specific record in a
record oriented file

Change-Id: I3c3a4ef3d3f358404af307a68a20b7059f1a9e8d
2020-05-22 14:43:15 +02:00
Philipp Maier cd3d6268a6 utils: do not crash when all bytes of EF.IMSI are 0xFF
In case try to decode the contents of an uninitalized EF.IMSI, the
function dec_imsi() would crash because it truncates all 0xFF from the
swapped version of the EF.IMSI contents and then accesses the first
element of the buffer. This always works for EF.IMSI contents that
contain valid IMSI data, but if all bytes are set to 0xFF, then no data
is left in the buffer after truncating, so lets check if we even have
bytes left before we move on with the decoding.

Change-Id: I93874a1d7e0b87d39e4b06a5c504643cfabb451c
2020-05-22 13:18:15 +02:00
Philipp Maier 30eb8ca6aa commands: add features to verify data written to files
When writing to files we often just write without making sure that the
actual file contents actually written. Lets add features to do a
read-after-write verification when writing to files.

Change-Id: I7be842004102f4998af376790c97647c107be3d5
2020-05-17 09:38:19 +02:00
Philipp Maier 32daaf5470 commands: add method to determine size of a non record oriented file
For record oriented files we have the methods record_size() and
record_count() to determine the dimensions of a record oriented file,
however, we miss a similar function for regular binary files. Lets add a
method binary_size() to quickly determine the size of a non record
oriented file

Change-Id: I0593f2de7f34d5654a19e949dc567a236e44e20c
2020-05-17 09:38:10 +02:00
Philipp Maier e8536c04bc pysim-prog: move ADM sanitation to utils.py
The lower part of gen_parameters() in pySim-prog.py contains some code
that checks whether the ADM pin supplied in its hexadecimal or in its
string form and generates a sanitised pin_adm from that. Lets separate
this part as it may become useful elsewhere too.

Change-Id: Ifead29724cc13a91de9e2e89314d7fb23c063d50
2020-05-17 09:37:40 +02:00
Philipp Maier 7f9f64ac2a cards: reset uninitalized EF.AD
The contents of EF.AD me be uninitalized (all bytes set to 0xff). If
this is the case reset all bytes of the file to 0x00 and continue the
update of EF.AD with this value.

Change-Id: I57cf53e0c540469f11b6d85bd3daf3f9e14c237e
2020-05-17 07:34:14 +00:00
Harald Welte 7f1d3c496f Treat MCC and MNC as strings, not integers
A MNC of 02 and 002 are *not* equal.  The former is a two-digit MNC
and the latter is a three-digit MNC.  Hence, we shouldn't treat
MNCs as integer values as we have no clue how many leading zeroes
(if any) the user entered.

Change-Id: I9d1d07a64888c76703c3e430bbdd822080c05819
Closes: OS#4523
2020-05-13 11:44:13 +02:00
Philipp Maier ff84c23839 pySim-prog, pySim-read, do not echo reader id
pySim-prog and pySim-read currently echo back the pcsc reader id (or
baudrate/socket, depending on the interface used). This makes the output
unecessarly undeterministic, which becomes a problem when verifying the
putput in tests. Lets not echo those variable, user supplied parameters
back. Also lets move the code that does the initalization to utils, so
that it can be used from pySim-prog and from pySim-read (code dup).

Change-Id: I243cc332f075d007b1c111292effcc610e874eb3
Related: OS#4503
2020-05-12 18:11:38 +00:00
Philipp Maier b689754b49 cards: remove len calculation
The method update_ad() caluclates the size of the data it had just
read from EF.AD, but the result is never used, lets remove that
line

Change-Id: Id38c0dc725ab6874de3ea60132482a09372abe9e
2020-05-12 11:38:02 +02:00
Supreeth Herle fc83e43637 Add option to specify MNC length in non-batch programming scnearios
Change-Id: Ied56a28d46a4c9c0c516d73fa257daeef7b50b61
2020-05-11 17:28:49 +00:00
Supreeth Herle d572edef1e utils.py: Add helper method to parse ePDG Identifier from hex string
The hex string consists of contains zero or more ePDG identifier data objects.
Each ePDG Identifier TLV data object consists of tag value of '80', length, address type, identifier.

TS 31.102 version 13.4.0 Release 13. The same parsing method applies for both EF.ePDGId and EF.ePDGIdEm

Change-Id: I96fb129d178cfd7ec037989526da77899ae8d344
2020-05-11 10:53:18 +02:00
Supreeth Herle 7d77d2d5d0 Introduce function for converting bytes list in (hex or int) to string
This function is needed for conversion of bytes list output of TLV parser to representable string

Change-Id: I8c1e39ccf9fb517d465e73f69c720e7fdde02ded
2020-05-11 10:39:50 +02:00
Supreeth Herle 9837055f4f Import TLV parsing related function from https://github.com/mitshell/card
The functions are imported from the git commit 2a81963790e27eb6b188359af169c45afb6d3aaf from master branch

Change-Id: I5c7fdbd122e696d272f7480785d0c17ad2af138c
2020-05-11 09:04:41 +02:00
Harald Welte 32f0d415af Fix writing of EF.HPLMNwAcT on sysmoISIM-SJA2
Change-Id: I9372a1a1f10fbe916659a8a50fe0e164987b2d5d
Closes: OS#4532
2020-05-09 17:26:12 +02:00
Supreeth Herle ee15c77185 Enable parsing of ISIM Service table (IST)
As per TS 31.103, This EF indicates which ISIM services are available.
If a service is not indicated as available in the ISIM, the ME shall not select this service.

Parsing of IST is achieved by first selecting the ISIM application using its AID.
This is followed by selecting EF.IST with File ID - 6f07 in ADF.ISIM

Change-Id: I3f0a7227360b72a707dc1bcc4cc9c8a4ec7ad2b2
2020-04-27 12:29:00 +02:00
Supreeth Herle df33037e42 Extend parsing and printing of Service table to ISIM
Change-Id: I7657432df76e9de5e4e5fdecfd717d8363de8270
2020-04-27 12:29:00 +02:00
Supreeth Herle 8b72c27270 Define mapping between ISIM Service Number and its description
This commit introduces a lookup table which maps ISIM Service Number to its description.
The mapping is defined in 3GPP TS 31.103 version 14.2.0 Release 14, 4.2.7 EF.IST (ISIM Service Table)

Change-Id: Iad51d0804259df47729308b461062f794b135e66
2020-04-27 12:29:00 +02:00
Supreeth Herle 9641299f9a Enable parsing of USIM Service table (UST)
As per TS.31.102, This EF indicates which USIM services are available.
If a service is not indicated as available in the USIM, the ME shall not select this service.

Parsing of UST is achieved by first selecting the USIM application using its AID.
This is followed by selecting EF.UST with File ID - 6f38 in ADF.USIM

Change-Id: I54dbbd40bd3d22cee81f7c32e58cd946f8564257
2020-04-27 12:29:00 +02:00
Supreeth Herle 69e5d27e3c Remove redundant functions
Change-Id: I2dfb5b662b8a4f351e4a629040b405c182e58e8d
2020-04-27 12:29:00 +02:00
Supreeth Herle d3b13d0c85 Use helper method to print available service in EF.SST
Change-Id: I375475e9f7210dae4e8da7258d6824dc2d54cf4c
2020-04-27 12:29:00 +02:00
Supreeth Herle 0c4d82d84a utils.py: Add helper method to parse and print Service Table
This method helps in printing Service Tables in EF.SST, EF.UST, EF.IST.
Takes hex string of Service table, parses it and prints available service along with its description.

Change-Id: Ie1e82e07ead2e28314a5794661e6b2ced0acd72a
2020-04-27 12:29:00 +02:00
Supreeth Herle 3e6f16d8f6 pySim-read.py: Add ability to read Cards with correct CLA, P1 and P2 bytes
Initially the Card is read assuming a UICC SIM, but in case its not, an
error 6e00 will be thrown indicating CLA not supported and Card has just Classic SIM application.

Ref: https://web.archive.org/web/20090630004017/http://cheef.ru/docs/HowTo/APDU.info

The above link provides the bytes to use for CLA, P1, P2 in APDU

Change-Id: Ifea328eff3a381d7b82118e22d2bc0ec5f8a87e4
2020-04-27 08:41:49 +00:00
Supreeth Herle f9f3e5e0c1 cards.py: Added method to select ADF by its full AID
If AID of the desired ADF is in the list of AIDs of the Card/Card subclass object
then ADF is selected or else None is returned

Change-Id: Ie5f29eec14f099add1d0978e3e7d4ed3c9130854
2020-04-16 07:55:15 +02:00
Supreeth Herle 3bf43639ce Populate AIDs present on the UICC
Change-Id: I4d0d8f5f1e8cb252be55a2995b730927cfa7004d
2020-04-16 07:55:13 +02:00
Supreeth Herle 475dcaa4a1 Define mapping between USIM Service Number and its description
This commit introduces a lookup table which maps USIM Service Number to its description.
The mapping is defined in 3GPP TS 31.102 version 13.4.0 Release 13, 4.2.8 EF.UST (USIM Service Table)

Change-Id: Ia9025a4be6ba29fe79ca4bf6c7a452188ea3d454
2020-04-16 07:38:28 +02:00
Supreeth Herle e26331ef72 Add ability to parse SIM Service Table (EF.SST)
As per TS.51.011, This EF indicates which services in the SIM are allocated, and whether, if allocated, the service is activated
.If a service is not indicated as available in the SIM, the ME shall not select this service.

Change-Id: Id28a35727adbaaa9df19b1adc621a0c51ad0e51b
2020-04-16 07:38:27 +02:00
Supreeth Herle 441c4a768f utils.py: Add helper method to parse Service Table
This method helps in parsing Service Tables in EF.SST, EF.UST, EF.EST, EF.IST.
Takes hex string as input and output a list of available/enabled services.

Change-Id: I9b72efdb84ba7be4a40928a008a59c67f6fb71d4
2020-04-01 11:06:59 +02:00
Supreeth Herle bf5d602588 Define mapping between SIM Service Number and its description
This commit introduces a lookup table which maps SIM Service Number to its description.
The mapping is defined in 3GPP TS 51.011 version 4.15.0 Release 4, 10.3.7 EF.SST (SIM Service Table)

Change-Id: I4a416bd8bff563ae08b1b3c053d2047da91667b4
2020-04-01 11:06:59 +02:00
Supreeth Herle 52ef675c31 Use the generic method read_binary of card class to read AD
Change-Id: Ie7f62913caed95f482445962954857bb69b58078
2020-04-01 11:06:25 +02:00
Supreeth Herle 6d66af653f Move parsing of MSISDN to generic Card class
Change-Id: I5b726bc0dc8c8e5eb42f209b1fe0f35a46ac91be
2020-04-01 11:05:26 +02:00
Supreeth Herle d1fb6fc359 Use the generic method read_binary of card class to read ACC
Change-Id: I92a02c74d64b3120055163548fc128ed6e0650a4
2020-04-01 11:04:43 +02:00
Supreeth Herle a850a47981 Move parsing of HPLMNAcT to generic Card class
Change-Id: I46c863c118dcbef89455c34289ed25e5a342f35b
2020-04-01 09:35:52 +02:00
Supreeth Herle 1757b263bf Move parsing of OPLMNwAcT to generic Card class
Change-Id: I8050bd103a7085b2631ddc4e567d15e05f9428f2
2020-04-01 09:35:52 +02:00
Supreeth Herle 140844052a Move parsing of PLMNwAcT to generic Card class
Change-Id: I14d7c2dc51fac6d5cf4a708a77ad23d252ba6094
2020-04-01 09:35:52 +02:00
Supreeth Herle 9efd8ef812 Use the generic method read_binary of card class to read PLMNsel
Change-Id: I0a683c479cd41ccc6a93c23434c73793cb5dc186
2020-04-01 09:34:57 +02:00
Supreeth Herle 846cefb0cd pySim-read.py: Use the method declared in cards.py to read SPN
Change-Id: I71c29e2d9d62c50d352556710e63ba398269a5c7
2020-04-01 09:33:29 +02:00
Supreeth Herle ebe6dbaef5 Use the generic method read_record of card class to read SMSP
Change-Id: I911c5339a739fbdd9d41e61b63f2410c8358815b
2020-04-01 09:32:49 +02:00
Supreeth Herle e573ccb53c Use read_binary function of card class to read GID2 and reduce code duplication
Change-Id: I5d80fcc1446a6691b8e2a09bcec558148fa31ab2
2020-04-01 09:21:20 +02:00
Supreeth Herle ad10d66baf cards.py: Add generic function to read EF record in card class
This is a generic function applicable for reading EF records which doesnt require further processing
such EF.SMSP etc while decoding and also to avoid code duplication.

Change-Id: Ic0b4aa11e962b4bb328447b11533136a29ff72d3
2020-04-01 09:14:54 +02:00
Supreeth Herle d21349a610 cards.py: Add generic function to read EF binary to card class
This is a generic function applicable for reading EFs which doesnt require further processing
such as GID1, GID2 etc while decoding and also to avoid code duplication.

Change-Id: If3d8fdddb26f9776c89fd442d1d95b83e0d1476b
2020-04-01 09:14:04 +02:00
Supreeth Herle c7f2f7413b Move parsing of GID2 to generic Card class
Change-Id: I3fe4b08c888a39cda7e7fce7a467f17908bdc3ad
2020-03-22 10:17:05 +01:00
Supreeth Herle 98a6927b27 Move parsing of GID1 to generic Card class
Change-Id: Ie96408b1eecd6fc2595d619f6f0e3af851dacecb
2020-03-22 10:17:05 +01:00
Supreeth Herle f9762dc98f pySim-read.py: Use the method declared in cards.py to read IMSI
Change-Id: I2709b040d956a3a2b9210aa78c82a6ccf482f761
2020-03-22 10:17:05 +01:00
Supreeth Herle 3566b8eb55 pySim-read.py: Use the method declared in cards.py to read ICCID
Change-Id: I0dcda1ea617f3febe246b360b95887c04e5d2629
2020-03-22 10:17:05 +01:00
Supreeth Herle 4c306ab200 pySim-read.py: Added a common card detection function for both pySim-prog.py and pySim-read.py
This function is used to detect the card type and return Card class/Card subclasses object
if its a know card or else None. Also, an initial step towards refactoring of code.

Change-Id: I71f57c6403dc933bd9d54f90df3d3fe105b4f66f
2020-03-22 10:17:03 +01:00
Supreeth Herle e4e98316a8 cards.py: Added parsing of all the AIDs in the UICC
Introduced a new member variable and a member function to Card class to fetch
and store the AIDs present in UICC. And, this variable (a list) is populated
by reading the EF 2f00 under MF 3f00 (function read_aids()).

Change-Id: I7ca77a73ebb42a8ba1381588d878040675d3019a
2020-03-19 10:27:48 +01:00
Supreeth Herle 0e90e6c3c6 pySim-read.py: support for reading GID2 from SIM
Change-Id: I0e893c3929aa1be6b55af296484811a7b94db560
2020-03-13 07:44:45 +00:00
Supreeth Herle ab46d625fc pySim-read.py: support for reading GID1 from SIM
Change-Id: I15d061daed20f770b9041977a0b1fc4fe44a8f95
2020-03-13 07:44:45 +00:00
Philipp Maier d950786525 sysmoISIM-SJA2: Add suport for USIM-only and ISIM-only cards
When pysim-prog programms the application specific files of ISIM and
USIM it selects the application by its AID first. If depending on the
card profile one of the applications is missing the selection of the
related ADF will fail. Lets check the presence of the AID first and if
it is not present lets skip the programming of the related files.

Change-Id: I0eec6ed244320fcd4dc410b6fab20df9c64ff906
Related: SYS#4817
2020-03-11 12:35:20 +01:00
Philipp Maier b3e11ea196 sysmiISIM-SJA2: add support for new card model / os version
There is a new card version with a different ATR, lets add the ATR for
this card to support it as well.

Change-Id: I222faea89c1df58c36a19b28449dffb84a956e74
Related: SYS#4817
2020-03-11 12:34:59 +01:00
Vadim Yanitskiy 9664b2e7fc cards: Python 3 fix: use the floor division operator //
Change-Id: I21de34133dbc5d859a5b744adc74f706ba2f0dd8
2020-02-27 02:20:47 +07:00
Vadim Yanitskiy edf873d04a commands: Python 3 fix: properly distinguish str and list
Unlike Python 2, in Python 3 strings also have attribute '__iter__'.
Because of that, a string could be passed to select_file(), that
actually expects a list as the first parameter.

P.S. Madness, Python 3 is just a new different language...
P.P.S. They should have renamed it not to confuse people.

Change-Id: I92af47abb6adff0271c55e7f278e8c5188f2be75
Fixes: OS#4419
2020-02-27 02:19:27 +07:00
Vadim Yanitskiy fa617ac20d transport/pcsc: explicitly specify T0 protocol
From pyscard user's guide [1]:

   == Selecting the card communication protocol ==

   By defaults, the connect() method of the CardConnection object
   will try to connect using either the T=0 or T=1 protocol.
   To force a connection protocol, you can pass the required
   protocol to the connect() method.

This means that a PC/SC ifd handler may automatically choose T=1
as the highest protocol if the card indicates both in its ATR [2].

Since pySim only supports T=0, let's select it explicitly.

[1] https://pyscard.sourceforge.io/user-guide.html
[2] https://github.com/acshk/acsccid/issues/16#issuecomment-501101972

Change-Id: Ifed4574aab98a86c3ebbeb191f36a8282103e775
2020-02-27 02:10:50 +07:00
Vadim Yanitskiy 41c22176e4 transport/pcsc: cosmetic: reuse the existing code of PcscSimLink
Change-Id: I5360df644032b95654e99ccaa5118952e8d55faf
2020-02-27 01:54:22 +07:00
Vadim Yanitskiy 7ba2428de5 utils: fix dec_msisdn(): properly detect international numbers
We should match the whole value of ToN, not just one LSB bit.

Change-Id: Idc51f09b3420d827a75a1161372e4e97c3ddfbc1
2020-02-27 01:54:10 +07:00
Vadim Yanitskiy 99affe1529 Py2 -> Py3: use the floor division operator // where possible
In Python 3, traditional division operator returns a float,
while we need a floor integer in the most cases.

Change-Id: I5565eb64a1ddea7075cbb142eaacaa5d494c87bb
2020-02-15 19:11:50 +00:00
Vadim Yanitskiy 4133080ced pySim-read.py: do not import json, it is not needed
Change-Id: I4ae1d71c5695c9cd8ddebea514847b0be6a24c6c
2020-02-15 19:11:50 +00:00
Supreeth Herle 5a541016fb pySim-prog.py: add support for MSISDN programming
This change implements programming of EF.MSISDN as per 3GPP TS 31.102,
sections 4.2.26 and 4.4.2.3, excluding the following fields:

  - Alpha Identifier (currently 'FF'O * 20),
  - Capability/Configuration1 Record Identifier ('FF'O),
  - Extension1 Record Identifier ('FF'O).

This feature is introduced exclusively for sysmoUSIM-SJS1.
Othere SIM card types need to be tested.

Change-Id: Ie033a0ffc3697ae562eaa7a241a0f6af6c2b0594
2020-02-15 04:57:20 +07:00
Supreeth Herle 4b1c763395 pySim-read.py: fix reading and parsing of EF.MSISDN
This change implements parsing of EF.MSISDN (and thus EF.ADN)
as per 3GPP TS 31.102, sections 4.2.26 and 4.4.2.3.

Example (commercial SIM card from 401/02):

  EF.MSISDN: ffffffffffffffffffffffffffff07917787028982f7ffffffffffff
  Decoded (NPI=1 ToN=1): +77782098287

Note that sysmoUSIM-SJS1 in the test setup has malformed
EF.MSISDN, so that's why the test output is changed.

Change-Id: Ie914ae83d787e3f1a90f9f305bffd45053b8c863
2020-02-15 04:22:53 +07:00
Supreeth Herle d24f163513 Fix MCC and MCC representation in the output of pySim-read
Change-Id: Ie699c0a38d5ae90e4d6109e4574ce860e4044096
2020-02-15 03:26:49 +07:00
Supreeth Herle f442fb4d69 cards/sysmoUSIM-SJS1: support programming of EF.HPLMNwAcT
Change-Id: Ida93f4a00fe3b1d0f05d6eeda0e7873ce16d4c17
2020-02-15 03:26:49 +07:00
Supreeth Herle c8796a3184 cards/sysmoUSIM-SJS1: support programming of ACC bits
Change-Id: Id0ed9e5654dc0a70a4732bbe5787f1900789d580
2020-02-15 03:26:49 +07:00
Supreeth Herle 2d7859759e cards: fix reading of EF.HPLMNwAcT in Card.update_hplmn_act()
Change-Id: I35848059d6082c379246c8d695cb094c20780d15
2020-02-15 03:26:49 +07:00
Supreeth Herle 9ca41c1f26 cards: cosmetic/indentation fix: use tabs, not spaces
Change-Id: I5d9cbdb0ecbee783729d0a208d12f8e59ca957ff
2020-02-15 03:26:49 +07:00
Supreeth Herle 840a9e2a76 pySim-prog.py: add presence/length checks for user-provided SPN
Change-Id: I35fab9a85efda2b83f221a460d31c7d41db582b0
2020-02-15 03:26:49 +07:00
Supreeth Herle 6af4c21cdf pySim-read.py: print meaningful message when SPN is not set
Change-Id: I1d98520f33a8564c7d69f50a0811204f138f9dca
2020-02-15 03:25:47 +07:00
Vadim Yanitskiy a3bb334981 pySim-read.py: fix copy-paste: s/HPLMNAcT/PLMNsel/
Change-Id: I4a452a2e439cb713621a028cf0046339f50864b6
2020-02-14 22:46:38 +07:00
Vadim Yanitskiy 6727f0c02c Fix compatibility with Python 3: print() is a function
Change-Id: I5dd8e5daf420fc8667c5156bfacc8763d8895993
2020-02-14 22:46:38 +07:00
Vadim Yanitskiy fa1dc34152 testdata/sysmoUSIM-SJS1.ok: make it match the actual EF.HPLMNAcT
Change-Id: Ibe1bf274c15a3159b012c6fe07ef6a7cbf0adbdb
Related: OS#4383
2020-02-14 22:45:45 +07:00
Supreeth Herle e51643e87e Fix file permission
Change-Id: I893869329e9547e06386baf4d16a18e545042d62
2020-01-21 11:32:06 +01:00
Supreeth Herle 7947d92bc1 Added feature to program SPN into sysmoUSIM-SJS1 SIM cards
Change-Id: Ia0f1a36ecb3898eaa1cf9925864e13369b1f31ce
2020-01-21 11:31:56 +01:00
Supreeth Herle f829945117 Added feature to read Service Provider Name (SPN) from the SIM card
Change-Id: I8dc599a76c260ec2823ba5c9b22375b04a50daa8
2020-01-21 11:00:38 +01:00
Philipp Maier 0ad5bcfbc1 cards: Add support for sysmo-isim-sja2
The sysmo-isim-sja2 cards are not yet supported by pysim. Lets add
support for writing KI and OPC in ADF.USIM and ADF.ISIM as well as the
remaining common simcard parameters.

Related: SYS#4466
Change-Id: I23e2b46eac0e0dbc2b271983d448999f6a459ecf
2019-12-31 18:02:42 +01:00
Philipp Maier 07cd481954 Fixup: Fix automated tests
The Change I12e6b46787efb39c5745f4e7f3cdcca9209881b8 was not as
effective as expected. Diff is used wrongly so that no lines are
compared. Lets fix this

Change-Id: I1601d8a2b3e1c07fe1eba375ea8deae3d50bbef0
2019-12-31 18:02:42 +01:00
Philipp Maier cdfdd41293 commands: fix __record_len()
When working with USIM/ISIMs, The method __record_len() that is used
by the record_count() method returns the length of the file instead
the actual record count. This causes record_count() to return always 1

Change-Id: If810c691893c022e9e9d87218dd0a334c5b2d579
2019-12-20 13:42:41 +01:00
Philipp Maier 4e724391e0 Fix automated tests
- The .ok files currently dictate in which pysical reader device the
card must be placed. Lets remove this dependncy to make the setup more
reliable. Testing in which reade a card is placed is not in the scope of
our tests.

- Fix bug in pysim-test.sh (test runner), so that the veriable $ADM_HEX
gets reset after the execution of the tests.

Change-Id: I12e6b46787efb39c5745f4e7f3cdcca9209881b8
2019-12-16 15:13:27 +01:00
Philipp Maier 76db7d7295 Fairwaves-SIM: Add test data
Add test-data in order to be able to run our hardware read/write tests on
Fairwaves-SIM as well.

Change-Id: I04713e8cb1098521eafa4594100fcc7226978e21
2019-11-12 13:36:22 +01:00
Philipp Maier 5a8763154e cards.py: do not use spaces in card names
pySim-prog.py features a way to detect which card type is in the reader.
The returned value is often used as filename for testfiles and other
automated operations. Therefore lets not have spaces in simcard names

Change-Id: Ib7428fab767874dd53478d7c64601ff8938e05aa
2019-11-11 11:03:19 +01:00
Denis 'GNUtoo' Carikli 8902bcde07 python3 conversion: Use python 2 and 3 compatible exceptions
Without that we have:
  $ python3 pySim-read.py
  Using serial reader (port=/dev/ttyUSB0, baudrate=9600) interface
  Traceback (most recent call last):
    File "pySim-read.py", line 91, in <module>
      from pySim.transport.serial import SerialSimLink
    File "/home/gnutoo/work/projects/osmocom/pysim/pySim/transport/serial.py", line 29, in <module>
      from pySim.exceptions import NoCardError, ProtocolError
    File "/home/gnutoo/work/projects/osmocom/pysim/pySim/exceptions.py", line 26, in <module>
      import exceptions
  ModuleNotFoundError: No module named 'exceptions'

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Change-Id: Ie45dc7ccd72fe077ba3b424f221ff4ed02db436c
2019-09-28 12:45:31 +00:00
Denis 'GNUtoo' Carikli 84d2cb3cb3 python3 conversion: fix tabs and spaces inconsistency
Without that fix we have:
  $ python3 pySim-read.py
    File "pySim-read.py", line 135
      try:
         ^
  TabError: inconsistent use of tabs and spaces in indentation

The following command was used to do the conversion:
  sed 's#        #\t#g' -i $(find -name "*.py")

Then the remaining spaces spotted during the review were
addressed manually.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Change-Id: I83f76a8e9b6e36098f16552a0135a8c22dde545f
2019-09-15 15:53:02 +02:00
Philipp Maier 7592eeea59 pySim-prog: use functions to derive MCC/MNC from IMSI
In case the MCC/MNC are not supplied with a CSV file we cut out the
missing values from the IMSI string. Lets use a function to do this and
also check the input parameters.

Change-Id: I98e5bf8f9ff2a852efb190cc789edf42c5075bf8
2019-09-13 11:04:13 +02:00
Philipp Maier be069e26ae cards: use string representation for MNC/MCC
At the moment MNC and MCC are represented as integer numbers inside the
parameter array while all other parameters are represented as strings.
Lets use strings for MNC/MCC as well to simplify the parameter handling.
We will also not loose the length information in case of leading zeros.

Change-Id: Ia2333921a4863f0f26ee923ca796e62ec5e2d59a
2019-09-13 11:04:13 +02:00
Philipp Maier 196b08cdfd pySim-prog: check if CSV file exists
At the moment we do not chack if the CSV file exists at all. This may
lead into a crash while programming the card. Lets check the CSV file
before we start.

Change-Id: I2643996282d88e512c17901ab0e1181677d5dd6c
Related: SYS#4654
2019-09-13 10:29:59 +02:00
Philipp Maier 120a000e86 pySim-prog: use case insensitive CSV headers.
Inside of pySim all CSV headers are defined in lower case and are
evaluated case sensitive. This means that a CSV file that contains the
headers in uppercase for example will not parse. Lets make sure that the
CSV headers are evaluated case insensitive to increase compatibility
with slightly different formats.

Change-Id: I1a476e7fc521d1aad2956feec3db196156961d20
2019-09-13 10:29:59 +02:00
Philipp Maier 1de89bf889 pySim-prog.py: use more expressive error message on CSV read failure
When the CSV file fails to read the error message is just "Error reading
parameters". Lets make clear that this error is related to a problem
with the CSV file

Change-Id: If285c1fbf7d285f512b573040f1b8983e4e3087e
2019-09-13 10:16:32 +02:00
Philipp Maier c5b422e2ca Add support for automatic card handling
When using the batch mode of pySim-prog, the user has to insert/remove
the cards from the cardreader manually. This is fine for small batches,
but for high volume batches this method is not applicable.

This patch adds support for the integration of an automatic card handler
machine. The user can freely configure a custom commandline that is
executed when a card should be inserted or moved to a good/bad
collection bin.

Change-Id: Icfed3cad7927b92816723d75603b78e1a4b87ef1
Related: SYS#4654
2019-09-12 11:21:47 +02:00
Philipp Maier e053da5a14 pySim-prog: generate a pin_adm from pin_adm_hex also for CSV files
When reading CSV files we currently have no option to provide a
pin_adm_hex field like we already have it as commandline option.
Lets add an option pin_adm_hex for this.

Change-Id: I53e8d666d26a06f580725a8443a335643d10192c
2019-09-05 13:58:38 +02:00
Daniel Willmann 164b963dd2 Add an option to read the iccid and batch-program the new card data
This can be used to reprogram everything including IMSI on the card:

while true; do
 ./pySim-prog.py -p 0 -t sysmoUSIM-SJS1 --source=csv --read-csv=cards.csv --read-iccid &&
   paplay complete.oga
 sleep 2
done

Change-Id: Ib343a29141b5255f67a59ab76959b51e162b7916
2019-09-03 20:11:48 +02:00
Daniel Willmann f432b2ba96 pySim-prog: Add option for hex ADM keys
pySim-prog would implicitly try to use the raw or hex-escaped format
depending on the length of the parameter, now there is the option "-A"
to explicitly specify the hex-escaped ADM1 key.

pysim-test.sh: Explicitly use the "-A" option to pass the hex adm1 key
for wavemobile cards

Change-Id: Id75a03482aa7f8cc3bdbb8d5967f1e8ab45c179a
2019-09-03 20:11:48 +02:00
Daniel Willmann c46a4eba43 pySim-prog: Use CSV format with headers
This way we can have optional fields like pin_adm in the file
Also require iccid as identifier for the SIM card
Set defaults for optional card parameters.

Change-Id: I0d317ea51d0cf582b82157eec6cdec074001a236
2019-09-03 20:11:48 +02:00
Daniel Willmann 7d38d74716 pySim-prog: Print out hex-escaped pin_adm in card parameters
Use h2b to convert pin_adm back to binary form for sysmoSIMgr2

Change-Id: Ia178c9938f3e6a4fbac24d767437894297d1e708
2019-09-03 18:41:05 +02:00
Philipp Maier 9f9c60937e pysim-testdate: Add test data for Wavemobile-sim
Change-Id: Id2baedf5ac6396a643f36444e8f570ad9c41fafb
2019-09-02 14:42:43 +02:00
Harald Welte 23888dab85 make writing SMSP optional
Change-Id: Ic5fdd397244cfe73b5b6a12883316072cc10f7b4
2019-08-28 23:20:02 +02:00
Daniel Willmann 67acdbc817 Make programming OPC optional
Change-Id: Ic600c325557918cb7d5b1fb179c01936a078c96c
2019-08-28 23:19:57 +02:00
Vadim Yanitskiy 35a96edb0d pySim-*.py: print info about selected reader interface
Change-Id: Idd791d7ef635e15915aab13274aefc15e70777b0
2019-05-10 22:24:21 +07:00
Max 5491c48e71 Don't try to parse result if select_file() failed
Change-Id: I25b859374e33654e58d07061926bf8529eab87f3
2019-05-10 17:03:58 +02:00
Max 89cfded971 Use reference array for reading ICCID
Change-Id: Iad0a328c6f0c9a4ab678efe068801849be48d8fc
2019-05-10 17:03:58 +02:00
Daniel Laszlo Sitzer 851e9c0f4c utils: add EF [H|O]PLMNwAcT decoding.
Allow decoding and pretty printing of PLMNwAcT, HPLMNwAcT and OPLMNwAct.

Includes unit tests for the added functions.

Change-Id: I9b8ca6ffd98f665690b84239d9a228e2c72c6ff9
2019-05-10 17:03:58 +02:00
Harald Welte 91d4ec7e7b import pysim-testdata of automatic testing to this repository
This test data is used by the jenkins build verification for pySim,
and it was previously located locally on the build slave.

By moving the testdata to this repository, any contributor can
modify both the code and the expected test results simultaneously.

Change-Id: I6714b091a114035d6aab8ba750c5f2b86e438467
2019-05-10 17:03:58 +02:00
Philipp Maier 6e507a7786 wavemobile-sim: write mnc-length field ine EF.AD
The length field in wavemobile sim cards is not set, so that the field
stays at its initial value, which is 0xFF. Lets write the correct mnc
length here.

Change-Id: Ieda0ce864bf3e8c7b92f062eaa3a5482c98507e2
Related: OS#3850
2019-04-01 16:33:48 +02:00
Philipp Maier 45daa925bd cosmetic: fix sourecode formatting
Change-Id: I4836826811ffb0aeb103d32eb874f5fa52af4186
2019-04-01 15:50:50 +02:00
Philipp Maier ee908ae195 sysmo-usim-sjs1: update EF.AD with correct MNC length
At the moment EF.AD, which contains the length of the MNC is not
updated. For two digit MNC (the usual case) this is fine since the
length is set to 2 by default. However, when one wants to set an MNC
with 3 digit length the file must be updated, otherwise the third digit
of the MNC is recognized as part of the MSIN.

Change-Id: I827092b2c7f7952f54b2d9f8dbda419a0dbfaf65
Related: OS#3850
2019-04-01 15:50:50 +02:00
Philipp Maier 2d15ea015e cards: sysmo-usim-sjs1: add programming of EF.PLMNsel, EF.PLMNwAcT and EF.OPLMNwAcT
The files EF.PLMNsel, EF.PLMNwAcT and EF.OPLMNwAcT are currently not
programmed for sysmo-usim-sjs1, lets add them.

Change-Id: I0cac3041f1902383d98d6dc211cf31ae6e3a610b
Related: OS#3850
2019-03-21 18:04:26 +01:00
Philipp Maier 91f26d7f0a commands: correct case of a TLV tag (A5 => a5)
The hexadecimal tag defintions of pytlv are case sensitive strings. So
'A5' is something different than 'a5'. Pytlv uses lower case letters for
the upper hexadecimal digits. Lets correct this.

Change-Id: I41a9933707783f6b1b68ebd91a365405ac0892d0
Related: OS#3850
2019-03-21 17:24:18 +01:00
Vadim Yanitskiy 9f9f5a6157 pySim-*.py: add command line option for Calypso reader
Change-Id: Ia895ced62d29e06ae8af05cd95c9d181fb53b9df
2018-10-29 02:45:54 +07:00
Vadim Yanitskiy 588f3aca3c pySim-*.py: refactor card reader driver initialization
This would facilitate adding new card reader drivers.

Change-Id: Ia893537786c95a6aab3a51fb1ba7169023d5ef97
2018-10-29 01:58:18 +07:00
Vadim Yanitskiy 1381ff15af pySim/transport: introduce Calypso based reader interface
This interface allows to use a Calypso based phone (e.g. Motorola
C1XX) as a SIM card reader. It basically implements a few L1CTL
messages that are used to interact with the SIM card through
the OsmocomBB 'layer1' firmware.

Please note, that this is an experimental implementation, and
there is a risk that SIM programming would fail. Nevertheless,
I've managed to program and read one of my SIMs a few times.

Change-Id: Iec8101140581bf9e2cf7cf3a0b54bdf1875fc51b
2018-10-29 01:58:11 +07:00
Daniel Willmann 4fa8f1c49b pySim-prog: Honor international '+' in SMSC number
The smsc no. programmed by pySim-prog would always be a national number
in the past. Check whether the first 'digit' is a + and indicate that it
is an international number.

Change-Id: Ia79913f5b0307e9786a5acea75c0811927be2eef
2018-10-05 13:19:17 +02:00
Ben Fox-Moore 0ec147513c utils: fix encoding/decoding of IMSI value
When programming or reading a SIM with an IMSI shorter than 15, the IMSI
value is incorrectly encoded/decoded.

The code pads the the IMSI value with 0xF from the left but padding from
the right would be correct.

It also encodes the length as half the number of digits in the IMSI
(rounded up). This isn't correct for even length IMSIs. With even length
IMSIs, the odd/even parity bit bumps the last digit into an extra byte,
which should be counted as well.

- Fix endcoding of IMSI value
- Fix decoding of IMSI value

Change-Id: I9ae4ca4eb7c2965e601a7108843d052ff613beb9
Patch-by: Ben Foxmoore
Closes: SYS#3552
2018-09-26 18:14:19 +02:00
Philipp Maier c555e18ebb tests: add example test data for Wavemobile-SIM
Change-Id: If69cd2d8af6d544155b3088f77eb6ea4b789901d
Related: SYS#4245
2018-09-13 09:43:26 +02:00
Philipp Maier c8ce82a11f cards: Add support for Wavemobile SIM
Add support to handle Wavemobile sim cards. The support excludes some
parameters. For example it is not possible to write own KI keys yet.

Support covers the following files:
EF.SMSP
EF.IMSI
EF.ACC
EF.PLMNsel
EF.PLMNwAcT
EF.OPLMNwAcT

Not yet supported are:
EF.ICCID
KI (propretary file)
OPc (propritary file)

Change-Id: Ida3f37bd6e3ac995812aeddc9770f1ccd54ecf3f
Related: SYS#4245
2018-09-13 07:18:33 +00:00
Philipp Maier 11a2e3ca10 tests: add example file for sysmosim-gr1
Change-Id: I36cfa81f9029bfaedd2e802a2d709596dbeb20ab
Related: OS#3405
2018-08-23 10:44:51 +02:00
Philipp Maier a3de5a331e cards: do not feed ascii as adm for sysmosim-gr1
When sysmosom-gr1 is used with a custom ADM key, then the ADM string is
not fed through h2b() like we see it with sysmo-usim-sjs1 for example.

- feed the ADM to h2b() before use

Change-Id: I0b7cab380b89612ed3b8318e014161038335fe1b
Related: OS#3405
2018-08-23 10:44:33 +02:00
Philipp Maier 087feff7cb cards: autodetect sysmosim-gr1
The sysmosim-gr1 lacks the auto detection feature because no autodetect
is yet programmed inside the related class.

- add autodetect for sysmosim-gr1

Change-Id: Iec1f1ab6824ff2328baedd731b08df997df4da01
Related: OS#3405
2018-08-23 10:43:57 +02:00
Neels Hofmeyr 52f59aca78 readme: add 'serial' dep, cosmetically rearrange
Change-Id: I414b897ba4911b7428ddf807cb04a93700ee0193
2018-08-20 21:54:34 +02:00
Philipp Maier fb98dd6d6e commands: depend on pytlv only when it is actually needed
Some of the USIM-Card programming implementations do not need to look
at card responses, which means they also do not have to parse TLV
data. Lets depend on pytlv only in cases where TLV data has to be
parsed so that useser of cards that do not need at can go without
installing pytlv.

Change-Id: Ida841d74d9581e7f395751b0f74556a06a038de6
2018-07-25 18:52:58 +00:00
Philipp Maier 53b6dc216f readme: add info about dependencies
So far, the README.md file does not mention much about the
dependencies. This commt adds at lest the most important ones

Change-Id: I912bbf787e1408100183cade2113bf7617b86ffa
2018-07-25 18:52:58 +00:00
Alexander Couzens 73a0f047a1 add .gitreview
git review uses this file to build the git url.

Change-Id: Ia35aeb33d43ace3c71689d5acbb8d1259ccb7b42
2018-07-19 23:51:00 +02:00
Alexander Couzens 4731232aae contrib: add jenkins.sh
Run the tests.

Change-Id: I9308f097bf77d82e5ef78d1be551baf127726f74
2018-07-19 23:46:38 +02:00
Philipp Maier 7f340851fc tests: add test program to verify pysim-prog.py (and pysim-read.py)
Pysim now supports quite a number of different cards. Estimating
if changes in pysim introce regressions becomes increasingly difficult

The script that is added with this patch is intended to run as
atomated testsuit on real cards attached to a test system. However,
it can also be used by developers locally to check for regressions.

Change-Id: I8c6f95998272333bc757b34e3ab6be004e8cd674
Related: OS#3376
2018-07-19 07:55:42 +00:00
Philipp Maier af9ae8bd6e cards: return SW in method update_plmnsel() of class Card
The method update_plmnsel() does not return the status word yet, which
causes pysim-prog.py to print an error message that does not influence
the functionality but does not look nice.

- preserve the status word that is returned with update_binary() and
  return it properly like the other methods do.

Change-Id: I54e8e165f87365e8162b36d24efc8f0db62b66da
Related: SYS#4245
2018-07-13 11:38:04 +02:00
Philipp Maier 1be35bfa09 cosmetic: fix cut and paste error in comment
Change-Id: I506585f8b300bb7a3e20edad7eca134374581d76
2018-07-13 11:36:26 +02:00
Philipp Maier a2650496ce pySim-read: read contents of PLMN related files.
The files EF.PLMNsel, EF.PLMNwAcT, EF.OPLMNwAcT, EF.HPLMNAcT are not
yet printed by pysim-read. Lets add support for those files.

Change-Id: Ice802033adfa6fc1bccc76da47495eb29c3aef6c
Related: SYS#4245
2018-07-13 08:57:20 +00:00
Philipp Maier ea6bdf0b99 pySim-read: Print exception when reading of EF.MSISDN fails
At the moment the exception is catched, but there is only a vague
error message printed. However, the exception string usually tells
us the status word, so it is very valuable to see it. Lets make
sure that the exception string is printed here.

Change-Id: Icb30470b1c0eee6a15fc028da820e92bf9ded27a
2018-07-13 08:56:58 +00:00
Philipp Maier 589c1a4ff5 cosmetic: fix excess space in log output (typo)
There shouldn't be a space between the end of a sentence and a
punctuation mark.

Change-Id: I33f9b8c803ccd185ffa370d235363423d82ba9c7
2018-07-13 08:50:33 +00:00
Philipp Maier 5bf42600d4 cards: add update method for EF:PLMNsel to Card class
The Card class offers update methods for various EF, but for
PLMNsel there is no update method available yet. Lets add one.

Change-Id: I832f7bef70c92dc101b94ad871b6cafaa626e134
Related: SYS#4245
2018-07-11 23:25:58 +02:00
Philipp Maier ac9dde683f pysim-prog: add commandline option to probe cards
In some situations it may be helpful to know the card name (type)
we deal with in advance. So lets ad an to probe that only detects
the card and then exists.

- Add commandline option -T --probe

Change-Id: I57422d3819d52fd215ac8f13f890729aad2af76f
Related: OS#3376
2018-07-04 11:54:01 +00:00
Philipp Maier 0e3fcaa1bb commands: get file/record length from FCP (USIM)
Some of the methods SimCardCommands() have ways to determaine length
information from the card response. Regular sims use a format where
the length field is on a fixed position. USIMs use FCP templates
(format control parameters), which is a TLV encodecs string. So lets
distingish if we deal with an USIM (We can easily do this by looking
at the select control parameters) and extract the length info from
the FCP.

- If we deal with USIMs, use the FCP to determine length
  information

Change-Id: I068cf8a532e1c79a2d208e9d275c155ddb72713c
Related: SYS#4245
2018-07-03 15:17:16 +02:00
Philipp Maier 859e0fd1ce __init__: also fetch response bytes for USIMs automatically
The method send_apdu() first transmits the APDU in the cards direction.
The card may indicate that there is a response available by responding
with SW1=9F, where SW2 is the number of bytes. send_apdu() will then
craft a get-response APDU to pickup the response bytes. This mechanism
works fine for SIM, but USIM uses SW1=61 to indicate the availability
of a response, so lets also sense on SW1=61 to support USIMs as well.

- Also check on SW1=61 to see if a response is available

Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5
Related: SYS#4245
2018-07-03 13:17:04 +00:00
Philipp Maier f779231da2 csv: fix missing import (broken CSV support)
with Change I38f5d36d16b41b5d516a6a3e2ec1d09637883932, new constants
for file identifiers were introduced. When csv file input is used,
then pySim-prog.py uses one of these constans without importing
it from ts_51_011.py

- Add missing import

Change-Id: Ic5b067b16ec204c2ba2264b1ffb48d37be8d5eb3
2018-07-03 12:53:37 +00:00
Philipp Maier d4ebb6fdf4 __init__: allow wildcards in expected SW for send_apdu_checksw()
The method send_apdu_checksw() is used to check the SW of the final
response against some pre defined value. However, in many cases the
last two digits of the SW are used to return varying information
(e.g. length information or a more specific status info). To cover
those cases it would be helfpul to define status words that contain
wildcards (e.g. 61**) in order to be able to accept all SWs from
6100 to 61ff.

- When the user supplies an expected SW with wildcards, mask out
  those digits in the response before comparing

Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7
2018-06-18 09:43:56 +00:00
Philipp Maier d9824887c9 pysim-prog: also allow raw hex adm pins besides numeric ascii
At the momemnt pysim takes the supplied ADM pin number and interprets
it as ascii string. This ascii string (max 8 digitis) is then padded
with 0xff bytes if necessary and sent to the card.

This limits the range of possible ADM keys and it is not possible
to deal with situataions where the ADM pin consists of arbitrary
bytes. At the momemnt pysim-prog forbis anything that is longer
than 8 digits. Lets also check if there are 16 digits and if yes
interpret them as raw bytes.

- when the adm pin is 16 digits long, interpret the string as raw
  bytes (hex).

Change-Id: If0ac0d328c64b57bc4d45d985a4a516930053344
Related: SYS#4245
2018-06-13 09:30:53 +02:00
Todd Neal 9eeadfc46b add support for open cells SIM cards
Change-Id: I4df5681952eefd7a67f5e2b0a96a9e01c9d960d2
2018-04-26 11:11:45 -05:00
Martin Hauke 6cbecaaf5c transport/serial: Fix serial transport
Fix a typo that broke the serial transport.

Change-Id: I7fcc97d505a5369f9f14d4a2abda92b7114a58cd
2018-02-18 17:04:50 +01:00
Harald Welte d9d2b941eb Revert "pySim-prog: ADM code can be longer 8 digits, it's implementation specific."
This reverts commit a51592e180, which
broke the use of ADM pins on sysmoUSIM-SJS1 (and possibly others?)

The ADM pins have so far always been specified as ASCII decimal digits,
i.e. something like "-a 53204025" gets translated to hex "3533323034303235"

After the above patch this is broken and gets instead translated to
"53204025ffffffff" in hex which obviously breaks.  Let's revert back to
the old behavior to make it work again.

Change-Id: I3d68b7e09938a2fcb7a9a6a31048388cc3141f79
2018-01-23 16:25:55 +01:00
Alexander Chemeris 19fffa1db7 Make derive_milenage_opc and calculate_luhn publicly available through utils.py
Change-Id: I2effc85fd55da0981de0ada74dcb28b7e8e56a01
2018-01-11 13:06:43 +09:00
Alexander Chemeris e0d9d88cd5 cards: Add Fairwaves SIM implementation.
Change-Id: Ia10ac433d3b0482bdf727c31f65a10042152797b
2018-01-10 17:16:31 +09:00
Alexander Chemeris 8ad124a0b8 cards: Implement card type autodetection based on ATR.
Change-Id: I1099a96626c0ce74243b47a8fdfa25b0d76a1ef3
2018-01-10 17:12:10 +09:00
Alexander Chemeris 47c73abd04 pySim-prog: Replace magic numbers with a readable EF file name.
Change-Id: Ibda7d5a4132971e884f6d760baf20cd33025a2af
2018-01-10 17:12:10 +09:00
Alexander Chemeris a51592e180 pySim-prog: ADM code can be longer 8 digits, it's implementation specific.
E.g. Fairwaves SIM cards have longer ADM codes.

Change-Id: I87d61764eeba4bcf7525ee4778cb8f244930db9b
2018-01-10 17:12:10 +09:00
Alexander Chemeris eb6807d3cb cards: Extend Card class with access functions for some of the standard EF files.
Change-Id: Icb7227fa7ebc837fccab456cbfad529f6ee81a28
2018-01-10 17:12:10 +09:00
Alexander Chemeris d2d660a935 Add methods to get ATR for a card or a link.
Implemented for both serial and PCSC readers.

Change-Id: Ic12e4b115d24a8b7e483a5603dd6cec90ad289cc
2018-01-10 17:12:10 +09:00
Alexander Chemeris dddbf525da utils: Fix documentation. 3+3=6 digits equals 3 bytes, not 6
Change-Id: I2722d788a69976e1c64a9caf6cf3049af27f9a30
2018-01-10 14:04:17 +09:00
Alexander Chemeris a5f0ea6979 utils: Functions to encode/decode EF SPN.
According to TS 51 011.

Change-Id: Ida184bc5c81cc8c228b8981b703f77d017e53334
2018-01-10 14:04:11 +09:00
Alexander Chemeris 067f69cade ts_51_011: A file with MF/DF/EF constants from TS 51 011
pySim has been using magic numbers to access various files which makes it hard
to read, maintain and extend. With this file in place we can start replacing all
those magic numbers with human readable names lile EF['IMSI'] instead of
['3F00', '7F20', '6F07'].

Change-Id: I38f5d36d16b41b5d516a6a3e2ec1d09637883932
2018-01-10 14:04:08 +09:00
Alexander Chemeris d17ca3ddd8 Fix comment: Ki -> OPC
Change-Id: I566cf7bc658c730b4381c0f145bfc4f805cca42a
2018-01-10 14:04:06 +09:00
Pau Espin Pedrol 665bd22fc5 utils.py: dec_imsi: Fix ValueError
It should fix the following observed error:
~/pysim$ ./pySim-read.py -p0
Reading ...
ICCID:
Traceback (most recent call last):
  File "./pySim-read.py", line 99, in <module>
    print("IMSI: %s" % (dec_imsi(res),))
  File "/home/lab434/pysim/pySim/utils.py", line 57, in dec_imsi
    l = int(ef[0:2]) * 2            # Length of the IMSI string
ValueError: invalid literal for int() with base 10: 'ff'

Change-Id: I7d3ecbf9edd190d1941816796cee60e3957d5943
2018-01-02 07:20:57 +00:00
Pau Espin Pedrol 287b6ce1b4 pySim-prog.py: Fix trailing whitespace
Change-Id: I735dc7bb774d77d3b60b1712b0f0afcbb81dc726
2017-12-29 23:35:22 +01:00
Pau Espin Pedrol ac23ad5013 pySim-*.py: Set shebang to use python v2
Nowadays bin/python usually points to python3, and this script is written
in python2, which means if run directly from terminal it will fail with
some print syntax errors.

Change-Id: I6ab4e9edc44a8045915d4828c6de2fa98027fb7e
2017-12-29 23:35:22 +01:00
Daniel Willmann 1d087efc97 Support writing SMSP for sysmoUSIM-SJS1
Closes: OS#1989
Change-Id: I6cbf69be3d410c18a509b98a63cb69bab74a528a
2017-09-01 07:56:13 +00:00
Philipp Maier e960488338 fix writing of ICCID for sysmo-usim-sjs1
The programming procedure for sysmo-usim-sjs1 lacks
writing the ICCID. This commit adds the missing call
to update_binary()

Change-Id: Ief85aa07c562d8d7b2a6dec302d2f485d0b1e577
2017-04-06 00:38:22 +02:00
Philipp Maier 4146086d2f Fix select control parameter
sysmo-usim-sjs1 requires P2 to be set to 0x0C (request FCI) when
using the USIM application commands. The FCI is not used by pysim
anyway and might even cause problems with other cards.

This commit adds a pair of get/set methods to the SimCardCommands
class in order to set a default for the selection control
parameters (P1, P2). (Similar to the set/get methods for the class
byte)

The SysmoUSIMSJS1 class now calls the setter method for the
selection control parameters inside of its constructuor and sets
the selection control parameter default to "000C". This way we
can be sure that we only change the behaviour for sysmo-usim-sjs1
and do not break support for any other cards.

Change-Id: I1993a267c952bf37d5de1cb4e1107f445614c17b
2017-04-06 00:38:22 +02:00
Neels Hofmeyr 3ce84d9a44 cosmetic: missing newlines on last line of 2 files
It's hard to keep this out of real patches, since normally editors add the
final newline automatically.
2017-03-21 13:07:57 +01:00
Harald Welte 9b7c45d05d README.md: Cosmetic/Formatting fixes 2017-03-17 22:34:08 +01:00
Harald Welte 42b6be8747 Update README with general project information and convert to Markdown 2017-03-17 18:08:09 +01:00
Harald Welte 9a1dcea7b3 Revert "Do not return the FCI information while selecting a file"
This reverts commit 8c1b33c439.
2016-10-27 14:40:02 +02:00
Holger Hans Peter Freyther 4e824686f5 re-program: Instead of specifying the IMSI, read it from the card. 2016-05-22 15:53:28 +02:00
Jan Balke 8c1b33c439 Do not return the FCI information while selecting a file
The sysmoUSIM-SJS1 card does not support returning the FCI
information.
Plus, the FCI information are not used anyway.
2015-08-20 13:32:56 +02:00
Jan Balke 3e84067a2b Add provision support for sysmoUSIM-SJS1 cards
The PIN-ADM has to given on the command line as it is provisioned
different for each card.
Currently only Ki, Op and IMSI are provisioned.
2015-08-20 13:32:56 +02:00
Jan Balke c3ebd33544 Add PIN-ADM argument to the command line
Allow overwriting the default PIN-ADM set in the card implementation.
2015-08-20 13:32:56 +02:00
Jan Balke 14b350f3a1 Allow changing the class byte for pdu messages 2015-08-20 13:32:03 +02:00
Harald Welte e9e5ecbe30 Introduce a '--dry-run' option to skip actual card access
This can be used for example to batch convert from CSV input to HLR
output without writing cards.
2015-08-20 13:23:15 +02:00
Harald Welte c26b82939f read_params_csv: Make sure we don't end up in endless loop
as a side effect, the first line is now specified with '-j 0'
and not '-j 1'
2015-08-20 13:23:15 +02:00
Harald Welte 7f62cecb61 pySim-prog: Add mode where it can re-generate a card from CSV
Rather than just having the capability of writing to CSV, it now
has the capability to (re)write a card based on data from the CSV:

./pySim-prog.py -S csv --read-csv /tmp/sim.csv -i 901701234567890

or in batch mode (from the first line onwards):

./pySim-prog.py -S csv --read-csv /tmp/sim.csv --batch -j 1
2015-08-20 13:23:15 +02:00
Harald Welte 130524b719 split parameter writing for CSV and SQL into separate functions 2015-08-20 13:23:15 +02:00
Sylvain Munaut 2fc205ceb9 cards: sysmocom SysmoSIM-GR2 support added to cards
Written-by: Kevin Redon
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-12-23 17:22:56 +01:00
Sylvain Munaut 9f13897408 pySim-read: MISDN is not mandatory
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-07-18 10:36:51 +02:00
Alexander Chemeris 7be92ff5d2 Move encoder functions for ICCID, IMSI and PLMN to pySim.utils for consistency. 2013-07-13 08:53:21 +02:00
Alexander Chemeris 6e58914746 Add an utility to read data from a SIM card. 2013-07-13 08:50:55 +02:00
Alexander Chemeris 5e96c3d910 utils: Add functions to decode IMSI and ICCID from EF raw data. 2013-07-13 08:49:03 +02:00
Alexander Chemeris 21885249cf Implement setting of EF.ACC file in GrcardSim and _MagicSimBase
From: Alexander Chemeris <Alexander.Chemeris@gmail.com>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-07-02 15:19:09 +02:00
Sylvain Munaut 5da8d4e0d4 cards: Fix spacing according to PEP
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-07-02 15:13:24 +02:00
Sylvain Munaut 053c89578c cards: Fix comment position
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-07-02 15:12:32 +02:00
Holger Hans Peter Freyther cca41795a7 usim/opc: Derive OPC from KI and OP 2012-03-22 15:25:31 +01:00
Harald Welte 93b38cd0f5 usim/opc: Add support to write completely random OPC
Allow to set the OPC, write it out to the state, generate it randomly.
2012-03-22 15:25:19 +01:00
Holger Hans Peter Freyther 4d91bf449f sysmoUSIM-GR1: Add basic (hacky) support for the sysmoUSIM-GR1
Right now we are only to program the KI, OPC, ICCID and IMSI. This
is done in a direct way and through the card abstraction.
2012-03-22 14:28:38 +01:00
Sylvain Munaut 8ca49e9ca8 cards: SMSP is left padded not right padded
I confused left & right, silly me ...

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-12-10 09:57:50 +01:00
Sylvain Munaut 9977c86e96 pySim-prog: Fix SMSC 'number type' field to 0x81
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-12-10 09:57:16 +01:00
Sylvain Munaut 607ce2a029 Fix computation of SMSP from a SMSC number
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-12-08 20:16:43 +01:00
Sylvain Munaut 1a914439b8 Whitespace fixes 2011-12-08 20:08:26 +01:00
Harald Welte e10394bfb6 Add sysmoSIM-GR1 as alias to grcardsim 2011-12-08 19:39:49 +01:00
Harald Welte 2c0ff3a167 correctly compute the ICCID (19 digits, including luhn checksum) 2011-12-08 19:39:49 +01:00
Holger Hans Peter Freyther 5dffefbf0c pySim-prog.py: pyflakes doesn't find Importerror..
Importerror -> ImportError, spotted by pyflakes.
2011-11-22 21:18:06 +01:00
Holger Hans Peter Freyther 50e7c03816 README: Mention the necessary wait_for_card 2011-07-27 08:55:44 +02:00
Harald Welte 3156d9073f cards: Add support for grcard.cn (Green Card) SIM cards
This does not have auto-detection (yet), so you have to explicitly
specify "-t grcardsim" on the command line
2011-03-22 21:48:19 +01:00
Harald Welte 982a3075f9 commands: Check SW for UPDATE BIN / UPDATE REC / VERIFY CHV 2011-03-22 21:47:20 +01:00
Sylvain Munaut 530076ebba commands: Fix bug in verify_chv.
Didn't get adapted properly to support several transports ...

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-23 20:28:58 +01:00
Sylvain Munaut 9f120e0169 pySim-prog: Fix insertion of Ki in HLR. Need to escape like DBI does it
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-23 20:28:24 +01:00
Sylvain Munaut 8d243e8847 pySim-prog: Fix crash when using manuam imsi/iccid/kc
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-23 20:27:48 +01:00
Sylvain Munaut 98d2b85a97 pySim-prog: Check that batch mode is used with auto parameters
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-23 20:27:25 +01:00
Sylvain Munaut 8f7d3ba8ba pySim-prog: Change logic to support batch programming
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-09 13:32:48 +01:00
Sylvain Munaut bdca252fb0 transport: Change transport api to allow for wait_for_card/connect/disconnect
This way, we can re-use the same transport parameters for several
cards for a future batch mode

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-09 13:31:58 +01:00
Sylvain Munaut 9c8729a2d1 pySim-prog: Fix pcsc device selection and link creation
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-08 23:20:27 +01:00
Sylvain Munaut 245d534962 transport/pcsc: Remove obsolete/debug code
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-08 22:42:07 +01:00
Sylvain Munaut 143e99d1c6 pySim-prog: Add options to save generated parameters to CVS or OpenBSC HLR
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-08 22:35:04 +01:00
Sylvain Munaut 1771603806 pySim-prog: Show default for mnc in help mode
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-08 22:33:51 +01:00
Sylvain Munaut e9fdecb38b pySim-prog: Group option for serial (dev & baud) together
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-08 22:33:19 +01:00
Sylvain Munaut e7c15cd088 transport: Put common methods in LinkBase class
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-07 10:01:55 +01:00
Sylvain Munaut 76504e0a6e Split all things into a more "library-like" package
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-07 00:24:32 +01:00
Sylvain Munaut be17997e55 Add a internal h2i purely for symmetry :)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-06 20:07:22 +01:00
Sylvain Munaut 6576ce1886 Add command to submit the CHV (pin code)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-06 20:00:27 +01:00
Harald Welte 6dc5145663 pySim: Add support for PC/SC readers
Support for PC/SC can be used by simply specifying the '-p 0' option
at the command line (indicating PC/SC reader 0, i.e. the first)
2010-11-23 01:28:44 +01:00
Sylvain Munaut 63722fd99b Fix format for 'SuperSim'
The Ki is at the very start for that card and not in a special EF

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-27 10:29:05 +01:00
Sylvain Munaut 36f7a2d60b Reset the card after formatting and auto-detect
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-27 10:28:47 +01:00
Sylvain Munaut 995c398c13 Add README, COPYING, .gitignor
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-27 09:43:51 +01:00
Sylvain Munaut 0d1e63a978 Initial import
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-27 09:27:57 +01:00
1461 changed files with 6398 additions and 10636 deletions
+2
View File
@@ -0,0 +1,2 @@
*.pyc
.*.swp
+3
View File
@@ -0,0 +1,3 @@
[gerrit]
host=gerrit.osmocom.org
project=pysim
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 08 Jan 2024 12:10:17 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35497
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 30 Apr 2025 20:21:55 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/40185
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 07 Dec 2023 13:19:52 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35244
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 20 Sep 2024 12:15:34 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/38224
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 21 Aug 2024 13:21:41 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37858
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 17 Aug 2024 05:17:19 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37815
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: osmith <osmith@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 05 Jun 2024 11:44:47 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/36961
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: laforge <laforge@osmocom.org>
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: dexter <pmaier@sysmocom.de>
Submitted-at: Fri, 28 Mar 2025 13:25:30 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/39859
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 12 Jul 2023 18:53:39 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/33689
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 18 Jan 2024 18:14:37 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35612
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 19 Jul 2024 12:10:09 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37510
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 03 Jun 2023 12:45:35 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/33078
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: dexter <pmaier@sysmocom.de>
Submitted-at: Thu, 08 Aug 2024 09:03:29 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37642
Comments-Total: 4
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 10 Jul 2024 06:51:23 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37423
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 02 May 2021 20:22:15 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/24026
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 19 Jul 2024 12:10:09 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37529
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 04 Aug 2024 11:02:09 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37733
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Verified+1: laforge <laforge@osmocom.org>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 23 Jul 2022 12:29:00 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/28747
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 26 May 2023 14:38:40 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/32994
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: dexter <pmaier@sysmocom.de>
Submitted-by: fixeria <vyanitskiy@sysmocom.de>
Submitted-at: Thu, 07 Jul 2022 09:53:49 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23633
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 25 May 2023 07:55:44 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/32979
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: dexter <pmaier@sysmocom.de>
Submitted-by: dexter <pmaier@sysmocom.de>
Submitted-at: Wed, 21 Apr 2021 10:35:59 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23843
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 24 Oct 2021 08:28:30 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/25872
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 25 Nov 2024 15:48:17 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/38906
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+1: dexter <pmaier@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 17 Jul 2024 14:07:16 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37497
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: pespin <pespin@sysmocom.de>
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: osmith <osmith@sysmocom.de>
Submitted-at: Mon, 24 Oct 2022 11:29:13 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/29843
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: osmith <osmith@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 10 Jun 2024 11:39:03 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37144
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: osmith <osmith@sysmocom.de>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 18 Nov 2021 13:05:29 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/26317
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 05 Jan 2021 14:22:41 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/21858
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 02 Apr 2021 14:17:17 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23564
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: osmith <osmith@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: fixeria <vyanitskiy@sysmocom.de>
Submitted-at: Mon, 05 Sep 2022 16:42:43 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/29226
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 23 Mar 2021 11:54:47 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23424
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: dexter <pmaier@sysmocom.de>
Verified+1: dexter <pmaier@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 09 Dec 2025 16:23:49 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/41528
Comments-Total: 1
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 20 Jan 2021 19:24:44 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/22342
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 09 Feb 2022 20:23:27 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/27098
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Verified+1: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 09 Mar 2023 09:49:40 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/31715
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: osmith <osmith@sysmocom.de>
Submitted-at: Thu, 28 Aug 2025 12:05:37 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/40952
Comments-Total: 3
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 09 Feb 2026 12:46:03 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/40341
Comments-Total: 4
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+1: dexter <pmaier@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 11 Sep 2024 06:04:29 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/38048
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 05 Jun 2021 09:35:08 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/24452
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 31 Dec 2019 17:07:38 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/16690
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 11 Apr 2021 09:34:06 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23717
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: pespin <pespin@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 12 Mar 2021 15:30:52 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23352
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 02 Apr 2021 19:10:07 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23580
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: Harald Welte <laforge@gnumonks.org>
Submitted-by: Harald Welte <laforge@gnumonks.org>
Submitted-at: Thu, 23 Aug 2018 16:08:07 +0000
Reviewed-on: https://gerrit.osmocom.org/10570
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 14 Feb 2022 18:34:28 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/27164
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 10 Feb 2022 18:31:53 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/27133
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 03 Feb 2025 19:11:52 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/39293
Comments-Total: 7
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 04 Aug 2024 11:02:09 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37685
Comments-Total: 12
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: neels <nhofmeyr@sysmocom.de>
Submitted-at: Thu, 24 Apr 2025 01:50:50 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/40133
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: dexter <pmaier@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 10 Apr 2021 22:12:55 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23699
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 05 Feb 2024 17:05:40 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35829
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 06 Jan 2026 21:10:29 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/41737
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 05 Feb 2024 17:09:13 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35845
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: osmith <osmith@sysmocom.de>
Submitted-by: osmith <osmith@sysmocom.de>
Submitted-at: Thu, 17 Aug 2023 15:00:52 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/34147
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 04 Feb 2026 13:45:31 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/42042
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+1: laforge <laforge@osmocom.org>
Submitted-by: dexter <pmaier@sysmocom.de>
Submitted-at: Mon, 26 Jan 2026 15:21:37 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/41766
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: osmith <osmith@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: fixeria <vyanitskiy@sysmocom.de>
Submitted-at: Mon, 05 Sep 2022 17:15:34 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/29230
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 12 Sep 2023 09:21:50 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/34335
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 09 Jan 2020 13:05:50 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/16691
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 21 Apr 2021 16:39:04 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23817
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 21 Aug 2025 14:54:23 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/40468
Comments-Total: 18
Comments-Unresolved: 1
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 25 Jun 2023 06:23:45 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/33347
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: pespin <pespin@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 02 Nov 2023 23:43:05 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/34943
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 26 Nov 2024 20:28:48 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/38912
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 24 Oct 2021 08:28:30 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/25871
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 29 Jan 2024 06:32:33 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35729
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 26 Jul 2024 09:44:32 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37537
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 05 Jan 2021 15:37:08 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/21953
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Code-Review+1: pespin <pespin@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 02 Nov 2023 23:43:05 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/34938
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 13 Jul 2024 21:25:03 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37484
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 29 Apr 2020 09:10:55 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/17896
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 23 Mar 2024 09:17:28 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/36395
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sat, 22 Jan 2022 12:59:02 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/26965
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Code-Review+1: osmith <osmith@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 09 Jun 2024 14:21:18 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/37009
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 09 Jun 2024 14:21:18 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/36973
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 07 Apr 2021 16:45:12 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23661
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Code-Review+1: pespin <pespin@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+1: msuraev <msuraev@sysmocom.de>
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: fixeria <vyanitskiy@sysmocom.de>
Submitted-at: Fri, 14 Apr 2023 11:14:27 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/32297
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 05 Feb 2024 17:05:40 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35839
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: pespin <pespin@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 14 Jul 2022 17:14:41 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/28598
Project: pysim
Branch: refs/heads/master
@@ -1,9 +0,0 @@
Verified+1: Jenkins Builder
Verified+1: laforge <laforge@osmocom.org>
Code-Review+1: pespin <pespin@sysmocom.de>
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 29 Jan 2023 18:22:09 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/31067
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: Vadim Yanitskiy <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Submitted-by: herlesupreeth <herlesupreeth@gmail.com>
Submitted-at: Wed, 03 Jun 2020 06:30:37 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/18564
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 05 Apr 2022 13:00:19 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/27649
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: Harald Welte <laforge@gnumonks.org>
Verified+1: Harald Welte <laforge@gnumonks.org>
Submitted-by: Harald Welte <laforge@gnumonks.org>
Submitted-at: Wed, 04 Jul 2018 11:36:21 +0000
Reviewed-on: https://gerrit.osmocom.org/9597
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: fixeria <vyanitskiy@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Wed, 05 Jan 2022 09:44:47 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/26767
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <axilirator@gmail.com>
Verified+1: Jenkins Builder
Submitted-by: herlesupreeth <herlesupreeth@gmail.com>
Submitted-at: Fri, 13 Mar 2020 07:44:45 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/17385
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 04 Jun 2020 22:13:47 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/17848
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: fixeria <vyanitskiy@sysmocom.de>
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Tue, 27 Jun 2023 08:37:35 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/33421
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: Harald Welte <laforge@gnumonks.org>
Verified+1: Jenkins Builder
Submitted-by: Harald Welte <laforge@gnumonks.org>
Submitted-at: Wed, 26 Sep 2018 17:38:10 +0000
Reviewed-on: https://gerrit.osmocom.org/11073
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: osmith <osmith@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 21 Dec 2023 12:12:45 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/34962
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+1: osmith <osmith@sysmocom.de>
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 21 Dec 2023 11:31:57 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35382
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Fri, 30 Apr 2021 13:52:24 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/23995
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 25 Nov 2024 15:48:17 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/38907
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: dexter <pmaier@sysmocom.de>
Submitted-by: dexter <pmaier@sysmocom.de>
Submitted-at: Tue, 15 Sep 2020 13:46:10 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/20070
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Mon, 05 Feb 2024 16:56:30 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35809
Project: pysim
Branch: refs/heads/master
@@ -1,8 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Code-Review+1: pespin <pespin@sysmocom.de>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 02 Nov 2023 21:45:02 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/34936
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Verified+1: Jenkins Builder
Code-Review+2: laforge <laforge@osmocom.org>
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Thu, 07 Dec 2023 13:19:52 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/35243
Project: pysim
Branch: refs/heads/master
@@ -1,7 +0,0 @@
Code-Review+2: laforge <laforge@osmocom.org>
Verified+1: Jenkins Builder
Submitted-by: laforge <laforge@osmocom.org>
Submitted-at: Sun, 23 May 2021 12:35:29 +0000
Reviewed-on: https://gerrit.osmocom.org/c/pysim/+/24344
Project: pysim
Branch: refs/heads/master

Some files were not shown because too many files have changed in this diff Show More