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. ( https://gerrit.osmocom.org/c/pysim/+/23174 ) Change subject: start using python3 bytearray for our b2h/h2b types ...................................................................... start using python3 bytearray for our b2h/h2b types The code was written long ago, when the python3 bytearray type probably didn't exist yet, or was at least not known. Let's stop using string types with binary bytes inside, and instead standardize on two types: * bytearray for binary data * string for hexadecimal nibbles representing that binary data Change-Id: I8aca84b6280f9702b0e2aba2c9759b4f312ab6a9 --- M pySim/cards.py M pySim/utils.py 2 files changed, 12 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/cards.py b/pySim/cards.py index 61d2624..8b51787 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -631,7 +631,7 @@ # Set first entry entry = ( '81' + # 1b Status: Valid & Active - rpad(b2h(p['name'][0:14]), 28) + # 14b Entry Name + rpad(s2h(p['name'][0:14]), 28) + # 14b Entry Name enc_iccid(p['iccid']) + # 10b ICCID enc_imsi(p['imsi']) + # 9b IMSI_len + id_type(9) + IMSI p['ki'] + # 16b Ki diff --git a/pySim/utils.py b/pySim/utils.py index bfa147b..5320b59 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -22,10 +22,12 @@ def h2b(s): - return ''.join([chr((int(x,16)<<4)+int(y,16)) for x,y in zip(s[0::2], s[1::2])]) + """convert from a string of hex nibbles to a sequence of bytes""" + return bytearray.fromhex(s) -def b2h(s): - return ''.join(['%02x'%ord(x) for x in s]) +def b2h(b): + """convert from a sequence of bytes to a string of hex nibbles""" + return ''.join(['%02x'%(x) for x in b]) def h2i(s): return [(int(x,16)<<4)+int(y,16) for x,y in zip(s[0::2], s[1::2])] @@ -38,7 +40,9 @@ if int(x + y, 16) != 0xff]) def s2h(s): - return b2h(s) + b = bytearray() + b.extend(map(ord, s)) + return b2h(b) # List of bytes to string def i2s(s): @@ -334,7 +338,7 @@ msisdn_lhv = ef_msisdn[xlen:] # Parse the length (in bytes) of the BCD encoded number - bcd_len = ord(msisdn_lhv[0]) + bcd_len = msisdn_lhv[0] # BCD length = length of dial num (max. 10 bytes) + 1 byte ToN and NPI if bcd_len == 0xff: return None @@ -342,8 +346,8 @@ raise ValueError("Length of MSISDN (%d bytes) is out of range" % bcd_len) # Parse ToN / NPI - ton = (ord(msisdn_lhv[1]) >> 4) & 0x07 - npi = ord(msisdn_lhv[1]) & 0x0f + ton = (msisdn_lhv[1] >> 4) & 0x07 + npi = msisdn_lhv[1] & 0x0f bcd_len -= 1 # No MSISDN? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23174 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8aca84b6280f9702b0e2aba2c9759b4f312ab6a9 Gerrit-Change-Number: 23174 Gerrit-PatchSet: 10 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-Assignee: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210303/ee058364/attachment.htm>