lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43454?usp=email )
Change subject: SGSN: as_service_request(): use as_ciph_utran() to parse the Security Command ......................................................................
SGSN: as_service_request(): use as_ciph_utran() to parse the Security Command
as_ciph_utran() parse the Ciphering Command in more detail than the alt step before.
Change-Id: Ice385045c96e2d2eac7aa3c523c7b7c3c39e8bf4 --- M sgsn/BSSGP_ConnHdlr.ttcn 1 file changed, 3 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/43454/1
diff --git a/sgsn/BSSGP_ConnHdlr.ttcn b/sgsn/BSSGP_ConnHdlr.ttcn index 7220ba0..8c12ea6 100644 --- a/sgsn/BSSGP_ConnHdlr.ttcn +++ b/sgsn/BSSGP_ConnHdlr.ttcn @@ -399,7 +399,7 @@ * CommonId * (out of order: GMM ID Req) */ -function f_gmm_auth (boolean umts_aka_challenge := false, boolean force_gsm_sres := false, integer ran_index := 0) runs on BSSGP_ConnHdlr { +function f_gmm_auth(boolean umts_aka_challenge := false, boolean force_gsm_sres := false, integer ran_index := 0) runs on BSSGP_ConnHdlr { var PDU_L3_MS_SGSN l3_mo; var PDU_L3_SGSN_MS l3_mt; var default di := activate(as_mm_identity(ran_index)); @@ -765,15 +765,10 @@ mtc.stop; } /* 24.008 4.7.13.3: a SecurityModeCommand is an implicit Service Accept if UE was in PMM-IDLE */ - [] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?, - uia_key := oct2bit(g_pars.vec.ik), - key_sts := ?)) { - var IntegrityProtectionAlgorithm uia_chosen := 0; /* 0 = standard_UMTS_integrity_algorithm_UIA1 */ - RAN_CONN.send(ts_RANAP_SecurityModeComplete(uia_chosen)); + [] as_ciph_utran() { if (not exp_service_acc) { - /* Because we stop processing early, we need to consume the CommonID */ + /* We need to consume the CommonID */ RAN_CONN.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi))); - setverdict(pass); } else { /* This repeat would be wrong if you follow the spec correct. Because: * a) the UE is in PMM Idle and in this case the exp_service_acc would be true