python3: pass bytes for hmac (#39092)

This commit is contained in:
Frédéric Péters 2020-01-19 19:15:38 +01:00
parent 90c29f0fa0
commit a8e12b9630
1 changed files with 2 additions and 1 deletions

View File

@ -26,6 +26,7 @@ import requests
from django.conf import settings from django.conf import settings
from django.core.cache import cache from django.core.cache import cache
from django.http import HttpResponse, HttpResponseBadRequest from django.http import HttpResponse, HttpResponseBadRequest
from django.utils.encoding import smart_bytes
from django.utils.http import urlencode, quote from django.utils.http import urlencode, quote
from django.utils.six.moves.urllib import parse as urlparse from django.utils.six.moves.urllib import parse as urlparse
@ -54,7 +55,7 @@ def sign_query(query, key, algo='sha256', timestamp=None, nonce=None):
def sign_string(s, key, algo='sha256', timedelta=30): def sign_string(s, key, algo='sha256', timedelta=30):
digestmod = getattr(hashlib, algo) digestmod = getattr(hashlib, algo)
hash = hmac.HMAC(str(key), digestmod=digestmod, msg=s) hash = hmac.HMAC(smart_bytes(key), digestmod=digestmod, msg=smart_bytes(s))
return hash.digest() return hash.digest()
def get_wcs_services(): def get_wcs_services():