Beispiel #1
0
 /**
  * Setter for the hash method. Supports md5() and sha1() functions, and if
  * available the hashing algorithms supported by the hash() PHP5 function.
  *
  * @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);
     if (isset(self::$_hashPackFormats[$hash])) {
         self::$_packFormat = self::$_hashPackFormats[$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 && function_exists($hash)) {
         $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;
 }