Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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