diff --git a/Salsa20/Salsa20.php b/Salsa20/Salsa20.php index a61f286..331b232 100644 --- a/Salsa20/Salsa20.php +++ b/Salsa20/Salsa20.php @@ -170,7 +170,7 @@ function stream($out, $m, $mlen ,$n, $k) { $u = 1; for ($i = 8;$i < 16;++$i) { $u += $z[$i]; - $z[$i] = $u; + $z[$i] = $u & 0xff; $u >>= 8; } diff --git a/Salt.php b/Salt.php index 809bbfd..8031bf1 100644 --- a/Salt.php +++ b/Salt.php @@ -73,21 +73,19 @@ public static function instance() { * @return string */ public static function randombytes($length = 32) { - $raw = ''; + $raw = false; if (is_readable('/dev/urandom')) { - $fp = true; - if ($fp === true) { - $fp = @fopen('/dev/urandom', 'rb'); - } - if ($fp !== true && $fp !== false) { + $fp = @fopen('/dev/urandom', 'rb'); + if ($fp !== false) { $raw = fread($fp, $length); + fclose($fp); } } else if (function_exists('mcrypt_create_iv')) { $raw = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); } else if (function_exists('openssl_random_pseudo_bytes')) { $raw = openssl_random_pseudo_bytes($length); } - if (!$raw || strlen($raw) !== $length) { + if ($raw === false || strlen($raw) !== $length) { throw new SaltException('Unable to generate randombytes'); } return $raw;