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  }