Use of the FrameworkFeature class (which is a manager somehow) +
[core.git] / inc / classes / main / scrypt / class_Scrypt.php
index bcbc5b3eb26095e35dcae76dd572dec3b7059f0e..e1c7cb9c307abca6b73289c6d52c3a937de527f6 100644 (file)
@@ -51,7 +51,7 @@ abstract class Scrypt extends BaseFrameworkSystem
      *
      * @return int
      */
-    protected static function strlen( $str ) {
+    protected static function strlen ($str) {
         static $isShadowed = null;
 
         if ($isShadowed === null) {
@@ -73,7 +73,7 @@ abstract class Scrypt extends BaseFrameworkSystem
      *
      * @return string The salt
      */
-    public static function generateScryptSalt($length = 8)
+    public static function generateScryptSalt ($length = 8)
     {
         $buffer = '';
         $buffer_valid = false;
@@ -90,7 +90,7 @@ abstract class Scrypt extends BaseFrameworkSystem
                 $buffer_valid = true;
             }
         }
-        if (!$buffer_valid && is_readable('/dev/urandom')) {
+        if (!$buffer_valid && BaseFrameworkSystem::isReadableFile('/dev/urandom')) {
             $f = fopen('/dev/urandom', 'r');
             $read = static::strlen($buffer);
             while ($read < $length) {
@@ -128,8 +128,13 @@ abstract class Scrypt extends BaseFrameworkSystem
      *
      * @return string The hashed password
      */
-    public static function hashScrypt($password, $salt = false, $N = 16384, $r = 8, $p = 1)
+    public static function hashScrypt ($password, $salt = false, $N = 16384, $r = 8, $p = 1)
     {
+        if (!FrameworkFeature::isFeatureAvailable('hubcoin_reward')) {
+            // Feature has been disabled
+            throw new \InvalidArgumentException('Feature "scrypt" disabled.');
+        }
+
         if ($N == 0 || ($N & ($N - 1)) != 0) {
             throw new \InvalidArgumentException('N must be > 0 and a power of 2');
         }
@@ -162,13 +167,18 @@ abstract class Scrypt extends BaseFrameworkSystem
      *
      * @return boolean If the clear text matches
      */
-    public static function checkScrypt($password, $hash)
+    public static function checkScrypt ($password, $hash)
     {
         // Is there actually a hash?
         if (!$hash) {
             return false;
         }
 
+        if (!FrameworkFeature::isFeatureAvailable('hubcoin_reward')) {
+            // Feature has been disabled
+            throw new \InvalidArgumentException('Feature "scrypt" disabled.');
+        }
+
         list ($N, $r, $p, $salt, $hash) = explode('$', $hash);
 
         // No empty fields?
@@ -206,7 +216,7 @@ abstract class Scrypt extends BaseFrameworkSystem
      *
      * @return boolean If the two strings match.
      */
-    public static function compareScryptHashes($expected, $actual)
+    public static function compareScryptHashes ($expected, $actual)
     {
         $expected    = (string) $expected;
         $actual      = (string) $actual;