Attention is currently required from: dexter.
laforge has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/38001?usp=email )
Change subject: pySim-shell: print cardinfo hexstrings in lowercase
......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS2:
this smells a bit like:
* we should make sure to never assign upper case strings to the 'identity' dict in the first place
* we should possibly make hex-strings a first-class citizen, i.e. have a `class hexstr(str)` which then has a `def str(self)` that performs the lower-case conversion. This way every time somebody prints a hexstr, it should be implicitly converted to lowercase.
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38001?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: Ia6a8bd0e700c7fd933fb6c1b1050ed9494462d60
Gerrit-Change-Number: 38001
Gerrit-PatchSet: 2
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 03 Sep 2024 15:40:06 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Attention is currently required from: dexter.
laforge has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/38008?usp=email )
Change subject: pySim-shell: use upper case letters for positional arguments
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38008?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: Iec1ff8262bc6e9cf87c3cbf7b32fa5f753b7e574
Gerrit-Change-Number: 38008
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 03 Sep 2024 15:37:56 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Jenkins Builder has posted comments on this change by laforge. ( https://gerrit.osmocom.org/c/pysim/+/38014?usp=email )
Change subject: pySim.esim.saip: Implement optimized file content encoding
......................................................................
Patch Set 1:
(1 comment)
File pySim/esim/saip/__init__.py:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-18260):
https://gerrit.osmocom.org/c/pysim/+/38014/comment/b9d4857b_141d5423?usp=em… :
PS1, Line 398: # 100% match: retrun an empty tuple list to make eUICC use the default
'retrun' may be misspelled - perhaps 'return'?
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38014?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: I61e4a5e04beba5c9092979fc546292d5ef3d7aad
Gerrit-Change-Number: 38014
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Tue, 03 Sep 2024 15:30:11 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/38016?usp=email )
Change subject: esim.saip.templates: Fix expand_default_value_pattern for length==0
......................................................................
esim.saip.templates: Fix expand_default_value_pattern for length==0
The original code treated length==0 like length==None (unspecified),
which is wrong.
Change-Id: I39fa1e2b1b9d6d1c671ea37bdbec1d6f97e8a5e7
---
M pySim/esim/saip/templates.py
1 file changed, 2 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/16/38016/1
diff --git a/pySim/esim/saip/templates.py b/pySim/esim/saip/templates.py
index 04b2cd4..f69ec7a 100644
--- a/pySim/esim/saip/templates.py
+++ b/pySim/esim/saip/templates.py
@@ -117,9 +117,9 @@
def expand_default_value_pattern(self, length: Optional[int] = None) -> Optional[bytes]:
"""Expand the default value pattern to the specified length."""
- if not length:
+ if length is None:
length = self._default_value_len()
- if not length:
+ if length is None:
raise ValueError("%s does not have a default length" % self)
if not self.default_val:
return None
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38016?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I39fa1e2b1b9d6d1c671ea37bdbec1d6f97e8a5e7
Gerrit-Change-Number: 38016
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/38017?usp=email )
Change subject: transport: define TERMINAL RESPONSE content within ProactiveHandler
......................................................................
transport: define TERMINAL RESPONSE content within ProactiveHandler
So far the core proactive handling code would always generate a positive
response, with no way for the ProactiveHandler call-back to influence
that or to include additional IEs/TLVs.
Let's change that.
Change-Id: Ic772b3383533f845689ac97ad03fcf67cf59c208
---
M pySim/transport/__init__.py
1 file changed, 18 insertions(+), 15 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/17/38017/1
diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index 47f6547..97022ce 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -57,7 +57,18 @@
"""Default handler for not otherwise handled proactive commands."""
raise NotImplementedError('No handler method for %s' % pcmd.decoded)
-
+ def prepare_response(self, pcmd: ProactiveCommand, general_result: str = 'performed_successfully'):
+ # The Command Details are echoed from the command that has been processed.
+ (command_details,) = [c for c in pcmd.children if isinstance(c, CommandDetails)]
+ # invert the device identities
+ (command_dev_ids,) = [c for c in pcmd.children if isinstance(c, DeviceIdentities)]
+ rsp_dev_ids = DeviceIdentities()
+ rsp_dev_ids.from_dict({'device_identities': {
+ 'dest_dev_id': command_dev_ids.decoded['source_dev_id'],
+ 'source_dev_id': command_dev_ids.decoded['dest_dev_id']}})
+ result = Result()
+ result.from_dict({'result': {'general_result': general_result, 'additional_information': ''}})
+ return [command_details, rsp_dev_ids, result]
class LinkBase(abc.ABC):
"""Base class for link/transport to card."""
@@ -185,34 +196,26 @@
pcmd = ProactiveCommand()
parsed = pcmd.from_tlv(h2b(fetch_rv[0]))
print("FETCH: %s (%s)" % (fetch_rv[0], type(parsed).__name__))
- result = Result()
if self.proactive_handler:
# Extension point: If this does return a list of TLV objects,
# they could be appended after the Result; if the first is a
# Result, that cuold replace the one built here.
- self.proactive_handler.receive_fetch_raw(pcmd, parsed)
- result.from_dict({'result': {'general_result': 'performed_successfully',
- 'additional_information': ''}})
+ ti_list = self.proactive_handler.receive_fetch_raw(pcmd, parsed)
+ if not ti_list:
+ ti_list = self.proactive_handler.prepare_response(pcmd, 'FIXME')
else:
- result.from_dict({'result': {'general_result': 'command_beyond_terminal_capability',
- 'additional_information': ''}})
+ ti_list = self.proactive_handler.prepare_response(pcmd, 'command_beyond_terminal_capability')
# Send response immediately, thus also flushing out any further
# proactive commands that the card already wants to send
#
# Structure as per TS 102 223 V4.4.0 Section 6.8
- # The Command Details are echoed from the command that has been processed.
- (command_details,) = [c for c in pcmd.decoded.children if isinstance(c, CommandDetails)]
- # The Device Identities are fixed. (TS 102 223 V4.0.0 Section 6.8.2)
- device_identities = DeviceIdentities()
- device_identities.from_dict({'device_identities': {'source_dev_id': 'terminal', 'dest_dev_id':
- 'uicc'}})
-
# Testing hint: The value of tail does not influence the behavior
# of an SJA2 that sent ans SMS, so this is implemented only
# following TS 102 223, and not fully tested.
- tail = command_details.to_tlv() + device_identities.to_tlv() + result.to_tlv()
+ ti_list_bin = [x.to_tlv() for x in ti_list]
+ tail = b''.join(ti_list_bin)
# Testing hint: In contrast to the above, this part is positively
# essential to get the SJA2 to provide the later parts of a
# multipart SMS in response to an OTA RFM command.
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/38017?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ic772b3383533f845689ac97ad03fcf67cf59c208
Gerrit-Change-Number: 38017
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>