def canonical
import bend-kit-sigv4@0.11.0.1/sigv4.bend as Sigv4import Base
252# The canonical request. hs must hold every header to sign, host included. phash is the
253# payload's lowercase hex SHA-256, or "UNSIGNED-PAYLOAD".
254def canonical(+service: String, +method: String, +path: String, +q: String, +hs: List<&2, Sigma<&2, &2, String, _ => String>>, +phash: String) -> String:
255 +h = headers(hs)
256 method ++ "\n" ++ uri(service, path) ++ "\n" ++ query(q) ++ "\n" ++ lines(h) ++ "\n" ++ String.join(names(h), ";") ++ "\n" ++ phash