Edison uses zero-knowledge encryption for stored credentials. No encryption keys are stored on the server.
Credential type
Encrypted with
Key stored?
User credentials
User's personal key
Never -- hash only
Admin credentials
Domain key (optional)
Never -- hash only
The user's key is a composite of typed segments: user:{personal_key}.admin:{org_key}[.role:{name}:{key} ...], delivered to the server in the X-Edison-Secret-Key request header and never persisted. Each stored secret is encrypted with an AES-256-GCM key derived via HKDF-SHA256, using an info parameter of edison-secret:{context} where {context} uniquely identifies the secret (e.g. server:template_key). This context-based derivation gives each secret its own derived key without the server ever storing key material.