gprs: Use RAND_bytes for p-tmsi
[hfreyther: Link to libcrypto, include header, add uint8_t* cast]
This commit is contained in:
parent
cdeb815c78
commit
6cf0249dac
|
@ -30,4 +30,5 @@ osmo_sgsn_SOURCES = gprs_gmm.c gprs_sgsn.c gprs_sndcp.c gprs_sndcp_vty.c \
|
|||
gsm_04_08_gprs.c sgsn_cdr.c sgsn_ares.c
|
||||
osmo_sgsn_LDADD = \
|
||||
$(top_builddir)/src/libcommon/libcommon.a \
|
||||
-lgtp $(OSMO_LIBS) $(LIBOSMOABIS_LIBS) $(LIBCARES_LIBS) -lrt
|
||||
-lgtp $(OSMO_LIBS) $(LIBOSMOABIS_LIBS) $(LIBCARES_LIBS) \
|
||||
$(LIBCRYPTO_LIBS) -lrt
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
|
||||
#include <time.h>
|
||||
|
||||
#include <openssl/rand.h>
|
||||
|
||||
#define GPRS_LLME_CHECK_TICK 30
|
||||
|
||||
extern struct sgsn_instance *sgsn;
|
||||
|
@ -525,7 +527,9 @@ uint32_t sgsn_alloc_ptmsi(void)
|
|||
int max_retries = 100;
|
||||
|
||||
restart:
|
||||
ptmsi = rand();
|
||||
if (RAND_bytes((uint8_t *) &ptmsi, sizeof(ptmsi)) != 1)
|
||||
goto failed;
|
||||
|
||||
/* Enforce that the 2 MSB are set without loosing the distance between
|
||||
* identical values. Since rand() has no duplicate values within a
|
||||
* period (because the size of the state is the same like the size of
|
||||
|
|
|
@ -34,5 +34,6 @@ sgsn_test_LDADD = \
|
|||
$(LIBOSMOGSM_LIBS) \
|
||||
$(LIBOSMOGB_LIBS) \
|
||||
$(LIBCARES_LIBS) \
|
||||
$(LIBCRYPTO_LIBS) \
|
||||
-lgtp -lrt
|
||||
|
||||
|
|
Loading…
Reference in New Issue