diff options
author | Harald Welte <laforge@osmocom.org> | 2021-01-21 16:06:50 +0100 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2021-03-02 14:26:32 +0100 |
commit | c0499c83306c7e740a81a6a28d81bb0560c28a21 (patch) | |
tree | cb200eab1f7bae157688cbe4e0a9b74cb09b712c | |
parent | 67d551a443a4470d2f1746402451a4ffa3b03386 (diff) |
commands.py: rename select_file() to select_path()
In reality, the function is not a simple avstraction around the SELECT
command, but it iterates over a list/path and selects at each element.
Change-Id: I63e01155de4ae47aeed8500708c0eb6580c7b8d1
-rw-r--r-- | pySim/cards.py | 54 | ||||
-rw-r--r-- | pySim/commands.py | 20 |
2 files changed, 37 insertions, 37 deletions
diff --git a/pySim/cards.py b/pySim/cards.py index dd8fe8b..61d2624 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -44,7 +44,7 @@ class Card(object): return def file_exists(self, fid): - res_arr = self._scc.try_select_file(fid) + res_arr = self._scc.try_select_path(fid) for res in res_arr: if res[1] != '9000': return False @@ -477,7 +477,7 @@ class _MagicSimBase(Card): """ f = self._files['name'] - r = self._scc.select_file(['3f00', '7f4d', f[0]]) + r = self._scc.select_path(['3f00', '7f4d', f[0]]) rec_len = int(r[-1][28:30], 16) tlen = int(r[-1][4:8],16) rec_cnt = (tlen / rec_len) - 1 @@ -489,7 +489,7 @@ class _MagicSimBase(Card): def program(self, p): # Go to dir - self._scc.select_file(['3f00', '7f4d']) + self._scc.select_path(['3f00', '7f4d']) # Home PLMN in PLMN_Sel format hplmn = enc_plmn(p['mcc'], p['mnc']) @@ -533,7 +533,7 @@ class _MagicSimBase(Card): # FIXME # Write PLMN_Sel forcefully as well - r = self._scc.select_file(['3f00', '7f20', '6f30']) + r = self._scc.select_path(['3f00', '7f20', '6f30']) tl = int(r[-1][4:8], 16) hplmn = enc_plmn(p['mcc'], p['mnc']) @@ -607,7 +607,7 @@ class FakeMagicSim(Card): and entry size """ - r = self._scc.select_file(['3f00', '000c']) + r = self._scc.select_path(['3f00', '000c']) rec_len = int(r[-1][28:30], 16) tlen = int(r[-1][4:8],16) rec_cnt = (tlen / rec_len) - 1 @@ -619,7 +619,7 @@ class FakeMagicSim(Card): def program(self, p): # Home PLMN - r = self._scc.select_file(['3f00', '7f20', '6f30']) + r = self._scc.select_path(['3f00', '7f20', '6f30']) tl = int(r[-1][4:8], 16) hplmn = enc_plmn(p['mcc'], p['mnc']) @@ -674,11 +674,11 @@ class GrcardSim(Card): self._scc.verify_chv(5, pin) # EF.ICCID - r = self._scc.select_file(['3f00', '2fe2']) + r = self._scc.select_path(['3f00', '2fe2']) data, sw = self._scc.update_binary('2fe2', enc_iccid(p['iccid'])) # EF.IMSI - r = self._scc.select_file(['3f00', '7f20', '6f07']) + r = self._scc.select_path(['3f00', '7f20', '6f07']) data, sw = self._scc.update_binary('6f07', enc_imsi(p['imsi'])) # EF.ACC @@ -687,7 +687,7 @@ class GrcardSim(Card): # EF.SMSP if p.get('smsp'): - r = self._scc.select_file(['3f00', '7f10', '6f42']) + r = self._scc.select_path(['3f00', '7f10', '6f42']) data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 80)) # Set the Ki using proprietary command @@ -695,13 +695,13 @@ class GrcardSim(Card): data, sw = self._scc._tp.send_apdu(pdu) # EF.HPLMN - r = self._scc.select_file(['3f00', '7f20', '6f30']) + r = self._scc.select_path(['3f00', '7f20', '6f30']) size = int(r[-1][4:8], 16) hplmn = enc_plmn(p['mcc'], p['mnc']) self._scc.update_binary('6f30', hplmn + 'ff' * (size-3)) # EF.SPN (Service Provider Name) - r = self._scc.select_file(['3f00', '7f20', '6f30']) + r = self._scc.select_path(['3f00', '7f20', '6f30']) size = int(r[-1][4:8], 16) # FIXME @@ -772,7 +772,7 @@ class SysmoSIMgr2(Card): def program(self, p): # select MF - r = self._scc.select_file(['3f00']) + r = self._scc.select_path(['3f00']) # authenticate as SUPER ADM using default key self._scc.verify_chv(0x0b, h2b("3838383838383838")) @@ -798,7 +798,7 @@ class SysmoSIMgr2(Card): data, sw = self._scc.update_binary('2fe2', enc_iccid(p['iccid'])) # select DF_GSM - r = self._scc.select_file(['7f20']) + r = self._scc.select_path(['7f20']) # write EF.IMSI data, sw = self._scc.update_binary('6f07', enc_imsi(p['imsi'])) @@ -808,7 +808,7 @@ class SysmoSIMgr2(Card): data, sw = self._scc.update_binary('6f78', lpad(p['acc'], 4)) # get size and write EF.HPLMN - r = self._scc.select_file(['6f30']) + r = self._scc.select_path(['6f30']) size = int(r[-1][4:8], 16) hplmn = enc_plmn(p['mcc'], p['mnc']) self._scc.update_binary('6f30', hplmn + 'ff' * (size-3)) @@ -820,7 +820,7 @@ class SysmoSIMgr2(Card): data, sw = self._scc.update_binary('0001', p['ki'], 3) # select DF_TELECOM - r = self._scc.select_file(['3f00', '7f10']) + r = self._scc.select_path(['3f00', '7f10']) # write EF.SMSP if p.get('smsp'): @@ -862,13 +862,13 @@ class SysmoUSIMSJS1(UsimCard): self.verify_adm(h2b(p['pin_adm'])) # select MF - r = self._scc.select_file(['3f00']) + r = self._scc.select_path(['3f00']) # write EF.ICCID data, sw = self._scc.update_binary('2fe2', enc_iccid(p['iccid'])) # select DF_GSM - r = self._scc.select_file(['7f20']) + r = self._scc.select_path(['7f20']) # set Ki in proprietary file data, sw = self._scc.update_binary('00FF', p['ki']) @@ -921,7 +921,7 @@ class SysmoUSIMSJS1(UsimCard): # EF.SMSP if p.get('smsp'): - r = self._scc.select_file(['3f00', '7f10']) + r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 104), force_len=True) # EF.MSISDN @@ -932,7 +932,7 @@ class SysmoUSIMSJS1(UsimCard): msisdn = enc_msisdn(p['msisdn']) data = 'ff' * 20 + msisdn + 'ff' * 2 - r = self._scc.select_file(['3f00', '7f10']) + r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, data, force_len=True) @@ -1106,12 +1106,12 @@ class OpenCellsSim(Card): self._scc.verify_chv(0x0A, h2b(p['pin_adm'])) # select MF - r = self._scc.select_file(['3f00']) + r = self._scc.select_path(['3f00']) # write EF.ICCID data, sw = self._scc.update_binary('2fe2', enc_iccid(p['iccid'])) - r = self._scc.select_file(['7ff0']) + r = self._scc.select_path(['7ff0']) # set Ki in proprietary file data, sw = self._scc.update_binary('FF02', p['ki']) @@ -1120,7 +1120,7 @@ class OpenCellsSim(Card): data, sw = self._scc.update_binary('FF01', p['opc']) # select DF_GSM - r = self._scc.select_file(['7f20']) + r = self._scc.select_path(['7f20']) # write EF.IMSI data, sw = self._scc.update_binary('6f07', enc_imsi(p['imsi'])) @@ -1269,7 +1269,7 @@ class SysmoISIMSJA2(UsimCard, IsimCard): print("Warning: Programming of the ICCID is not implemented for this type of card.") # select DF_GSM - self._scc.select_file(['7f20']) + self._scc.select_path(['7f20']) # write EF.IMSI if p.get('imsi'): @@ -1307,7 +1307,7 @@ class SysmoISIMSJA2(UsimCard, IsimCard): # EF.SMSP if p.get('smsp'): - r = self._scc.select_file(['3f00', '7f10']) + r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 104), force_len=True) # EF.MSISDN @@ -1318,7 +1318,7 @@ class SysmoISIMSJA2(UsimCard, IsimCard): msisdn = enc_msisdn(p['msisdn']) content = 'ff' * 20 + msisdn + 'ff' * 2 - r = self._scc.select_file(['3f00', '7f10']) + r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, content, force_len=True) # EF.ACC @@ -1332,8 +1332,8 @@ class SysmoISIMSJA2(UsimCard, IsimCard): # update EF-SIM_AUTH_KEY (and EF-USIM_AUTH_KEY_2G, which is # hard linked to EF-USIM_AUTH_KEY) - self._scc.select_file(['3f00']) - self._scc.select_file(['a515']) + self._scc.select_path(['3f00']) + self._scc.select_path(['a515']) if p.get('ki'): self._scc.update_binary('6f20', p['ki'], 1) if p.get('opc'): diff --git a/pySim/commands.py b/pySim/commands.py index 327de57..d6159ea 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -99,7 +99,7 @@ class SimCardCommands(object): def sel_ctrl(self, value): self._sel_ctrl = value - def try_select_file(self, dir_list): + def try_select_path(self, dir_list): rv = [] if type(dir_list) is not list: dir_list = [dir_list] @@ -110,7 +110,7 @@ class SimCardCommands(object): return rv return rv - def select_file(self, dir_list): + def select_path(self, dir_list): rv = [] if type(dir_list) is not list: dir_list = [dir_list] @@ -124,7 +124,7 @@ class SimCardCommands(object): return self._tp.send_apdu_checksw(self.cla_byte + "a4" + "0404" + aidlen + aid) def read_binary(self, ef, length=None, offset=0): - r = self.select_file(ef) + r = self.select_path(ef) if len(r[-1]) == 0: return (None, None) if length is None: @@ -142,7 +142,7 @@ class SimCardCommands(object): return total_data, sw def update_binary(self, ef, data, offset=0, verify=False): - self.select_file(ef) + self.select_path(ef) pdu = self.cla_byte + 'd6%04x%02x' % (offset, len(data) // 2) + data res = self._tp.send_apdu_checksw(pdu) if verify: @@ -155,13 +155,13 @@ class SimCardCommands(object): raise ValueError('Binary verification failed (expected %s, got %s)' % (data.lower(), res[0].lower())) def read_record(self, ef, rec_no): - r = self.select_file(ef) + r = self.select_path(ef) rec_length = self.__record_len(r) pdu = self.cla_byte + 'b2%02x04%02x' % (rec_no, rec_length) return self._tp.send_apdu(pdu) def update_record(self, ef, rec_no, data, force_len=False, verify=False): - r = self.select_file(ef) + r = self.select_path(ef) if not force_len: rec_length = self.__record_len(r) if (len(data) // 2 != rec_length): @@ -180,21 +180,21 @@ class SimCardCommands(object): raise ValueError('Record verification failed (expected %s, got %s)' % (data.lower(), res[0].lower())) def record_size(self, ef): - r = self.select_file(ef) + r = self.select_path(ef) return self.__record_len(r) def record_count(self, ef): - r = self.select_file(ef) + r = self.select_path(ef) return self.__len(r) // self.__record_len(r) def binary_size(self, ef): - r = self.select_file(ef) + r = self.select_path(ef) return self.__len(r) def run_gsm(self, rand): if len(rand) != 32: raise ValueError('Invalid rand') - self.select_file(['3f00', '7f20']) + self.select_path(['3f00', '7f20']) return self._tp.send_apdu(self.cla_byte + '88000010' + rand) def reset_card(self): |