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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pySim-read: put try/catch block around select_adf_by_aid()<br><br>Selecting an application may fail, especially when the application does<br>not exist on the card.<br><br>Change-Id: Ia904a74d672cf9551fb4ee062dd606b350b64cef<br>---<br>M pySim-read.py<br>1 file changed, 21 insertions(+), 2 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 959a7c5..5e48116 100755</span><br><span>--- a/pySim-read.py</span><br><span>+++ b/pySim-read.py</span><br><span>@@ -34,6 +34,7 @@</span><br><span> </span><br><span> from pySim.commands import SimCardCommands</span><br><span> from pySim.transport import init_reader, argparse_add_reader_args</span><br><span style="color: hsl(120, 100%, 40%);">+from pySim.exceptions import SwMatchError</span><br><span> from pySim.cards import card_detect, SimCard, UsimCard, IsimCard</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_st</span><br><span>@@ -44,6 +45,24 @@</span><br><span>                         formatter_class=argparse.ArgumentDefaultsHelpFormatter)</span><br><span> argparse_add_reader_args(option_parser)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+def select_app(adf:str, card:SimCard):</span><br><span style="color: hsl(120, 100%, 40%);">+    """Select application by its AID"""</span><br><span style="color: hsl(120, 100%, 40%);">+     sw = 0</span><br><span style="color: hsl(120, 100%, 40%);">+        try:</span><br><span style="color: hsl(120, 100%, 40%);">+          if card._scc.cla_byte == "00":</span><br><span style="color: hsl(120, 100%, 40%);">+                      data, sw = card.select_adf_by_aid(adf)</span><br><span style="color: hsl(120, 100%, 40%);">+        except SwMatchError as e:</span><br><span style="color: hsl(120, 100%, 40%);">+             if e.sw_actual == "6a82":</span><br><span style="color: hsl(120, 100%, 40%);">+                   # If we can't select the file because it does not exist, we just remain silent since it means</span><br><span style="color: hsl(120, 100%, 40%);">+                     # that this card just does not have an USIM application installed, which is not an error.</span><br><span style="color: hsl(120, 100%, 40%);">+                     pass</span><br><span style="color: hsl(120, 100%, 40%);">+          else:</span><br><span style="color: hsl(120, 100%, 40%);">+                 print("ADF." + adf + ": Can't select application -- " + str(e))</span><br><span style="color: hsl(120, 100%, 40%);">+       except Exception as e:</span><br><span style="color: hsl(120, 100%, 40%);">+                print("ADF." + adf + ": Can't select application -- " + str(e))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     return sw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> if __name__ == '__main__':</span><br><span> </span><br><span>        # Parse options</span><br><span>@@ -219,7 +238,7 @@</span><br><span> </span><br><span>    # Check whether we have th AID of USIM, if so select it by its AID</span><br><span>   # EF.UST - File Id in ADF USIM : 6f38</span><br><span style="color: hsl(0, 100%, 40%);">-   data, sw = card.select_adf_by_aid(adf="usim")</span><br><span style="color: hsl(120, 100%, 40%);">+       sw = select_app("USIM", card)</span><br><span>      if sw == '9000':</span><br><span>             # Select USIM profile</span><br><span>                usim_card = UsimCard(scc)</span><br><span>@@ -269,7 +288,7 @@</span><br><span>                      print("ePDGSelection: Can't read file -- " + str(e))</span><br><span> </span><br><span>       # Select ISIM application by its AID</span><br><span style="color: hsl(0, 100%, 40%);">-    data, sw = card.select_adf_by_aid(adf="isim")</span><br><span style="color: hsl(120, 100%, 40%);">+       sw = select_app("ISIM", card)</span><br><span>      if sw == '9000':</span><br><span>             # Select USIM profile</span><br><span>                isim_card = IsimCard(scc)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/26253">change 26253</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/+/26253"/><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: Ia904a74d672cf9551fb4ee062dd606b350b64cef </div>
<div style="display:none"> Gerrit-Change-Number: 26253 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>