From 0a25cde3390413ad04a08f8d221cdb593eb475a2 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Sat, 4 Mar 2017 02:28:19 +0100 Subject: remove all 3G authentication dev hacks -- it works! Change-Id: I1204f388cf1311ec98b3eaf7505d7e18e73f03d0 --- openbsc/src/gprs/gprs_gmm.c | 27 --------------------------- openbsc/src/libiu/iu.c | 19 ++----------------- 2 files changed, 2 insertions(+), 44 deletions(-) (limited to 'openbsc') 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)); -- cgit v1.2.3