From 753c15de2f00e24f76ac9b01a20e1e2ff0f86ce2 Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 21 Dec 2017 14:50:44 +0100 Subject: [PATCH] Migrate from OpenSSL to osmo_get_rand_id() This avoids potential licensing incompatibility and makes integration of Debian packaging patches easier. Related: OS#1694 Change-Id: I71cd631704a4dc155c6c752fee2a42cd6e2fa336 --- configure.ac | 1 - debian/control | 1 - src/libmsc/Makefile.am | 1 - src/libmsc/auth.c | 2 -- src/libmsc/db.c | 2 -- src/libmsc/gsm_04_08.c | 1 - src/libvlr/Makefile.am | 1 - src/libvlr/vlr.c | 11 +++++------ src/osmo-msc/Makefile.am | 2 -- tests/db/Makefile.am | 1 - tests/msc_vlr/Makefile.am | 4 +--- tests/msc_vlr/msc_vlr_tests.c | 8 ++++---- tests/sms_queue/Makefile.am | 2 -- 13 files changed, 10 insertions(+), 27 deletions(-) diff --git a/configure.ac b/configure.ac index 49d06f570..feb3de964 100644 --- a/configure.ac +++ b/configure.ac @@ -47,7 +47,6 @@ PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 0.2.0) PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 0.1.0) PKG_CHECK_MODULES(LIBOSMOSIGTRAN, libosmo-sigtran >= 0.8.0) PKG_CHECK_MODULES(LIBOSMOSCCP, libosmo-sccp) -PKG_CHECK_MODULES(LIBCRYPTO, libcrypto >= 0.9.5) PKG_CHECK_MODULES(LIBOSMOMGCPCLIENT, libosmo-mgcp-client >= 1.1.0) PKG_CHECK_MODULES(LIBSMPP34, libsmpp34 >= 1.12.0) diff --git a/debian/control b/debian/control index 60d468ee1..6219ea4af 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,6 @@ Build-Depends: debhelper (>=9), pkg-config, libdbi-dev, libtalloc-dev, - libssl-dev (>= 0.9.5), libsmpp34-dev (>= 1.12), libasn1c-dev (>= 0.9.28), libosmocore-dev (>= 0.10.0), diff --git a/src/libmsc/Makefile.am b/src/libmsc/Makefile.am index 998df2684..7dfb047ee 100644 --- a/src/libmsc/Makefile.am +++ b/src/libmsc/Makefile.am @@ -10,7 +10,6 @@ AM_CFLAGS = \ $(LIBOSMOVTY_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(COVERAGE_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ $(LIBSMPP34_CFLAGS) \ $(LIBASN1C_CFLAGS) \ $(LIBOSMOSIGTRAN_CFLAGS) \ diff --git a/src/libmsc/auth.c b/src/libmsc/auth.c index 7b5367bf0..7c78c6ece 100644 --- a/src/libmsc/auth.c +++ b/src/libmsc/auth.c @@ -28,8 +28,6 @@ #include #include -#include - #include const struct value_string auth_action_names[] = { diff --git a/src/libmsc/db.c b/src/libmsc/db.c index 0cb8ff34e..28004f7e4 100644 --- a/src/libmsc/db.c +++ b/src/libmsc/db.c @@ -42,8 +42,6 @@ #include #include -#include - static char *db_basename = NULL; static char *db_dirname = NULL; static dbi_conn conn; diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 26ac92319..88472e0af 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -31,7 +31,6 @@ #include #include #include -#include #include "bscconfig.h" diff --git a/src/libvlr/Makefile.am b/src/libvlr/Makefile.am index 511dfc04e..e3d5cedf8 100644 --- a/src/libvlr/Makefile.am +++ b/src/libvlr/Makefile.am @@ -7,7 +7,6 @@ AM_CFLAGS= \ $(LIBOSMOMGCPCLIENT_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(COVERAGE_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ $(NULL) noinst_HEADERS = \ diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 670ff839d..8c6911a60 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -31,8 +31,6 @@ #include #include -#include - #include #include #include @@ -275,12 +273,13 @@ int vlr_subscr_alloc_tmsi(struct vlr_subscr *vsub) { struct vlr_instance *vlr = vsub->vlr; uint32_t tmsi; - int tried; + int tried, rc; for (tried = 0; tried < 100; tried++) { - if (RAND_bytes((uint8_t *) &tmsi, sizeof(tmsi)) != 1) { - LOGP(DVLR, LOGL_ERROR, "RAND_bytes failed\n"); - return -1; + rc = osmo_get_rand_id((uint8_t *) &tmsi, sizeof(tmsi)); + if (rc < 0) { + LOGP(DDB, LOGL_ERROR, "osmo_get_rand_id() failed: %s\n", strerror(-rc)); + return rc; } /* throw the dice again, if the TSMI doesn't fit */ if (tmsi == GSM_RESERVED_TMSI) diff --git a/src/osmo-msc/Makefile.am b/src/osmo-msc/Makefile.am index e296f9782..1d8bfbd59 100644 --- a/src/osmo-msc/Makefile.am +++ b/src/osmo-msc/Makefile.am @@ -13,7 +13,6 @@ AM_CFLAGS = \ $(LIBOSMOCTRL_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBSMPP34_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ $(LIBOSMORANAP_CFLAGS) \ $(LIBASN1C_CFLAGS) \ $(LIBOSMOSIGTRAN_CFLAGS) \ @@ -43,7 +42,6 @@ osmo_msc_LDADD = \ $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBSMPP34_LIBS) \ - $(LIBCRYPTO_LIBS) \ $(LIBOSMOSIGTRAN_LIBS) \ $(LIBOSMOMGCPCLIENT_LIBS) \ -ldbi \ diff --git a/tests/db/Makefile.am b/tests/db/Makefile.am index bcb66ec32..720e00506 100644 --- a/tests/db/Makefile.am +++ b/tests/db/Makefile.am @@ -42,6 +42,5 @@ db_test_LDADD = \ $(LIBOSMOGSM_LIBS) \ $(LIBSMPP34_LIBS) \ $(LIBOSMOVTY_LIBS) \ - $(LIBCRYPTO_LIBS) \ -ldbi \ $(NULL) diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am index 8bbe6cba2..3a2c85932 100644 --- a/tests/msc_vlr/Makefile.am +++ b/tests/msc_vlr/Makefile.am @@ -9,7 +9,6 @@ AM_CFLAGS = \ $(LIBOSMOCORE_CFLAGS) \ $(LIBOSMOGSM_CFLAGS) \ $(LIBSMPP34_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ $(LIBOSMOVTY_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBOSMOSIGTRAN_CFLAGS) \ @@ -30,7 +29,7 @@ AM_LDFLAGS = \ -Wl,--wrap=ranap_iu_page_cs \ -Wl,--wrap=msc_stop_paging \ -Wl,--wrap=gsm340_gen_scts \ - -Wl,--wrap=RAND_bytes \ + -Wl,--wrap=osmo_get_rand_id \ -Wl,--wrap=msc_call_assignment \ -Wl,--wrap=msc_call_release \ $(NULL) @@ -43,7 +42,6 @@ LDADD = \ $(LIBSMPP34_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ - $(LIBCRYPTO_LIBS) \ $(LIBOSMOVTY_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOSIGTRAN_LIBS) \ diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index 9cc61b156..ac850b303 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -257,11 +257,11 @@ void send_sms(struct vlr_subscr *receiver, } unsigned char next_rand_byte = 0; -/* override, requires '-Wl,--wrap=RAND_bytes' */ -int __real_RAND_bytes(unsigned char *buf, int num); -int __wrap_RAND_bytes(unsigned char *buf, int num) +/* override, requires '-Wl,--wrap=osmo_get_rand_id' */ +int __real_osmo_get_rand_id(uint8_t *buf, size_t num); +int __wrap_osmo_get_rand_id(uint8_t *buf, size_t num) { - int i; + size_t i; for (i = 0; i < num; i++) buf[i] = next_rand_byte++; return 1; diff --git a/tests/sms_queue/Makefile.am b/tests/sms_queue/Makefile.am index a912be133..8c538b00a 100644 --- a/tests/sms_queue/Makefile.am +++ b/tests/sms_queue/Makefile.am @@ -8,7 +8,6 @@ AM_CFLAGS = \ -ggdb3 \ $(LIBOSMOCORE_CFLAGS) \ $(LIBOSMOGSM_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ $(LIBOSMOVTY_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBOSMOSIGTRAN_CFLAGS) \ @@ -38,7 +37,6 @@ sms_queue_test_LDADD = \ $(LIBSMPP34_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ - $(LIBCRYPTO_LIBS) \ $(LIBOSMOVTY_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOSIGTRAN_LIBS) \