Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Reverted type check added in 62954ba.

Refs #17040.
  • Loading branch information...
commit e89bc39935afc5096e6a51a49874b2d30cbc2b5e 1 parent 831f284
@aaugustin aaugustin authored
Showing with 4 additions and 6 deletions.
  1. +2 −4 django/utils/
  2. +2 −2 tests/regressiontests/utils/
6 django/utils/
@@ -82,16 +82,14 @@ def get_random_string(length=12,
def constant_time_compare(val1, val2):
- Returns True if the two bytestrings are equal, False otherwise.
+ Returns True if the two strings are equal, False otherwise.
The time taken is independent of the number of characters that match.
- if not (isinstance(val1, bytes) and isinstance(val2, bytes)):
- raise TypeError("constant_time_compare only supports bytes")
if len(val1) != len(val2):
return False
result = 0
- if six.PY3:
+ if six.PY3 and isinstance(val1, bytes) and isinstance(val2, bytes):
for x, y in zip(val1, val2):
result |= x ^ y
4 tests/regressiontests/utils/
@@ -15,8 +15,8 @@ def test_constant_time_compare(self):
# It's hard to test for constant time, just test the result.
self.assertTrue(constant_time_compare(b'spam', b'spam'))
self.assertFalse(constant_time_compare(b'spam', b'eggs'))
- with self.assertRaises(TypeError):
- constant_time_compare('spam', 'spam')
+ self.assertTrue(constant_time_compare('spam', 'spam'))
+ self.assertFalse(constant_time_compare('spam', 'eggs'))
class TestUtilsCryptoPBKDF2(unittest.TestCase):
Please sign in to comment.
Something went wrong with that request. Please try again.