Documentation
¶
Index ¶
- func AddInputMiddleware(stack *middleware.Stack, options InputMiddlewareOptions) (err error)
- func AddOutputMiddleware(stack *middleware.Stack, options OutputMiddlewareOptions) error
- func AlgorithmChecksumLength(v Algorithm) (int, error)
- func AlgorithmHTTPHeader(v Algorithm) string
- func GetComputedInputChecksums(m middleware.Metadata) (map[string]string, bool)
- func GetOutputValidationAlgorithmsUsed(m middleware.Metadata) ([]string, bool)
- func NewAlgorithmHash(v Algorithm) (hash.Hash, error)
- func RemoveInputMiddleware(stack *middleware.Stack)
- func RemoveOutputMiddleware(stack *middleware.Stack)
- func SetComputedInputChecksums(m *middleware.Metadata, vs map[string]string)
- func SetOutputValidationAlgorithmsUsed(m *middleware.Metadata, vs []string)
- type Algorithm
- type InputMiddlewareOptions
- type OutputMiddlewareOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddInputMiddleware ¶
func AddInputMiddleware(stack *middleware.Stack, options InputMiddlewareOptions) (err error)
AddInputMiddleware adds the middleware for performing checksum computing of request payloads, and checksum validation of response payloads.
func AddOutputMiddleware ¶
func AddOutputMiddleware(stack *middleware.Stack, options OutputMiddlewareOptions) error
AddOutputMiddleware adds the middleware for validating response payload's checksum.
func AlgorithmChecksumLength ¶
AlgorithmChecksumLength returns the length of the algorithm's checksum in bytes. If the algorithm is not known, an error is returned.
func AlgorithmHTTPHeader ¶
AlgorithmHTTPHeader returns the HTTP header for the algorithm's hash.
func GetComputedInputChecksums ¶
func GetComputedInputChecksums(m middleware.Metadata) (map[string]string, bool)
GetComputedInputChecksums returns the map of checksum algorithm to their computed value stored in the middleware Metadata. Returns false if no values were stored in the Metadata.
func GetOutputValidationAlgorithmsUsed ¶
func GetOutputValidationAlgorithmsUsed(m middleware.Metadata) ([]string, bool)
GetOutputValidationAlgorithmsUsed returns the checksum algorithms used stored in the middleware Metadata. Returns false if no algorithms were stored in the Metadata.
func NewAlgorithmHash ¶
NewAlgorithmHash returns a hash.Hash for the checksum algorithm. Error is returned if the algorithm is unknown.
func RemoveInputMiddleware ¶
func RemoveInputMiddleware(stack *middleware.Stack)
RemoveInputMiddleware Removes the compute input payload checksum middleware handlers from the stack.
func RemoveOutputMiddleware ¶
func RemoveOutputMiddleware(stack *middleware.Stack)
RemoveOutputMiddleware Removes the compute input payload checksum middleware handlers from the stack.
func SetComputedInputChecksums ¶
func SetComputedInputChecksums(m *middleware.Metadata, vs map[string]string)
SetComputedInputChecksums stores the map of checksum algorithm to their computed value in the middleware Metadata. Overwrites any values that currently exist in the metadata.
func SetOutputValidationAlgorithmsUsed ¶
func SetOutputValidationAlgorithmsUsed(m *middleware.Metadata, vs []string)
SetOutputValidationAlgorithmsUsed stores the checksum algorithms used in the middleware Metadata.
Types ¶
type Algorithm ¶
type Algorithm string
Algorithm represents the checksum algorithms supported
const ( // AlgorithmCRC32C represents CRC32C hash algorithm AlgorithmCRC32C Algorithm = "CRC32C" // AlgorithmCRC32 represents CRC32 hash algorithm AlgorithmCRC32 Algorithm = "CRC32" // AlgorithmSHA1 represents SHA1 hash algorithm AlgorithmSHA1 Algorithm = "SHA1" // AlgorithmSHA256 represents SHA256 hash algorithm AlgorithmSHA256 Algorithm = "SHA256" )
Enumeration values for supported checksum Algorithms.
func FilterSupportedAlgorithms ¶
FilterSupportedAlgorithms filters the set of algorithms, returning a slice of algorithms that are supported.
func ParseAlgorithm ¶
ParseAlgorithm attempts to parse the provided value into a checksum algorithm, matching without case. Returns the algorithm matched, or an error if the algorithm wasn't matched.
type InputMiddlewareOptions ¶
type InputMiddlewareOptions struct {
// GetAlgorithm is a function to get the checksum algorithm of the
// input payload from the input parameters.
//
// Given the input parameter value, the function must return the algorithm
// and true, or false if no algorithm is specified.
GetAlgorithm func(interface{}) (string, bool)
// Forces the middleware to compute the input payload's checksum. The
// request will fail if the algorithm is not specified or unable to compute
// the checksum.
RequireChecksum bool
// Enables support for wrapping the serialized input payload with a
// content-encoding: aws-check wrapper, and including a trailer for the
// algorithm's checksum value.
//
// The checksum will not be computed, nor added as trailing checksum, if
// the Algorithm's header is already set on the request.
EnableTrailingChecksum bool
// Enables support for computing the SHA256 checksum of input payloads
// along with the algorithm specified checksum. Prevents downstream
// middleware handlers (computePayloadSHA256) re-reading the payload.
//
// The SHA256 payload checksum will only be used for computed for requests
// that are not TLS, or do not enable trailing checksums.
//
// The SHA256 payload hash will not be computed, if the Algorithm's header
// is already set on the request.
EnableComputeSHA256PayloadHash bool
// Enables support for setting the aws-chunked decoded content length
// header for the decoded length of the underlying stream. Will only be set
// when used with trailing checksums, and aws-chunked content-encoding.
EnableDecodedContentLengthHeader bool
}
InputMiddlewareOptions provides the options for the request checksum middleware setup.
type OutputMiddlewareOptions ¶
type OutputMiddlewareOptions struct {
// GetValidationMode is a function to get the checksum validation
// mode of the output payload from the input parameters.
//
// Given the input parameter value, the function must return the validation
// mode and true, or false if no mode is specified.
GetValidationMode func(interface{}) (string, bool)
// The set of checksum algorithms that should be used for response payload
// checksum validation. The algorithm(s) used will be a union of the
// output's returned algorithms and this set.
//
// Only the first algorithm in the union is currently used.
ValidationAlgorithms []string
// If set the middleware will ignore output multipart checksums. Otherwise
// an checksum format error will be returned by the middleware.
IgnoreMultipartValidation bool
// When set the middleware will log when output does not have checksum or
// algorithm to validate.
LogValidationSkipped bool
// When set the middleware will log when the output contains a multipart
// checksum that was, skipped and not validated.
LogMultipartValidationSkipped bool
}
OutputMiddlewareOptions provides options for configuring output checksum validation middleware.
Source Files
¶
- algorithms.go
- aws_chunked_encoding.go
- go_module_metadata.go
- middleware_add.go
- middleware_compute_input_checksum.go
- middleware_setup_context.go
- middleware_validate_output.go