Skip to content

Commit 9eca353

Browse files
fix(core): Let default basic keymanager work again (#2858)
### Proposed Changes The recent change to us the ProviderConfig accidentally makes that field required for all keys already loaded from the policy db. Since most (all) existing keys won't have this set, and any keys imported via the command line tool's import don't have it set, we should keep the old behavior ### Checklist - [ ] I have added or updated unit tests - [ ] I have added or updated integration tests (if appropriate) - [ ] I have added or updated documentation ### Testing Instructions (cherry picked from commit fb0b99d)
1 parent ca67239 commit 9eca353

File tree

1 file changed

+4
-13
lines changed

1 file changed

+4
-13
lines changed

service/trust/delegating_key_service.go

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,6 @@ func (d *DelegatingKeyService) Decrypt(ctx context.Context, keyID KeyIdentifier,
119119
}
120120

121121
pcfg := keyDetails.ProviderConfig()
122-
if pcfg == nil {
123-
return nil, fmt.Errorf("decrypt: key details for key ID '%s' returned nil ProviderConfig", keyID)
124-
}
125122
manager, err := d.getKeyManager(ctx, pcfg)
126123
if err != nil {
127124
return nil, fmt.Errorf("decrypt: unable to get key manager [%s#%s]: %w", pcfg.GetManager(), pcfg.GetName(), err)
@@ -137,9 +134,6 @@ func (d *DelegatingKeyService) DeriveKey(ctx context.Context, keyID KeyIdentifie
137134
}
138135

139136
pcfg := keyDetails.ProviderConfig()
140-
if pcfg == nil {
141-
return nil, fmt.Errorf("derive: key details for key ID '%s' returned nil ProviderConfig", keyID)
142-
}
143137
manager, err := d.getKeyManager(ctx, pcfg)
144138
if err != nil {
145139
return nil, fmt.Errorf("derive: unable to get key manager [%s#%s]: %w", pcfg.GetManager(), pcfg.GetName(), err)
@@ -212,9 +206,11 @@ func (d *DelegatingKeyService) _defKM(ctx context.Context) (KeyManager, error) {
212206
}
213207

214208
func (d *DelegatingKeyService) getKeyManager(ctx context.Context, cfg *policy.KeyProviderConfig) (KeyManager, error) {
215-
d.mutex.Lock()
209+
if cfg == nil {
210+
return d._defKM(ctx)
211+
}
216212

217-
// Check For Manager First
213+
d.mutex.Lock()
218214
designation := keyManagerDesignation{
219215
Manager: cfg.GetManager(),
220216
Name: cfg.GetName(),
@@ -223,11 +219,7 @@ func (d *DelegatingKeyService) getKeyManager(ctx context.Context, cfg *policy.Ke
223219
d.mutex.Unlock()
224220
return manager.KeyManager, nil
225221
}
226-
227-
// Check Factory
228222
factory, factoryExists := d.managerFactories[designation.Manager]
229-
// Read defaultMode under lock for comparison.
230-
currentDefaultMode := d.defaultMode
231223
allManagers := slices.Collect(maps.Keys(d.managerFactories))
232224
d.mutex.Unlock()
233225

@@ -258,7 +250,6 @@ func (d *DelegatingKeyService) getKeyManager(ctx context.Context, cfg *policy.Ke
258250
d.l.Debug("key manager factory not found for name, attempting to use/load default",
259251
slog.Any("key_managers", allManagers),
260252
slog.Any("requested_name", designation),
261-
slog.Any("configured_default_mode", currentDefaultMode),
262253
)
263254
return d._defKM(ctx) // _defKM handles erroring if the default manager itself cannot be loaded.
264255
}

0 commit comments

Comments
 (0)