diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-03-21 22:27:15 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-03-22 19:54:09 +0100 |
commit | debb0e386871e64a769d7414b71bedec09d7e76a (patch) | |
tree | 4c2dcaec7f22257e2d650ceacc5759805f5853f7 /openbsc/src/libmsc/iu_cs.c | |
parent | d025a3cfbb53f690a4ebbd628cafda81c1b34bc7 (diff) |
cscn: implement integrity protection
Upon authentication response, initiate integrity protection for Iu by sending a
Security Mode Command (IK), with hardcoded auth tuple so far.
Implement RANAP event handling to receive Security Mode Complete message,
adding stubs for the other events; in new files osmo-cscn/iucs_ranap.[hc] to
keep RANAP dependencies separate, and particularly out of libmsc.
Upon receiving Security Mode Complete, call the security operation callback
(conn->sec_operation->cb) to complete the Location Update.
Introduce enum integrity_protection_state constants to indicate integrity
protection, record in gsm_subscriber_conn.iu.integrity_protection.
Make subscr_conn_lookup_iu() non-static and declare in iu_cs.h to be able to
call from iucs_ranap.c's Security Mode Complete event.
Implement dummy iu_tx_sec_mode_cmd() to allow tests to build without RANAP
dependencies.
In cscn_main.c, call iucs_rx_ranap_event(), to populate the struct gsm_network
struct with cscn_network explicitly (don't share cscn_network across
compilation scopes because it's ugly).
Diffstat (limited to 'openbsc/src/libmsc/iu_cs.c')
-rw-r--r-- | openbsc/src/libmsc/iu_cs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/openbsc/src/libmsc/iu_cs.c b/openbsc/src/libmsc/iu_cs.c index 8d1878dc3..946d89ad5 100644 --- a/openbsc/src/libmsc/iu_cs.c +++ b/openbsc/src/libmsc/iu_cs.c @@ -74,8 +74,9 @@ static inline void log_subscribers(struct gsm_network *network) /* Return an existing IuCS subscriber connection record for the given link and * connection IDs, or return NULL if not found. */ -static struct gsm_subscriber_connection *subscr_conn_lookup_iu(struct gsm_network *network, - struct ue_conn_ctx *ue) +struct gsm_subscriber_connection *subscr_conn_lookup_iu( + struct gsm_network *network, + struct ue_conn_ctx *ue) { struct gsm_subscriber_connection *conn; @@ -143,4 +144,3 @@ int gsm0408_rcvmsg_iucs(struct gsm_network *network, struct msgb *msg) return rc; } - |