<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/23591">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rename card_data to card_key_provider.<br><br>"data" is an awfully generic term.  Anything stored on a card is data.<br><br>This specific code deals with resolving key/pin material from an<br>external source.<br><br>Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af<br>---<br>M pySim-shell.py<br>R pySim/card_key_provider.py<br>2 files changed, 14 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/91/23591/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim-shell.py b/pySim-shell.py</span><br><span>index 931b5ea..d27deb7 100755</span><br><span>--- a/pySim-shell.py</span><br><span>+++ b/pySim-shell.py</span><br><span>@@ -48,7 +48,7 @@</span><br><span> from pySim.ts_31_102 import CardApplicationUSIM</span><br><span> from pySim.ts_31_103 import CardApplicationISIM</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-from pySim.card_data import CardDataCsv, card_data_register, card_data_get_field</span><br><span style="color: hsl(120, 100%, 40%);">+from pySim.card_key_provider import CardKeyProviderCsv, card_key_provider_register, card_key_provider_get_field</span><br><span> </span><br><span> </span><br><span> class PysimApp(cmd2.Cmd):</span><br><span>@@ -95,7 +95,7 @@</span><br><span>                  pin_adm = sanitize_pin_adm(arg)</span><br><span>              else:</span><br><span>                        # try to find an ADM-PIN if none is specified</span><br><span style="color: hsl(0, 100%, 40%);">-                   result = card_data_get_field('ADM1', key='ICCID', value=self.iccid)</span><br><span style="color: hsl(120, 100%, 40%);">+                   result = card_key_provider_get_field('ADM1', key='ICCID', value=self.iccid)</span><br><span>                  pin_adm = sanitize_pin_adm(result)</span><br><span>                   if pin_adm:</span><br><span>                          self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid))</span><br><span>@@ -148,7 +148,7 @@</span><br><span>             if str(code).upper() not in auto:</span><br><span>                    return sanitize_pin_adm(code)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               result = card_data_get_field(str(code), key='ICCID', value=self._cmd.iccid)</span><br><span style="color: hsl(120, 100%, 40%);">+           result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid)</span><br><span>          result = sanitize_pin_adm(result)</span><br><span>            if result:</span><br><span>                   self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid))</span><br><span>@@ -439,9 +439,9 @@</span><br><span>  # or from CSV file in home directory</span><br><span>         csv_default = str(Path.home()) + "/.osmocom/pysim/card_data.csv"</span><br><span>   if opts.csv:</span><br><span style="color: hsl(0, 100%, 40%);">-            card_data_register(CardDataCsv(opts.csv))</span><br><span style="color: hsl(120, 100%, 40%);">+             card_key_provider_register(CardKeyProviderCsv(opts.csv))</span><br><span>     if os.path.isfile(csv_default):</span><br><span style="color: hsl(0, 100%, 40%);">-         card_data_register(CardDataCsv(csv_default))</span><br><span style="color: hsl(120, 100%, 40%);">+          card_key_provider_register(CardKeyProviderCsv(csv_default))</span><br><span> </span><br><span>      # If the user supplies an ADM PIN at via commandline args authenticate</span><br><span>       # immediatley so that the user does not have to use the shell commands</span><br><span>diff --git a/pySim/card_data.py b/pySim/card_key_provider.py</span><br><span>similarity index 86%</span><br><span>rename from pySim/card_data.py</span><br><span>rename to pySim/card_key_provider.py</span><br><span>index c6820c1..80f93d0 100644</span><br><span>--- a/pySim/card_data.py</span><br><span>+++ b/pySim/card_key_provider.py</span><br><span>@@ -23,9 +23,9 @@</span><br><span> </span><br><span> import csv</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-card_data_provider = List[CardData]</span><br><span style="color: hsl(120, 100%, 40%);">+card_key_providers = List[CardKeyProvider]</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-class CardData(object):</span><br><span style="color: hsl(120, 100%, 40%);">+class CardKeyProvider(object):</span><br><span> </span><br><span>   VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2']</span><br><span> </span><br><span>@@ -54,7 +54,7 @@</span><br><span>                """get fields from CSV file using a specified key/value pair"""</span><br><span>                pass</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-class CardDataCsv(CardData):</span><br><span style="color: hsl(120, 100%, 40%);">+class CardKeyProviderCsv(CardKeyProvider):</span><br><span>     """card data class that allows the user to query against a specified CSV file"""</span><br><span>       csv_file = None</span><br><span>      filename = None</span><br><span>@@ -87,17 +87,17 @@</span><br><span>                return rc</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def card_data_register(provider:CardData, provider_list=card_data_provider):</span><br><span style="color: hsl(120, 100%, 40%);">+def card_key_provider_register(provider:CardKeyProvider, provider_list=card_key_providers):</span><br><span>   """Register a new card data provider"""</span><br><span style="color: hsl(0, 100%, 40%);">-   if not isinstance(provider, CardData):</span><br><span style="color: hsl(120, 100%, 40%);">+        if not isinstance(provider, CardKeyProvider):</span><br><span>                raise ValueError("provider is not a card data provier")</span><br><span>    provider_list.append(provider)</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def card_data_get(fields, key:str, value:str, provider_list=card_data_provider) -> Dict[str,str]:</span><br><span style="color: hsl(120, 100%, 40%);">+def card_key_provider_get(fields, key:str, value:str, provider_list=card_key_providers) -> Dict[str,str]:</span><br><span>     """Query all registered card data providers"""</span><br><span>         for p in provider_list:</span><br><span style="color: hsl(0, 100%, 40%);">-         if not isinstance(p, CardData):</span><br><span style="color: hsl(120, 100%, 40%);">+               if not isinstance(p, CardKeyProvider):</span><br><span>                       raise ValueError("provider list contains provider, which is not a card data provier")</span><br><span>              result = p.get(fields, key, value)</span><br><span>           if result:</span><br><span>@@ -105,10 +105,10 @@</span><br><span>   return {}</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def card_data_get_field(field:str, key:str, value:str, provider_list=card_data_provider) -> Optional[str]:</span><br><span style="color: hsl(120, 100%, 40%);">+def card_key_provider_get_field(field:str, key:str, value:str, provider_list=card_key_providers) -> Optional[str]:</span><br><span>        """Query all registered card data providers for a single field"""</span><br><span>      for p in provider_list:</span><br><span style="color: hsl(0, 100%, 40%);">-         if not isinstance(p, CardData):</span><br><span style="color: hsl(120, 100%, 40%);">+               if not isinstance(p, CardKeyProvider):</span><br><span>                       raise ValueError("provider list contains provider, which is not a card data provier")</span><br><span>              result = p.get_field(field, key, value)</span><br><span>              if result:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/23591">change 23591</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/+/23591"/><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: I4c8e1be3e766f7c0565c07b39d48abf8adc375af </div>
<div style="display:none"> Gerrit-Change-Number: 23591 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>