diff --git a/pkg/secrethub/client_options.go b/pkg/secrethub/client_options.go index 64546ea9..7ad43796 100644 --- a/pkg/secrethub/client_options.go +++ b/pkg/secrethub/client_options.go @@ -5,8 +5,6 @@ import ( "net/url" "time" - "github.com/secrethub/secrethub-go/internals/api" - "github.com/secrethub/secrethub-go/pkg/secrethub/configdir" "github.com/secrethub/secrethub-go/pkg/secrethub/credentials" httpclient "github.com/secrethub/secrethub-go/pkg/secrethub/internals/http" @@ -80,17 +78,3 @@ func WithCredentials(provider credentials.Provider) ClientOption { return nil } } - -// WithSetupCode configures the client to use the provided setup code for authentication. -func WithSetupCode(setupCode string) ClientOption { - return func(c *Client) error { - err := api.ValidateSetupCode(setupCode) - if err != nil { - return err - } - - setupCodeAuthenticator := credentials.NewSetupCode(setupCode) - c.httpClient.Options(httpclient.WithAuthenticator(setupCodeAuthenticator)) - return nil - } -} diff --git a/pkg/secrethub/credentials/setup_code.go b/pkg/secrethub/credentials/setup_code.go index eee97a26..51f36070 100644 --- a/pkg/secrethub/credentials/setup_code.go +++ b/pkg/secrethub/credentials/setup_code.go @@ -4,6 +4,8 @@ import ( "fmt" "net/http" + httpclient "github.com/secrethub/secrethub-go/pkg/secrethub/internals/http" + "github.com/secrethub/secrethub-go/internals/auth" ) @@ -11,6 +13,12 @@ type SetupCode struct { code string } +// Provide implements the Provider interface for the setup code. +// Note that no decrypter is ever returned as setup codes cannot be used to decrypt secrets. +func (s *SetupCode) Provide(client *httpclient.Client) (auth.Authenticator, Decrypter, error) { + return s, nil, nil +} + func NewSetupCode(code string) *SetupCode { return &SetupCode{ code: code,