Tarun Koyalwar 3b31799847
Issue 2840 aws signature (#2924)
* docker go version update

* docker fix

* version update

* update chinese readme and typo fixes. (#2862)

* fix aws request signer

* fix reader by upgrading retryablehttp-go

* go mod tidy

Co-authored-by: Sandeep Singh <sandeep@projectdiscovery.io>
Co-authored-by: sandeep <8293321+ehsandeep@users.noreply.github.com>
Co-authored-by: Xc1Ym <xuedongyuming2233@gmail.com>
2022-12-03 07:10:57 +05:30

35 lines
646 B
Go

package signer
import (
"context"
"errors"
"net/http"
)
// An Argument that can be passed to Signer
type SignerArg string
type Signer interface {
SignHTTP(ctx context.Context, request *http.Request) error
}
type SignerArgs interface {
Validate() error
}
func NewSigner(args SignerArgs) (signer Signer, err error) {
switch signerArgs := args.(type) {
case *AWSOptions:
awsSigner, err := NewAwsSigner(signerArgs)
if err != nil {
awsSigner, err = NewAwsSignerFromConfig(signerArgs)
if err != nil {
return nil, err
}
}
return awsSigner, err
default:
return nil, errors.New("unknown signature arguments type")
}
}