aws-http-auth/v4/v4.go (14 lines of code) (raw):

// Package v4 exposes common APIs for AWS Signature Version 4. package v4 // SignerOption applies configuration to a signer. type SignerOption func(*SignerOptions) // SignerOptions configures SigV4. type SignerOptions struct { // Rules to determine what headers are signed. // // By default, the signer will only include the minimum required headers: // - Host // - X-Amz-* HeaderRules SignedHeaderRules // Setting this flag will instead cause the signer to use the // UNSIGNED-PAYLOAD sentinel if a hash is not explicitly provided. DisableImplicitPayloadHashing bool // Disables the automatic escaping of the URI path of the request for the // siganture's canonical string's path. // // Amazon S3 is an example of a service that requires this setting. DisableDoublePathEscape bool // Adds the X-Amz-Content-Sha256 header to signed requests. // // Amazon S3 is an example of a service that requires this setting. AddPayloadHashHeader bool } // SignedHeaderRules determines whether a request header should be included in // the calculated signature. // // By convention, ShouldSign is invoked with lowercase values. type SignedHeaderRules interface { IsSigned(string) bool } // UnsignedPayload provides the sentinel value for a payload hash to indicate // that a request's payload is unsigned. func UnsignedPayload() []byte { return []byte("UNSIGNED-PAYLOAD") }