If you get
Call to undefined function hash_equals() error
even if your patch was successful then it may mean that you have copied functionfunctions.php in app/code/local/Mage/Core
.
You will have to insert that function there too because that file overwrites the core one.
So insert in app/code/local/Mage/Core/functions.php
at the end:
if (!function_exists('hash_equals')) {
/**
* Compares two strings using the same time whether they're equal or not.
* A difference in length will leak
*
* @param string $known_string
* @param string $user_string
* @return boolean Returns true when the two strings are equal, false otherwise.
*/
function hash_equals($known_string, $user_string)
{
$result = 0;
if (!is_string($known_string)) {
trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
return false;
}
if (!is_string($user_string)) {
trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
return false;
}
if (strlen($known_string) != strlen($user_string)) {
return false;
}
for ($i = 0; $i < strlen($known_string); $i++) {
$result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
}
return 0 === $result;
}
}