add python 3 support to signature check (#25296)

This commit is contained in:
Frédéric Péters 2018-07-16 16:42:18 +02:00
parent 46485931a3
commit e4db0f38d3
1 changed files with 7 additions and 2 deletions

View File

@ -5,6 +5,7 @@ import hashlib
import urllib
import random
from django.utils import six
from django.utils.encoding import smart_bytes
from django.utils.http import quote, urlencode
from django.utils.six.moves.urllib import parse as urlparse
@ -69,6 +70,10 @@ def check_string(s, signature, key, algo='sha256'):
if len(signature2) != len(signature):
return False
res = 0
for a, b in zip(signature, signature2):
res |= ord(a) ^ ord(b)
if six.PY3:
for a, b in zip(signature, signature2):
res |= a ^ b
else:
for a, b in zip(signature, signature2):
res |= ord(a) ^ ord(b)
return res == 0