Skip to content

Commit 19b64c2

Browse files
committed
Merge pull request #290 from sarciszewski/patch-1
Remove side-effects in hash_equals()
2 parents 740ea24 + 6127754 commit 19b64c2

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

src/TokenType/MAC.php

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,18 @@ public function determineAccessTokenInHeader(Request $request)
128128
*/
129129
private function hash_equals($knownString, $userString)
130130
{
131-
if (!function_exists('hash_equals')) {
132-
function hash_equals($knownString, $userString)
133-
{
134-
if (strlen($knownString) !== strlen($userString)) {
135-
return false;
136-
}
137-
$len = strlen($knownString);
138-
$result = 0;
139-
for ($i = 0; $i < $len; $i++) {
140-
$result |= (ord($knownString[$i]) ^ ord($userString[$i]));
141-
}
142-
// They are only identical strings if $result is exactly 0...
143-
return 0 === $result;
144-
}
131+
if (function_exists('\hash_equals')) {
132+
return \hash_equals($knownString, $userString);
145133
}
146-
147-
return hash_equals($knownString, $userString);
134+
if (strlen($knownString) !== strlen($userString)) {
135+
return false;
136+
}
137+
$len = strlen($knownString);
138+
$result = 0;
139+
for ($i = 0; $i < $len; $i++) {
140+
$result |= (ord($knownString[$i]) ^ ord($userString[$i]));
141+
}
142+
// They are only identical strings if $result is exactly 0...
143+
return 0 === $result;
148144
}
149145
}

0 commit comments

Comments
 (0)