KEY_BYTES
KEY_BYTES = 32
Bytes a key must contain.
Supplies the key frames are sealed under.
Separate from CipherInterface because where a key comes from is a deployment decision and how it
is used is not. A site holds its key in the key module, which can back it with a file, an
environment variable or a secrets manager; a test holds it in memory; neither should change the
cipher.
The rule this interface exists to enforce: losing the key loses every backup. No part of Strata can recover a sealed frame without it, by construction. An implementation that cannot produce the key must raise rather than return a default, an empty string, or a key derived from something guessable - all three would silently seal a bucket nobody can open later, and the failure would not surface until a restore.
fingerprint() : string
A stable, non-secret identifier for the key currently in use.
Recorded alongside a frame so a rotation can tell which key sealed what without holding either key. It must not be reversible to the key: implementations derive it by hashing the key with a fixed personalisation rather than truncating it.
When no key is configured.
A short hex fingerprint.