Attention is currently required from: laforge.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/39744?usp=email
to look at the new patch set (#9).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Verified+1 by Jenkins Builder
Change subject: personalization: refactor Pin, Adm
......................................................................
personalization: refactor Pin, Adm
Refactor Pin1, Pin2, Adm1 and Adm2 to the new ConfigurableParameter
implementation style.
Change-Id: I54aef10b6d4309398d4b779a3740a7d706d68603
---
M pySim/esim/saip/personalization.py
1 file changed, 47 insertions(+), 58 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/44/39744/9
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/39744?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I54aef10b6d4309398d4b779a3740a7d706d68603
Gerrit-Change-Number: 39744
Gerrit-PatchSet: 9
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Attention is currently required from: laforge.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/39743?usp=email
to look at the new patch set (#9).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Verified+1 by Jenkins Builder
Change subject: personalization: refactor Puk
......................................................................
personalization: refactor Puk
Implement abstract DecimalHexParam, and use it to refactor Puk1 and Puk2
to the new ConfigurableParameter implementation style.
DecimalHexParam will also be used for Pin and Adm soon.
Change-Id: I271e6c030c890778ab7af9ab3bc7997e22018f6a
---
M pySim/esim/saip/personalization.py
1 file changed, 39 insertions(+), 20 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/43/39743/9
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/39743?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I271e6c030c890778ab7af9ab3bc7997e22018f6a
Gerrit-Change-Number: 39743
Gerrit-PatchSet: 9
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Attention is currently required from: dexter, fixeria, laforge, neels.
Hello Jenkins Builder, dexter, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/39742?usp=email
to look at the new patch set (#12).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Code-Review+2 by neels, Verified+1 by Jenkins Builder
The change is no longer submittable: Code-Review and Verified are unsatisfied now.
Change subject: personalization: refactor ConfigurableParameter, Iccid, Imsi
......................................................................
personalization: refactor ConfigurableParameter, Iccid, Imsi
Main points/rationales of the refactoring, details below:
1) common validation implementation
2) offer classmethods
The new features are optional, and will be heavily used by batch
personalization patches coming soon.
Implement Iccid and Imsi to use the new way, with a common abstract
DecimalParam implementation.
So far leave the other parameter classes working as they always did, to
follow suit in subsequent commits.
Details:
1) common validation implementation:
There are very common validation steps in the various parameter
implementations. It is more convenient and much more readable to
implement those once and set simple validation parameters per subclass.
So there now is a validate_val() classmethod, which subclasses can use
as-is to apply the validation parameters -- or subclasses can override
their cls.validate_val() for specialized validation.
(Those subclasses that this patch doesn't touch still override the
self.validate() instance method. Hence they still work as before this
patch, but don't use the new common features yet.)
2) offer stateless classmethods:
It is useful for...
- batch processing of multiple profiles (in upcoming patches) and
- user input validation
to be able to have classmethods that do what self.validate() and
self.apply() do, but do not modify any self.* members.
So far the paradigm was to create a class instance to keep state about
the value. This remains available, but in addition we make available the
paradigm of a singleton that is stateless (the classmethods).
Using self.validate() and self.apply() still work the same as before
this patch, i.e. via self.input_value and self.value -- but in addition,
there are now classmethods that don't touch self.* members.
Related: SYS#6768
Change-Id: I6522be4c463e34897ca9bff2309b3706a88b3ce8
---
M pySim/esim/saip/personalization.py
1 file changed, 186 insertions(+), 35 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/42/39742/12
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/39742?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I6522be4c463e34897ca9bff2309b3706a88b3ce8
Gerrit-Change-Number: 39742
Gerrit-PatchSet: 12
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: neels.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/40740?usp=email
to look at the new patch set (#4).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: add lint_ruff.sh
......................................................................
add lint_ruff.sh
Change-Id: I9ca385eef9e6831a49f61456aa24492d4fa2ec17
---
A lint_ruff.sh
A ruff.toml
2 files changed, 12 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/40/40740/4
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40740?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I9ca385eef9e6831a49f61456aa24492d4fa2ec17
Gerrit-Change-Number: 40740
Gerrit-PatchSet: 4
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Attention is currently required from: neels.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/40209?usp=email
to look at the new patch set (#5).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: personalization audit: optionally audit all (unknown) SD keys
......................................................................
personalization audit: optionally audit all (unknown) SD keys
By a flag, allow to audit also all Security Domain KVN that we have
*not* created ConfigurableParameter subclasses for.
For example, SCP80 has reserved kvn 0x01..0x0f, but we offer only
Scp80Kvn01, Scp80Kvn02, Scp80Kvn03. So we would not show kvn
0x03..0x0f in an audit.
This patch includes audits of all SD key kvn there may be in the UPP.
This will help to spot SD keys that may already be present in a UPP
template, with unexpected / unusual kvn.
Change-Id: Icaf6f7b589f117868633c0968a99f2f0252cf612
---
M pySim/esim/saip/personalization.py
1 file changed, 21 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/09/40209/5
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40209?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Icaf6f7b589f117868633c0968a99f2f0252cf612
Gerrit-Change-Number: 40209
Gerrit-PatchSet: 5
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Attention is currently required from: neels.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/40208?usp=email
to look at the new patch set (#5).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: personalization: implement UppAudit and BatchAudit
......................................................................
personalization: implement UppAudit and BatchAudit
Change-Id: Iaab336ca91b483ecdddd5c6c8e08dc475dc6bd0a
---
M pySim/esim/saip/personalization.py
1 file changed, 224 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/40208/5
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40208?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Iaab336ca91b483ecdddd5c6c8e08dc475dc6bd0a
Gerrit-Change-Number: 40208
Gerrit-PatchSet: 5
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Attention is currently required from: lynxis lazus.
neels has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/pysim/+/41687?usp=email )
Change subject: saip: calculate the number of records for LF and CY
......................................................................
Patch Set 1: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/41687?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: I5ec1757d6852eb24d3662ec1c3fc88365e90a616
Gerrit-Change-Number: 41687
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Comment-Date: Tue, 06 Jan 2026 22:42:00 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Attention is currently required from: dexter, pespin.
laforge has posted comments on this change by laforge. ( https://gerrit.osmocom.org/c/libosmocore/+/36324?usp=email )
Change subject: msgb: Also copy msgb {dst, lchan, cb} during msgb_copy_*
......................................................................
Patch Set 2: Code-Review+1
(1 comment)
File src/core/msgb.c:
https://gerrit.osmocom.org/c/libosmocore/+/36324/comment/dd69d148_4a1a6844?… :
PS1, Line 320: * and adjusts the pointers (incl l1h-l4h) accordingly. The cb part is not copied.
> I wonder how much the performance impact of copying the cb buffer would be. […]
let's update the documentation and get this merged.
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/36324?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I68328adb952ca8833ba047cb3b49ccc6f8a1f1b5
Gerrit-Change-Number: 36324
Gerrit-PatchSet: 2
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 06 Jan 2026 21:42:43 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Comment-In-Reply-To: dexter <pmaier(a)sysmocom.de>
laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/40936?usp=email )
Change subject: contrib: add a tool to parse the SIMA response from an eUICC
......................................................................
contrib: add a tool to parse the SIMA response from an eUICC
When an eUICC performs a profile installation it returns a (concatenated)
series of ASN.1 encoded strings as "simaResponse". In case the profile
installation fails for some reason the simaResponse contains diagnostic
information to diagnose why the profile installation failed.
Unfortunately there are currently no practical tools available to decode
and display the information in the simaResponse. Let's add a tool for that.
Related SYS#7617
Change-Id: Ida4c3c5446653b283a3869c0c387f328ae51e55e
---
A contrib/analyze_simaResponse.py
1 file changed, 112 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/contrib/analyze_simaResponse.py b/contrib/analyze_simaResponse.py
new file mode 100755
index 0000000..170597d
--- /dev/null
+++ b/contrib/analyze_simaResponse.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+
+# A tool to analyze the eUICC simaResponse (series of EUICCResponse)
+#
+# (C) 2025 by sysmocom - s.f.m.c. GmbH
+# All Rights Reserved
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+import argparse
+from osmocom.utils import h2b, b2h
+from osmocom.tlv import bertlv_parse_one, bertlv_encode_tag, bertlv_encode_len
+from pySim.esim.saip import *
+
+parser = argparse.ArgumentParser(description="""Utility program to analyze the contents of an eUICC simaResponse.""")
+parser.add_argument('SIMA_RESPONSE', help='Hexstring containing the simaResponse as received from the eUICC')
+
+def split_sima_response(sima_response):
+ """split an eUICC simaResponse field into a list of EUICCResponse fields"""
+
+ remainder = sima_response
+ result = []
+ while len(remainder):
+ tdict, l, v, next_remainder = bertlv_parse_one(remainder)
+ rawtag = bertlv_encode_tag(tdict)
+ rawlen = bertlv_encode_len(l)
+ result = result + [remainder[0:len(rawtag) + len(rawlen) + l]]
+ remainder = next_remainder
+ return result
+
+def analyze_status(status):
+ """
+ Convert a status code (integer) into a human readable string
+ (see eUICC Profile Package: Interoperable Format Technical Specification, section 8.11)
+ """
+
+ # SIMA status codes
+ string_values = {0 : 'ok',
+ 1 : 'pe-not-supported',
+ 2 : 'memory-failure',
+ 3 : 'bad-values',
+ 4 : 'not-enough-memory',
+ 5 : 'invalid-request-format',
+ 6 : 'invalid-parameter',
+ 7 : 'runtime-not-supported',
+ 8 : 'lib-not-supported',
+ 9 : 'template-not-supported ',
+ 10 : 'feature-not-supported',
+ 11 : 'pin-code-missing',
+ 31 : 'unsupported-profile-version'}
+
+ string_value = string_values.get(status, None)
+ if string_value is not None:
+ return "%d = %s (SIMA status code)" % (status, string_value)
+
+ # ISO 7816 status words
+ if status >= 24576 and status <= 28671:
+ return "%d = %04x (ISO7816 status word)" % (status, status)
+ elif status >= 36864 and status <= 40959:
+ return "%d = %04x (ISO7816 status word)" % (status, status)
+
+ # Proprietary status codes
+ elif status >= 40960 and status <= 65535:
+ return "%d = %04x (proprietary)" % (status, status)
+
+ # Unknown status codes
+ return "%d (unknown, proprietary?)" % status
+
+def analyze_euicc_response(euicc_response):
+ """Analyze and display the contents of an EUICCResponse"""
+
+ print(" EUICCResponse: %s" % b2h(euicc_response))
+ euicc_response_decoded = asn1.decode('EUICCResponse', euicc_response)
+
+ pe_status = euicc_response_decoded.get('peStatus')
+ print(" peStatus:")
+ for s in pe_status:
+ print(" status: %s" % analyze_status(s.get('status')))
+ print(" identification: %s" % str(s.get('identification', None)))
+ print(" additional-information: %s" % str(s.get('additional-information', None)))
+ print(" offset: %s" % str(s.get('offset', None)))
+
+ if euicc_response_decoded.get('profileInstallationAborted', False) is None:
+ # This type is defined as profileInstallationAborted NULL OPTIONAL, so when it is present it
+ # will have the value None, otherwise it is simply not present.
+ print(" profileInstallationAborted: True")
+ else:
+ print(" profileInstallationAborted: False")
+
+ status_message = euicc_response_decoded.get('statusMessage', None)
+ print(" statusMessage: %s" % str(status_message))
+
+if __name__ == '__main__':
+ opts = parser.parse_args()
+ sima_response = h2b(opts.SIMA_RESPONSE);
+
+ print("simaResponse: %s" % b2h(sima_response))
+ euicc_response_list = split_sima_response(sima_response)
+
+ for euicc_response in euicc_response_list:
+ analyze_euicc_response(euicc_response)
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40936?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ida4c3c5446653b283a3869c0c387f328ae51e55e
Gerrit-Change-Number: 40936
Gerrit-PatchSet: 5
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>