| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // +build !novaultkms
- package kms
- import (
- // we import hashivault here to be able to disable Vault support using a build tag
- _ "gocloud.dev/secrets/hashivault"
- "github.com/drakkan/sftpgo/version"
- )
- type vaultSecret struct {
- baseGCloudSecret
- }
- func init() {
- version.AddFeature("+vaultkms")
- }
- func newVaultSecret(base baseSecret, url, masterKey string) SecretProvider {
- return &vaultSecret{
- baseGCloudSecret{
- baseSecret: base,
- url: url,
- masterKey: masterKey,
- },
- }
- }
- func (s *vaultSecret) Name() string {
- return vaultProviderName
- }
- func (s *vaultSecret) IsEncrypted() bool {
- return s.Status == SecretStatusVaultTransit
- }
- func (s *vaultSecret) Encrypt() error {
- if err := s.baseGCloudSecret.Encrypt(); err != nil {
- return err
- }
- s.Status = SecretStatusVaultTransit
- return nil
- }
- func (s *vaultSecret) Decrypt() error {
- if !s.IsEncrypted() {
- return errWrongSecretStatus
- }
- return s.baseGCloudSecret.Decrypt()
- }
|