Expand description
Install-scoped storage for protocol delivery state.
This storage domain is deliberately separate from crate::MlsStorage.
MLS storage contains cryptographic identity and group material that may
outlive an app-container incarnation. Protocol state contains restartable
delivery machinery—outbox entries, pending messages, retry lifecycles, and
peer snapshots—and must be removed with the app container.
§Confidentiality
Lifecycle separation is not confidentiality separation: some of this state
(queued message plaintext, cloud-media encryption_key/iv) is as
sensitive as anything in the credential store. Implementations are not
trusted to protect it — the SDK seals those record values with an AEAD
whose key lives in crate::MlsStorage before they ever reach this trait
(see protocol::state_crypto). An implementation therefore only ever sees
ciphertext for sensitive categories, and a stolen app container without the
credential store yields nothing.
Record keys (key_type / key_id) are not sealed: they are peer ids and
message ids, and the storage layout needs them in the clear to list and
address entries.
Enums§
- Protocol
State Error - Failure of a protocol-state storage operation.
Constants§
- MAX_
PROTOCOL_ STATE_ RECORD_ TRANSFER_ BYTES - Largest record the SDK will ever hand a
ProtocolStateStorage, and the ceiling implementations must enforce on the way back.
Traits§
- Protocol
State Storage - Storage for restartable protocol and message-plane state.
Type Aliases§
- Protocol
State Result - Result alias for
ProtocolStateStorageoperations.