mobile: few fixes in the 5G NAS
This commit is contained in:
parent
20f86648d6
commit
f94d1f5595
|
@ -104,6 +104,12 @@ def parse_NAS5G(buf, inner=True, sec_hdr=True):
|
|||
# error 97: message type non-existent or not implemented
|
||||
return None, 97
|
||||
#
|
||||
try:
|
||||
Msg.from_bytes(buf)
|
||||
except Exception:
|
||||
# error 96, invalid mandatory info
|
||||
return None, 96
|
||||
#
|
||||
if inner and pd == 126:
|
||||
if typ in (65, 76, 79, 94):
|
||||
nasc = Msg['NASContainer']
|
||||
|
|
|
@ -579,7 +579,7 @@ class EPSUpdateType(Envelope):
|
|||
|
||||
class NAS_KSI(Envelope):
|
||||
_GEN = (
|
||||
Uint('TSC', bl=1, dic={0:' native security context', 1:'mapped security context'}),
|
||||
Uint('TSC', bl=1, dic={0:'native security context', 1:'mapped security context'}),
|
||||
Uint('Value', bl=3, dic={7:'no key available'})
|
||||
)
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ class FGMMAuthenticationRequest(Layer3):
|
|||
Type1V('NAS_KSI', val={'V': 7}, IE=NAS_KSI()),
|
||||
Type4LV('ABBA', val={'V':b'\0\0'}),
|
||||
Type3TV('RAND', val={'T':0x21, 'V':16*b'\0'}, bl={'V':128}),
|
||||
Type4LV('AUTN', val={'V':16*b'\0'}, IE=AUTN()),
|
||||
Type4TLV('AUTN', val={'T':0x20, 'V':16*b'\0'}, IE=AUTN()),
|
||||
Type6TLVE('EAPMsg', val={'T':0x78, 'V':b'\0\0\0\0\0'})
|
||||
)
|
||||
|
||||
|
@ -269,8 +269,8 @@ class FGMMRegistrationAccept(Layer3):
|
|||
_name = '5GMMRegistrationAccept'
|
||||
_GEN = (
|
||||
FGMMHeader(val={'Type':66}),
|
||||
Type4LV('5GSRegResult', val={'V':b'\0'}, IE=FGSRegType()),
|
||||
Type6LVE('GUTI', val={'V':b'\0\0\0\0'}, IE=FGSID()),
|
||||
Type4LV('5GSRegResult', val={'V':b'\0'}, IE=FGSRegResult()),
|
||||
Type6TLVE('GUTI', val={'T': 0x77, 'V':b'\0\0\0\0'}, IE=FGSID()),
|
||||
Type4TLV('EquivPLMNList', val={'T':0x4A, 'V':3*b'\0'}, IE=PLMNList()),
|
||||
Type4TLV('5GSTAIList', val={'T':0x54, 'V':7*b'\0'}, IE=FGSTAIList()),
|
||||
Type4TLV('AllowedNSSAI', val={'T':0x15, 'V':b'\0\0'}, IE=NSSAI()),
|
||||
|
@ -596,7 +596,7 @@ class FGMMSecurityModeCommand(Layer3):
|
|||
Uint('spare', bl=4, rep=REPR_HEX),
|
||||
Type1V('NAS_KSI', val={'V':0}, IE=NAS_KSI()),
|
||||
Type4LV('UESecCap', val={'V':b'\0\0'}, IE=UESecCap()),
|
||||
Type1TV('IMEISVReq', val={'T':0xC, 'V':0}, IE=IMEISVReq()),
|
||||
Type1TV('IMEISVReq', val={'T':0xE, 'V':0}, IE=IMEISVReq()),
|
||||
Type3TV('EPSNASSecAlgo', val={'T':0x57, 'V':b'\x11'}, bl={'V':8}, IE=EPSNASSecAlgo()),
|
||||
Type4TLV('Add5GSecInfo', val={'T':0x36, 'V':b'\0'}, IE=Add5GSecInfo()),
|
||||
Type6TLVE('EAPMsg', val={'T':0x78, 'V':b'\0\0\0\0\0'}),
|
||||
|
|
|
@ -159,6 +159,7 @@ class FGMMCap(Envelope):
|
|||
|
||||
ENV_SEL_TRANS = False
|
||||
|
||||
_name = '5GMMCap'
|
||||
_GEN = (
|
||||
Uint('SGC', bl=1),
|
||||
Uint('5G-HC-CP-CIoT', bl=1),
|
||||
|
@ -446,7 +447,7 @@ class FGSIDDigit(Envelope):
|
|||
Uint('Digit1', val=0xF, bl=4, rep=REPR_HEX),
|
||||
Uint('Odd', bl=1),
|
||||
Uint('Type', val=FGSIDTYPE_IMEI, bl=3, dic=FGSIDType_dict),
|
||||
Buf('Digits', val=b'', rep=REPR_HEX)
|
||||
BufBCD('Digits', val='')
|
||||
)
|
||||
|
||||
|
||||
|
@ -490,6 +491,8 @@ class FGSIDUnk(Envelope):
|
|||
|
||||
|
||||
class FGSID(Envelope):
|
||||
_name = '5GSID'
|
||||
|
||||
# FGSIDTYPE_NO (0) -> FGSIDNone
|
||||
# FGSIDTYPE_SUPI (1) -> FGSIDSUPI
|
||||
# FGSIDTYPE_GUTI (2) -> FGSIDGUTI
|
||||
|
@ -626,7 +629,7 @@ _FGSRegResult_dict = {
|
|||
|
||||
|
||||
class FGSRegResult(Envelope):
|
||||
_name = '5GSRegType'
|
||||
_name = '5GSRegResult'
|
||||
_GEN = (
|
||||
Uint('spare', bl=3),
|
||||
Uint('NSSAAPerformed', bl=1),
|
||||
|
|
Loading…
Reference in New Issue