You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Spec doesn't explicitly forbid changing the ed25519 signing key of a device #2442
Issue
Devices for e2ee have an ed25519 signing key and a curve25519 identity key. The ed25519 key is meant to be permanent, but the strongest statement in the spec seems to be "[...] device keys, which are long-lived [...]", which isn't all that strong. In practice, most SDKs (matrix-rust-sdk, mautrix-go) already reject changes to device signing keys, so this is just a spec omission
The spec should probably also specify that the signing key can't be safely changed even by logging out and back in, because that will still fail if a client is offline for the entire time between the logout and relogin.
I think we could go further, and forbid changing the curve25519 identity key. The spec claims that it can be replaced, but in practice attempting to do so will cause all hell to break loose (see element-hq/element-meta#2374), and frankly if your curve25519 key is compromised then you need to consider the whole device compromised anyway, so there's no reason to rotate it.
Activity
richvdh commentedon Sep 22, 2026
I think we could go further, and forbid changing the curve25519 identity key. The spec claims that it can be replaced, but in practice attempting to do so will cause all hell to break loose (see element-hq/element-meta#2374), and frankly if your curve25519 key is compromised then you need to consider the whole device compromised anyway, so there's no reason to rotate it.