Encryption: Keep legacy default provider id on providers map (#44721)

* Encryption: Keep legacy default provider id on providers map

* Minor fixes

* Refactor
This commit is contained in:
Joan López de la Franca Beltran 2022-02-02 12:10:46 +01:00 committed by GitHub
parent 7bb5a5b318
commit 3b4e812449
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -48,7 +48,9 @@ func ProvideSecretsService(
logger := log.New("secrets")
enabled := features.IsEnabled(featuremgmt.FlagEnvelopeEncryption)
currentProviderID := readCurrentProviderID(settings)
currentProviderID := normalizeProviderID(secrets.ProviderID(
settings.KeyValue("security", "encryption_provider").MustString(kmsproviders.Default),
))
if _, ok := providers[currentProviderID]; enabled && !ok {
return nil, fmt.Errorf("missing configuration for current encryption provider %s", currentProviderID)
@ -77,13 +79,12 @@ func ProvideSecretsService(
return s, nil
}
func readCurrentProviderID(settings setting.Provider) secrets.ProviderID {
currentProvider := settings.KeyValue("security", "encryption_provider").MustString(kmsproviders.Default)
if currentProvider == kmsproviders.Legacy {
currentProvider = kmsproviders.Default
func normalizeProviderID(id secrets.ProviderID) secrets.ProviderID {
if id == kmsproviders.Legacy {
return kmsproviders.Default
}
return secrets.ProviderID(currentProvider)
return id
}
func (s *SecretsService) registerUsageMetrics() {
@ -329,7 +330,7 @@ func (s *SecretsService) dataKey(ctx context.Context, name string) ([]byte, erro
}
// 2. decrypt data key
provider, exists := s.providers[dataKey.Provider]
provider, exists := s.providers[normalizeProviderID(dataKey.Provider)]
if !exists {
return nil, fmt.Errorf("could not find encryption provider '%s'", dataKey.Provider)
}