Struct SasV1Content
#[non_exhaustive]pub struct SasV1Content {
pub key_agreement_protocol: KeyAgreementProtocol,
pub hash: HashAlgorithm,
pub message_authentication_code: MessageAuthenticationCode,
pub short_authentication_string: Vec<ShortAuthenticationString>,
pub commitment: Base64,
}Expand description
The payload of an m.key.verification.accept event using the m.sas.v1 method.
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.key_agreement_protocol: KeyAgreementProtocolThe key agreement protocol the device is choosing to use, out of the
options in the m.key.verification.start message.
hash: HashAlgorithmThe hash method the device is choosing to use, out of the options in the
m.key.verification.start message.
message_authentication_code: MessageAuthenticationCodeThe message authentication code the device is choosing to use, out of
the options in the m.key.verification.start message.
short_authentication_string: Vec<ShortAuthenticationString>The SAS methods both devices involved in the verification process understand.
Must be a subset of the options in the m.key.verification.start
message.
commitment: Base64The hash (encoded as unpadded base64) of the concatenation of the
device’s ephemeral public key (encoded as unpadded base64) and the
canonical JSON representation of the m.key.verification.start message.
Trait Implementations§
§impl Clone for SasV1Content
impl Clone for SasV1Content
§fn clone(&self) -> SasV1Content
fn clone(&self) -> SasV1Content
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for SasV1Content
impl Debug for SasV1Content
§impl<'de> Deserialize<'de> for SasV1Content
impl<'de> Deserialize<'de> for SasV1Content
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SasV1Content, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SasV1Content, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl From<SasV1ContentInit> for SasV1Content
impl From<SasV1ContentInit> for SasV1Content
§fn from(init: SasV1ContentInit) -> SasV1Content
fn from(init: SasV1ContentInit) -> SasV1Content
Creates a new SasV1Content from the given init struct.
§impl Serialize for SasV1Content
impl Serialize for SasV1Content
§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,
Source§impl TryFrom<SasV1Content> for AcceptedProtocols
impl TryFrom<SasV1Content> for AcceptedProtocols
Source§type Error = CancelCode
type Error = CancelCode
Source§fn try_from(
content: SasV1Content,
) -> Result<AcceptedProtocols, <AcceptedProtocols as TryFrom<SasV1Content>>::Error>
fn try_from( content: SasV1Content, ) -> Result<AcceptedProtocols, <AcceptedProtocols as TryFrom<SasV1Content>>::Error>
Auto Trait Implementations§
impl Freeze for SasV1Content
impl RefUnwindSafe for SasV1Content
impl Send for SasV1Content
impl Sync for SasV1Content
impl Unpin for SasV1Content
impl UnwindSafe for SasV1Content
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,
§impl<T> CompatExt for T
impl<T> CompatExt 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