Canonical request construction
The tool normalizes your HTTP method, URI path, and query string, lowercases and alphabetically sorts headers into the canonical header block, records which header names are signed, and computes a SHA-256 hex digest of the request body (or substitutes UNSIGNED-PAYLOAD if you opt out of body hashing). These five components are newline-joined into the canonical request that every later step hashes or references.