func BuildSignedResponse()

in sigv4/internal/crypt.go [100:113]


func BuildSignedResponse(region string, nonce string, accessKeyId string, secret string, sessionToken string, t time.Time) string {
	scope := computeScope(t, region)
	canonicalRequest := formCanonicalRequest(accessKeyId, scope, t, nonce)
	signingKey := deriveSigningKey(secret, t, region)

	signature := createSignature(canonicalRequest, t, scope, signingKey)

	result := fmt.Sprintf("signature=%s,access_key=%s,amzdate=%s", hex.EncodeToString(signature), accessKeyId, t.Format("2006-01-02T15:04:05.000Z"))

	if sessionToken != "" {
		result += fmt.Sprintf(",session_token=%s", sessionToken)
	}
	return result
}