msc: f_mm_auth(): Add support for UMTS AKA
Change-Id: Id57adcebd63a06cfa555824e493561fe08f13d6d
This commit is contained in:
parent
645a151f69
commit
c1f937a15b
|
@ -75,7 +75,8 @@ type record BSC_ConnHdlrPars {
|
||||||
boolean mm_info,
|
boolean mm_info,
|
||||||
boolean sgsap_enable,
|
boolean sgsap_enable,
|
||||||
boolean gsup_enable,
|
boolean gsup_enable,
|
||||||
integer ran_idx
|
integer ran_idx,
|
||||||
|
boolean use_umts_aka
|
||||||
};
|
};
|
||||||
|
|
||||||
/* get a one-octet bitmaks of supported algorithms based on Classmark information */
|
/* get a one-octet bitmaks of supported algorithms based on Classmark information */
|
||||||
|
@ -293,15 +294,34 @@ private function f_build_lu(MobileIdentityLV mi) runs on BSC_ConnHdlr return PDU
|
||||||
function f_mm_auth() runs on BSC_ConnHdlr
|
function f_mm_auth() runs on BSC_ConnHdlr
|
||||||
{
|
{
|
||||||
if (g_pars.net.expect_auth) {
|
if (g_pars.net.expect_auth) {
|
||||||
g_pars.vec := f_gen_auth_vec_2g();
|
var GSUP_IE auth_tuple;
|
||||||
var GSUP_IE auth_tuple := valueof(ts_GSUP_IE_AuthTuple2G(g_pars.vec.rand,
|
|
||||||
g_pars.vec.sres,
|
|
||||||
g_pars.vec.kc));
|
|
||||||
GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi));
|
GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi));
|
||||||
GSUP.send(ts_GSUP_SAI_RES(g_pars.imsi, auth_tuple));
|
|
||||||
|
|
||||||
BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ(g_pars.vec.rand)));
|
if (g_pars.use_umts_aka) {
|
||||||
BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_2G(g_pars.vec.sres)));
|
g_pars.vec := f_gen_auth_vec_3g();
|
||||||
|
auth_tuple := valueof(ts_GSUP_IE_AuthTuple2G3G(g_pars.vec.rand,
|
||||||
|
g_pars.vec.sres,
|
||||||
|
g_pars.vec.kc,
|
||||||
|
g_pars.vec.ik,
|
||||||
|
g_pars.vec.ck,
|
||||||
|
g_pars.vec.autn,
|
||||||
|
g_pars.vec.res));
|
||||||
|
GSUP.send(ts_GSUP_SAI_RES(g_pars.imsi, auth_tuple));
|
||||||
|
|
||||||
|
BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ_3G(g_pars.vec.rand, g_pars.vec.autn)));
|
||||||
|
var OCT4 res := substr(g_pars.vec.res, 0, 4);
|
||||||
|
var OCT4 xres := substr(g_pars.vec.res, 4, 4);
|
||||||
|
BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_3G(res, xres)));
|
||||||
|
} else {
|
||||||
|
g_pars.vec := f_gen_auth_vec_2g();
|
||||||
|
auth_tuple := valueof(ts_GSUP_IE_AuthTuple2G(g_pars.vec.rand,
|
||||||
|
g_pars.vec.sres,
|
||||||
|
g_pars.vec.kc));
|
||||||
|
GSUP.send(ts_GSUP_SAI_RES(g_pars.imsi, auth_tuple));
|
||||||
|
|
||||||
|
BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ(g_pars.vec.rand)));
|
||||||
|
BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_2G(g_pars.vec.sres)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -513,7 +513,8 @@ runs on MTC_CT return BSC_ConnHdlrPars {
|
||||||
mm_info := mp_mm_info,
|
mm_info := mp_mm_info,
|
||||||
sgsap_enable := sgsap,
|
sgsap_enable := sgsap,
|
||||||
gsup_enable := gsup,
|
gsup_enable := gsup,
|
||||||
ran_idx := ran_idx
|
ran_idx := ran_idx,
|
||||||
|
use_umts_aka := false
|
||||||
};
|
};
|
||||||
return pars;
|
return pars;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue