<p>herlesupreeth has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/17831">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add ability to parse SIM Service Table (EF.SST)<br><br>As per TS.51.011, This EF indicates which services in the SIM are allocated, and whether, if allocated, the service is activated<br>.If a service is not indicated as available in the SIM, the ME shall not select this service.<br><br>Change-Id: Id28a35727adbaaa9df19b1adc621a0c51ad0e51b<br>---<br>M pySim-read.py<br>M pySim/cards.py<br>2 files changed, 24 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/31/17831/1</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 98a2e81..c04fa1b 100755</span><br><span>--- a/pySim-read.py</span><br><span>+++ b/pySim-read.py</span><br><span>@@ -28,7 +28,7 @@</span><br><span> import random</span><br><span> import re</span><br><span> import sys</span><br><span style="color: hsl(0, 100%, 40%);">-from pySim.ts_51_011 import EF, DF</span><br><span style="color: hsl(120, 100%, 40%);">+from pySim.ts_51_011 import EF, DF, EF_SST_map</span><br><span> </span><br><span> from pySim.commands import SimCardCommands</span><br><span> from pySim.cards import card_detect, Card</span><br><span>@@ -219,5 +219,19 @@</span><br><span>    else:</span><br><span>                print("AD: Can't read, response code = %s" % (sw,))</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ # EF.SST</span><br><span style="color: hsl(120, 100%, 40%);">+      (res, sw) = card.read_sst()</span><br><span style="color: hsl(120, 100%, 40%);">+   if sw == '9000':</span><br><span style="color: hsl(120, 100%, 40%);">+              # (st_hex, avail_src_list) = res</span><br><span style="color: hsl(120, 100%, 40%);">+              # st_hex - Service Table in hex format</span><br><span style="color: hsl(120, 100%, 40%);">+                # avail_src_list - List of services available</span><br><span style="color: hsl(120, 100%, 40%);">+         print("SIM Service Table: %s" % res[0])</span><br><span style="color: hsl(120, 100%, 40%);">+             # Print those which are available</span><br><span style="color: hsl(120, 100%, 40%);">+             for s in res[1]:</span><br><span style="color: hsl(120, 100%, 40%);">+                      if s in EF_SST_map:</span><br><span style="color: hsl(120, 100%, 40%);">+                           print('Service %d - %s: %s' % (s, EF_SST_map[s], s in res[1]))</span><br><span style="color: hsl(120, 100%, 40%);">+        else:</span><br><span style="color: hsl(120, 100%, 40%);">+         print("SIM Service Table: Can't read, response code = %s" % (sw,))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   # Done for this card and maybe for everything ?</span><br><span>      print("Done !\n")</span><br><span>diff --git a/pySim/cards.py b/pySim/cards.py</span><br><span>index d27092d..a12b111 100644</span><br><span>--- a/pySim/cards.py</span><br><span>+++ b/pySim/cards.py</span><br><span>@@ -188,7 +188,15 @@</span><br><span>              else:</span><br><span>                        return (None, sw)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   # Read the (full) AID for either ISIM or USIM application</span><br><span style="color: hsl(120, 100%, 40%);">+     # Read SIM Service table</span><br><span style="color: hsl(120, 100%, 40%);">+      def read_sst(self):</span><br><span style="color: hsl(120, 100%, 40%);">+           (res, sw) = self._scc.read_binary(EF['SST'])</span><br><span style="color: hsl(120, 100%, 40%);">+          if sw == '9000':</span><br><span style="color: hsl(120, 100%, 40%);">+                      return ((res, parse_st(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 style="color: hsl(120, 100%, 40%);">+   # Read the (full) AID for either ISIM or USIM or ISIM application</span><br><span>    def read_aid(self, isim = False):</span><br><span> </span><br><span>                # First (known) halves of the AID</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/17831">change 17831</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/+/17831"/><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: Id28a35727adbaaa9df19b1adc621a0c51ad0e51b </div>
<div style="display:none"> Gerrit-Change-Number: 17831 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: herlesupreeth <herlesupreeth@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>