aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-04 02:28:19 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-16 15:32:33 +0100
commit0a25cde3390413ad04a08f8d221cdb593eb475a2 (patch)
tree10c3aca0f401d2c13c2261671a8b56ee3e5efcd4
parente31a381b725c27e6eb59759fe18bd568d5e3857d (diff)
remove all 3G authentication dev hacks -- it works!
-rw-r--r--openbsc/src/gprs/gprs_gmm.c27
-rw-r--r--openbsc/src/libiu/iu.c19
2 files changed, 2 insertions, 44 deletions
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index 3350768db..fb9ef4bb3 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -1370,33 +1370,6 @@ static int gsm48_rx_gmm_att_req(struct sgsn_mm_ctx *ctx, struct msgb *msg,
ctx->ra = ra_id;
if (ctx->ran_type == MM_CTX_T_GERAN_Gb)
ctx->gb.cell_id = cid;
- else if (ctx->ran_type == MM_CTX_T_UTRAN_Iu) {
- /* DEVELOPMENT HACK: Our current HLR does not support 3G
- * authentication tokens. A new HLR/VLR implementation is being
- * developed. Until it is ready and actual milenage
- * authentication is properly supported, we are hardcoding a
- * fixed Ki and use 2G auth. */
- unsigned char tmp_rand[16];
- /* Ki 000102030405060708090a0b0c0d0e0f */
- struct osmo_sub_auth_data auth = {
- .type = OSMO_AUTH_TYPE_GSM,
- .algo = OSMO_AUTH_ALG_COMP128v1,
- .u.gsm.ki = {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
- 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
- 0x0e, 0x0f
- },
- };
- /* XXX: Hack to make 3G auth work with special SIM card */
- ctx->auth_state = SGSN_AUTH_AUTHENTICATE;
-
- RAND_bytes(tmp_rand, 16);
-
- memset(&ctx->auth_triplet.vec, 0, sizeof(ctx->auth_triplet.vec));
- osmo_auth_gen_vec(&ctx->auth_triplet.vec, &auth, tmp_rand);
-
- ctx->auth_triplet.key_seq = 0;
- }
/* Update MM Context with other data */
ctx->drx_parms = drx_par;
diff --git a/openbsc/src/libiu/iu.c b/openbsc/src/libiu/iu.c
index eacc2f85a..5d56a4a37 100644
--- a/openbsc/src/libiu/iu.c
+++ b/openbsc/src/libiu/iu.c
@@ -233,25 +233,10 @@ int iu_tx_sec_mode_cmd(struct ue_conn_ctx *uectx, struct gsm_auth_tuple *tp,
{
struct osmo_scu_prim *prim;
struct msgb *msg;
- uint8_t ik[16];
- uint8_t ck[16];
- unsigned int i;
-
- /* C5 function to derive IK from Kc */
- for (i = 0; i < 4; i++)
- ik[i] = tp->vec.kc[i] ^ tp->vec.kc[i+4];
- memcpy(ik+4, tp->vec.kc, 8);
- for (i = 12; i < 16; i++)
- ik[i] = ik[i-12];
-
- if (send_ck) {
- /* C4 function to derive CK from Kc */
- memcpy(ck, tp->vec.kc, 8);
- memcpy(ck+8, tp->vec.kc, 8);
- }
/* create RANAP message */
- msg = ranap_new_msg_sec_mod_cmd(ik, send_ck? ck : NULL, new_key ? RANAP_KeyStatus_new : RANAP_KeyStatus_old);
+ msg = ranap_new_msg_sec_mod_cmd(tp->vec.ik, send_ck? tp->vec.ck : NULL,
+ new_key ? RANAP_KeyStatus_new : RANAP_KeyStatus_old);
msg->l2h = msg->data;
/* wrap RANAP message in SCCP N-DATA.req */
prim = (struct osmo_scu_prim *) msgb_push(msg, sizeof(*prim));