pub enum MessageKeyGenerator {
Seed(([u8; 32], u32)),
Serialized(MessageKey),
}Expand description
Lazy message key generator that defers key derivation and avoids re-serialization.
This enum enables two optimizations:
- Lazy derivation: Keys are only derived from seed when actually needed for encryption
- Zero-cost round-trip: Keys loaded from protobuf are kept in serialized form and returned as-is when saving, avoiding unnecessary deserialization and re-serialization
Variants§
Seed(([u8; 32], u32))
Seed for lazy derivation - keys derived on demand
Serialized(MessageKey)
Original protobuf - zero-cost pass-through on save
Implementations§
Source§impl MessageKeyGenerator
impl MessageKeyGenerator
pub fn new_from_seed(seed: &[u8; 32], counter: u32) -> Self
Sourcepub fn generate_keys(self) -> MessageKeys
pub fn generate_keys(self) -> MessageKeys
Generate the actual MessageKeys, deriving them if necessary. This is called when keys are needed for actual encryption/decryption.
Sourcepub fn into_pb(self) -> MessageKey
pub fn into_pb(self) -> MessageKey
Convert to protobuf format for storage. Zero-cost for Serialized variant (pass-through), allocates for others.
The seed is persisted next to the keys it derives: the derivation is one-way, so a record that kept only the derived keys could never be projected back into a seed-based external format.
Sourcepub fn from_pb(pb: MessageKey) -> Result<Self, &'static str>
pub fn from_pb(pb: MessageKey) -> Result<Self, &'static str>
Load from protobuf without parsing - keeps original bytes for zero-cost round-trip.
Auto Trait Implementations§
impl !Freeze for MessageKeyGenerator
impl RefUnwindSafe for MessageKeyGenerator
impl Send for MessageKeyGenerator
impl Sync for MessageKeyGenerator
impl Unpin for MessageKeyGenerator
impl UnsafeUnpin for MessageKeyGenerator
impl UnwindSafe for MessageKeyGenerator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more