KeyRotation class final

A record that the group key was rotated to keyEpoch, excluding revokedDeviceId (empty for the initial founding at epoch 0).

One per epoch and rotating device, so two rotations to the same epoch made concurrently on two devices both survive and every device judges both; DeviceRoster.reconcile re-rotates if a revoked device is left holding a usable wrap.

Inheritance

Constructors

KeyRotation({required int keyEpoch, required String byDeviceId, required String revokedDeviceId, required List<int> keyDigest, List<int> signature = const []})
Creates a rotation row, signed by byDeviceId.
const

Properties

byDeviceId → String
The device that performed the rotation (and signed this row).
final
documentId → String
The stable document id for this row inside kDeviceCollection.
no setteroverride
hashCode → int
The hash code for this object.
no setterinherited
keyDigest → List<int>
A short non-secret digest of the new key, to spot competing rotations.
final
keyEpoch → int
The epoch this rotation produced.
final
revokedDeviceId → String
The device excluded by this rotation ('' for founding).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
signature → List<int>
The Ed25519 signature by signedBy over the row's canonical payload.
final
signedBy → String
The Identity.deviceId of the device that wrote and signed this row.
no setteroverride

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited