18 if (!defined(
'Auth_OpenID_RAND_SOURCE')) {
23 define(
'Auth_OpenID_RAND_SOURCE',
'/dev/urandom');
45 if (Auth_OpenID_RAND_SOURCE === null) {
48 $f = @fopen(Auth_OpenID_RAND_SOURCE,
"r");
50 $msg =
'Define Auth_OpenID_RAND_SOURCE as null to ' .
51 ' continue with an insecure random number generator.';
52 trigger_error($msg, E_USER_ERROR);
59 for ($i = 0; $i < $num_bytes; $i += 4) {
60 $bytes .= pack(
'L', mt_rand());
62 $bytes = substr($bytes, 0, $num_bytes);
64 $bytes = fread(
$f, $num_bytes);
82 if ($population === null) {
86 $popsize = strlen($population);
89 $msg =
'More than 256 characters supplied to ' . __FUNCTION__;
90 trigger_error($msg, E_USER_ERROR);
93 $duplicate = 256 % $popsize;
96 for ($i = 0; $i < $length; $i++) {
99 }
while ($n < $duplicate);
102 $str .= $population[$n];