pub enum DecryptionFailureCode {
InvalidPayload,
NotInitialized,
InvalidCiphertext,
IdentityMismatch,
CryptoFailure,
PendingQueueDropped,
Unknown,
}Expand description
Machine-readable reason taxonomy for inbound decryption failures.
Variants§
InvalidPayload
Incoming encrypted payload is malformed and cannot be parsed.
NotInitialized
MLS subsystem is not initialized locally.
InvalidCiphertext
Ciphertext is invalid or cannot be decrypted.
IdentityMismatch
Sender identity/signature verification failed.
CryptoFailure
Cryptographic operation failed.
PendingQueueDropped
A media chunk was evicted from the pending-decryption queue (overflow or TTL expiry) before the sender’s session became ready, so the file transfer it belongs to is currently stalled.
Under the deferred-ACK model this is advisory, not terminal: the
evicted chunk was never ACKed, so the sender keeps retransmitting and a
later resend re-enters the queue and can still complete the transfer once
the session confirms. Treat this as “the transfer is stalled and may need
a resend”, not “the transfer has permanently failed” — the terminal
failure signal for media is FileReceiveFailed. The same is true of a
hard decrypt failure while crypto_recovery_enabled, which surfaces
under its own code but is equally un-ACKed and equally recoverable by a
resend; see the MessageDecryptionFailed docs.
Unknown
Failure class is unknown.
Trait Implementations§
Source§impl Clone for DecryptionFailureCode
impl Clone for DecryptionFailureCode
Source§fn clone(&self) -> DecryptionFailureCode
fn clone(&self) -> DecryptionFailureCode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DecryptionFailureCode
Source§impl Debug for DecryptionFailureCode
impl Debug for DecryptionFailureCode
Source§impl<'de> Deserialize<'de> for DecryptionFailureCode
impl<'de> Deserialize<'de> for DecryptionFailureCode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for DecryptionFailureCode
Source§impl PartialEq for DecryptionFailureCode
impl PartialEq for DecryptionFailureCode
Source§impl Serialize for DecryptionFailureCode
impl Serialize for DecryptionFailureCode
impl StructuralPartialEq for DecryptionFailureCode
Auto Trait Implementations§
impl Freeze for DecryptionFailureCode
impl RefUnwindSafe for DecryptionFailureCode
impl Send for DecryptionFailureCode
impl Sync for DecryptionFailureCode
impl Unpin for DecryptionFailureCode
impl UnsafeUnpin for DecryptionFailureCode
impl UnwindSafe for DecryptionFailureCode
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§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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