Skip to content
Browse files

Worked with Samy Kamkar to improve LCG entropy.

  • Loading branch information...
1 parent 679b228 commit 58867bacc1df663b1d404ec488161d3d35c474dd @rlerdorf rlerdorf committed Jan 8, 2010
Showing with 7 additions and 1 deletion.
  1. +1 −0 NEWS
  2. +6 −1 ext/standard/lcg.c
View
1 NEWS
@@ -7,6 +7,7 @@ PHP NEWS
- Added missing host validation for HTTP urls inside FILTER_VALIDATE_URL.
(Ilia)
- Added stream_resolve_include_path(). (Mikko)
+- Improved LCG entropy (Rasmus, Samy Kamkar)
- Fixed bug #50680 (strtotime() does not support eighth ordinal number).
(Ilia)
View
7 ext/standard/lcg.c
@@ -78,7 +78,7 @@ static void lcg_seed(TSRMLS_D) /* {{{ */
struct timeval tv;
if (gettimeofday(&tv, NULL) == 0) {
- LCG(s1) = tv.tv_sec ^ (~tv.tv_usec);
+ LCG(s1) = tv.tv_sec ^ (tv.tv_usec<<11);
} else {
LCG(s1) = 1;
}
@@ -88,6 +88,11 @@ static void lcg_seed(TSRMLS_D) /* {{{ */
LCG(s2) = (long) getpid();
#endif
+ /* Add entropy to s2 by calling gettimeofday() again */
+ if (gettimeofday(&tv, NULL) == 0) {
+ LCG(s2) ^= (tv.tv_usec<<11);
+ }
+
LCG(seeded) = 1;
}
/* }}} */

0 comments on commit 58867ba

Please sign in to comment.
Something went wrong with that request. Please try again.