Skip to content

Secrets partially unencrypted on disk #11

Description

@branarakic

Migrated from dkg-v9 issue #75

Context

Feedback item I-007 — Severity: Medium

What exists

Encrypted keystore module (packages/cli/src/keystore.ts) using AES-256-GCM with scrypt-derived passphrase — fully implemented and tested.

What remains

The original secret storage paths still write plaintext:

  • agent-wallet.ts:70-73 — binary master key written with mode 0o600 but no encryption
  • op-wallets.ts:44-46 — Ethereum private keys stored as plaintext JSON
  • auth.ts:66-71 — bearer tokens written as plaintext

The keystore module is available but not wired into these paths.

Recommendation

Wire the existing keystore module into all secret storage paths.

Evidence

  • packages/agent/src/agent-wallet.ts:70-73
  • packages/agent/src/op-wallets.ts:44-46
  • packages/cli/src/auth.ts:66-71
  • packages/cli/src/keystore.ts (available but unused by above)

Metadata

Metadata

Assignees

No one assigned

    Labels

    pre-mainnetMust land before mainnet launchpriority:highMust-fix: protocol correctness, security, economics, or headline flow broken

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions