Allow digest of empty body

pull/18/head
Wessel Blokzijl 2020-04-23 17:07:50 +02:00
parent e3a2e2d631
commit 436300a27e
1 changed files with 10 additions and 5 deletions

View File

@ -67,11 +67,16 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
request.headers["Date"] = email.utils.formatdate(timestamp, usegmt=True)
def add_digest(self, request):
if request.body is not None and "Digest" not in request.headers:
if "digest" not in self.headers:
self.headers.append("digest")
digest = self.hasher_constructor(request.body).digest()
request.headers["Digest"] = "SHA-256=" + base64.b64encode(digest).decode()
if "Digest" not in request.headers:
if request.body is not None:
if "digest" not in self.headers:
self.headers.append("digest")
digest = self.hasher_constructor(request.body).digest()
request.headers["Digest"] = "SHA-256=" + base64.b64encode(digest).decode()
else:
# Since the message body is empty, the digest is defaulted to the hash256 of an empty body.
request.headers["Digest"] = "SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
@classmethod
def get_string_to_sign(self, request, headers):