GSUP/L3: Add templates related to authentication
Change-Id: Id9566e3e075a8837e2e77a7c2b9d8f0f6e9b7554
diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index 7455085..bc54510 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -88,8 +88,15 @@
variant (val) "CROSSTAG(imsi, tag = OSMO_GSUP_IMSI_IE;
cause, tag = OSMO_GSUP_CAUSE_IE;
cancel_type, tag = OSMO_GSUP_CANCEL_TYPE_IE;
+ auth_tuple, tag = OSMO_GSUP_AUTH_TUPLE_IE;
auts, tag = OSMO_GSUP_AUTS_IE;
rand, tag = OSMO_GSUP_RAND_IE;
+ sres, tag = OSMO_GSUP_SRES_IE;
+ kc, tag = OSMO_GSUP_KC_IE;
+ ik, tag = OSMO_GSUP_IK_IE;
+ ck, tag = OSMO_GSUP_CK_IE;
+ autn, tag = OSMO_GSUP_AUTN_IE;
+ res, tag = OSMO_GSUP_RES_IE;
msisdn, tag = OSMO_GSUP_MSISDN_IE;
hlr_number, tag = OSMO_GSUP_HLR_NUMBER_IE;
cn_domain, tag = OSMO_GSUP_CN_DOMAIN_IE;
@@ -108,6 +115,12 @@
GSUP_IEs auth_tuple,
octetstring auts,
octetstring rand,
+ octetstring sres,
+ octetstring kc,
+ octetstring ik,
+ octetstring ck,
+ octetstring autn,
+ octetstring res,
hexstring msisdn,
octetstring hlr_number,
GSUP_CnDomain cn_domain,
@@ -126,6 +139,38 @@
with { extension "prototype(convert) decode(RAW)" };
+template GSUP_IE ts_GSUP_IE_AuthTuple2G(octetstring rand, octetstring sres,
+ octetstring kc) := {
+ tag := OSMO_GSUP_AUTH_TUPLE_IE,
+ len := 0, /* overwritten */
+ val := {
+ auth_tuple := {
+ valueof(ts_GSUP_IE_RAND(rand)),
+ valueof(ts_GSUP_IE_SRES(sres)),
+ valueof(ts_GSUP_IE_Kc(kc))
+ }
+ }
+}
+
+template GSUP_IE ts_GSUP_IE_AuthTuple2G3G(octetstring rand, octetstring sres,
+ octetstring kc, octetstring ik,
+ octetstring ck, octetstring autn,
+ octetstring res) := {
+ tag := OSMO_GSUP_AUTH_TUPLE_IE,
+ len := 0, /* overwritten */
+ val := {
+ auth_tuple := {
+ valueof(ts_GSUP_IE_RAND(rand)),
+ valueof(ts_GSUP_IE_SRES(sres)),
+ valueof(ts_GSUP_IE_Kc(kc)),
+ valueof(ts_GSUP_IE_IK(ik)),
+ valueof(ts_GSUP_IE_CK(ck)),
+ valueof(ts_GSUP_IE_AUTN(autn)),
+ valueof(ts_GSUP_IE_RES(res))
+ }
+ }
+}
+
template GSUP_PDU tr_GSUP(template GSUP_MessageType msgt := ?, template GSUP_IEs ies := *) := {
msg_type := msgt,
ies := ies
@@ -142,6 +187,10 @@
template GSUP_PDU tr_GSUP_SAI_REQ(template hexstring imsi) :=
tr_GSUP(OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, { tr_GSUP_IE_IMSI(imsi), * });
+template (value) GSUP_PDU ts_GSUP_SAI_RES(hexstring imsi, GSUP_IE auth_tuple) :=
+ ts_GSUP(OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT, {
+ valueof(ts_GSUP_IE_IMSI(imsi)), auth_tuple });
+
template GSUP_PDU tr_GSUP_SAI_ERR(template hexstring imsi, template integer cause) :=
tr_GSUP(OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, {
tr_GSUP_IE_IMSI(imsi), tr_GSUP_IE_Cause(cause) });
@@ -241,6 +290,53 @@
}
}
+template (value) GSUP_IE ts_GSUP_IE_SRES(octetstring sres) := {
+ tag := OSMO_GSUP_SRES_IE,
+ len := 0, /* overwritten */
+ val := {
+ sres := sres
+ }
+}
+
+template (value) GSUP_IE ts_GSUP_IE_Kc(octetstring kc) := {
+ tag := OSMO_GSUP_KC_IE,
+ len := 0, /* overwritten */
+ val := {
+ kc := kc
+ }
+}
+
+template (value) GSUP_IE ts_GSUP_IE_IK(octetstring ik) := {
+ tag := OSMO_GSUP_IK_IE,
+ len := 0, /* overwritten */
+ val := {
+ ik := ik
+ }
+}
+
+template (value) GSUP_IE ts_GSUP_IE_CK(octetstring ck) := {
+ tag := OSMO_GSUP_CK_IE,
+ len := 0, /* overwritten */
+ val := {
+ ck := ck
+ }
+}
+
+template (value) GSUP_IE ts_GSUP_IE_AUTN(octetstring autn) := {
+ tag := OSMO_GSUP_AUTN_IE,
+ len := 0, /* overwritten */
+ val := {
+ autn := autn
+ }
+}
+
+template (value) GSUP_IE ts_GSUP_IE_RES(octetstring res) := {
+ tag := OSMO_GSUP_RES_IE,
+ len := 0, /* overwritten */
+ val := {
+ res := res
+ }
+}