Enum UnableToDecryptReason
pub enum UnableToDecryptReason {
MalformedEncryptedEvent,
MissingMegolmSession {
withheld_code: Option<WithheldCode>,
},
UnknownMegolmMessageIndex,
MegolmDecryptionFailure,
PayloadDeserializationFailure,
MismatchedIdentityKeys,
SenderIdentityNotTrusted(VerificationLevel),
// some variants omitted
}Expand description
Reason code for a decryption failure
Variants§
MalformedEncryptedEvent
The m.room.encrypted event that should have been decrypted is
malformed in some way (e.g. unsupported algorithm, missing fields,
unknown megolm message type).
MissingMegolmSession
Decryption failed because we’re missing the megolm session that was used to encrypt the event.
Fields
withheld_code: Option<WithheldCode>If the key was withheld on purpose, the associated code. None
means no withheld code was received.
UnknownMegolmMessageIndex
Decryption failed because, while we have the megolm session that was used to encrypt the message, it is ratcheted too far forward.
MegolmDecryptionFailure
We found the Megolm session, but were unable to decrypt the event using that session for some reason (e.g. incorrect MAC).
This represents all vodozemac::megolm::DecryptionErrors, except
UnknownMessageIndex, which is represented as
UnknownMegolmMessageIndex.
PayloadDeserializationFailure
The event could not be deserialized after decryption.
MismatchedIdentityKeys
Decryption failed because of a mismatch between the identity keys of the device we received the room key from and the identity keys recorded in the plaintext of the room key to-device message.
SenderIdentityNotTrusted(VerificationLevel)
An encrypted message wasn’t decrypted, because the sender’s
cross-signing identity did not satisfy the requested
TrustRequirement.
Implementations§
§impl UnableToDecryptReason
impl UnableToDecryptReason
pub fn is_missing_room_key(&self) -> bool
pub fn is_missing_room_key(&self) -> bool
Returns true if this UTD is due to a missing room key (and hence might resolve itself if we wait a bit.)
Trait Implementations§
§impl Clone for UnableToDecryptReason
impl Clone for UnableToDecryptReason
§fn clone(&self) -> UnableToDecryptReason
fn clone(&self) -> UnableToDecryptReason
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for UnableToDecryptReason
impl Debug for UnableToDecryptReason
§impl<'de> Deserialize<'de> for UnableToDecryptReason
impl<'de> Deserialize<'de> for UnableToDecryptReason
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<UnableToDecryptReason, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<UnableToDecryptReason, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl PartialEq for UnableToDecryptReason
impl PartialEq for UnableToDecryptReason
§impl Serialize for UnableToDecryptReason
impl Serialize for UnableToDecryptReason
§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 Eq for UnableToDecryptReason
impl StructuralPartialEq for UnableToDecryptReason
Auto Trait Implementations§
impl Freeze for UnableToDecryptReason
impl RefUnwindSafe for UnableToDecryptReason
impl Send for UnableToDecryptReason
impl Sync for UnableToDecryptReason
impl Unpin for UnableToDecryptReason
impl UnwindSafe for UnableToDecryptReason
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
§impl<T> DeserialiseFromJs for Twhere
T: DeserializeOwned,
impl<T> DeserialiseFromJs for Twhere
T: DeserializeOwned,
§fn deserialise_from_js(js: JsValue) -> Result<T, Error>
fn deserialise_from_js(js: JsValue) -> Result<T, Error>
serde_wasm_bindgen.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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> SerialiseToJs for Twhere
T: Serialize,
impl<T> SerialiseToJs for Twhere
T: Serialize,
§fn serialise_to_js(&self) -> Result<JsValue, Error>
fn serialise_to_js(&self) -> Result<JsValue, Error>
JsValue, most likely using serde_wasm_bindgen.