mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-17 20:05:27 +00:00
* 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>
35 lines
646 B
Go
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")
|
|
}
|
|
}
|