<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/20817">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  dexter: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pySim-read.py: Enable parsing of EF.ePDGSelection in USIM<br><br>As per TS 31.102, this EF can found under ADF.USIM at File Id 6ff4.<br>Also, if service n°106 and service n°107 are available, this file shall be present.<br><br>Change-Id: I98916e6f5c9791aff63c18a3b16bdfb8ae9b2d36<br>---<br>M pySim-read.py<br>M pySim/cards.py<br>M pysim-testdata/sysmoISIM-SJA2.ok<br>3 files changed, 25 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim-read.py b/pySim-read.py</span><br><span>index 6608556..2be34bd 100755</span><br><span>--- a/pySim-read.py</span><br><span>+++ b/pySim-read.py</span><br><span>@@ -36,6 +36,7 @@</span><br><span> from pySim.cards import card_detect, Card</span><br><span> from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn</span><br><span> from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_epdgid</span><br><span style="color: hsl(120, 100%, 40%);">+from pySim.utils import h2s, format_ePDGSelection</span><br><span> </span><br><span> def parse_options():</span><br><span> </span><br><span>@@ -282,6 +283,17 @@</span><br><span>              except Exception as e:</span><br><span>                       print("ePDGId: Can't read file -- " + str(e))</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+               #EF.ePDGSelection - ePDG Selection Information</span><br><span style="color: hsl(120, 100%, 40%);">+                try:</span><br><span style="color: hsl(120, 100%, 40%);">+                  if card.file_exists(EF_USIM_ADF_map['ePDGSelection']):</span><br><span style="color: hsl(120, 100%, 40%);">+                                (res, sw) = card.read_ePDGSelection()</span><br><span style="color: hsl(120, 100%, 40%);">+                         if sw == '9000':</span><br><span style="color: hsl(120, 100%, 40%);">+                                      print("ePDGSelection:\n%s" % (res,))</span><br><span style="color: hsl(120, 100%, 40%);">+                                else:</span><br><span style="color: hsl(120, 100%, 40%);">+                                 print("ePDGSelection: Can't read, response code = %s" % (sw,))</span><br><span style="color: hsl(120, 100%, 40%);">+          except Exception as e:</span><br><span style="color: hsl(120, 100%, 40%);">+                        print("ePDGSelection: Can't read file -- " + str(e))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         # Check whether we have th AID of ISIM, if so select it by its AID</span><br><span>   # EF.IST - File Id in ADF ISIM : 6f07</span><br><span>        if '9000' == card.select_adf_by_aid(adf="isim"):</span><br><span>diff --git a/pySim/cards.py b/pySim/cards.py</span><br><span>index 1d5f5c6..6243d4a 100644</span><br><span>--- a/pySim/cards.py</span><br><span>+++ b/pySim/cards.py</span><br><span>@@ -277,6 +277,13 @@</span><br><span>                                               EF_USIM_ADF_map['ePDGId'], epdgid_tlv)</span><br><span>               return sw</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ def read_ePDGSelection(self):</span><br><span style="color: hsl(120, 100%, 40%);">+         (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['ePDGSelection'])</span><br><span style="color: hsl(120, 100%, 40%);">+           if sw == '9000':</span><br><span style="color: hsl(120, 100%, 40%);">+                      return (format_ePDGSelection(res), sw)</span><br><span style="color: hsl(120, 100%, 40%);">+                else:</span><br><span style="color: hsl(120, 100%, 40%);">+                 return (None, sw)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  def read_ust(self):</span><br><span>          (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['UST'])</span><br><span>            if sw == '9000':</span><br><span>diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>index 947cff6..b6836e7 100644</span><br><span>--- a/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>+++ b/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>@@ -165,6 +165,12 @@</span><br><span> ePDGId:</span><br><span>      Not available</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ePDGSelection:</span><br><span style="color: hsl(120, 100%, 40%);">+     ffffffffffff # unused</span><br><span style="color: hsl(120, 100%, 40%);">+ ffffffffffff # unused</span><br><span style="color: hsl(120, 100%, 40%);">+ ffffffffffff # unused</span><br><span style="color: hsl(120, 100%, 40%);">+ ffffffffffff # unused</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ISIM Service Table: 190200</span><br><span>        Service 1 - P-CSCF address</span><br><span>   Service 4 - GBA-based Local Key Establishment Mechanism</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/20817">change 20817</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/20817"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I98916e6f5c9791aff63c18a3b16bdfb8ae9b2d36 </div>
<div style="display:none"> Gerrit-Change-Number: 20817 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: herlesupreeth <herlesupreeth@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>