/** * Setter for the hash method. * * @param string $hash * @return Zend_Crypt_Hmac */ protected static function _setHashAlgorithm($hash) { if (!isset($hash) || empty($hash)) { require_once 'Zend/Crypt/Hmac/Exception.php'; throw new Zend_Crypt_Hmac_Exception('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) { require_once 'Zend/Crypt/Hmac/Exception.php'; throw new Zend_Crypt_Hmac_Exception('hash algorithm provided is not supported on this PHP installation; please enable the hash or mhash extensions'); } self::$_hashAlgorithm = $hash; }