[SGSN] Call libosmocore helper to load cipher plugins
diff --git a/openbsc/include/openbsc/gprs_llc.h b/openbsc/include/openbsc/gprs_llc.h
index 0ddb518..d0c30a6 100644
--- a/openbsc/include/openbsc/gprs_llc.h
+++ b/openbsc/include/openbsc/gprs_llc.h
@@ -144,6 +144,7 @@
 		      uint32_t old_tlli, uint32_t new_tlli,
 		      enum gprs_ciph_algo alg, const uint8_t *kc);
 
+int gprs_llc_init(const char *cipher_plugin_path);
 int gprs_llc_vty_init(void);
 
 #endif
diff --git a/openbsc/include/openbsc/gprs_sgsn.h b/openbsc/include/openbsc/gprs_sgsn.h
index 0801150..b32c5cd 100644
--- a/openbsc/include/openbsc/gprs_sgsn.h
+++ b/openbsc/include/openbsc/gprs_sgsn.h
@@ -6,6 +6,8 @@
 
 #include <osmocore/gsm48.h>
 
+#include <osmocom/crypt/gprs_cipher.h>
+
 #define GSM_IMSI_LENGTH 17
 #define GSM_IMEI_LENGTH 17
 #define GSM_EXTENSION_LENGTH 15
@@ -21,13 +23,6 @@
 	GMM_DEREGISTERED_INIT,		/* 4.1.3.3.1.4 */
 };
 
-enum gprs_ciph_algo {
-	GPRS_ALGO_GEA0,
-	GPRS_ALGO_GEA1,
-	GPRS_ALGO_GEA2,
-	GPRS_ALGO_GEA3,
-};
-
 enum gprs_mm_ctr {
 	GMM_CTR_PKTS_SIG_IN,
 	GMM_CTR_PKTS_SIG_OUT,
diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c
index 98193d9..7e16d1b 100644
--- a/openbsc/src/gprs/gprs_llc.c
+++ b/openbsc/src/gprs/gprs_llc.c
@@ -749,3 +749,8 @@
 
 	return 0;
 }
+
+int gprs_llc_init(const char *cipher_plugin_path)
+{
+	return gprs_cipher_load(cipher_plugin_path);
+}
diff --git a/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c
index 2647867..92f4310 100644
--- a/openbsc/src/gprs/sgsn_main.c
+++ b/openbsc/src/gprs/sgsn_main.c
@@ -170,6 +170,9 @@
 		exit(1);
 	}
 	bssgp_nsi = sgsn_inst.cfg.nsi = sgsn_nsi;
+
+	gprs_llc_init("/usr/local/lib/osmocom/crypt/");
+
 	gprs_ns_vty_init(bssgp_nsi);
 	gprs_bssgp_vty_init();
 	gprs_llc_vty_init();