mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-06 14:20:55 +03:00
add build tags to disable kms providers
This commit is contained in:
13
kms/aws.go
13
kms/aws.go
@@ -1,13 +1,22 @@
|
||||
// +build !noawskms
|
||||
|
||||
package kms
|
||||
|
||||
const (
|
||||
awsProviderName = "AWS"
|
||||
import (
|
||||
// we import awskms here to be able to disable AWS KMS support using a build tag
|
||||
_ "gocloud.dev/secrets/awskms"
|
||||
|
||||
"github.com/drakkan/sftpgo/version"
|
||||
)
|
||||
|
||||
type awsSecret struct {
|
||||
baseGCloudSecret
|
||||
}
|
||||
|
||||
func init() {
|
||||
version.AddFeature("+awskms")
|
||||
}
|
||||
|
||||
func newAWSSecret(base baseSecret, url, masterKey string) SecretProvider {
|
||||
return &awsSecret{
|
||||
baseGCloudSecret{
|
||||
|
||||
17
kms/aws_disabled.go
Normal file
17
kms/aws_disabled.go
Normal file
@@ -0,0 +1,17 @@
|
||||
// +build noawskms
|
||||
|
||||
package kms
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/drakkan/sftpgo/version"
|
||||
)
|
||||
|
||||
func init() {
|
||||
version.AddFeature("-awskms")
|
||||
}
|
||||
|
||||
func newAWSSecret(base baseSecret, url, masterKey string) SecretProvider {
|
||||
return newDisabledSecret(errors.New("AWS KMS disabled at build time"))
|
||||
}
|
||||
@@ -6,12 +6,6 @@ import (
|
||||
"time"
|
||||
|
||||
"gocloud.dev/secrets"
|
||||
// import awskms package
|
||||
_ "gocloud.dev/secrets/awskms"
|
||||
// import gcpkms package
|
||||
_ "gocloud.dev/secrets/gcpkms"
|
||||
// import hashivault package
|
||||
_ "gocloud.dev/secrets/hashivault"
|
||||
)
|
||||
|
||||
type baseGCloudSecret struct {
|
||||
|
||||
@@ -10,10 +10,6 @@ import (
|
||||
"github.com/minio/sha256-simd"
|
||||
)
|
||||
|
||||
const (
|
||||
builtinProviderName = "Builtin"
|
||||
)
|
||||
|
||||
type builtinSecret struct {
|
||||
baseSecret
|
||||
}
|
||||
|
||||
29
kms/disabled.go
Normal file
29
kms/disabled.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package kms
|
||||
|
||||
type disabledSecret struct {
|
||||
baseSecret
|
||||
err error
|
||||
}
|
||||
|
||||
func newDisabledSecret(err error) SecretProvider {
|
||||
return &disabledSecret{
|
||||
baseSecret: baseSecret{},
|
||||
err: err,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *disabledSecret) Name() string {
|
||||
return disabledProviderName
|
||||
}
|
||||
|
||||
func (s *disabledSecret) IsEncrypted() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (s *disabledSecret) Encrypt() error {
|
||||
return s.err
|
||||
}
|
||||
|
||||
func (s *disabledSecret) Decrypt() error {
|
||||
return s.err
|
||||
}
|
||||
13
kms/gcp.go
13
kms/gcp.go
@@ -1,13 +1,22 @@
|
||||
// +build !nogcpkms
|
||||
|
||||
package kms
|
||||
|
||||
const (
|
||||
gcpProviderName = "GCP"
|
||||
import (
|
||||
// we import gcpkms here to be able to disable GCP KMS support using a build tag
|
||||
_ "gocloud.dev/secrets/gcpkms"
|
||||
|
||||
"github.com/drakkan/sftpgo/version"
|
||||
)
|
||||
|
||||
type gcpSecret struct {
|
||||
baseGCloudSecret
|
||||
}
|
||||
|
||||
func init() {
|
||||
version.AddFeature("+gcpkms")
|
||||
}
|
||||
|
||||
func newGCPSecret(base baseSecret, url, masterKey string) SecretProvider {
|
||||
return &gcpSecret{
|
||||
baseGCloudSecret{
|
||||
|
||||
17
kms/gcp_disabled.go
Normal file
17
kms/gcp_disabled.go
Normal file
@@ -0,0 +1,17 @@
|
||||
// +build nogcpkms
|
||||
|
||||
package kms
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/drakkan/sftpgo/version"
|
||||
)
|
||||
|
||||
func init() {
|
||||
version.AddFeature("-gcpkms")
|
||||
}
|
||||
|
||||
func newGCPSecret(base baseSecret, url, masterKey string) SecretProvider {
|
||||
return newDisabledSecret(errors.New("GCP KMS disabled at build time"))
|
||||
}
|
||||
@@ -50,6 +50,15 @@ const (
|
||||
SecretStatusRedacted SecretStatus = "Redacted"
|
||||
)
|
||||
|
||||
const (
|
||||
localProviderName = "Local"
|
||||
builtinProviderName = "Builtin"
|
||||
awsProviderName = "AWS"
|
||||
gcpProviderName = "GCP"
|
||||
vaultProviderName = "VaultTransit"
|
||||
disabledProviderName = "Disabled"
|
||||
)
|
||||
|
||||
// Configuration defines the KMS configuration
|
||||
type Configuration struct {
|
||||
Secrets Secrets `json:"secrets" mapstructure:"secrets"`
|
||||
|
||||
@@ -11,10 +11,6 @@ import (
|
||||
"golang.org/x/crypto/hkdf"
|
||||
)
|
||||
|
||||
const (
|
||||
localProviderName = "Local"
|
||||
)
|
||||
|
||||
type localSecret struct {
|
||||
baseSecret
|
||||
masterKey string
|
||||
|
||||
13
kms/vault.go
13
kms/vault.go
@@ -1,13 +1,22 @@
|
||||
// +build !novaultkms
|
||||
|
||||
package kms
|
||||
|
||||
const (
|
||||
vaultProviderName = "VaultTransit"
|
||||
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{
|
||||
|
||||
17
kms/vault_disabled.go
Normal file
17
kms/vault_disabled.go
Normal file
@@ -0,0 +1,17 @@
|
||||
// +build novaultkms
|
||||
|
||||
package kms
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/drakkan/sftpgo/version"
|
||||
)
|
||||
|
||||
func init() {
|
||||
version.AddFeature("-vaultkms")
|
||||
}
|
||||
|
||||
func newVaultSecret(base baseSecret, url, masterKey string) SecretProvider {
|
||||
return newDisabledSecret(errors.New("Vault KMS disabled at build time"))
|
||||
}
|
||||
Reference in New Issue
Block a user