cards: use string representation for MNC/MCC
At the moment MNC and MCC are represented as integer numbers inside the
parameter array while all other parameters are represented as strings.
Lets use strings for MNC/MCC as well to simplify the parameter handling.
We will also not loose the length information in case of leading zeros.
Change-Id: Ia2333921a4863f0f26ee923ca796e62ec5e2d59a
diff --git a/pySim-prog.py b/pySim-prog.py
index ee5bc98..9149709 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -432,7 +432,7 @@
if 'smsp' in params:
s.append(" > SMSP : %(smsp)s")
s.append(" > ICCID : %(iccid)s")
- s.append(" > MCC/MNC : %(mcc)d/%(mnc)d")
+ s.append(" > MCC/MNC : %(mcc)s/%(mnc)s")
s.append(" > IMSI : %(imsi)s")
s.append(" > Ki : %(ki)s")
s.append(" > OPC : %(opc)s")
@@ -483,8 +483,8 @@
def read_params_csv(opts, imsi=None, iccid=None):
row = _read_params_csv(opts, iccid=iccid, imsi=imsi)
if row is not None:
- row['mcc'] = int(row.get('mcc', row['imsi'][0:3]))
- row['mnc'] = int(row.get('mnc', row['imsi'][3:5]))
+ row['mcc'] = row.get('mcc', row['imsi'][0:3])
+ row['mnc'] = row.get('mnc', row['imsi'][3:5])
pin_adm = None
# We need to escape the pin_adm we get from the csv
if 'pin_adm' in row:
diff --git a/pySim/utils.py b/pySim/utils.py
index 65f10c5..a68af0a 100644
--- a/pySim/utils.py
+++ b/pySim/utils.py
@@ -98,7 +98,7 @@
def enc_plmn(mcc, mnc):
"""Converts integer MCC/MNC into 3 bytes for EF"""
- return swap_nibbles(lpad('%d' % mcc, 3) + lpad('%d' % mnc, 3))
+ return swap_nibbles(lpad('%d' % int(mcc), 3) + lpad('%d' % int(mnc), 3))
def dec_spn(ef):
byte1 = int(ef[0:2])