Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if security_token:
canonical_headers += ('x-amz-security-token:' + security_token + '\n')
# Step 5: Create the list of signed headers. This lists the headers
# in the canonical_headers list, delimited with ";" and in alpha order.
# Note: The request can include any headers; canonical_headers and
# signed_headers lists those that you want to be included in the
# hash of the request. "Host" and "x-amz-date" are always required.
signed_headers = 'host;x-amz-date'
if security_token:
signed_headers += ';x-amz-security-token'
# Step 6: Create payload hash (hash of the request body content). For GET
# requests, the payload is an empty string ("").
payload_hash = sha256_hash_for_binary_data(data) if data_binary else sha256_hash(data)
# Step 7: Combine elements to create create canonical request
canonical_request = (method + '\n' +
requests.utils.quote(canonical_uri) + '\n' +
canonical_querystring + '\n' +
canonical_headers + '\n' +
signed_headers + '\n' +
payload_hash)
__log('\nCANONICAL REQUEST = ' + canonical_request)
return canonical_request, payload_hash, signed_headers