Encryption key custody: Keycloak-profile + deployment toggle (v0.3, probe PR2) #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/encryption-custody"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Second encryption PR (see
ENCRYPTION-COMPARISON.md): key custody + wiring. With this merged,storage.encryption.enabled: trueturns the PR1 decorator on.KeycloakKeys(custodykeycloak-profile, the default — Manuel's model): per-user age X25519 identity stored in a Keycloak user attribute (cairnAgeIdentity), read per request via the Admin REST API (client-credentials service account), lazy-provisioned on a user's first encrypted operation. Fetch-merge-PUT preserves the rest of the user representation; identities and the admin token are cached in memory.StaticKeys(custodydeployment): one master identity from config — the Path-1 fallback for IdPs that can't store attributes. The custody choice is thestorage.encryption.keyCustodyconfig toggle (the "decide within Cairn" requirement).storage.encryptionblock + env overrides (CAIRN_ENC_RECOVERY_IDENTITY,CAIRN_ENC_DEPLOYMENT_IDENTITY,CAIRN_ENC_KEYCLOAK_CLIENT_SECRET). Misconfig is fatal at startup — a deployment that asked for encryption never silently runs without it./s/shares have no user context → shares of per-user-encrypted content can't decrypt (deferred).