Message ID | d863bc51e2f2a2853def6badf78ba4367b24065a.1444298449.git.daniel@totalueberwachung.de |
---|---|
State | Accepted |
Headers | show |
> On 08 Oct 2015, at 16:10, Daniel Willmann <dwilllmann@sysmocom.de> wrote: > > From: Daniel Willmann <dwillmann@sysmocom.de> * missing include for the RAND_bytes prototype * missing cat of ptmsi * missing linking to LIBCRYPTO_LIBS * missing linking to LIBCRYPTO_LIBS in the test and after that.. the sgsn tests fail because of the TMSI situation. I have now reverted the code. Please look at it with Jacob and extract the TMSI from the SGSN state instead of resetting the RNG in the test. holger
On Mon, 2015-10-12 at 09:59 +0200, Holger Freyther wrote: > > On 08 Oct 2015, at 16:10, Daniel Willmann <dwilllmann@sysmocom.de> wrote: > > > > From: Daniel Willmann <dwillmann@sysmocom.de> > > > * missing include for the RAND_bytes prototype > * missing cat of ptmsi > * missing linking to LIBCRYPTO_LIBS > * missing linking to LIBCRYPTO_LIBS in the test > and after that.. the sgsn tests fail because of the TMSI situation. I have now > reverted the code. Please look at it with Jacob and extract the TMSI from the > SGSN state instead of resetting the RNG in the test. ...sorry, it seems that it never even executed the test on my new system due to missing libgtp. I'll send another patchset which solves this issue (and does the same for gbproxy). Daniel
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c index f40de0b..2af1e97 100644 --- a/openbsc/src/gprs/gprs_sgsn.c +++ b/openbsc/src/gprs/gprs_sgsn.c @@ -525,7 +525,9 @@ uint32_t sgsn_alloc_ptmsi(void) int max_retries = 100; restart: - ptmsi = rand(); + if (RAND_bytes(&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
From: Daniel Willmann <dwillmann@sysmocom.de> --- openbsc/src/gprs/gprs_sgsn.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)