[3/4] libmsc: Use RAND_bytes to choose auth tuple
diff mbox

Message ID a8cb426d7265e790a5ad7551fe2f2bf18c3306fd.1444298449.git.daniel@totalueberwachung.de
State Accepted
Headers show

Commit Message

Daniel Willmann Oct. 8, 2015, 2:10 p.m. UTC
From: Daniel Willmann <dwillmann@sysmocom.de>

---
 openbsc/src/libmsc/auth.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Patch
diff mbox

diff --git a/openbsc/src/libmsc/auth.c b/openbsc/src/libmsc/auth.c
index 10d8edf..93ee71f 100644
--- a/openbsc/src/libmsc/auth.c
+++ b/openbsc/src/libmsc/auth.c
@@ -27,6 +27,8 @@ 
 
 #include <osmocom/gsm/comp128.h>
 
+#include <openssl/rand.h>
+
 #include <stdlib.h>
 
 
@@ -100,8 +102,11 @@  int auth_get_tuple_for_subscr(struct gsm_auth_tuple *atuple,
 	/* Generate a new one */
 	atuple->use_count = 1;
 	atuple->key_seq = (atuple->key_seq + 1) % 7;
-        for (i=0; i<sizeof(atuple->rand); i++)
-                atuple->rand[i] = random() & 0xff;
+
+	if (RAND_bytes(atuple->rand, sizeof(atuple->rand)) != 1) {
+		LOGP(DMM, LOGL_NOTICE, "RAND_bytes failed, can't generate new auth tuple\n");
+		return -1;
+	}
 
 	switch (ainfo.auth_algo) {
 	case AUTH_ALGO_NONE: