Skip to content

fix(security): use the configured security.encryption_key for wallet-at-rest encryption #170

Description

Summary

config.go:329,334 require and validate a 32-byte security.encryption_key, but it is never used. Instead wallet/service.go:505-526 encrypts the secret key with AES key = SHA256(passkeySeed) — the same secret that derives the wallet, so encryption adds nothing if the seed leaks.

Acceptance Criteria

  • Encrypt wallet secret material with the configured encryption key (or a derived key from it)
  • Do not derive the encryption key from the wallet seed itself
  • Handle rotation and legacy-decryption path
  • Crypto tests

Complexity

High — cryptography + migration of stored data.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programhigh-complexityHigh-complexity backend task requiring deep architectural worksecuritySecurity vulnerability

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions