Chris@0: 2147483647) { Chris@0: for ($i = 0; $i < $bytes; $i += 1073741824) { Chris@0: $n = ($bytes - $i) > 1073741824 Chris@0: ? 1073741824 Chris@0: : $bytes - $i; Chris@12: $buf .= Sodium::randombytes_buf((int) $n); Chris@0: } Chris@0: } else { Chris@12: $buf .= Sodium::randombytes_buf((int) $bytes); Chris@0: } Chris@0: Chris@0: if (is_string($buf)) { Chris@0: if (RandomCompat_strlen($buf) === $bytes) { Chris@0: return $buf; Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * If we reach here, PHP has failed us. Chris@0: */ Chris@0: throw new Exception( Chris@0: 'Could not gather sufficient random data' Chris@0: ); Chris@0: } Chris@0: }