go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/vault/mock/mock_vault.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package mockvault 5 6 import ( 7 "context" 8 9 "github.com/cockroachdb/errors" 10 "github.com/rs/zerolog/log" 11 "go.mondoo.com/cnquery/providers-sdk/v1/vault" 12 ) 13 14 var notImplemented = errors.New("not implemented") 15 16 func New() *Vault { 17 return &Vault{} 18 } 19 20 type Vault struct{} 21 22 var ( 23 MockPassword *vault.Secret 24 MockPKey *vault.Secret 25 MockPrivateKeyPassword *vault.Secret 26 ) 27 28 func init() { 29 MockPassword, _ = vault.NewSecret(&vault.Credential{ 30 Type: vault.CredentialType_password, 31 Secret: []byte("password"), 32 }, vault.SecretEncoding_encoding_proto) 33 MockPKey, _ = vault.NewSecret(&vault.Credential{ 34 Type: vault.CredentialType_private_key, 35 Secret: []byte("BEGIN_PRIVATE_KEY...."), 36 }, vault.SecretEncoding_encoding_proto) 37 MockPrivateKeyPassword, _ = vault.NewSecret(&vault.Credential{ 38 Type: vault.CredentialType_private_key, 39 User: "that-user", 40 Secret: []byte("blabla"), 41 Password: "supersecure", 42 }, vault.SecretEncoding_encoding_proto) 43 } 44 45 func (v *Vault) About(context.Context, *vault.Empty) (*vault.VaultInfo, error) { 46 return &vault.VaultInfo{Name: "Mock Vault"}, nil 47 } 48 49 func (v *Vault) Get(ctx context.Context, id *vault.SecretID) (*vault.Secret, error) { 50 log.Debug().Msgf("getting cred from mock vault %s", id.Key) 51 switch id.Key { 52 case "mockPassword": 53 return MockPassword, nil 54 case "mockPKey": 55 return MockPKey, nil 56 case "mockPKeyPassword": 57 return MockPrivateKeyPassword, nil 58 } 59 return nil, vault.NotFoundError 60 } 61 62 func (v *Vault) Set(ctx context.Context, cred *vault.Secret) (*vault.SecretID, error) { 63 return nil, errors.New("not implemented") 64 }