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
+	}
+}
 
 
 
