Add custom hex2bin implementation for 5.3

Fixes https://github.com/owncloud/core/issues/11004
This commit is contained in:
Lukas Reschke 2014-09-11 09:51:45 +02:00
parent e6af67d5ea
commit 1973275adc
1 changed files with 18 additions and 2 deletions

View File

@ -42,6 +42,22 @@ class Crypto implements ICrypto {
$this->random = $random;
}
/**
* Custom implementation of hex2bin since the function is only available starting
* with PHP 5.4
*
* @TODO Remove this once 5.3 support for ownCloud is dropped
* @param $message
* @return string
*/
protected static function hexToBin($message) {
if (function_exists('hex2bin')) {
return hex2bin($message);
}
return pack("H*", $message);
}
/**
* @param string $message The message to authenticate
* @param string $password Password to use (defaults to `secret` in config.php)
@ -99,9 +115,9 @@ class Crypto implements ICrypto {
throw new \Exception('Authenticated ciphertext could not be decoded.');
}
$ciphertext = hex2bin($parts[0]);
$ciphertext = self::hexToBin($parts[0]);
$iv = $parts[1];
$hmac = hex2bin($parts[2]);
$hmac = self::hexToBin($parts[2]);
$this->cipher->setIV($iv);