func formCanonicalRequest()

in sigv4/internal/crypt.go [59:70]


func formCanonicalRequest(accessKeyId string, scope string, t time.Time, nonce string) string {
	nonceHash := sha256.Sum256([]byte(nonce))
	headers := []string{
		"X-Amz-Algorithm=AWS4-HMAC-SHA256",
		fmt.Sprintf("X-Amz-Credential=%s%%2F%s", accessKeyId, url.QueryEscape(scope)),
		fmt.Sprintf("X-Amz-Date=%s", url.QueryEscape(t.Format("2006-01-02T15:04:05.000Z"))),
		"X-Amz-Expires=900"}
	sort.Strings(headers)
	queryString := strings.Join(headers, "&")

	return fmt.Sprintf("PUT\n/authenticate\n%s\nhost:cassandra\n\nhost\n%s", queryString, hex.EncodeToString(nonceHash[:]))
}