Struct ToDeviceForwardedRoomKeyEventContentInit
pub struct ToDeviceForwardedRoomKeyEventContentInit {
pub algorithm: EventEncryptionAlgorithm,
pub room_id: OwnedRoomId,
pub sender_key: String,
pub session_id: String,
pub session_key: String,
pub sender_claimed_ed25519_key: String,
pub forwarding_curve25519_key_chain: Vec<String>,
}Expand description
Initial set of fields of ToDeviceForwardedRoomKeyEventContent.
This struct will not be updated even if additional fields are added to ConditionalPushRule in
a new (non-breaking) release of the Matrix specification.
Fields§
§algorithm: EventEncryptionAlgorithmThe encryption algorithm the key in this event is to be used with.
room_id: OwnedRoomIdThe room where the key is used.
sender_key: StringThe Curve25519 key of the device which initiated the session originally.
session_id: StringThe ID of the session that the key is for.
session_key: StringThe key to be exchanged.
sender_claimed_ed25519_key: StringThe Ed25519 key of the device which initiated the session originally.
It is “claimed” because the receiving device has no way to tell that the original room_key actually came from a device which owns the private part of this key unless they have done device verification.
forwarding_curve25519_key_chain: Vec<String>Chain of Curve25519 keys.
It starts out empty, but each time the key is forwarded to another device, the previous sender in the chain is added to the end of the list. For example, if the key is forwarded from A to B to C, this field is empty between A and B, and contains A’s Curve25519 key between B and C.
Trait Implementations§
§impl From<ToDeviceForwardedRoomKeyEventContentInit> for ToDeviceForwardedRoomKeyEventContent
impl From<ToDeviceForwardedRoomKeyEventContentInit> for ToDeviceForwardedRoomKeyEventContent
§fn from(
init: ToDeviceForwardedRoomKeyEventContentInit,
) -> ToDeviceForwardedRoomKeyEventContent
fn from( init: ToDeviceForwardedRoomKeyEventContentInit, ) -> ToDeviceForwardedRoomKeyEventContent
Auto Trait Implementations§
impl Freeze for ToDeviceForwardedRoomKeyEventContentInit
impl RefUnwindSafe for ToDeviceForwardedRoomKeyEventContentInit
impl Send for ToDeviceForwardedRoomKeyEventContentInit
impl Sync for ToDeviceForwardedRoomKeyEventContentInit
impl Unpin for ToDeviceForwardedRoomKeyEventContentInit
impl UnwindSafe for ToDeviceForwardedRoomKeyEventContentInit
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
§impl<T> CompatExt for T
impl<T> CompatExt for T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more