This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/pysim/+/15497 ) Change subject: pySim-prog: use functions to derive MCC/MNC from IMSI ...................................................................... pySim-prog: use functions to derive MCC/MNC from IMSI In case the MCC/MNC are not supplied with a CSV file we cut out the missing values from the IMSI string. Lets use a function to do this and also check the input parameters. Change-Id: I98e5bf8f9ff2a852efb190cc789edf42c5075bf8 --- M pySim-prog.py M pySim/utils.py 2 files changed, 31 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 9149709..990fe15 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -43,6 +43,7 @@ from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid from pySim.ts_51_011 import EF from pySim.card_handler import * +from pySim.utils import * def parse_options(): @@ -483,8 +484,9 @@ 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'] = row.get('mcc', row['imsi'][0:3]) - row['mnc'] = row.get('mnc', row['imsi'][3:5]) + row['mcc'] = row.get('mcc', mcc_from_imsi(row.get('imsi'))) + row['mnc'] = row.get('mnc', mnc_from_imsi(row.get('imsi'))) + 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 a68af0a..e8dd531 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -206,3 +206,30 @@ num = map(int, str(cc)) check_digit = 10 - sum(num[-2::-2] + [sum(divmod(d * 2, 10)) for d in num[::-2]]) % 10 return 0 if check_digit == 10 else check_digit + +def mcc_from_imsi(imsi): + """ + Derive the MCC (Mobile Country Code) from the first three digits of an IMSI + """ + if imsi == None: + return None + + if len(imsi) > 3: + return imsi[:3] + else: + return None + +def mnc_from_imsi(imsi, long=False): + """ + Derive the MNC (Mobile Country Code) from the 4th to 6th digit of an IMSI + """ + if imsi == None: + return None + + if len(imsi) > 3: + if long: + return imsi[3:6] + else: + return imsi[3:5] + else: + return None -- To view, visit https://gerrit.osmocom.org/c/pysim/+/15497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I98e5bf8f9ff2a852efb190cc789edf42c5075bf8 Gerrit-Change-Number: 15497 Gerrit-PatchSet: 3 Gerrit-Owner: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: laforge <laforge at gnumonks.org> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190914/c0754f28/attachment.htm>