diff options
Diffstat (limited to 'django/utils')
| -rw-r--r-- | django/utils/crypto.py | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/django/utils/crypto.py b/django/utils/crypto.py index e8fd2b1e2d..1fdcc3082e 100644 --- a/django/utils/crypto.py +++ b/django/utils/crypto.py @@ -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 else: |
