diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2014-12-01 10:36:17 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-12-08 10:49:17 +0100 |
commit | 65d8273bf342944db12fecff9140bf4b9d3e6ad2 (patch) | |
tree | 821d0b5df5d672f34f366e35627bc02ee36a0354 | |
parent | 0acc0018d9a395ded0408f5c95061562d0c528b3 (diff) |
sgsn: Fix and enable auth/ciph message generation
Currently gsm48_tx_gmm_auth_ciph_req/_rej are commented out. In
addition, gsm48_tx_gmm_auth_ciph_req uses a wrong encoding (two byte TV instead of two nibbles TV) of the CKSN information element.
This patch fixes the encoding of the CKSN IE and enables the
functions mentioned above.
Sponsored-by: On-Waves ehf
-rw-r--r-- | openbsc/src/gprs/gprs_gmm.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index 74f50fb0a..8820396fe 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -537,7 +537,6 @@ static int gsm48_tx_gmm_id_req(struct sgsn_mm_ctx *mm, uint8_t id_type) return gsm48_gmm_sendmsg(msg, 1, mm); } -#if 0 /* Section 9.4.9: Authentication and Ciphering Request */ static int gsm48_tx_gmm_auth_ciph_req(struct sgsn_mm_ctx *mm, uint8_t *rand, uint8_t key_seq, uint8_t algo) @@ -568,9 +567,8 @@ static int gsm48_tx_gmm_auth_ciph_req(struct sgsn_mm_ctx *mm, uint8_t *rand, m_rand[0] = GSM48_IE_GMM_AUTH_RAND; memcpy(m_rand+1, rand, 16); - m_cksn = msgb_put(msg, 1+1); - m_cksn[0] = GSM48_IE_GMM_CIPH_CKSN; - m_cksn[1] = key_seq; + m_cksn = msgb_put(msg, 1); + m_cksn[0] = (GSM48_IE_GMM_CIPH_CKSN << 4) | (key_seq & 0x07); } /* Start T3360 */ @@ -597,7 +595,6 @@ static int gsm48_tx_gmm_auth_ciph_rej(struct sgsn_mm_ctx *mm) return gsm48_gmm_sendmsg(msg, 0, mm); } -#endif /* Section 9.4.10: Authentication and Ciphering Response */ static int gsm48_rx_gmm_auth_ciph_resp(struct sgsn_mm_ctx *ctx, |