#[non_exhaustive]pub struct ToDeviceForwardedRoomKeyEventContent {
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
The content of an m.forwarded_room_key
event.
To create an instance of this type, first create a ToDeviceForwardedRoomKeyEventContentInit
and convert it via ToDeviceForwardedRoomKeyEventContent::from
/ .into()
.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.algorithm: EventEncryptionAlgorithm
The encryption algorithm the key in this event is to be used with.
room_id: OwnedRoomId
The room where the key is used.
sender_key: String
The Curve25519 key of the device which initiated the session originally.
session_id: String
The ID of the session that the key is for.
session_key: String
The key to be exchanged.
sender_claimed_ed25519_key: String
The 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§
source§impl Clone for ToDeviceForwardedRoomKeyEventContent
impl Clone for ToDeviceForwardedRoomKeyEventContent
source§fn clone(&self) -> ToDeviceForwardedRoomKeyEventContent
fn clone(&self) -> ToDeviceForwardedRoomKeyEventContent
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de> Deserialize<'de> for ToDeviceForwardedRoomKeyEventContent
impl<'de> Deserialize<'de> for ToDeviceForwardedRoomKeyEventContent
source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToDeviceForwardedRoomKeyEventContent, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToDeviceForwardedRoomKeyEventContent, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl EventContent for ToDeviceForwardedRoomKeyEventContent
impl EventContent for ToDeviceForwardedRoomKeyEventContent
§type EventType = ToDeviceEventType
type EventType = ToDeviceEventType
source§fn event_type(
&self,
) -> <ToDeviceForwardedRoomKeyEventContent as EventContent>::EventType
fn event_type( &self, ) -> <ToDeviceForwardedRoomKeyEventContent as EventContent>::EventType
m.room.message
.source§impl From<ToDeviceForwardedRoomKeyEventContent> for AnyToDeviceEventContent
impl From<ToDeviceForwardedRoomKeyEventContent> for AnyToDeviceEventContent
source§fn from(c: ToDeviceForwardedRoomKeyEventContent) -> AnyToDeviceEventContent
fn from(c: ToDeviceForwardedRoomKeyEventContent) -> AnyToDeviceEventContent
source§impl From<ToDeviceForwardedRoomKeyEventContentInit> for ToDeviceForwardedRoomKeyEventContent
impl From<ToDeviceForwardedRoomKeyEventContentInit> for ToDeviceForwardedRoomKeyEventContent
source§fn from(
init: ToDeviceForwardedRoomKeyEventContentInit,
) -> ToDeviceForwardedRoomKeyEventContent
fn from( init: ToDeviceForwardedRoomKeyEventContentInit, ) -> ToDeviceForwardedRoomKeyEventContent
source§impl Serialize for ToDeviceForwardedRoomKeyEventContent
impl Serialize for ToDeviceForwardedRoomKeyEventContent
source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl ToDeviceEventContent for ToDeviceForwardedRoomKeyEventContent
Auto Trait Implementations§
impl Freeze for ToDeviceForwardedRoomKeyEventContent
impl RefUnwindSafe for ToDeviceForwardedRoomKeyEventContent
impl Send for ToDeviceForwardedRoomKeyEventContent
impl Sync for ToDeviceForwardedRoomKeyEventContent
impl Unpin for ToDeviceForwardedRoomKeyEventContent
impl UnwindSafe for ToDeviceForwardedRoomKeyEventContent
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> CompatExt for T
impl<T> CompatExt for T
source§impl<T> EventContentFromType for Twhere
T: EventContent + DeserializeOwned,
impl<T> EventContentFromType for Twhere
T: EventContent + DeserializeOwned,
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
source§fn consume_handle(handle: Handle) -> Arc<T>
fn consume_handle(handle: Handle) -> Arc<T>
Arc<>
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