From 7aac428a99e4929caafbf6d6ca623a85829b935a Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Fri, 14 Aug 2020 14:33:23 +0200 Subject: [PATCH 1/2] Remove the with setup code option and make setup code credential provider --- pkg/secrethub/client_options.go | 16 ---------------- pkg/secrethub/credentials/setup_code.go | 6 ++++++ 2 files changed, 6 insertions(+), 16 deletions(-) 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..f99a11ef 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,10 @@ type SetupCode struct { code string } +func (s *SetupCode) Provide(client *httpclient.Client) (auth.Authenticator, Decrypter, error) { + return s, nil, nil +} + func NewSetupCode(code string) *SetupCode { return &SetupCode{ code: code, From 88f5c0d057b88b8412b7d69009b357f8211f8bba Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Fri, 14 Aug 2020 14:40:49 +0200 Subject: [PATCH 2/2] Add godoc with note that setup codes cannot be used to decrypt --- pkg/secrethub/credentials/setup_code.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/secrethub/credentials/setup_code.go b/pkg/secrethub/credentials/setup_code.go index f99a11ef..51f36070 100644 --- a/pkg/secrethub/credentials/setup_code.go +++ b/pkg/secrethub/credentials/setup_code.go @@ -13,6 +13,8 @@ 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 }