/** * Get the supported algorithm * * @return array */ public static function getSupportedAlgorithms() { if (empty(self::$supportedAlgorithms)) { self::$supportedAlgorithms = hash_algos(); } return self::$supportedAlgorithms; }
/** * Setter for the hash method. * * @param string $hash * @return void */ protected static function _setHashAlgorithm($hash) { if (!isset($hash) || empty($hash)) { throw new HmacException('provided hash string is null or empty'); } $hash = strtolower($hash); $hashSupported = false; if (function_exists('hash_algos') && in_array($hash, hash_algos())) { $hashSupported = true; } if ($hashSupported === false && function_exists('mhash') && in_array($hash, self::$_supportedAlgosMhash)) { $hashSupported = true; } if ($hashSupported === false) { throw new HmacException('hash algorithm provided is not supported on this PHP installation; please enable the hash or mhash extensions'); } self::$_hashAlgorithm = $hash; }