pub enum SessionCreationError {
OneTimeKeyNotSigned(OwnedUserId, OwnedDeviceId),
OneTimeKeyMissing(OwnedUserId, OwnedDeviceId),
OneTimeKeyUnknown(OwnedUserId, OwnedDeviceId),
InvalidSignature {
one_time_key: Box<SignedKey>,
signing_key: Option<Box<Ed25519PublicKey>>,
error: Box<SignatureError>,
},
DeviceMissingCurveKey(OwnedUserId, OwnedDeviceId),
InvalidJson(Error),
InvalidCurveKey(KeyError),
InboundCreation(SessionCreationError),
InvalidDeviceKeys(SignatureError),
MismatchedIdentityKeys(MismatchedIdentityKeysError),
}
Expand description
Error that occurs when a room key can’t be converted into a valid Megolm session.
Variants§
OneTimeKeyNotSigned(OwnedUserId, OwnedDeviceId)
The requested one-time key isn’t a signed curve key.
OneTimeKeyMissing(OwnedUserId, OwnedDeviceId)
The signed one-time key is missing.
OneTimeKeyUnknown(OwnedUserId, OwnedDeviceId)
The one-time key algorithm is unsupported.
InvalidSignature
Failed to verify the one-time key signatures.
Fields
signing_key: Option<Box<Ed25519PublicKey>>
The key that was used to verify the signature.
error: Box<SignatureError>
The exact error describing why the signature verification failed.
DeviceMissingCurveKey(OwnedUserId, OwnedDeviceId)
The user’s device is missing a curve25519 key.
InvalidJson(Error)
Error deserializing the one-time key.
InvalidCurveKey(KeyError)
The given curve25519 key is not a valid key.
InboundCreation(SessionCreationError)
Error when creating an Olm Session from an incoming Olm message.
InvalidDeviceKeys(SignatureError)
The given device keys are invalid.
MismatchedIdentityKeys(MismatchedIdentityKeysError)
There was 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.
Trait Implementations§
Source§impl Debug for SessionCreationError
impl Debug for SessionCreationError
Source§impl Display for SessionCreationError
impl Display for SessionCreationError
Source§impl Error for SessionCreationError
impl Error for SessionCreationError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<Error> for SessionCreationError
impl From<Error> for SessionCreationError
Source§impl From<KeyError> for SessionCreationError
impl From<KeyError> for SessionCreationError
Source§impl From<SessionCreationError> for OlmError
impl From<SessionCreationError> for OlmError
Source§fn from(source: SessionCreationError) -> Self
fn from(source: SessionCreationError) -> Self
Source§impl From<SessionCreationError> for SessionCreationError
impl From<SessionCreationError> for SessionCreationError
Source§fn from(source: SessionCreationError) -> Self
fn from(source: SessionCreationError) -> Self
Source§impl From<SignatureError> for SessionCreationError
impl From<SignatureError> for SessionCreationError
Source§fn from(source: SignatureError) -> Self
fn from(source: SignatureError) -> Self
Auto Trait Implementations§
impl Freeze for SessionCreationError
impl !RefUnwindSafe for SessionCreationError
impl Send for SessionCreationError
impl Sync for SessionCreationError
impl Unpin for SessionCreationError
impl !UnwindSafe for SessionCreationError
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, 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,
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