From 43fd03b62774db3d39a5b61bca57dadd3b8e07e4 Mon Sep 17 00:00:00 2001 From: Supreeth Herle Date: Wed, 25 Mar 2020 14:52:46 +0100 Subject: [PATCH] utils.py: Support IPv4 decoding for Address TLV object present in EF.ePDGId and EF.ePDGIdEm Change-Id: I96c30c1fcc03e50c55e9db7e6a18297a3b1d889d --- pySim/utils.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pySim/utils.py b/pySim/utils.py index 782cb8bf..3838effa 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -530,12 +530,18 @@ def dec_addr_tlv(hexstr): # First byte in the value has the address type addr_type = tlv[2][0] - # TODO: Support parsing of IPv4 and IPv6 + # TODO: Support parsing of IPv6 # Address Type: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), other (Reserved) if addr_type == 0x00: #FQDN # Skip address tye byte i.e. first byte in value list content = tlv[2][1:] s += "\t%s # %s\n" % (i2h(content), i2s(content)) + elif addr_type == 0x01: #IPv4 + # Skip address tye byte i.e. first byte in value list + # Skip the unused byte in Octect 4 after address type byte as per 3GPP TS 31.102 + ipv4 = tlv[2][2:] + content = '.'.join(str(x) for x in ipv4) + s += "\t%s # %s\n" % (i2h(ipv4), content) return s