diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2009-12-27 10:29:05 +0100 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2009-12-27 10:29:05 +0100 |
commit | 63722fd99bdd303ca1c549fd9c67963c35f12d29 (patch) | |
tree | ca50d92e80ff07ab3bab87d886a48aec90ebbac8 | |
parent | 36f7a2d60be6bb14a888324afb48f1f0e6c0d840 (diff) |
Fix format for 'SuperSim'
The Ki is at the very start for that card and not in a special EF
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rwxr-xr-x | pySim.py | 34 |
1 files changed, 22 insertions, 12 deletions
@@ -406,26 +406,32 @@ class _MagicSimBase(Card): hplmn = self._e_plmn(p['mcc'], p['mnc']) # Operator name ( 3f00/7f4d/8f0c ) - self._sl.update_record('8f0c', 2, + self._sl.update_record(self._files['name'][0], 2, rpad(b2h(p['name']), 32) + ('%02x' % len(p['name'])) + '01' ) # ICCID/IMSI/Ki/HPLMN ( 3f00/7f4d/8f0d ) - self._sl.update_record('8f0d', 1, - rpad( - # ICCID - '3f00' + '2fe2' + '0a' + self._e_iccid(p['iccid']) + + v = '' - # IMSI - '7f20' + '6f07' + '09' + self._e_imsi(p['imsi']) + + # inline Ki + if self._ki_file is None: + v += p['ki'] - # Ki - '6f1b' + '10' + p['ki'] + + # ICCID + v += '3f00' + '2fe2' + '0a' + self._e_iccid(p['iccid']) - # PLMN_Sel - '6f30' + '18' + rpad(hplmn, 36) + # IMSI + v += '7f20' + '6f07' + '09' + self._e_imsi(p['imsi']) - , self._files['b_ef'][1]*2) + # Ki + if self._ki_file: + v += self._ki_file + '10' + p['ki'] + + # PLMN_Sel + v+= '6f30' + '18' + rpad(hplmn, 36) + + self._sl.update_record(self._files['b_ef'][0], 1, + rpad(v, self._files['b_ef'][1]*2) ) # SMSP ( 3f00/7f4d/8f0e ) @@ -465,6 +471,8 @@ class SuperSim(_MagicSimBase): 'r_ef' : ('8f0e', 50, True), } + _ki_file = None + class MagicSim(_MagicSimBase): @@ -476,6 +484,8 @@ class MagicSim(_MagicSimBase): 'r_ef' : ('8f0e', 102, False), } + _ki_file = '6f1b' + class FakeMagicSim(Card): """ |