StorageEncryptionException

Encrypted client storage cannot be read or written. Storage fails closed: an unreadable record is never reported as missing, replaced, or read as plaintext. Messages never contain key bytes, plaintext or ciphertext.

Inheritors

Types

Link copied to clipboard

A record did not authenticate: wrong key, modified bytes, or a record copied from another row or record type.

Link copied to clipboard

The database claims to hold plaintext from before record encryption, but it cannot be proven to be such a database: it was bound to a storage key before, holds records only encrypted storage has, or the storage key provider already holds a key without a valid migration intent (S1, finding F7; docs/storage-encryption.md, "Downgrade protection"). Nothing was encrypted or changed.

Link copied to clipboard

A storage key rotation needs a new key ID, but the storage has used every ID up to Int.MAX_VALUE. IDs are never reused or wrapped around.

Link copied to clipboard
class KeyUnavailable(message: String, cause: Throwable? = null) : StorageEncryptionException

The storage key is not available: the StorageKeyProvider failed or does not have the key, or a record names a key this storage does not use.

Link copied to clipboard

The record is truncated or its structure is invalid.

Link copied to clipboard

The record or database uses an unknown encryption format, version or algorithm.

Properties

Link copied to clipboard
expect open val cause: Throwable?
Link copied to clipboard
expect open val message: String?