fix: remove unnecessary type conversions (unconvert)

- Remove unnecessary conversions of UnlockerMetadata in vault/unlockers.go
- The metadata variable is already of the correct type due to type aliasing
This commit is contained in:
Jeffrey Paul 2025-06-20 12:52:19 -07:00
parent eb19fa4b97
commit 533133486c

View File

@ -89,18 +89,17 @@ func (v *Vault) GetCurrentUnlocker() (secret.Unlocker, error) {
// Create unlocker instance using direct constructors with filesystem // Create unlocker instance using direct constructors with filesystem
var unlocker secret.Unlocker var unlocker secret.Unlocker
// Convert our metadata to secret.UnlockerMetadata // Use metadata directly as it's already the correct type
secretMetadata := secret.UnlockerMetadata(metadata)
switch metadata.Type { switch metadata.Type {
case "passphrase": case "passphrase":
secret.Debug("Creating passphrase unlocker instance", "unlocker_type", metadata.Type) secret.Debug("Creating passphrase unlocker instance", "unlocker_type", metadata.Type)
unlocker = secret.NewPassphraseUnlocker(v.fs, unlockerDir, secretMetadata) unlocker = secret.NewPassphraseUnlocker(v.fs, unlockerDir, metadata)
case "pgp": case "pgp":
secret.Debug("Creating PGP unlocker instance", "unlocker_type", metadata.Type) secret.Debug("Creating PGP unlocker instance", "unlocker_type", metadata.Type)
unlocker = secret.NewPGPUnlocker(v.fs, unlockerDir, secretMetadata) unlocker = secret.NewPGPUnlocker(v.fs, unlockerDir, metadata)
case "keychain": case "keychain":
secret.Debug("Creating keychain unlocker instance", "unlocker_type", metadata.Type) secret.Debug("Creating keychain unlocker instance", "unlocker_type", metadata.Type)
unlocker = secret.NewKeychainUnlocker(v.fs, unlockerDir, secretMetadata) unlocker = secret.NewKeychainUnlocker(v.fs, unlockerDir, metadata)
default: default:
secret.Debug("Unsupported unlocker type", "type", metadata.Type) secret.Debug("Unsupported unlocker type", "type", metadata.Type)
return nil, fmt.Errorf("unsupported unlocker type: %s", metadata.Type) return nil, fmt.Errorf("unsupported unlocker type: %s", metadata.Type)
@ -212,18 +211,15 @@ func (v *Vault) RemoveUnlocker(unlockerID string) error {
unlockerDirPath = filepath.Join(unlockersDir, file.Name()) unlockerDirPath = filepath.Join(unlockersDir, file.Name())
// Convert our metadata to secret.UnlockerMetadata
secretMetadata := secret.UnlockerMetadata(metadata)
// Create the appropriate unlocker instance // Create the appropriate unlocker instance
var tempUnlocker secret.Unlocker var tempUnlocker secret.Unlocker
switch metadata.Type { switch metadata.Type {
case "passphrase": case "passphrase":
tempUnlocker = secret.NewPassphraseUnlocker(v.fs, unlockerDirPath, secretMetadata) tempUnlocker = secret.NewPassphraseUnlocker(v.fs, unlockerDirPath, metadata)
case "pgp": case "pgp":
tempUnlocker = secret.NewPGPUnlocker(v.fs, unlockerDirPath, secretMetadata) tempUnlocker = secret.NewPGPUnlocker(v.fs, unlockerDirPath, metadata)
case "keychain": case "keychain":
tempUnlocker = secret.NewKeychainUnlocker(v.fs, unlockerDirPath, secretMetadata) tempUnlocker = secret.NewKeychainUnlocker(v.fs, unlockerDirPath, metadata)
default: default:
continue continue
} }
@ -286,18 +282,15 @@ func (v *Vault) SelectUnlocker(unlockerID string) error {
unlockerDirPath := filepath.Join(unlockersDir, file.Name()) unlockerDirPath := filepath.Join(unlockersDir, file.Name())
// Convert our metadata to secret.UnlockerMetadata
secretMetadata := secret.UnlockerMetadata(metadata)
// Create the appropriate unlocker instance // Create the appropriate unlocker instance
var tempUnlocker secret.Unlocker var tempUnlocker secret.Unlocker
switch metadata.Type { switch metadata.Type {
case "passphrase": case "passphrase":
tempUnlocker = secret.NewPassphraseUnlocker(v.fs, unlockerDirPath, secretMetadata) tempUnlocker = secret.NewPassphraseUnlocker(v.fs, unlockerDirPath, metadata)
case "pgp": case "pgp":
tempUnlocker = secret.NewPGPUnlocker(v.fs, unlockerDirPath, secretMetadata) tempUnlocker = secret.NewPGPUnlocker(v.fs, unlockerDirPath, metadata)
case "keychain": case "keychain":
tempUnlocker = secret.NewKeychainUnlocker(v.fs, unlockerDirPath, secretMetadata) tempUnlocker = secret.NewKeychainUnlocker(v.fs, unlockerDirPath, metadata)
default: default:
continue continue
} }
@ -419,11 +412,8 @@ func (v *Vault) CreatePassphraseUnlocker(passphrase string) (*secret.PassphraseU
return nil, fmt.Errorf("failed to write encrypted long-term private key: %w", err) return nil, fmt.Errorf("failed to write encrypted long-term private key: %w", err)
} }
// Convert our metadata to secret.UnlockerMetadata for the constructor
secretMetadata := secret.UnlockerMetadata(metadata)
// Create the unlocker instance // Create the unlocker instance
unlocker := secret.NewPassphraseUnlocker(v.fs, unlockerDir, secretMetadata) unlocker := secret.NewPassphraseUnlocker(v.fs, unlockerDir, metadata)
// Select this unlocker as current // Select this unlocker as current
if err := v.SelectUnlocker(unlocker.GetID()); err != nil { if err := v.SelectUnlocker(unlocker.GetID()); err != nil {