|
|
|
@ -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); |
|
|
|
|
|
|
|
|
|